逻辑回归其实就是一个判别模型,什么意思呢?也就是给定一组数据我们将其判别它属于某一类的概率,或者判别好坏,也就是
p(y∣x)对于这样的模型我们首先想到的是
p(y∣x)=wTx+b但是我们可以清楚地看到公式并不成立:
0≤p(y∣x)≤1还有
∑yp(y∣x)=1这两个条件并不满足,因此我们将公式转变一下:利用
y=1+ex1也就是
σ(x)也就是:
p(y∣x;w)=σ(wTx+b)=1+e−(wTx+b)1
这个时候我们的目标函数就可以满足概率的形式啦
假设我们现在做一个二分类的问题那么公式可以转化为:
p(y=1∣x;w)=1+e−(wTx+b)1
p(y=0∣x;w)=1−p(y=1∣x;w)=1−1+e−(wTx+b)1=1+e−(wTx+b)e−(wTx+b)
也就是如果标签为1我们就最大化
p(y=1∣x;w)然后最小化
p(y=0∣x;w)因此我们将两个公式合并为:
p(y∣x;w)=p(y=1∣x;w)y⋅[1−p(y=0∣x;w)]1−y
因此给定数据集
D{(xi,yi)},xi∈Rdyi∈{0,1}
因此我们最大化我们的目标函数是:
wmle,wmle=argmaxw,b∏i=1np(yi∣xi,w,bi)=argmaxw,blog(∏i=1np(yi∣xi,w,bi))
=argmaxw,b∑i=1nlogp(yi∣xi,w,bi)=argminw,b−∑i=1nlogp(yi∣xi,w,bi)
=argminw,b−∑i=1nlog(p(yi=1∣xi;wi)iy⋅[1−p(yi=0∣xi;wi)]1−yi)
=argminw,b−∑i=1nlogp(yi=1∣xi;wi)iy+log[1−p(yi=0∣xi;wi)]1−yi
=argminw,b−∑i=1nyilogσ(wTxi+b)+(1−yi)log(1−σ(wTxi+b))
因此逻辑回归的目标函数是:
L=argminw,b−∑i=1nyilogσ(wTxi+b)+(1−yi)log(1−σ(wTxi+b))
下面我们使用梯度下降法进行对参数的不断优化:
∂w∂L=argminw,b−∑i=1nyiσ(wTxi+b)σ(wTxi+b)⋅[1−σ(wTxi+b)]⋅xi+(1−yi)σ(wTxi+b)−σ(wTxi+b)⋅[1−σ(wTxi+b)]⋅xi
=argminw,b−∑i=1nyi⋅[1−σ(wTxi+b)]⋅xi+(yi−1)σ(wTxi+b)⋅xi
=argminw,b−∑i=1nyi⋅xi−σ(wTxi+b)⋅xi=argminw,b∑i=1n(σ(wTxi+b)−yi)⋅xi
最后计算得:
∂w∂L=argminw,b∑i=1n(σ(wTxi+b)−yi)⋅xi
同理对b进行求导得:
∂b∂L=argminw,b∑i=1n(σ(wTxi+b)−yi)
因此采用梯度下降法:
初始化:
w1,b1
循环 t=1,2,3…n:
wt+1=wt−η∑i=1n(σ(wTxi+b)−yi)⋅xi
bt+1=bt−η∑i=1n(σ(wTxi+b)−yi)
但是采用这样的梯度下降法每次都计算所有
w和
b的梯度,计算量比较大因此我们采用随机梯度下降法:
循环 t=1,2,3…n:
wt+1=wt−η(σ(wTxi+b)−yi)⋅xi
bt+1=bt−η(σ(wTxi+b)−yi)
这样一个逻辑回归就证明完毕啦