一文搞懂逻辑回归(LR)+极大似然估计+梯度下降 ___神经网络
本文是自己的总结+理解,如有错误之处,还望指出。
未经许可,不许转载。
文章交流:Pastore_zx@163.com
一、Logistic Regression
##### 简介
Logistic回归,别名:逻辑回归,对数几率回归。
主要应用场景:分类(叫回归但不是回归)
1.从线性回归到Logistic Regression(LR)
线性回归中我们学到使用数据用最小化均方误差去拟合一个函数来预测未知数据的值。最后得到的是 y = W^Tx+b这样的函数。这样的函数只可以得到预测值。但对于一个分类问题,我们应该怎么办?
我们需要找一个函数,将分类任务的真实标记与所预测的值联系起来。对于二分类问题,我们将其输出标记与{0,1}联系,将线性回归的预测值z转换为0/1,则可解决分类问题。那么,现在问题的关键就是去将z转换为0/1。
通过Logistic函数可以将z模糊转化为0/1,从而达到目的。简单认为:如果样本x属于正类的概率大于0.5,那么就判定它是正类,否则就是负类。
‘图片来自:南京大学周志华老师西瓜大师养成记’将z带入Logistic函数,可得:
2.概率论角度到模型
根据条件概率分布:我们可得正类和负类的条件分布:
几率指该事件发生的概率与该事件不发生概率的比值,其对数几率=log(p/1-p)
由此可得log(P(1|x)/(1-P)) = w*x+b
在逻辑回归模型中,输出Y=1的对数几率书输入x的线性函数,此为模型的数学形式。
二、模型参数估计_极大似然估计/log loss
1.概率模型的训练过程就是参数估计的过程。
频率主义学派认为参数未知,但实际存在。——>可通过优化似然函数来确定参数。
贝叶斯学派认为参数是随机变量,本身也有分布。——>先验分布(假设)+数据=后验分布
2.似然函数
①表示模型中参数的似然性。其值==密度函数
②似然函数反应出一个朴素推测,在参数t1下随机向量X取到值x的可能性大于在参数t2下随机变量X取到值x的可能性。其意为:我们更有理由相信相对于t2来说,t1更有可能是真实值---->详解见wikipeida
3.最大似然估计
①在机器学习中,我们关注似然函数的最大值,我们根据已知事件来找出这种结果最有可能的条件,然后根据这个最有可能的条件去推测未知的概率。
②最大似然估计的一般求解过程就是 写出似然函数-->对似然函数取对数,并整理-->求导数-->解似然方程
③另D_c表示训练集D中第c类样本组成的集合,则参数\theta_c对于数据集D_c的似然是:
4.对于LR的MLE
对于LR,我们可以得到其似然项,由于连续下乘容易溢出等原因,我们采用对数似然:
则我们要求是(w^T,b) = argmax L
对于最大问题,求解较为复杂,我们可以发现,max_L等于min_-L,而我们又可发现,log损失等于(-1/N)L。则我们可以转化为:
(w^T,b) = argmin (-1/N)L or
(w^T,b) = argmin -L
根据上图公式与THU李毅宏老师讲解,也可以理解为两个伯努利分布的交叉信息熵
5.why not 平方误差(Square error)
如果我们使用平方误差,则其Loss变为了:
对其求解偏导后,我们发现当f_w,b为0时,虽然离正确目标还很远,但是其偏导为0,停止更新。表现为距离目标越远,更新越慢或者直接过早停止update。如下图所示:
三、参数求解
说明:对于该最优化问题,我们一般使用梯度下降法与牛顿法。我们主要以梯度下降法为例来阐述。
1.什么是梯度下降法
梯度下降法(Gradient descent)是一个一阶最优化算法,通常也称为最速下降法。 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近似梯度)的反方向的规定步长距离点进行迭代搜索。
我们可以将梯度理解为导数,也就是斜率(线性)。梯度下降就是给一个初始点,然后往切线的负方向慢慢挪找最小值。
'图片来源:台大李宏毅老师宝可梦机器学习训练营'2.梯度下降的步骤
①随机选择初始参数点\theta_0
②计算在\theta_0点的梯度
③通过图片中公式计算\theta_1点,更新参数
重复至满足终止条件
3.梯度下降的优化
对于经验初始点选择,自适应学习率(learning rate),随机等其他优化方法,请在网络搜索,本文不再叙述。
四、从LR的一些Limitation到Neural network
对于如下图所示的数据,LR无法将CLASS1/CLASS2分开。(有时可以通过特征转换,但不是每次都能找到合适的特征转换)
我们可以通过多层LR来进行寻找合适的特征转换,直至可以通过一条线来区分两个类,n个LR可以是另个LR的输入,如此连接,每个LR可以叫做Neuron,整个过程便可以叫做Neural Network,这就是DeepLearning的基础。如下图:
参考资料:
Andrew Ng, CS 229 lecture notes
周志华,《机器学习》
李宏毅,机器学习与深度学习课程