Обучение сети

Представим себе, что нам требуется получить нейронную сеть, способную распознавать рукописные изображения цифр от 0 до 9. Информация будет вводиться в сеть посредством сканирования рукописного текста с разрешением 20x20 пикселей. Таким образом, мы имеем сеть с 400 входами (20x20) и 10 выходами (по количеству чисел от нуля до девяти). Наша цель заключается в том, чтобы при вводе в сеть изображения цифры 0 активизировался выход сети, соответствующий цифре 0, при вводе изображения цифры 1 — выход, соответствующий цифре 1, и т. д. Изначально нейронная сеть не обладает никакими навыками различения чисел; ее, как маленького ребенка, требуется обучить этому искусству «с нуля».

Самым распространенным приемом обучения сети является обучение «с учителем». В данном случае имеется правильный ответ на каждый входной пример. Всякий раз происходит подстройка весовых коэффициентов сети таким образом, чтобы ее ответы были максимально близки к известным правильным ответам. Такая процедура похожа на реальный процесс обучения — ребенку показывают цифру 1 и спрашивают: «Какая это цифра?» В случае неверного ответа ребенку сообщается тот ответ, который от него ожидается. В мозге и нервной системе происходит усиление соответствующих связей («настройка сети»), и шансы на получение правильного ответа в следующий раз увеличиваются.

Разумеется, для искусственной нейронной сети недостаточно просто указать правильность или неправильность ответа. В реальности имеет место более сложная процедура, первым этапом которой является вычисление ошибок сети. В нашем примере с распознаванием цифр ожидаемым (правильным) ответом сети является максимальный по интенсивности сигнал на одном из десяти выходов, соответствующих запрашиваемой цифре, и минимальный сигнал на всех остальных. Ошибкой является разница между ожидаемым и реальным ответом сети, т. е. разность между ожидаемой и реальной интенсивностью сигнала на всех выходах. На основе этих данных вычисляется специальная функция ошибок. Далее с помощью особого набора формул, получившего название алгоритма обратного распространения ошибки, программа вычисляет требуемые поправки для весов сети, исходя из функции ошибки. Интегральным показателем качества обучения сети является общая ошибка — сумма квадратов ошибок по всем выходам, которая уменьшается по мере увеличения продолжительности «тренировок».

Существует также алгоритм обучения «без учителя», который не требует наличия правильных ответов для каждого обучающего примера. В этом случае раскрывается внутренняя структура данных или корреляции между примерами в системе данных, что позволяет распределить примеры по категориям.

Наконец, в некоторых случаях используется смешанный алгоритм обучения — часть весов настраивается путем использования алгоритма («с учителем»), часть — посредством самообучения сети.

Однако во всех случаях имеет место обучение сети на фиксированном наборе примеров, получившем название обучающей выборки. Обьем и состав обучающей выборки имеет принципиальное значение. Нельзя забывать о том, что конечная задача сети — распознать не только рукописные цифры 0, 1, 2, 3... 9 (в нашем примере), имеющиеся в обучающей базе, а любые рукописные цифры. В этом, собственно, и заключается основное достоинство нейронных сетей. Таким образом, если мы тренируем сеть только на двух или трех изображениях одной цифры, вряд ли следует ожидать от нее адекватного распознавания чисел вне обучающей выборки. Чем больше примеров содержится в обучающей выборке, тем лучше будет качество конструируемой сети.

Кроме количества примеров в обучающей выборке, следует удалять внимание и их качеству. С одной стороны, примеры в совокупности должны полноценно отвечать задачам, для которых сеть строится. Если сеть создается, к примеру, для прогнозирования политических кризисов, а в обучающей базе данные по кризисам представлены в малом объеме или не представлены вообще, сеть окажется бесполезной. С другой стороны, сеть учится тому, чему легче всего научиться. Важно следить за тем, чтобы в обучающей выборке не было систематических ошибок — входных данных, не отражающих реальных свойств объектов. Например, если все цифры 8 в базе примеров будут написаны светлым фломастером, а все цифры 9 — черным, то сеть может посчитать интенсивность цвета цифры существенным признаком распознавания и не будет нормально выполнять свои задачи вне обучающей выборки.

Следует сделать акцент еще на одном важном моменте: сеть может продолжать учиться и после того, как собственно процедура обучения завершена. Иными словами, нейронные сети способны накапливать опыт в процессе работы над решением реальных задач, для которых они сконструированы.