Алгоритм обратного распространения ошибки
Одно из главных свойств нейросетей – их обучаемость. При этом обучаемость означает, что нейросеть способна самостоятельно отследить ошибку и её исправить. В случае с простыми типами нейросетей – например, многослойный персептрон – о полностью самостоятельном обучении нейросети говорить, правда, не приходится.
Задача разработчиков и пользователей таких систем – устранить возможные ошибки методом грамотной настройки. Метод обратного распространения ошибки – один из вариантов, который может успешно использоваться для обучения нейросети.
Основные принципы метода обратного распространения ошибки
Если применяется такой способ, то через сеть последовательно проходят два сигнала: прямой и обратный.
При прохождении прямого сигнала (от входных нейронов к выходным) все веса межнейронных связей фиксированы. Если на каком-то этапе перехода система регистрирует сигнал большей или меньшей силы, чем требуется, то создаётся сообщение об ошибке на этом участке. Разница между нужным и полученным значением является размером ошибки.
Примечание: чтобы использовать данный метод, требуется проводить обучение нейросети «с учителем», то есть с заранее известным результатом.
Как только выдаётся сообщение об ошибке, сигнал отправляется в обратную сторону, точно по тем нейронам, по которым он проделал путь туда. При этом уже происходит настройка весов. Один из способов – случайное изменение значений весов для каждой межнейронной связи на небольшую величину. После того как такое изменение выполнено, сигнал снова направляется в сторону его прямого распространения, а результат оценивается.
Подобные действия могут повторяться много раз, пока достигнутый результат не будет признан приемлемым со стороны человека, контролирующего работу сети, либо автоматической контролирующей системы. Изменение размера ошибки в меньшую сторону считается положительным результатом, который приводит к тому, что дальнейшая настройка весов идёт в ту же сторону. Увеличение размера ошибки – негативный результат, в этом случае веса настраиваются в другую сторону (если до этого уменьшались, то увеличиваются, и наоборот).
В случае с многослойными персептронами крайне важно контролировать силу сигнала на каждом этапе передачи от нейрона к нейрону, потому что если фиксировать лишь значение входа и выхода, то во многих случаях почти нереально определить, где именно происходит ошибка.