李宏毅深度学习笔记-P3&P4-回归

      第二部分的内容主要讲的是有监督学习(supervised learning)的任务之一:回归-regression,本篇主要介绍了如何通过梯度下降法(gradient descent)得到目标函数,并使用正则化(regularization)的方法解决训练数据过拟合(overfitting)的问题,对目标函数进行修正,从而在检验测试数据时得到更好的结果。

       回归(regression)是有监督学习的一种task,适合的场景有股票价格预测,自动驾驶和推荐系统等,本篇以神奇宝贝中的CP值预测为例,寻找进化前后CP值之间的关系,输入进化前的CP值和其他特征信息,计算出进化之后CP值。定义损失函数L由于评价模型的适合程度,损失函数即样例预测进化后的CP值与实际进化后的CP值之间的方差之和,方差之和越小,则目标函数约接近实际结果,因此该问题转化为求L的全局最小值,应用回归方法,从最简单的线性关系构造目标函数,y = kx+b,其中x为进化前的CP值,b为常数,y为进化之后的CP值,L的全局最小值处是切线斜率为0处,也即其微分为0处,此处我们使用梯度下降法来求解,梯度下降法会先选取一对初始值k0,b0,L先对k求偏导(此时b取b0),然后对k0左右各取值,再计算偏导数,如果k0左侧偏导数值更大则目标点在k0右边,需增加值,反之则目标点在k0左边,需减少值,假设k0调整后为k1,同理也可计算出b0的调整值b1,如此循环往复,直至微分值为0或者接近0,取此时的k值和b值,其中每次调整k值的“步长”成为学习率(learning rate),决定了初始值向目标值靠拢的速度。

       上述过程得到目标函数后,我们希望进一步看一下与实际结果之间的差距,我们会计算预测值与实际值之间的距离,并求和,作为误差值,误差越小越精确。除了计算训练书的误差值,我们还会新取一批样例作为测试数据,对测试样例也计算误差值来做效果比较。

       回到最开始我们使用的目标函数模型,y = kx+b,这是一个简单的线性关系,因此与实际的目标函数相差较大,那么为了使得我们的目标函数模型更接近实际函数(更加复杂),还可以采用二次函数关系,三次函数关系,亦或是分段函数关系,增加因变量(特征值)等来进行拟合,但是我们发现幂次提高的过程中,训练数据误差虽然减小了,但是测试数据误差确会在达到某一值后开始增加,这就引出了另一个问题-过拟合,即目标函数模型虽然对训练数据效果非常好,但是对测试数据,结果偏离就很大,说明训练数据中可能存在噪声数据。此时我们需要使用正则化的方式尽量消除噪声数据的影响,具体的方法是在损失函数中加入因子,该因子与损失函数中各样例值权重有关,我们希望损失函数相对平滑,也即各样例值权重更小,这样噪声样例对结果的影响就会越小,当然损失函数如果过于平滑距离真实结果也会很远,不可取。

       那么通过以上的方法我们就可以完成一个简单的回归任务,构造一个相对较好的目标函数模型,但是如果面对新的测试数据,我们的模型仍能得到预期一样好的结果么?在一般情况下,答案是否定的,因此我们需要通过validation的方法来结果这个问题,下一章中会详细介绍上述过程的原理以及注意的点,以及validation的实现方式,期待下一章节的学习,fighting~

你可能感兴趣的:(深度学习,回归)