Недостатки алгоритма обратного распространения ошибки
Имея дело с нейронной сетью, приходится тратить большие усилия на её обучение. Только в этом случае можно рассчитывать, что её работа станет достаточно эффективной. Один из основных методов обучения – метод обратного распространения ошибки.
В этом случае, когда полученное значение не соответствует требуемому, сигнал отправляется по сети обратно, а веса межнейронных связей изменяются до тех пор, пока результат не станет удовлетворительным.
Однако всё так просто лишь в теории. На практике приходится сталкиваться с рядом недостатков такого метода, которые делают обучение сети очень сложным, а порой и невозможным.
1. Длительность
Если сеть большая, а корректировки значительные, то может потребоваться множество циклов прохождения сигнала в прямом и обратном направлении, в каких-то ситуациях – сотни тысяч. В этом случае время корректировки может составить несколько недель, месяцев, лет, а то и вовсе выйти за границы разумных временных отрезков.
Естественно, что если такое происходит, никто обычно не затрачивает годы на корректировку значений нейросети, потому что такие сроки уже говорят о том, что она крайне несовершенна.
2. Паралич сети
Когда сигнал передаётся в обратном направлении, то ему должен быть присвоен какой-то шаг. Если шаг большой, то мы сталкиваемся с тем, что сигнал при каждом прохождении ослабевает. А поскольку сигнал обладает электрической природой, то речь идёт о фактическом затухании электрического импульса. Если импульс становится меньше порога восприятия следующим нейроном, то сигнал, который должен был дойти до конца сети (в данном случае до начала), до него не доходит, и обучение становится невозможным.
3. Локальные минимумы
Если поставить малый шаг, то может возникнуть ситуация, когда система выберет нейрон с минимальным значением, так называемый локальный минимум. Такой нейрон не имеет выходов, и получается, что сеть попала в ловушку, в связи с чем обучение тоже будет прекращено.
Стоит заметить, что таких локальных минимумов в любой нейросети достаточно, им может стать любой нейрон, поэтому всегда есть риск обрыва процесса обучения в любой момент.
4. Время схождения сети.
Другими словами – время, которое нужно, чтобы сигнал снова дошёл до «старта». Если выбрать шаг малым, то этот процесс, опять же, может затянуться на чрезмерно длительное время, особенно если параллельно возникают проблемы, описанные в пункте 1.
5. Отсутствие запоминания.
Одна из самых больших проблем любой нейросети: обучив её избегать ошибок при обработке сигнала А, вы затем корректируете её работу по сигналу Б, и всё вроде бы удаётся. Но затем вы снова пускаете сигнал А и обнаруживаете, что сеть опять ошибается. Причина в том, что сигнал Б её перенастроил на себя, а свой предыдущий «опыт» сеть успешно забыла.
Если предыдущие 4 проблемы более-менее решаемы, то вот эту можно назвать критической. Ни одна искусственная нейросеть не способна учитывать в полной мере весь предыдущий опыт, вся разница только в том, насколько корректировка под новые сигналы сбивают точность для предыдущих. Пока разработчикам не удастся создать что-то, приближенное к человеческому мозгу, такая проблема, скорее всего, останется актуальной.