Я задавал себе этот вопрос месяцами. Ответы на CrossValidated и Quora все перечисляют хорошие свойства функции логистической сигмоиды, но кажется, что мы хитро угадали эту функцию. То, что я пропустил, было оправданием выбора. Я наконец нашел один в разделе 6.2.2.2 книги Bengio «Глубокое обучение» (2016) . Моими словами:
Короче говоря, мы хотим, чтобы логарифм выходных данных модели был пригоден для градиентной оптимизации логарифмической вероятности обучающих данных.
мотивация
- Нам нужна линейная модель, но мы не можем использовать непосредственно как .Z= шTх + бZ∈ ( - ∞ , + ∞ )
- Для классификации имеет смысл принять распределение Бернулли и смоделировать его параметр в .θп( Y= 1 ) = θ
- Итак, нам нужно отобразить из в чтобы выполнить классификацию.Z( - ∞ , + ∞ )[ 0 , 1 ]
Почему логистическая сигмовидная функция?
Обрезка с дает нулевой градиент для вне . Нам нужен сильный градиент всякий раз, когда прогноз модели неверен, потому что мы решаем логистическую регрессию с градиентным спуском. Для логистической регрессии не существует решения в закрытой форме.Zп( Y= 1 | Z) = m a x { 0 , m i n { 1 , z} }Z[ 0 , 1 ]
Логистическая функция обладает хорошим свойством асимптотики постоянного градиента, когда прогноз модели неверен, учитывая, что мы используем оценку максимального правдоподобия, чтобы соответствовать модели. Это показано ниже:
Для получения числовых преимуществ оценку максимального правдоподобия можно выполнить путем минимизации отрицательного логарифмического правдоподобия обучающих данных. Итак, наша функция стоимости:
J( ш , б )= 1мΣя = 1м- журналп( Y= уя| Икся; ш , б )= 1мΣя = 1м- ( уяжурналп( Y= 1 | Z) + ( уя- 1 ) журналп( Y=0|z) )
Поскольку , мы можем сосредоточиться на случае . Итак, вопрос в том, как смоделировать учитывая, что мы имеем .п( Y= 0 |Z) = 1 - P(Y= 1 |Z)Y= 1п(Y= 1 |Z)Z= шTх + б
Очевидные требования для функции отображающей на :еZп(Y= 1 |Z)
- ∀ з∈ R : f( з) ∈ [ 0 , 1 ]
- е( 0 ) = 0,5
- е должен быть вращательно-симметричным относительно , то есть , так что переключение знаков классов не влияет на функцию стоимости.( 0 , 0,5 )е( - x ) = 1 - f( х )
- е должно быть неубывающим, непрерывным и дифференцируемым.
Все эти требования выполняются путем изменения масштаба сигмоидальных функций . Оба и выполняют их. Однако сигмоидальные функции различаются по своему поведению во время градиентной оптимизации логарифмической вероятности. Мы можем увидеть разницу, подключив логистическую функцию к нашей функции стоимости.е( з) = 11 + е- зе( з) = 0,5 + 0,5 z1 + | Z|е( з) = 11 + е- з
Насыщенность дляY= 1
Для и стоимость одной ошибочно классифицированной выборки (т. Е. ) составляет:п( Y= 1 | Z) = 11 + е- зY=1m=1
J(z)=−log(P(Y=1|z))=−log(11+e−z)=−log(ez1+ez)=−z+log(1+ez)
Мы можем видеть, что существует линейная составляющая . Теперь мы можем рассмотреть два случая:−z
- Когда велико, прогноз модели был верным, поскольку . В функции стоимости член асимптотически равен для больших . Таким образом, он примерно отменяет выход , что приводит к примерно нулевой стоимости для этого образца и слабому градиенту. Это имеет смысл, так как модель уже предсказывает правильный класс.zY=1log(1+ez)zz−z
- Когда мало (а велика), предсказание модели было не правильно, так . В функции стоимости член асимптотически равен для малых . Таким образом, общая стоимость для этого образца составляет примерно , что означает, что градиент по отношению к составляет примерно . Это позволяет модели корректировать свое неправильное предсказание на основе постоянного градиента, который она получает. Даже при очень малых значениях насыщение не происходит, что может привести к исчезновению градиентов.z|z|Y=1log(1+ez)0z−zz−1z
Насыщенность дляY=0
Выше мы сосредоточились на случае . Для функция стоимости ведет себя аналогично, обеспечивая сильные градиенты только тогда, когда прогноз модели неверен.Y=1Y=0
Это функция стоимости для :J(z)Y=1
Это горизонтальная функция softplus. Для это функция softplus.Y=0
альтернативы
Вы упомянули об альтернативах функции логистической сигмоиды, например . Нормализовано до , это будет означать, что мы моделируем .z1+|z|[0,1]P(Y=1|z)=0.5+0.5z1+|z|
Во время MLE функция стоимости для будет тогдаY=1
J(z)=−log(0.5+0.5z1+|z|) ,
который выглядит так:
Вы можете видеть, что градиент функции стоимости становится все слабее для .z→−∞