Machine Learning第一记——Regression

一、概述

  首先对于回归来说,有单变量线性回归,多变量线性回归,多项式回归等多种类型。单变量顾名思义,针对一个特征进行模型训练,获得一个针对这个特征的预测模型,但由于现实生活中的影响因素是多样的,单变量并不适用于现状,所以出现了多变量线性回归,模型可以在考虑多种影响特征的情况下进行预测,更符合实际。但是线性回归过于理想,在我们生活中不可能所有规律都是线性的,这时候,多项式回归就变得更为符合,这种依次递进的形式,使得回归模型越来越成熟。

二、课程主要笔记点

(一)Loss Function

  损失函数可以将其理解为用于计算当前模型有多差的指数。因此为了让模型更加优秀,会努力让这个指数也就是loss尽可能地低。计算loss的方法有很多,最直接的方法可以用样例与预测值做差再求和取平均值,看平均误差有多大,一般常用的损失函数有很多,均方误差、交叉熵误差等都是比较常用的,如作业一中即用到平方误差。
  知道误差的计算方法之后,为了完善模型最关心的还是怎么减小损失,使得这个“差指数”降低下去,提高模型的准确程度。李宏毅老师在课中主要讲解了梯度下降法。

(二)Gradient Descent

   所谓梯度下降法,就是一个类似下台阶的过程,不断寻找比当前点损失低的点,不断向下走。在一个实际项目的loss图像一定会存在起伏,而梯度下降法就是通过不断求解下降方向不断往更低点走来满足需求,其中梯度就是对应特征在某点的导数,根据导数正负决定接下来的移动方向,不断调整特征参数。

  从上图可以看出,梯度下降过程会不断找loss的低点,而且由于最低点不止一个,所以其实从一个点出发找到的loss最低点并不一定是最优解,只能叫做局部最优解。   除梯度下降法之外,还有另一种寻找loss最小值的方法,即正规方程。正规方程思想即为求解极小值,找导数为0的点。损失函数为凸函数,所以函数存在极小值点且为最小值点。

(三)Regularization

  这里讲到的正则化大都应用在过拟合的情况上,由于过拟合模型会失去对问题的普适性,而正则化正是通过给损失函数加一个带固定值λ的一个正则化项来使函数不那么拟合训练集,来避免过拟合状态。这里给出知乎看到的一个形象的比喻用来更好的理解正则化:
  首先将模型看为一只蚊子,用它训练飞行路径来模拟利用训练集训练的过程,然后看他在测试集中的飞行表现。


   看其在训练集中的表现可以发现飞行路线与目标点十分拟合,而再看他在测试集中根据训练集学到的路线进行测试时发现它完美的避开了所有的正确目标,这就是我们说的过拟合,由于对训练集拟合程度过高而出现了差模型。
  这时正则化就起到了作用,正则化的思想就是相当于在蚊子身上绑上了重物,使蚊子的飞行不那么灵活,这样获得的训练路线和测试路线相比之前就会更加平滑(如下图),也就避免了过拟合的现象。


  这个重物,即为正则化项。正则化除了增加正则化项,还有dropout(随机丢弃部分神经元)、early-stopping(避免过多的迭代次数,早结束训练)等方法。
   其中early-stopping我在毕业设计中检测最优参数时使用到。对比数据如下表,从图中可以看出,对于训练集随着迭代次数不断增加,AP值越来越高,但反看测试集,迭代次数在40000次时AP最高,40000次迭代之后随着迭代次数增加,模型对测试集的效果越来越差,即出现过拟合倾向。因此在40000次迭代时结束训练最为合理。
在这里插入图片描述
(四)Bias and Variance

  这里解释的主要是所训练的模型的误差都出在哪里,其中bias表示模型对需要解决的问题的偏差,而variance可以用来表示训练获得的模型对训练集是否过拟合,如果多次对不同训练集获得的模型出现过拟合,那么每次获得的模型都会有很大的区别。这里通过李宏毅老师给的例图可以很形象的解释:

  其中bias可以看作训练出的模型距离靶心有多远,如果过远,说明训练获得的模型是错的,则需要重新定义模型;而如果点离散程度很大,即variance过大,说明每次获得的模型有很大区别,也就是说每次训练获得的模型都依赖于各自的训练集,出现了过拟合的情况,针对这种情况,即可采取(三)提到的正则化或者增加训练集数量等方式来避免过拟合。
  有了以上的错误来源的方向,在训练模型调优结果时可以有方向有针对性的进行修改。

三、HW_1_Regression

  此部分对在实验中学到的知识进行总结,并对获得的数据进行对比说明。

  1、向量化的代码计算速度比for循环快
  2、学习率的选择对实验结果的优劣很重要。以下三幅图分别是学习率为0.01,0.001,0.0001时获得的损失函数图像。通过对比可以看出学习率为0.01时过大,损失函数出现发散的情况;而学习率为0.0001时较0.001时损失函数更加平滑,达到最低点所需要的迭代次数更多。从这三幅图可以看出学习率的恰当选择也很重要,过大结果会出现震荡或发散,而过小则需要更多的迭代次数才能得到所需结果,会增加计算量,而且存在因为学习率过低直接不学习的现象。
  3、数据归一化可以有效加快收敛速度,同时把数据归一化在同一数量级还可以避免由于数量级相差太大而导致的预测误差过大,而且还能保证数值小的数据不被吞噬。
  4、当线性模型表现力不够强时,需要用到非线性模型,即采用多项式回归。但对于多项式的最高次数K,虽然K越大对于训练集的拟合程度越好,但对训练集拟合程度越好,对于测试集的泛化能力就越差,也就是过拟合(如下图)。下图分别为K为2和K为193时,可以发现K过大时虽然对测试集的拟合程度更好,但图像过于复杂,很明显泛化能力很差,而反观K为2时,不仅比线性回归的表现力更强,而且有很好的泛化能力。因此多项式回归K的选择也是很重要的参数。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值