机器学习算法笔记-线性回归的实验过程

线性回归的实验过程

  • 参数直接求解方法
  • 数据预处理
  • 梯度下降模块
  • 学习率对结果的影响
  • 学习率衰减
  • 3种策略的对比
  • 多项式回归
  • 模型复杂度
  • 样本数量对实验的影响
  • 正则化的作用

参数直接求解方法

如下图所示,根据目标函数的极值可以直接求出参数theta的表达式,用这种方法也可以直接求出线性回归的最终结果,但是这种方法并非适用于所有数据,因为theta的求解公式中包含了特征矩阵的逆矩阵,求解逆矩阵是有前提条件的,不是所有的矩阵都有你军阵,因此这种方法并不总是适用的,而且这是一种纯粹的数学推导,与机器学习的思想是不符的。
机器学习算法笔记-线性回归的实验过程_第1张图片

数据预处理

这里数据预处理模块主要指数据标准化。如下图,作图是标准化后的收敛过程,右面是没有标准化的收敛过程。进行标准化后可以使不同的特征量服从相同的分布,降低数据复杂度,加快收敛过程。
机器学习算法笔记-线性回归的实验过程_第2张图片
转自:https://www.bilibili.com/video/BV1rq4y1p7nJ?p=32

梯度下降模块

加入梯度下降模块可以使收敛过程朝着下降最快的方向前进,加快收敛速度。常用的梯度下降BGD SGD MBGD 牛顿法 拟牛顿法有不同的有点和缺点,BGD比较准确,速度很慢,SGD会使收敛产生波动,而且因为每次选择的样本都是随机的,所以每次的运行结果会有较大或者较小的区别,但是他速度较快,当数据量很大时,SGD更实用,如果收敛过程波动太大,可以尝试使用MBGD,MBGD每一次迭代所选择的batch都是不一样的,原因很简单,如果每次都选择一样的batch,迭代的效果将大打折扣。

学习率对结果的影响

学习率较小时,结果比较精确,耗时也更多,学习率比较大的时候会跑偏,不应定能够收敛。因此在实验时,一般先设置一个比较小的学习率,在深度学习中,一般设置1e-4,然后根据实验结果进行调整,如果实验结果还可以,可以试着把初始学习率调大一些,如果收敛过程起伏较大,难以收敛,或者在某个点loss反而升高,就要把出示学习率调小一些。
机器学习算法笔记-线性回归的实验过程_第3张图片
转自:https://www.bilibili.com/video/BV1rq4y1p7nJ?p=32

学习率衰减

再开始训练时,因为离收敛点比较远,学习率/步长可以大一些,越接近收敛点是,学习率应该适当小一些,因为收敛点附近目标函数已经比较平稳了,如果步子太大,容易跑偏,或者一直反复循环在收敛点附近,使目标曲线比较振荡,难以平稳。

3种策略的对比

如下图,蓝色是BGD,红色是SGD,绿色是MBGD,收敛过程的稳定与否显而易见,BGD收敛过程很稳很精确,但代价时速度非常慢,在数据量很大时尤为明显。
机器学习算法笔记-线性回归的实验过程_第4张图片
转自:https://www.bilibili.com/video/BV1rq4y1p7nJ?p=35

多项式回归

如果要拟合的数据是非线性的,可以使用sklearn中的polynorminal相关函数,设置dgree,即最高次项数,比如有x1和x2两个量,dgree=2,那么x1和x2的组合就有x1 x2 x1*x2几种组合,将这三种组合分别看作一种特征的话,非线性回归就可以被视为线性回归问题。

模型复杂度

polynorminal越大,模型复杂度越高,一般来说,在满足精度要求的条件下,polymorminal要尽量设置的小一些,polymorminal太大往往效果并不会太好。
机器学习算法笔记-线性回归的实验过程_第5张图片
转自:https://www.bilibili.com/video/BV1rq4y1p7nJ?p=37

样本数量对实验的影响

这里同样借用了up主的图片,因为我的电脑很卡,就先不写代码了。
从下面的图片可以看到随着样本数量的增加,训练误差逐渐增大,并稳定在某个值附近,训练误差和验证误差也越来越近。我们在实验的时候,可能会因为模型不合适,学习率过大或过小,梯度下降方法不合适,或者batch不合适等等很多原因,造成train loss和val loss出现不同的状态,但是理想情况下,train loss和val loss应该越接近越好,而且val loss略高于train loss,如果发现train loss和 val loss相差很大,或者val loss比train loss低,那么就要看一看模型和超参数是否需要调整一下了。至于如何根据train loss和val loss调节模型和参数,后面有机会的话我会总结一下,如果你目前着急用,网上也可以搜一搜,有很多大佬也都总结过。
机器学习算法笔记-线性回归的实验过程_第6张图片
https://www.bilibili.com/video/BV1rq4y1p7nJ?p=38

正则化的作用

正则化的作用就是解决过拟合的问题,常用的正则化方法有L1正则化和L2正则化,L1正则化就是在原来目标函数的基础上加上一个||w||,引入L1正则化的回归叫做lasso回归,L2正则化是在原目标函数上加上||w||2 ,引入L2正则化的回归叫做岭回归。L1更适合稀疏模型,L2更适合密集模型。
机器学习算法笔记-线性回归的实验过程_第7张图片
至于alpha,他是正则项的权重系数,alpha越大,曲线越平稳,如下图
机器学习算法笔记-线性回归的实验过程_第8张图片
转自:https://www.bilibili.com/video/BV1rq4y1p7nJ?p=41

你可能感兴趣的:(机器学习经典算法,深度学习,机器学习,线性代数)