机器学习笔记-回归(线性和逻辑)

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

机器学习笔记-回归(线性和逻辑)

由二分类到多分类 –Softmax回归

机器学习笔记-回归(线性和逻辑)