[ЗАСТАВКА] В этом уроке обсудим способы регуляризации и прореживания нейронной сети. Для того чтобы избежать переобучения, модифицируем задачу оптимизации и добавим к функции ошибки штраф за большие значения параметров. Чем меньше коэффициент регуляризации τ, коэффициент перед суммой значений параметров, тем точнее функция описывает выборку. Коэффициент регуляризации контролирует жесткость ограничений параметров. На рисунке слева коэффициент регуляризации имеет самое большое значение: у нас область поиска решения в пространстве параметров мала, но смещенность параметра от минимального значения функции ошибки велика. Справа мы видим, что область поиска оптимальных параметров велика, смещенности нет, но, возможно, наша сеть переобучена. В центре мы видим компромиссный вариант между смещенностью и областью поиска оптимальных значений параметров. То же самое можно показать с помощью следующего графика, здесь по оси абсцисс отложен коэффициент регуляризации, а по оси ординат — значения параметров. Видно, что регуляризация не снижает число параметров и не упрощает структуру сети. Более того, при увеличении коэффициента τ параметры перестают изменяться. Для снижения числа параметров предлагается исключить некоторые нейроны или связи. Таким образом, наш двудольный граф перестанет быть полносвязным. Принцип исключения следующий: если функция ошибки не изменяется, то сеть можно упрощать и дальше. Здесь на графике по оси абсцисс показано число удаленных связей или параметров, а по оси ординат показано значение функции ошибки. Видно, что мы удалили практически все параметры, и только в конце значение функции ошибки начало изменяться. Какие есть стратегии прореживания параметров в сети? Параметр можно удалить, если его вклад в нейрон равен нулю, то есть он сам имеет значение, близкое к нулю, дальше, если его значение сильно меняется при изменении выборки (у него большая дисперсия, то есть он реагирует на шум в данных) и если его удаление меньше всего влияет на изменение значения функции ошибки. Рассмотрим последний вариант подробней. Метод удаления параметров называется «метод оптимального прореживания» или «метод оптимального разрушения мозга». Разложим функцию ошибки в ряд Тейлора. При этом первое слагаемое при фиксированных параметрах будет константой, второе слагаемое будет нулем, потому что мы считаем, что мы находимся в оптимуме функции ошибки, третье слагаемое будем минимизировать, а четвертое слагаемое проигнорируем. Найдем такой параметр нейронной сети, для которого его изменение равно его значению, или по-другому: несмотря на его изменение, он имеет нулевой вклад в нейрон. Этот параметр имеет минимальное значение функции выпуклости, которая вычисляется как квадрат его величины, отнесенный к соответствующему диагональному элементу обратной матрицы Гессе — матрицы вторых производных, которые соответствуют третьему слагаемому нашего разложения. Каким образом строится нейронная сеть? Нейронная сеть, она используется в двух режимах: во-первых, режим обучения — при этом мы задаем структуру нейронной сети и оптимизируем ее параметры, и в режиме эксплуатации — при этом мы вычисляем значение, которое аппроксимирует нашу выборку при фиксированных параметрах. Для того чтобы задать нейронную сеть, требуется задать число слоев, число нейронов в каждом слое, тип функции активации в каждом слое, тип функции ошибки. И желательно, чтобы подготовленная выборка не содержала пропусков, а признаки были отнормированы. При обучении желательно следить за стабилизацией параметров сети и за скоростью обучения сети. По скорости обучения можно судить о соответствии выборки и нейронной сети. Если нейронная сеть будет слишком сложна, то она быстро переобучится, как, например, показывает желтая линия. Если выборка будет сложна или сильно зашумлена для нейронной сети, то нейронная сеть будет обучаться медленно, как показывает синяя линия. Если выборка по сложности соответствует нейронной сети, то, скорее всего, мы увидим красную линию — хорошую скорость обучения. Важно также следить за разницей между значениями функции ошибки на обучении и на контроле. Эта разница не должна быть существенной. Если она велика, то это значит, что нейронная сеть переобучилась и следует изменить ее сложность. Итак, регуляризация используется для снижения переобученности сети путем загрубления ее параметров. Оптимальное прореживание упрощает структуру сети, удаляя лишние параметры. Структура нейронной сети существенно зависит от решаемой прикладной задачи. Ее построение и оптимизация выполняются, как правило, экспериментальным путем.