LR采用的Sigmoid函数与最大熵(ME) 的关系

从ME到LR

先直接给出最大熵模型的一般形式,后面再给出具体的推导过程。
\[\begin{align*}
P_w(y|x) &= \dfrac{1}{Z_w(x)}\exp\left(\sum_{i=1}^{n}w_if_i(x,y)\right)\\
\mbox{where } Z_w(x) &= \sum_y\exp\left(\sum_{i=1}^nw_if_i(x,y)\right)
\end{align*}\]
下面我们只考虑二分类问题,则有原式
\[\begin{align*}
P_w(y|X) &= \dfrac{\exp(W_0X)}{\exp(W_0X) + \exp(W_1X)}\\
&= \dfrac{1}{1 + \exp((W1-W0)X)}\\
&= \dfrac{1}{1 + \exp(WX)}
\end{align*}\]
这特么不就是用于二分类的Sigmoid函数么,也就是说LR采用Sigmoid函数除了因为Sigmoid函数具有一些漂亮的数学性质,比如\(f=sigmoid(x)\),那么\(f‘(x) =(1-f(x))*f(x)\),更重要的是这样找出来的模型是熵最大的。那么为什么要熵最大?最大熵原理是概率模型学习的一个准则,最大熵原理认为,学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型

最大熵模型推导

最大熵模型是一个带约束的最优化问题
\[\begin{align*}
E_{\tilde{P}}(f) &= E_{P}(f)\\
\mbox{where } E_{\tilde{P}}(f) &= \sum_{x,y}\tilde{P}(x,y)f(x,y)\\
\mbox{and } E_{P}(f) &= \sum_{x,y}\tilde{P}(x)P(y|x)f(x,y)
\end{align*}\]
目标函数为
\[
H(P) = -\sum_{x,y}\tilde{P}(x)P(y|x)\log P(y|x)
\]
写成更加正式的形式如下
\[\begin{align*}
\min_{P\in \mathcal{C}}& -H(P) = \sum_{x, y}\tilde{P}(x)P(y|x)\log P(y|x)\\
\mbox{s.t. }& E_{P}(f) - E_{\tilde{P}}(f) = 0 \\
&\sum_yP(y|x) = 1
\end{align*}\]

引入拉格朗日乘子有
\[\begin{align*}
L(P,w) &=-H(P) + w_0\left(1 - \sum_yP(y|x)\right) + \sum_{i=1}^nw_i(E_{\tilde{p}}(f_i)-E_P(f_i))\\
&= \sum_{x,y}\tilde{P}(x)P(y|x)\log P(y|x) + w_0\left(1 - \sum_y P(y|x)\right)\\
&+ \sum_{i=1}^nw_i\left(\sum_{x,y}\tilde{P}(x,y)f_i(x,y) - \sum_{x,y}\tilde{P}(x)P(y|x)f_i(x,y)\right)
\end{align*}\]

由原始问题的极小极大问题转为极大极小的对偶问题有
\[\begin{align*}
\dfrac{\partial L(P,w)}{\partial P(y|x)} &= \sum_{x,y}\tilde{P}(x)(\log P(y|x) + 1) - \sum_yw_0 -\sum_{x,y}\left(\tilde{P}(x)\sum_{i=1}^nw_if_i(x,y)\right)\\
&= \sum_{x,y}\tilde{P}(x)\left(\log P(y|x)+1-w_0-\sum_{i=1}^nw_if_i(x,y)\right)
\end{align*}\]

令其为0,解得
\[ P(y|x) = \exp\left(\sum_{i=1}^nw_if_i(x,y) +w_0 - 1\right) = \dfrac{\exp(\sum_{i=1}^nw_if_i(x,y))}{\exp(1-w_0)}\]

由于\[\sum_yP(y|x)=1\]有
\[ \exp(1-w_0) = \sum_y\exp\left(\sum_{i=1}^nw_if_i(x,y)\right)\]

即\[\begin{align*}
P_w(y|x) &= \dfrac{1}{Z_w(x)}\exp\left(\sum_{i=1}^nw_if_i(x,y)\right)\\
\mbox{where } Z_w(x) &= \sum_y\exp\left(\sum_{i=1}^nw_if_i(x,y)\right)
\end{align*}\]

看到这个形式的模型是不是突然就有一种似曾相识的感觉?对的,除了LR、ME以外,CRF也是这种形式的。这种模型有一个统一的的名称,对数线性模型。

