Основы теории нейронных сетей
Все алгоритмы обучения нейросетей являются разновидностями алгоритма обучения по методу коррекции ошибки, которая осуществляется по-разному. Идея изменения весов НС сводится к нахождению общей меры качества сети, в качестве которой обычно выбирают функцию ошибки сети. Тогда, чтобы подобрать нужные веса, необходимо минимизировать функцию ошибки. Самым распространенным методом поиска минимума является метод градиентного спуска. Для случая функции с одной переменной веса изменяются в направлении, противоположном производной, т. е. справедлива формула
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 (W 1, W 2) |
Если функция активации нелинейна, то d имеет более сложный вид, и необходимо определять ¶E/¶O - частные производные ошибки по выходам. Работу алгоритма иллюстрирует рис. 4.11.