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