Алгоритм обучения однослойного персептрона
Персептрон должен решать задачу классификации по бинарным входным сигналам. Набор входных сигналов будем обозначать
![](../../../../img/tex/b/5/b/b5b31ff78fdd837e6c2ebed0a841bbad.png)
![](../../../../img/tex/f/3/7/f3771bf910afd79253ce1429d67e19e3.png)
Персептроном будем называть устройство, вычисляющее следующую систему функций:
![]() |
(1) |
где
![](../../../../img/tex/4/6/2/4627a3a0a80bde781104fe0bac10abd6.png)
![](../../../../img/tex/6/6/3/663e3138149bd0fc82bb84cfb7b96d3b.png)
![](../../../../img/tex/c/e/7/ce78877c83b90464e7dc17cff58c8aa7.png)
![](../../../../img/tex/9/3/c/93cccb41cdc2040c49447ce479e6f63e.png)
Обучение персептрона состоит в подстройке весовых коэффициентов. Пусть имеется набор пар векторов
![](../../../../img/tex/c/4/4/c44a4810983270b2d1bf6bbd7d5705be.png)
![](../../../../img/tex/7/2/4/724216919bbd079396bda9c85558283c.png)
![](../../../../img/tex/e/6/e/e6ec9daa5ae93ba9d3f4fcac4f1db058.png)
![](../../../../img/tex/d/4/1/d419d1b552bf2590abb24928d2665e26.png)
Предложенный Ф.Розенблаттом метод обучения состоит в итерационной подстройке матрицы весов, последовательно уменьшающей ошибку в выходных векторах. Алгоритм включает несколько шагов:
Шаг 0 | Начальные значения весов всех нейронов ![]() |
Шаг 1 | Сети предъявляется входной образ ![]() ![]() |
Шаг 2 | Вычисляется вектор ошибки ![]() |
Шаг 3 | Вектор весов модифицируется по следующей формуле: ![]() ![]() |
Шаг 4 | Шаги 1—3 повторяются для всех обучающих векторов. Один цикл последовательного предъявления всей выборки называется эпохой. Обучение завершается по истечении нескольких эпох: а) когда итерации сойдутся, т.е. вектор весов перестает изменяться, или б) когда полная, просуммированная по всем векторам абсолютная ошибка станет меньше некоторого малого значения. |
Объясним данный алгоритм более подробно. Подаем на вход персептрона такой вектор
![](../../../../img/tex/f/3/7/f3771bf910afd79253ce1429d67e19e3.png)
Первый тип ошибки: на выходе персептрона — 0, а правильный ответ — 1. Для того чтобы персептрон выдавал правильный ответ, необходимо, чтобы сумма в правой части (1) стала больше. Поскольку переменные принимают значения 0 или 1, увеличение суммы может быть достигнуто за счет увеличения весов
![](../../../../img/tex/4/9/1/491401232ee4306ff86ad6e61afaf250.png)
![](../../../../img/tex/f/7/9/f792fd46027d717be6f4f5fd3e9445fe.png)
![](../../../../img/tex/4/9/1/491401232ee4306ff86ad6e61afaf250.png)
Первое правило. Если на выходе персептрона получен 0, а правильный ответ равен 1, то необходимо увеличить веса связей между одновременно активными нейронами. При этом выходной персептрон считается активным. Второй тип ошибки: на выходе персептрона — 1, а правильный ответ равен нулю. Для обучения правильному решению данного примера следует уменьшить сумму в правой части (1). Следовательно, необходимо уменьшить веса связей
![](../../../../img/tex/4/9/1/491401232ee4306ff86ad6e61afaf250.png)
![](../../../../img/tex/f/7/9/f792fd46027d717be6f4f5fd3e9445fe.png)
Второе правило. Если на выходе персептрона получена единица, а правильный ответ равен нулю, то необходимо уменьшить веса связей между одновременно активными нейронами.
Таким образом, процедура обучения сводится к последовательному перебору всех примеров обучающего множества с применением правил обучения для ошибочно решенных примеров. Если после очередного цикла предъявления всех примеров окажется, что все они решены правильно, то процедура обучения завершается.
Нерассмотренными остались два вопроса. Первый — о сходимости процедуры обучения.