LR采用的Sigmoid函数与最大熵(ME) 的关系的更多相关文章

  1. Logstic回归采用sigmoid函数的原因

    ##Logstic回归采用sigmoid函数的原因(sigmoid函数能表示二项分布概率的原因) sigmoid函数: ![](http://images2017.cnblogs.com/blog/1 ...

  2. Sigmoid函数与Softmax函数的理解

    1. Sigmod 函数 1.1 函数性质以及优点 其实logistic函数也就是经常说的sigmoid函数,它的几何形状也就是一条sigmoid曲线(S型曲线).               其中z ...

  3. sigmoid 函数与 softmax 函数

    sigmoid 函数与 softmax 函数     1. sigmoid 函数       sigmoid 函数又称:logistic函数,逻辑斯谛函数.其几何形状即为一条sigmoid曲线. lo ...

  4. 深度学习:Sigmoid函数与损失函数求导

    1.sigmoid函数 ​ sigmoid函数,也就是s型曲线函数,如下: 函数: 导数: ​ 上面是我们常见的形式,虽然知道这样的形式,也知道计算流程,不够感觉并不太直观,下面来分析一下. 1.1 ...

  5. 交叉熵代价函数——当我们用sigmoid函数作为神经元的激活函数时,最好使用交叉熵代价函数来替代方差代价函数,以避免训练过程太慢

    交叉熵代价函数 machine learning算法中用得很多的交叉熵代价函数. 1.从方差代价函数说起 代价函数经常用方差代价函数(即采用均方误差MSE),比如对于一个神经元(单输入单输出,sigm ...

  6. 机器学习之sigmoid函数

      先说一下,ML小白. 这是第一次写个人博客类似东西, 主要来说说看 sigmoid 函数,sigmoid函数是机器学习中的一个比较常用的函数,与之类似的还有softplus和softmax等函数, ...

  7. Softmax与Sigmoid函数的联系

    译自:http://willwolf.io/2017/04/19/deriving-the-softmax-from-first-principles/ 本文的原始目标是探索softmax函数与sig ...

  8. Logistic 回归(sigmoid函数,手机的评价,梯度上升,批处理梯度,随机梯度,从疝气病症预测病马的死亡率

    (手机的颜色,大小,用户体验来加权统计总体的值)极大似然估计MLE 1.Logistic回归 Logistic regression (逻辑回归),是一种分类方法,用于二分类问题(即输出只有两种).如 ...

  9. Sigmoid函数

    Sigmoid函数是一个S型函数. Sigmoid函数的数学公式为: 它是常微分方程 的一个解. Sigmoid函数具有如下基本性质: 定义域为 值域为, 为有界函数 函数在定义域内为连续和光滑函数 ...

随机推荐

  1. python 之正则表达式

    一.正则表达式 首先,我们需要感性的了解下什么是正则表达式,简单的是说“正则表达式”就是一个“表达式”,更准确定义是:“用一个简洁的方法来实现对“一组字符串”的表达式. 最终目的就是实现“一行胜千言” ...

  2. android测试开发环境搭建

    本文档针对未接触过android的0基础人员,在开始熟悉android之前,首先需要一个学习环境来支撑,在此简单介绍一下android环境搭建.(当然大家也可以百度.谷歌,类似的文档很多) 环境搭建: ...

  3. FMDB浅析(思想)

    http://www.cnblogs.com/OTgiraffe/p/5931800.html 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQLite的API进行了封装,加上了面向 ...

  4. [大坑]Could not create cudnn handle: CUDNN_STATUS_INTERNAL_ERROR

    报错tensorflow/stream_executor/cuda/cuda_dnn.cc:338] Could not create cudnn handle: CUDNN_STATUS_INTER ...

  5. 原型模式 -- JavaScript语言的灵魂

    原型模式就是将原型对象指向创建对象的类,使这些类共享原型对象的方法与属性.JS是基于原型链实现对象之间的继承,是对属性或者方法的共享,而不是对属性和方法的复制. // 图片轮播类 var LoopIm ...

  6. s///|s()()i|/i|/g|\U|\u|\L|\l|\U\l|split|join|匹配到hash|匹配到变量|`date`|$^I

    #!/usr/bin/perl -w use strict; use warnings; $_='She is a good girl and likes helping others '; s/sh ...

  7. 最大长度回文子串(Manacher's algorithm)

    输出最大长度的回文子串. string longestPalindrome(string s) { int id, mx, i, j, len, maxlen; vector<char> ...

  8. C# 替换去除HTML标记方法(正则表达式)

    [from] http://blog.csdn.net/sgear/article/details/6263848/// <summary> /// 将所有HTML标签替换成"& ...

  9. Maven各种常用架包配置文件,保存一份

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  10. windows系统下的两个批处理命令

    启动应用:***.exe 关闭应用:taskkill /f /im ***.exe 保存为.bat文件