Обучение нейронных сетей

Обучение-это представление сети некоторых выборочных данных и изменение весов w для лучшей аппроксимации (приближения) желаемой функции.

Существует два основных вида обучения:

    обучение с учителем обучение без учителя.

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

Мы обеспечиваем нейронную сеть обучающими примерами, содержащими как входные, так и желаемые выходные данные. Каждый из образцов подается на входы сети, затем проходит обработку внутри структуры сети, после чего вычисляется выходной сигнал, который сравнивается соответствующим значением вектора, представляющего желаемый выход. Затем по полученным результатам вычисляется ошибка и происходит корректировка весов внутри сети. Весь этот процесс (последовательное предъявление обучающего множества, расчет ошибок, корректировка весов для каждого вектора) происходит до тех пор, пока ошибка не достигнет приемлемо низкого уровня.

Схематическое представление процесса обучения нейронных сетей


Обучение без учителя

Мы предоставляем сети только входные данные. Обучающий алгоритм регулирует веса, так что предъявление достаточно близких входов давало бы одинаковые выходы. Сеть выявляет закономерности и различия во вводимых ресурсах и группирует сходные векторы в классы. Предъявление на вход вектора из определенного класса даст определенный выходной вектор, но до обучения предсказать, какой выход будет производиться данным классом входных векторов, невозможно. Следовательно, выходы подобной сети должны трансформироваться в некоторую понятную форму, обусловленную процессом обучения

НЕ нашли? Не то? Что вы ищете?

Эпоха

Один шаг, проход через предъявление всех обучающих примеров сети и обновление весов называется эпохой. Как правило, для эффективного обучения нейронной сети требуется множество эпох, порядка десятков тысяч раз.

Функции активации

Большинство задач, которые пытаются решить нейронные сети, носят нелинейный и сложный характер. Функции активации придают нейронным сетям свойство нелинейности и делают их универсальными аппроксиматорами функций.

Функция активации – функция, вычисляющая выходной сигнал искусственного нейрона. В качестве аргумента принимает сигнал Y, получаемый на выходе входного сумматора .

Модель нейрона, на которой можно увидеть функцию активации


Существует множество функций активации для нейронных сетей. Мы рассмотрим следующие:

Линейная функция; Пороговая функция; Сигмоид (Сигмоидальная функция) Гиперболический тангенс Усеченное линейное преобразование (Rectified linear unit, ReLU)

Линейная функция

Линейная функция активации является простейшей функцией активации. Она представляется следующей формулой:

Выход такой же как вход, и функция определена в интервале .

Функция линейной активации


Пороговая функция

Пороговая функция активации является часто используемой функцией в нейронных сетях. Результат принимает значение 0 для отрицательного аргумента и 1 для положительного аргумента. Функция выглядит следующим образом:

Этот тип функций активации полезен для бинарных задач. Например, в задаче бинарной классификации мы можем использовать бинарный компилятор с пороговой функцией активации.

Пороговая функция активации


Сигмоид (Сигмоидальная функция)

Сигмоидальная функция – это гладкая монотонно возрастающая нелинейная функция, которая создает сигмоидальную кривую, имеющую форму буквы "S". Эта функция принимает на входе произвольное вещественное число, а на выходе дает вещественное число в интервале от 0 до 1.

Примером сигмоидальной функции активации может служить логистическая функция, задаваемая следующей формулой:

Сигмоидальная функция активации


Гиперболический тангенс

Другой очень популярной и широко используемой функцией активации является функция гиперболического тангенса tanh. Это нелинейная функция, определенная в диапазоне значений (-1, 1); tanh – это масштабированная сигмоидальная функция.

Функция определяется по следующей формуле:

Функция активации гиперболического тангенса


Усеченное линейное преобразование (Rectified linear unit, ReLU)

Усеченное линейное преобразование (ReLU) является наиболее часто используемой функцией активации с 2015 года. Это простое условие и имеет преимущества перед другими функциями. Функция определяется следующей формулой:

Функция активации ReLU


Диапазон вывода от 0 до . ReLU применяется для задач компьютерного зрения и распознавании речи с использованием глубоких нейронных сетей.

Какие функции активации использовать

Учитывая, что нейронные сети должны поддерживать нелинейность и большую сложность, используемая функция активации должна быть достаточно надежной и обладать следующими свойствами:

    Она должна быть дифференцируемой. Это необходимо для алгоритма обратного распространения ошибки; Она должна быть простой и быстрой в обработке; Выход должен быть центрирован относительно нуля.

Сигмоид являлся наиболее часто используемой функцией активации, но он со временем утратил свою популярность из-за следующих недостатков:

    Поскольку он использует логистическую модель, вычисления занимают много времени и сложны; Насыщение сигмоида приводит к затуханию градиентов. При насыщении функции с той или иной стороны (0 или 1), градиент на этих участках становится близок к нулю. Сигнал почти не будет проходить через нейрон к его весам и рекурсивно к его данным. Медленно сходится; Выход сигмоида не центрирован относительно нуля. Нейроны в последующих слоях будут получать значения, которые не центрированы относительно нуля, что оказывает влияние на динамику градиентного спуска.

Эти недостатки решаются ReLU. ReLU проще и быстрее в обработке. Он не имеет проблем с затуханием градиента и показывает лучшие результаты по сравнению с функциями сигмоида и гиперболического тангенса. ReLU является наиболее предпочтительной функцией активации для нейронных сетей.

ReLU используется для скрытых слоев, в то время как выходной слой может использовать функцию softmax для задач классификации и линейную функцию регрессионных задач.

Более подробно о функции softmax можно узнать из следующих источников:

    http://cs231n. github. io/linear-classify/#softmax http:///2017/03/07/difference-between-softmax-function-and-sigmoid-function/

Источники:

G. Ciaburro, B. Venkateswaran. Neural Networks with R https://edu. kpfu. ru/mod/wiki/view. php? pageid=679 http:///theory/240-algoritmy-obucheniya-iskusstvennykh-nejronnykh-setej http://datareview. info/article/eto-nuzhno-znat-klyuchevyie-rekomendatsii-po-glubokomu-obucheniyu-chast-2/ http://www. aiportal. ru/articles/neural-networks/activation-function. html