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

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

Функция активации означает преобразование входа с помощью взвешенной суммы на выход. Она использует один или несколько узлов сети для генерации прогноза. Функцию активации можно также назвать передаточной функцией. Или можно назвать эту функцию сдавливанием, когда выходной диапазон имеет ограничения. Функции активации также могут быть нелинейными и называться нелинейностью конструкции сети. Независимо от того, какую функцию активации вы выберете, она окажет значительное влияние на производительность и возможности различных деталей в обучающей модели машины.
Лучше использовать функцию активации внутри и после использования внутренней обработки для каждого узла сети. Однако конструкция модели стимулирует использование идентичных функций активации на уровне. Вот три уровня, которые включает сеть:

– Входные слои

Входные слои собирают исходные данные и используют их в вычислительном процессе.

– Скрытые слои

Скрытые слои собирают входные данные другого слоя и генерируют выходные данные для другого слоя.

– Выходные слои

Выходные слои будут предсказывать результат.

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

Преимущества функции ректифицированной линейной активации

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

1. Простота в вычислениях

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

2. Репрезентативная Спарсити

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

3. Линейное поведение

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

Как кодировать функцию релюактивации

Мы будем использовать Python для реализации выпрямленных линейных с простым и понятным методом. Самым простым применением этой функции будет функция max(). Приведем пример правильного использования функции:
# выправленная линейная функция
дефектный исправленный(x):
максимальный возврат(0.0,x)
Согласно ожиданию, положительное значение вернется без изменений. Однако, отрицательное значение или входное значение 0.0 вернется к 0.0. Здесь приведены некоторые примеры входов и выходов функции релейной активации:
# продемонстрировать выпрямленную линейную функцию

# выпрямленная линейная функция
дефектный исправленный(x):
returnmax(0.0,x)

# продемонстрируйте с положительным результатом
x=1.0
print(‘rectified(%.1f) is %.1f’%(x,rectified(x))))
x=1000.0
print(‘rectified(%.1f) is %.1f’%(x,rectified(x))))
# продемонстрируйте с нулевым входом
x=0.0
print(‘rectified(%.1f) is %.1f’%(x,rectified(x))))
# продемонстрируйте с отрицательным входом
x=-1.0
print(‘rectified(%.1f) is %.1f’%(x,rectified(x))))
x=-1000.0
print(‘rectified(%.1f) is %.1f’%(x,rectified(x))))
Выполняя приведенные выше примеры, мы можем определить возврат положительных значений независимо от их размера. При этом отрицательные значения будут привязаны к значению 0.0.
1 исправленное(1.0) равно 1.0.
2 выпрямленное(1000.0) равно 1000.0.
3 выпрямлено(0.0) равно 0.0.
4 выпрямленный(-1.0) – 0.0
5 выпрямленный(-1000.0) – 0.0
После построения графиков серии входов и вычисленных выходов мы разберемся во взаимосвязи между входами и выходами. Приведем несколько примеров генерации ряда целых чисел от -10 до 10. Это поможет при расчете релятивизации для отдельного входа. Далее модель построит график результатов.
# Построить входы и выходы
импортная упаковка матплотлиба
# выпрямленная линейная функция
дефектный исправленный(x):
returnmax(0.0,x)

# определите серию входов
series_in=[xforxinrange(-10,11)]
# вычислите выходы для наших входов
series_out=[rectified(x)forxinseries_in]
# линейный график ввода сырья на выпрямленные выходы
pyplot.plot(series_in,series_out)
pyplot.show()

Заключение

Функция релюактивации помогает нейронным сетям формировать модели глубокого обучения. Из-за проблем с исчезновением градиента в различных слоях, нельзя использовать гиперболический тангенс и сигмоидальную активацию. Проблемы с градиентом можно преодолеть с помощью функции релюактивации. Это позволяет модели работать лучше и быстрее учиться. При разработке конволюционного и многослойного перцептрона функция линейной активации для нейронных сетей будет использоваться по умолчанию.