Logistic Regression 对数几率回归
首先logistic regression不是叫逻辑回归,而是叫对数几率回归。然后对数几率回归也不是用来解决回归问题的,而是解决分类问题的。
一、由线性回归引入对数几率回归
设有训练集{X,Y}∈N,{x0,x1,x2,...,xn}∈X,{y0,y1,y2,..,yn}∈Y。先构造线性回归函数:
f(x)=wTx+b
这个大家应该都知道怎么来的,x为输入向量,w,b为参数向量。
考虑二分类问题,线性回归的输出是真实数,而二分类问题的输出则是阶跃函数:
f(z)=⎩⎪⎨⎪⎧0,0.5,1,if z<0.5if z=0.5if z>0.5
那么如何将线性回归输出的真实数转化为阶跃函数的0/1(0.5抛弃不用)呢。这里考虑sigmoid函数,构造sigmoid函数如下:
σ(z)=1+e−z1 z=wTx+b
其函数图像如下:
sigmoid函数图
该函数的导如下,因为可以用自身来表示,接下来用到的时候,就知道它的好处了
σ(z)′=(1+ez1)′=(1+e−z)2e−z=(1+e−z)21+e−z−1=1+e−z1(1+1+e−z−1)=σ(z)(1−σ(z))
二、损失函数
目前已知对数几率函数如下:
σ(x)=1+e−(wTx+b)1
现在问题变成如何求解该函数的两个未知参数w,b。由于分类问题为有监督学习,对于训练集来说,我们是已知其分布的。那么已知数据分布,求解能够使最大限度地其服该分布的参数,可以用极大似然估计来解决。构造极大似然函数
l(w,b)=i=0∏nP(yi∣xi;w,b)
要使学习算法尽可能地学习到训练集特征,即是说预测出来的当前数据类别是真实类别的概率要尽可能大,那么就要最大化极大似然函数。则有下面等价变换(取对数是一般极大似然估计函数的解法,转累乘为累加,转最大化为最小化,因为目标函数为凸函数。这部分可以看看极大似然函数相关知识):
w∗,b∗=arg maxw,bl(w,b)=arg minw,b−lnl(w,b)
在本二分类问题中,设类别0为y0,设类别1为y1,对于任意x∈X,设其为类别0的概率为p(x)=P(y0∣x),则其为类别1的概率为P(y1∣x)=1−p(x)
设训练集中第一个数据为类别0,第二个数据为类别1,第三个数据为类别0,……,
则极大似然函数可展开为:
−lnl(w,b)=−ln[p(x0)(1−p(x1))p(x2)...]=−[y0∗lnp(x0)+(1−y0)∗ln(1−p(x0))]−[y1∗lnp(x1)+(1−y1)∗ln(1−p(x1))]−[y2∗lnp(x2)+(1−y2)∗ln(1−p(x2))]...
注意粉色部分对应其真实类别,因此与真实类别不符的一边就会为0,从而消去,得到的结果也是符合实际要求的。这样我们需要最小化的损失函数就如下:
−lnl(w,b)=i∑−[yi∗lnp(xi)+(1−yi)∗ln(1−p(xi))]
接下来可以用很多方法来最小化这个函数,比如牛顿法或者梯度下降法。这里使用梯度下降法来解:
∂w−lnl(w,b)=i∑−[yi∗∂wlnp(xi)+(1−yi)∗∂wln(1−p(x))]=i∑−[yi∗∂zlnσ(z)∂w∂z+(1−yi)∗∂zln(1−σ(z))∂w∂z]=i∑−[yi∗σ(z)1∂z∂σ(z)∂w∂(wTxi+b)+(1−yi)∗1−σ(z)1∂z−∂σ(z)∂w∂(wTxi+b)]∂z∂σ(z)前面已经提过=i∑−[yi∗(1−σ(z))xi−(1−yi)σ(z)xi]=i∑−[yi∗(1−σ(z))−(1−yi)σ(z)]xi=i∑−(yi−σ(z))xi
则有w更新公式,其中η为learningrate,即学习率:
wi+1=wi−ηi∑−(yi−σ(z))xi
有机会再更新手写logistic regression。
有写的不对的地方还望不吝指教。