8.1 Introduction
LR 是一个非常重要的模型,几乎所有的机器学习职位面试都会问到。因此这章是重点,一定要看懂。
8.2 Model specification
把线性回归的高斯分布,换成伯努利分布,就成了逻辑斯特回归,不过这个模型其实是个分类模型,
p(y|x,w)=Ber(y|sigm(wTx))
其中
sigm(η)≜eη1+eη
表示
sigmoid function, or logit or logistic function.
最后 LR 学到的是一个线性决策面,而 w 就是该决策面的垂线(perpendicular)。
8.3 Model fitting 模型拟合
这一小节考虑怎么来估计 LR 中的参数,即 w 的取值。
8.3.1 MLE
LR 里用的是伯努利分布(Bernoulli Distribution),其中只有一个参数 θ ,如果用
ui=p(yi=1)=sigm(wTxi)=11+ewTxi
表示第
i
个样本中
NLL(w)=−∑i=1Nlog[μI(yi=1)i×(1−μi)I(yi=0)]=−∑i=1N[yilogμi+(1−yi)log(1−μi)]
这个就是交叉熵(cross entropy)损失函数。
也有另一种表示方法,令
y^i∈{
−1,+1},p(y=1)=11+exp(−wTx),p(y=0)=11+exp(+wTx)
那么可以重写损失函数,
NLL(w)=∑i=1Nlog(1+exp(−y^iwTxi))
yu这个交叉熵损失函数并没有封闭式解(closed-form solution),而是只能通过优化算法(optimizatin algorithm)或者说叫做迭代(iterative)的算法来解决。(关于封闭式解,可以举计算 8√ 的例子来说明。)
我们来算一下第一种 NLL 的梯度回传,注意书里的 f(w)≜NLL(w) ,且记住 sigmoid 函数的一阶导数为 u′i=ui(1−ui) ,或者稍微推导一下吧,
u′(α)=(11+eα)′=eα(1+eα)2=u(α)(1−u(α))
那么一阶导数就可以像下面这样计算啦,
g=ddwf(w)=−ddw∑i=1N[yilogμi+(1−yi)log(1−μi)]=∑i−(yiuiduidw+1−yi1−ui(−1)duidw)=∑iui−yiui(1−ui)duidw=∑iui−yiui(1−ui)duidαdαdw,α=wTxi,duidα=u′(α)=∑i