Обучение осуществляется следующим образом:
1. Рандомизируются все веса сети в малые величины.
2. На вход сети подается входной обучающий вектор Х и вычисляется сигнал NET от каждого нейрона, используя стандартное выражение
.
3. Вычисляется значение пороговой функции активации для сигнала NET от каждого нейрона следующим образом:
OUTj = 1, если NETj больше чем порогθj,
OUTj = 0 в противном случае.
Здесь θj представляет собой порог, соответствующий нейрону j (в простейшем случае, все нейроны имеют один и тот же порог).
4. Вычисляется ошибка для каждого нейрона посредством вычитания полученного выхода из требуемого выхода:
errorj = targetj – OUTj.
5. Каждый вес модифицируется следующим образом:
Wij(t+1) = wij(t) +axierrorj.
6. Повторяются шаги со второго по пятый до тех пор, пока ошибка не станет достаточно малой.