
В данной статье будут рассмотрены различные способы обучения нейронных сетей (в частности, метод обратного распространения), а также основные определения и особенности, необходимые для обучения нейронных сетей.
Что такое нейрон смещения?
Прежде чем рассматривать основную тему статьи, необходимо разобрать такое понятие, как нейрон смещения, или bias. Нейрон смещения – это третий вид нейронов, используемый в большинстве нейросетей. Особенность этого типа нейронов заключается в том, что его вход и выход всегда равняются 1 и они никогда не имеют входных синапсов. Нейроны смещения могут либо присутствовать в нейронной сети по одному на слое, либо полностью отсутствовать, 50/50 быть не может (красным на схеме обозначены веса и нейроны, которые размещать нельзя). Соединения у нейронов смещения такие же, как у обычных нейронов – со всеми нейронами следующего уровня, за исключением того, что синапсов между двумя bias нейронами быть не может. Следовательно, их можно размещать на входном слое и всех скрытых слоях, но никак не на выходном слое, так как им попросту не с чем будет формировать связь.
Для чего нужен нейрон смещения?
Нейрон смещения нужен, чтобы иметь возможность получать выходной результат путем сдвига графика функции активации вправо или влево от нуля. Также нейроны смещения помогают в том случае, когда все входные нейроны получают на вход 0 и независимо от того какие у них веса, они все передадут на следующий слой 0, но не в случае присутствия нейрона смещения. Значение величины нейронов смещения – это гиперпараметр, то есть данная величина, а также наличие или отсутствие нейрона смещения, которое выбирается произвольно, прогнав нейронную сеть с нейронами смешения и без них и сравнив результаты.
Как сделать, чтобы нейронная сеть давала правильные ответы?
Для этого необходимо обучить нейросеть. Существует несколько методов обучения нейронных сетей. В данной статье будут приведены три наиболее интересных:
- метод обратного распространения ошибки (Backpropagation);
- метод упругого распространения ошибки (Resilient propagation или Rprop);
- генетический Алгоритм (Genetic Algorithm).
Метод обратного распространения и генетический алгоритм будут описаны в следующих статьях цикла, а сейчас будет подробно рассмотрен метод обратного распространения ошибки.
Что такое градиентный спуск?
Градиентный спуск – это способ нахождения локального минимума или максимума функции с помощью движения вдоль градиента. Для понимания сути градиентного спуска и его важности для метода обратного распространения, необходимо построить график, где по оси х будут значения веса нейрона (w) а по оси у – ошибка соответствующая этому весу (e).
На графике заметно, что график функции f(w) – зависимость ошибки от выбранного веса. Самым важным для нейронной сети на графике является точка (w2,e2) – глобальный минимум функции, в которой нейронная сеть будет давать наименьшую ошибку. Для нахождения глобального минимума функции используется метод градиентного спуска (желтым на графике обозначен градиент).
Градиент – это вектор, который определяет крутость склона, указывающий его направление относительно какой-либо из точек на поверхности или графике. Чтобы найти градиент, нужно взять производную от графика по данной точке (как это и показано на графике). Двигаясь по направлению этого градиента, ошибка будет стремится к нулю.
Однако при движении по направлению градиента можно наткнуться на локальный минимум. Попадание в локальный минимум чревато тем, что ошибка навсегда останется в данной точке, следовательно она никогда не достигнет глобального минимума. Для решения данной проблемы используется метод ускорения с помощью момента (momentum). Вот краткая иллюстрация момента:
Однако у такого метода существуют свои особенности. Слишком большой момент может привести к тому, что ошибка проскочит глобальный минимум. Поэтому, как момент, так и скорость обучения (learning rate) должны быть тщательно подобраны. Скорость обучения – это параметр, который используется вместе с моментом в методе обратного распространения ошибки. Скорость обучения, также как и момент, является гиперпараметром – величина, которая подбирается путем проб и ошибок. Высокая скорость обучения ускоряет процесс, но может сделать траекторию нестабильной, в то время как слишком низкая – замедлит обучение или вовсе его остановит. Далее представлена визуализация поведения градиента при слишком большой скорости обучения:
Что такое Метод Обратного Распространения?
Визуализация метода обратного распространения ошибки приведена ниже:
Первый этап метода обратного распространения ошибки – Forward pass, на котором последовательно передается информация от сходных нейронов к выходным и подсчитывается выход нейронной сети. После этого подсчитывается ошибка предсказания модели и, основываясь на ней, выполняется этап Back pass, который заключается в последовательном изменении весов нейронной сети, начиная с весов выходного нейрона. Значение весов будут меняться в ту сторону, которая даст наилучший результат.
Что еще нужно знать о процессе обучения?
Нейросеть можно обучать с учителем и без (supervised, unsupervised learning).
- Обучение с учителем – это тип тренировок, присущий таким проблемам, как регрессия и классификация, при который нейронная сеть обучается на основе имеющегося правильного результата, ожидаемого от нейронной сети.
- Обучение без учителя – этот тип обучения встречается не так часто. Здесь нет учителя, поэтому сеть не получает желаемый результат или же их количество очень мало. В основном такой вид тренировок присущ нейронным сетям, у которых задача состоит в группировке данных по определенным параметрам.
- Существует еще такой метод, как обучение с подкреплением (reinforcement learning). Такой способ применим тогда, когда можно, основываясь на результатах, полученных от нейронной сети, дать ей оценку. Нейронной сети предоставляется право найти любой способ достижения цели, до тех пор, пока он будет давать хороший результат. Таким способом сеть начнет понимать, чего от нее хотят добиться, и попытается найти наилучший способ достижения этой цели без постоянного предоставления данных “учителем”.
Что такое гиперпараметры?
Гиперпараметры – это значения, которые нужно подбирать вручную и зачастую методом проб и ошибок. Среди таких значений можно выделить:
- Момент и скорость обучения.
- Количество скрытых слоев.
- Количество нейронов в каждом слое.
- Наличие или отсутствие нейронов смещения.
Что такое сходимость?
Сходимость говорит о том, правильно ли построена архитектура нейронной сети и правильно ли были подобраны гиперпараметры в соответствии с поставленной задачей. Если с каждой итерацией ошибка предсказания нейронной сети будет уменьшаться, то сеть сходится. Если же ошибка будет прыгать или застынет на определенном уровне, то нейронная сеть не сходится.