Задача обучения однослойного перцептрона решается просто. Его работа определяется выражением:
y j = F (∑wij * x ij =θ )
Будем называть нейронную сеть обученной на данной обучающей выборке, если при подаче на входы сети каждого вектора xs на выходах всякий раз получается соответствующий вектор ys .
Подадим на вход один вектор x sиз обучающего множества. Рассчитаем выход и сравним полученный выходной вектор y sс эталоном: d s. Зная разницу между ними, можно ввести коррекции для весовых коэффициентов и пороговых уровней:
∆wij = ε (djs- yjs) *xij
∆ θ = - ε (djs- yjs)
где ε — небольшое положительное число, характеризующее скорость обучения.
Разница между эталонным значением и выходом, (djs- yjs)и умножение на текущее значение входа xijобеспечивают правильное направление коррекций: если yjs< djs, то выход должен увеличиться, и вес увеличивается, если xij > 0и уменьшается, если xij < 0. Если xij = 0, то вес менять нельзя, т.к. он не влияет на выход.
Абсолютное значение xijтакже учитывается при обучении. Если значение входа велико, то небольшое изменение веса сильно меняет выход. Чем меньше меняются веса, тем меньше вероятность искажения уже запомненных образов. Поэтому множитель xijоправдан.
Данный метод обучения был назван Ф.Розенблаттом “методом коррекции с обратной передачей сигнала ошибки”. Позднее более широко стало известно название “δ-правило”. Представленный алгоритм относится к широкому классу алгоритмов обучения с учителем, поскольку известны как входные вектора, так и требуемые значения выходных векторов (имеется учитель, способный оценить правильность ответа ученика).
Веса и пороговые уровни инициализируются случайными значениями. Созданная таким образом сеть абсолютно неадекватна решаемой задаче и может генерировать на выходе только шум. Поэтому ошибка в начале обучения очень велика, и есть смысл вводить большие коррекции параметров. Ближе к концу обучения ошибка значительно снижается, и коррекции должны быть малыми. Чтобы менять длину шагов по параметрам, используют расписание обучения (learning schedule). Выберем скорость обучения зависящей от времени обучения: ε (t) . Обычно скорость монотонно убывает с ростом времени. Для сходимости алгоритма необходимо:
t → ∞
ε (t)→ 0 и
Часто выбирают ε (t) =1/α * t, α = > 0 или аналогичные функции.
Алгоритмы с расписанием обучения сходятся быстрее, т.к. в начале используются большие коррекции, и дают более точные результаты за счет точной настройки параметров в конце обучения.