机器学习笔记-回归(线性和逻辑)
1.线性回归—邹博
目标函数-损失函数的推导
(1)给定假设函数h(theta)
其中,h表示y的预测值,h和y之间具有一个误差值ε;
(2)对误差值ε的假设;
由中心极限定理,可以认为误差服从正态分布ε~N(0, sigma2);进一步假设误差是独立同分布的。
(3)损失函数J(theta)的由来
公式变换;
第二个公式右边是对第一个公式结合上述公式替换得到,公式左边是由右边的含义而确定。
第二个公式是针对某一个样本而言;
第三个公式即为所有样本的联合密度函数,即为似然函数,最大化似然函数表示在给定样本x和theta的情况下,y发生的可能性最大;可以认为此时对应的参数theta值就是使每个样本真实值y发生可能性最大的参数值,即可以认为是使误差最小的参数值。
求似然函数的最大值转化为最小化损失函数;
要计算似然函数L(theta)的最大值,经过化简,转化成求J(theta)的最小值; J(theta)称为损失函数;
至此,我们由最大似然估计和高斯分布推导出了最小二乘法,最小二乘也就是最小化J(theta)函数,此时对应的参数theta值就是使误差最小的参数值。J(theta)也可以称为误差平方和,越小预测越准确;
损失函数最小化过程-theta的求解过程(法1)
对目标函数进行化简,再对theta求偏导,令其为0;
此时的theta肯定对应一个局部最小值;
故,经过推导,当XTX可逆时;
添加正则项的作用
证明过程;
对能够防止过拟合,进一步说明;
可以看到,8阶的预测函数,前几个的参数(系数)值太大,即权值太大,使这些参数不要太大,能够一定程度防止过拟合;系数太大不好是龙格现象(可查阅);
增加平方和损失改变原始目标函数,可以使参数不会太大,因为要对目标函数J(theta)最小化,则平方和损失太大时不会使J(theta)最小;
添加(L2-norm)L2正则项的线性回归,称Ridge岭回归;加入L1正则项称为LASSO;
LASSO除了可以使系数值变小,还能对特征做选择,即高阶项的系数会非常小,可以舍弃该部分特征;即加入L1正则会使参数更稀疏,使维度降低,LASSO是一个稀疏模型;
利用验证数据获取超参数lambda
在对初始的目标函数(损失函数)加入正则项后,进一步工作,如何对lambda取值;在加入正则项后的损失函数中,theta是通过样本计算可以得到的参数,而lambda是不可以通过样本计算得到的超参数;
一般是先对lambda取若干值(如l1, l2),代入损失函数,通过训练数据得到分别对应的参数(如t1, t2);在验证数据中分别计算两个参数对应的误差平方和,若t1对应的误差平方和更小,则超参数l1更好;选择l1和其对应的t1在测试数据测试模型
可以使用交叉验证训练数据和验证数据;如三折交叉验证,将原始训练数据划分成3部分,先以1,2部分作为训练,3部分验证,获得一个最优的超参数l1;再以1,3部分作为训练,2部分验证,获得l2;最后获得l3;综合考虑确定lambda取值,如取平均值;
‘矩阵的逆’时间复杂度过大,可以通过SVD计算theta的值
补充:可以利用SVD计算theta的值(代码中可以直接使用SVD库计算theta值);
因为计算矩阵的逆时间复杂度O(n^3),要避开这一点就可以使用SVD计算theta;
最小化损失函数 - 梯度下降J获取theta(法2)
梯度下降最小化损失函数获取theta;注意,线性回归的损失函数J(theta)是一个凸函数,有且仅有一个局部最优解,故在线性回归中使用梯度下降获得的局部最优解就是全局最优解;
当偏导为0的时候,此时的解就是局部最优解,此时的theta就是要获得的参数值;
对某一个样本进行求偏导;如下获得的是样本的梯度方向
BGD批量梯度下降
SGD随机梯度下降更快;可以在线下降;有可能跳出局部最优解;
习惯上将mini-batch-SGD称为SGD
线性回归是对参数theta线性;对样本可以是非线性的
模型评估
2.Logistic回归—邹博
引入Logistic回归的原因:线性回归做分类效果并不好
假设函数 - Logistic/sigmoid函数的产生(直接给出)
Logistic函数即预测模型函数;等价于线性回归中的h(x)=thetaT*x
损失函数 - 构建似然函数作为损失函数并求theta(法1)
假设y1, y2, ... , ym服从二项分布;进一步假设样本独立;最大化似然函数目的就是求最有可能使y发生的theta值;注意:假设函数h(x)是估计某个样本x是标签值y=1的概率
对数似然函数即为log L(theta);梯度为对theta方向求导,下图所用的是BGD;
求参数theta,这里要最大化似然函数,严格上说,求最大值使用梯度上升算法求theta的值;左边是BGD,右边是SGD
注意:Logistic回归的最大似然函数的二阶导函数是非正定的,即小于等于0,保证了最大似然函数有且仅有一个全局最大值;Logistic回归的交叉熵损失函数的二阶导函数是正定的,保证了交叉熵作为损失函数时,此时的损失函数有且仅有一个全局最小值(最优解)
Logistic回归是广义线性模型
进一步说明:Logistic回归模型是一个对数线性模型;
损失函数 – 似然函数取负号为交叉熵损失作为损失函数(法2)
对数似然函数添加负号,就有了损失函数(目标函数),就是交叉熵损失(注意交叉熵损失并不是这么来的);从损失函数角度去考虑,就可以使用梯度下降求解参数theta的值;
假设,y取值为0或1
上述表示并不好,假设y取值为-1或1