Алгоритм обучения по дельта-правилу
Основы теории нейронных сетей
Все алгоритмы обучения нейросетей являются разновидностями алгоритма обучения по методу коррекции ошибки, которая осуществляется по-разному. Идея изменения весов НС сводится к нахождению общей меры качества сети, в качестве которой обычно выбирают функцию ошибки сети. Тогда, чтобы подобрать нужные веса, необходимо минимизировать функцию ошибки. Самым распространенным методом поиска минимума является метод градиентного спуска. Для случая функции с одной переменной веса изменяются в направлении, противоположном производной, т. е. справедлива формула
Wn+1 = Wn - z F’(W), где z -- некоторый уровень обучения, шаг изменения, а F’(W) - производная функции качества НС для одной переменной.
Для функции F: Rn ® Rn от n переменных и единичного вектора e в пространстве Rn ||e|| = 1, e Rn , дифференциал выражается формулой .
Для случая e = (0,0.....1....0) определим частный дифференциал
Таким образом, антиградиент - это набор следующих дифференциалов:
¶F(W) = ((- ¶F(W1),- ¶F(W2)... - ¶F(Wi), - ¶F(Wn)).
Для определения обобщенной функции ошибки рассмотрим обучающую выборку
{(x k, y k)}, где к = 1...К.
Накопленная по всем эпохам ошибка .
Формула модификации весов НС уточняется для различных видов функции активации. Пусть функция активации линейная, например, F(t) = t, тогда НС формирует каждый выход как скалярное произведение весов на вектор входов: Oi = <Wi, Xi> и градиент будет равен : , где Yi - желаемый выход, Oi -полученный выход, а X - вектор выхода. Таким образом, с помощью метода градиентного спуска можно обосновать ранее введенную формулу изменения весов.
Если значением d назвать разницу (Yi - Oi), то получим формулу , а это алгоритм обучения по d-правилу.
E En(W1 ,W2) En+1(W1 ,W2) Wn e W2 W1 Wn+1 Рис. 4.11. Иллюстрация обучения градиентным методом снижения ошибки E(W1,W2) |
Если функция активации нелинейна, то d имеет более сложный вид, и необходимо определять ¶E/¶O - частные производные ошибки по выходам. Работу алгоритма иллюстрирует рис. 4.11.