Каковы преимущества использования сигмовидной функции? - PullRequest
2 голосов
/ 27 мая 2019

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

Ответы [ 3 ]

1 голос
/ 28 мая 2019

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

Но когда мы используем функцию Sigmoid, мы видим, что данные, далекие от других, не слишком сильно влияют на разделитель.

Также эта функция может показывать вам вероятность. например, если у вас есть новые данные для прогнозирования, вы можете использовать строку и посмотреть, насколько возможно, что данные принадлежат какой-либо метке. (Посмотрите на картинку, чтобы лучше понять)

картинка Ссылка: https://pasteboard.co/IgLjcYN.jpg

image y and feature -> x">

0 голосов
/ 28 мая 2019

Сигмоид - это нелинейная функция активации, широко используемая в логистической регрессии и искусственных нейронных сетях. Если мы посмотрим на его реализацию Python,

import math

def sigmoid( x ):
    return 1 / ( 1 + math.exp( -x )) 

Если входы отрицательные, то выходы будут меньше 0,5. Если входы положительные, то выходы больше 0,5.

Sigmoid Curve

Используется в машинном обучении:

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

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

Кроме того, поскольку выходное значение находится в диапазоне от 0 до 1, его выходное значение можно интерпретировать как вероятность для определенного класса .

Некоторые особые проблемы с сигмоидом (и его заменой на ReLU):

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

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

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

0 голосов
/ 27 мая 2019

Сигмоид является одной из возможных функций активации.Цель функции активации - сжать все возможные значения любой величины в один и тот же диапазон.

Вот хорошая статья - https://towardsdatascience.com/activation-functions-neural-networks-1cbd9f8d91d6

...