开始一个新的系列,换一换口味
分析机器学习算法的一般思路:
1、确定预测函数或者判别函数,一般表示为H函数;
2、确定Cost函数,表示的是预测输出值与训练数据之间的偏差;
3、确定优化算法。
一、前言
logistic回归是常用的二分类模型,属于判别模型。softmax模型是logistic回归的多分类拓展。最大熵模型是由最大熵理论推导出来的,推导可以证明最大熵模型的极大似然估计与最大熵模型的学习问题等价。
二、logistic回归基本原理
logistic回归与线性回归的原理相似,不同的是前者是在后者的基础上,将线性回归的结果通过sigmod函数映射到(0,1)区间,从而表征了输入数据属于某一类别的概率的大小。
1、预测函数
输入为 (x,y) ,其中 x=(x1,x2,...,xn) , y∈{0,1} 。
权值 w=(w1,w2,...,wn) 。
为了表示的方便,可以作如下扩充:
x=(x1,x2,...,xn,1) ;
w=(w1,w2,...,wn,b) ;
那么根据前述可得其预测函数为:
P(Y=1|x)=z=11+e−w⋅x
P(Y=0|x)=11+ew⋅x
上述二式分别表示在输入为x的情况下,输出为1或者0的概率。
对数几率:
一件事的几率为该件事情发生的概率与不发生的概率的比值。几率的log函数就是对数几率函数。
因为 P(Y=1|x)=z=11+e−w⋅x
log(P(Y=1|x)1−P(Y=1|x))=w⋅x
注: 下面将用 θ 表示 w
2、损失函数
综合其预测函数可得:
P(Y|X;w)=zy⋅(1−z)1−y ;
假设输入都条件独立,那么其联合概率分布就是边缘概率分布的乘积,那么就可以得到其对数似然函数:
L(θ)=∑N1[yilog(zi)+(1−yi)log(1−zi)]
从另一方面讲,这里的损失函数就是负log函数。
3、优化方法
这样实际上将问题转变为了对数似然函数为目标函数的最优化问题,采用梯度下降法。
令 J(w)=−1mL(w)
如果不做此更改就使用梯度上升法,只是符号不同而已。
梯度下降法就是求 J(θ) 的偏导为0时的w取值,求偏导还不简单:
wj:=wj−α∂∂wjJ(w)
∂∂wJ(w)=1m∑m1(zi−yi)xij
虽然求偏导确实简单,但是还是写一下吧….
J(w)=−1m∑N1[yilog(zi)+(1−yi)log(1−zi)]
∂J(w)∂w=−1m∑N1[yilog(zi)+(1−yi)log(1−zi)]∂w =−∑N1[yi∗1zi−(1−yi)11−yi]∗∂zi∂w=−∑N1[yi(1−zi)−(1−yi)zi]∗x=∑N1(zi−yi)xi
三、多分类推广
假设Y的取值集合为 {1,2,3,...,K} ,那么可以得到其预测函数:
P(Y=k|x)=eθk⋅x1+∑K−11eθj⋅x
易得softmax的预测函数表达式为:
P(Y=k|x)=1∑K1eθj⋅x[eθk⋅x]
该式上下同除 eθ1⋅x ,分式结果不变,进行参数等价替换后正好与logistic多分类推广的预测函数相等。
而softmax的优化方法跟logistic一样:
具体见反向计算那块caffe源码之softmax
结论,softmax模型是logistic模型的多分类推广。