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