Реализация функции сигмоида на Python
В этом учебнике вы научитесь реализовывать функцию активации сигмоид в Python. Поскольку сигмоидальная функция является функцией активации в нейронных сетях, важно понимать, как ее реализовать на Python. Вы также узнаете некоторые ключевые характеристики сигмоидной функции и почему она так полезна в глубоком обучении.
К концу этого обучающего руководства вы научитесь:
Что такое сигмовидная функция и почему она используется в глубоком обучении
Как реализовать сигмовидную функцию в Python с помощью numpy и scipy
Как построить сигмовидную функцию в Python с помощью Matplotlib и Seaborn
Как применить сигмовидную функцию к массивам numpy и спискам Python
Оглавление
Что такое сигмовидная функция?
Сигмоидная функция - это функция, имеющая "S"-образную кривую, также известную как сигмоидная кривая. Наиболее известным примером является логистическая функция, которая вычисляется по следующей формуле:
Когда функция изображена на графике, она выглядит следующим образом:
Вы можете задаваться вопросом о том, как эта функция связана с глубоким обучением. Функция сигмоида часто используется в качестве функции активации в глубоком обучении. Это связано с тем, что функция возвращает значение, которое находится между 0 и 1. Поскольку шаг обратного распространения ошибки зависит от дифференцируемости функции активации, сигмоидальная функция является отличным вариантом. Наконец, производная функции может быть выражена через саму функцию.
Как реализовать сигмовидную функцию в Python с помощью numpy
Хотя numpy не предоставляет встроенной функции для расчета сигмоидной функции, он упрощает разработку пользовательской функции для достижения этой цели. Давайте посмотрим, как мы можем это сделать:
В приведенной выше функции мы использовали функцию numpy.exp()
, которая возводит e
в степень отрицательного аргумента.
Давайте посмотрим, как мы можем использовать функцию, передав значение 0,5:
Аналогично, во многих моделях глубокого обучения вы встретите функцию, записанную в виде анонимной лямбда-функции. Давайте посмотрим, как можно преобразовать указанную выше функцию в лямбда
В некоторых учебных материалах вы увидите реализацию с использованием библиотеки math
. Однако я не рекомендую этот подход по следующим двум причинам:
Функция
math.exp()
приведет к значениям NaN при очень низких отрицательных значениях.Вы, вероятно, все равно будете импортировать NumPy, поэтому использование NumPy может привести к уменьшению числа импортов
В следующем разделе вы научитесь реализовывать функцию сигмоида на Python с помощью scipy
Как реализовать сигмовидную функцию в Python с помощью scipy
При использовании библиотеки scipy у вас есть два варианта реализации логистической функции сигмоиды:
scipy.stats.logistic()
scipy.special.expit()
Первый из них на самом деле является оболочкой для второго, что может привести к более медленной реализации.
Давайте посмотрим, как мы можем реализовать функцию с использованием scipy:
Как применить сигмовидную функцию к массивам numpy
Часто вам может потребоваться применить сигмоидальную функцию к нескольким значениям. В большинстве случаев эти значения будут сохранены в массивах numpy. К счастью, благодаря особенностям реализации массивов numpy, это делается довольно просто. Давайте посмотрим, как это делается:
Как применить сигмовидную функцию к спискам Python
В некоторых случаях вам также может потребовать применить функцию к списку. Из-за способа реализации функции ее необходимо применять к каждому значению. Самый простой способ сделать это - использовать понимание списка, которое позволяет нам перебирать каждый элемент и применять к нему функцию, как показано ниже:
Как построить сигмовидную функцию в Python с помощью Matplotlib
В этом разделе мы рассмотрим, как построить сигмоидную функцию в Python с помощью Matplotlib. Умение строить график функции - отличный способ понять, как функция работает и почему она так хорошо подходит для глубокого обучения.
Давайте сначала реализуем код, а затем рассмотрим, как мы достигли желаемого:
Это приводит к следующему изображению:
Заключение
В этом учебнике вы узнали, как реализовать сигмоидную функцию на Python. Сначала вы познакомились с самой функцией и узнали о ее связи с глубоким обучением. Затем вы научились реализовывать функцию с использованием как numpy, так и scipy. После этого вы узнали, как применять функцию к массивам numpy и спискам Python. Наконец, вы научились строить график функции с помощью Matplotlib.
Дополнительные ресурсы
Чтобы узнать больше о связанных темах, ознакомьтесь с нижеприведенными учебными пособиями:
Введение в машинное обучение в Python
Метод опорных векторов (SVM) в Python с помощью Sklearn
Линейная регрессия в Scikit-Learn (sklearn): Введение
Классификатор дерева решений с помощью Sklearn на Python
Last updated