При реализации алгоритмов обучения на персональном компьютере необходимо учитывать две характеристики:
Далее представлено описание и проведен сравнительный анализ алгоритмов обучения, которые при реализации на персональном компьютере требуют строго меньше 2*N вспомогательных переменных, где N - это число параметров сети, настраиваемых в процессе обучения (синаптических весов и смещений). Это следующие алгоритмы:
В обобщенном градиентном алгоритме на каждой итерации выполняется вычисление градиента функции ошибки (определяются значения частных производных по синаптическим весам и смещениям) и делается шаг в направлении антиградиента. Величина шага задается пользователем.
Обобщенный градиентный алгоритм обучения в отличие от традиционного метода обратного распространения ошибки дает возможность обучать многослойные сети с произвольным числом слоев. Использование двойственных переменных ускоряет процесс обучения.
Градиентный алгоритм с автоматическим определением длины шага определяется следующим набором параметров:
В начале обучения с помощью автономного градиентного алгоритма записываются на диск значения весов и смещений сети. Затем происходит заданное число итераций обучения с заданным шагом. Если после завершения этих итераций значение функции ошибки не возросло, то шаг обучения увеличивается на заданную величину, а текущие значения весов и смещений записываются на диск. Если на некоторой итерации произошло увеличение функции ошибки, то с диска считываются последние запомненные значения весов и смещений, а шаг обучения уменьшается на заданную величину.
При использовании автономного градиентного алгоритма происходит автоматический подбор длины шага обучения в соответствии с характеристиками адаптивного рельефа.
Замечено, что в начале обучения шаг должен быть порядка 0.1, а в конце обучения - от 105 до 106. Автономный алгоритм по сравнению с обобщенным градиентным алгоритмом имеет преимущество в том, что шаг обучения автоматически увеличивается, подстраиваясь под адаптивный рельеф. Тем самым существенно сокращается количество шагов, которое требуется для обучения сети.
В алгоритмах с одномерной оптимизацией на каждом шаге обучения выполняется два пробных шага: один в направлении антиградиента, другой - в противоположном направлении. По трем точкам (включая исходную точку итерации) строится парабола. Для параболы с лучами, направленными вверх, шаг делается в вершину параболы. Если лучи параболы направлены вниз, то выполняется шаг в сторону антиградиента на заданную величину. Таким образом, а этих алгоритмах адаптивный рельеф вдоль антиградиента функции ошибки аппроксимируется параболой.
В программной реализации алгоритма с одномерной оптимизацией исключено увеличение значения функции ошибки. Значения этой функции запоминаются для четырех точек (исходная точка, два пробных шага и минимум параболы). Шаг делается в точку с минимальным значением функции ошибки.
В алгоритме с одномерной оптимизацией и автоматическим определением длины шага выполняются действия, аналогичные автономному градиентному алгоритму. Величина пробных шагов подбирается под адаптивный рельеф. Данный способ исключения шагов с увеличением функции ошибки позволяет уменьшить количество вычислений на каждом шаге алгоритма.
В алгоритме поиска в случайном направлении на каждой итерации делается шаг, направление которого задается случайным образом. Если данный шаг приводит к увеличению функции ошибки, то происходит возврат к исходным значениям синаптических весов и смещений и выполняется шаг в другом случайном направлении.
Компьютерные эксперименты по обучению нейронных сетей показали, что наибольшей скоростью сходимости среди всех описанных алгоритмов обладает автономный градиентный алгоритм.
На рисунках 1 - 8 представлены графики функции ошибки алгоритмов обучения нейронных сетей с различными значениями параметров.
Графики 1 и 2 показывают, что обобщенный градиентный алгоритм очень чувствителен к значению шага. Так при величине шага 0.2 алгоритм не сходится. После первых семидесяти шагов обучения, функция ошибки перестает уменьшаться, хотя сеть еще не приобрела способность правильно распознавать хотя бы один образ из обучающей выборки. График показывает, что на нескольких итерациях обучения функция ошибки резко возрастала. При шаге 0.1 процесс обучения стабильно сходится к локальному минимуму функции ошибки. Оказавшись в этом локальном минимуме, сеть приобретает способность распознавать все образы из обучающей выборки.
Графики 3 и 4 демонстрируют работу градиентного алгоритма с автоматическим определением длины шага (автономного градиентного алгоритма). На графиках видны характерные пилообразные участки с уменьшающейся высотой пиков. Эти участки соответствуют процессу подстройки длины шага алгоритма обучения под характеристики адаптивного рельефа.
Хотя автономный градиентный алгоритм дает возможность подбирать значение шага под адаптивный рельеф в локальной области, скорость сходимости зависит от параметров алгоритма. Так при обучении двухслойной сети распознаванию изображений букв наибольшая скорость сходимости достигается при начальном зачении шага 0.1, запоминание производися через 10 шагов, изменение шага 10%.
Следующая пара графиков (рис. 5 и 6) показывает функцию ошибки алгоритма поиска в случайном направлении. По сравнению с другими алгоритмами обучения, этот алгоритм обладает наименьшей скоростью сходимости. Для того, чтобы сделать шаг по адаптивному рельефу в соответствии с алгоритмом поиска в случайном направлении, уменьшающий функцию ошибки, необходимо совершить множество пробных шагов. Скорость сходимости зависит от величины шага. В экспериментах наибольшая скорость сходимости достигалась при шаге 0.1.
Из всех исследованных алгоритмов обучения градиентные алгоритмы с одномерной оптимизацией сходятся к локальному минимуму за наименьшее число шагов. Однако на каждом шаге выполняется большой объем вычислений. Графики функций ошибки представлены на рисунках 7 и 8. Использование методики автоматического определения длины шага, аналогичной автономному градиентному алгоритму, позволяет увеличить скорость сходимости.
Рис. 1. Функция ошибки обобщенного градиентного алгоритма (шаг 0.2, на графике представлено 120 итераций)
Рис. 2. Функция ошибки обобщенного градиентного алгоритма (шаг 0.1, на графике представлены итерации с 2 по 600)
Рис. 3. Функция ошибки автономного градиентного
алгоритма (начальное значение шага 0.1, запоминание через 10 итераций,
изменеие шага на 10%, на графике представлены итерации с 3 по 140)
Рис. 4. Функция ошибки автономного градиентного алгоритма (начальное значение шага 0.1, запоминание через 10 итераций, изменеие шага на 10%, на графике представлены итерации с 3 по 600)
Рис. 5. Функция ошибки алгоритма поиска в случайном направлении (шаг 0.1, на графике представлено 600 итераций)
Рис. 6. Функция ошибки алгоритма поиска
в случайном направлении (шаг 1.0, на графике представлено 600 итераций)
Рис. 7. Функция ошибки градиентного алгоритма с одномерной оптимизацией (шаг 0.01, на графике представлено 600 итераций)
Рис. 8. Функция ошибки градиентного алгоритма с одномерной оптимизацией и автоматическим определением длины шага (начальное значение шага 0.01, запоминание через 5 итераций, изменеие шага на 10%, на графике представлено 120 итераций)
В таблице представлены характеристики описанных алгоритмов:
Таблица показывает, что наиболее эффективным является автономный градиентный алгоритм.
Анализируя данные таблицы, можно сделать следующие выводы:
Таблица
|
N п/п |
Название алгоритма обучения |
Один шаг, сек |
Количество шагов решения контрольной задачи |
Объем вычислений |
|
1 |
Обобщенный градиентный алгоритм |
2.02 |
715 |
2.08 |
|
2 |
Градиентный алгоритм с автоматическим определением длины шага (автономный градиентный алгоритм) |
2.03 |
342 |
1.00 |
|
3 |
Алгоритм поиска в случайном направлении |
1.64 |
52700 |
124.48 |
|
4 |
Градиентный алгоритм с одномерной оптимизацией |
6.85 |
206 |
2.03 |
|
5 |
Градиентный алгоритм с одномерной оптимизацией и автоматическим определением длины шага |
5.34 |
290 |
2.23 |