赞
踩
本次学习的资源为B站上2017年李宏毅老师的网课视频。具体资源非常容易搜索。我也会在后续的学习笔记中,按照李宏毅老师的每一份PPT做出一份精简的学习笔记,并且附上自己的思考,欢迎收藏。
机器学习的目标实际上是通过 training data 找到一个函数,使该函数拥有根据某些输入而输出的能力。类似于给出一些日期来预测pm2.5指数等。这种输出是根据训练的 data 决定的,从而表现出机器具有某种学习的能力。
首先要有一个model,这个model是一个函数集(a set of function),这个函数的集合目前可以假设已经给出。
这个model中的函数有各种各样的参数,但是这些参数并不是都很适合我们所要应对的数据,所以我们需要找出合适的函数(由于函数的形式都是一致的,其实也就是要为这个函数集合找出合适的参数)。
根据第一步的说法,我们需要找出比较好的函数(也就是比较合适的参数),那么需要有一个评价函数好坏的标准,这也就是step 2的目的。下图是对每一个样本值的描绘。横坐标是CP值,纵坐标是进化后的CP值。
为了用数值来描述每个函数的好坏,我们设置一个Loss函数 L,这个函数的定义如下图。该函数相当于是将每个观测值与预测值相减再平方,最后相加。实际上就是表示使用该函数每个预测值与真实值总体上的偏离程度。
第三步就是求出最佳的函数。最佳的函数(也就是最佳的参数),实际上就是令Loss函数最小的参数。这个可以用 gradient descent的方式来迭代求得。具体操作方式实际上就是,对Loss函数求偏导后,使用如下方式进行多次迭代,从而得到令Loss最小的w,b值。
注意其中的 η 是“学习速率”,由下图可以想象,当 η 较小时,趋近目标点的速度过慢,但是当其太大时则会在目标点周围剧烈波动,所以这个值需要自己去设置调节,后续中会有一些调节“学习速率”的方法。
前面的步骤中,我们所设置的function set 中的function都是w的一次函数,得到的最佳函数大致如下:
于是便有了这样的思考:我们是否可以用更加高次的w的函数来作为function。接下来使用二次,三次、四次函数来求得他们分别对应的最佳函数,它们与原始数据点的图像如下(基本一致,只给一图):
其中,当w的次数到了5次时,发生了过拟合现象:
可以发现,当w到达5次后得到的最佳函数与training data 十分吻合,但显然与实际不符,将其用testing data 测试后发现error数值暴涨,该现象称为“过拟合”,即 overfitting 。
想要解决过拟合,可以回到第二步,也就是如何确定函数好或者不好。可以在Loss函数中加上一项。这一项是 λ 乘上所有参数的平方和。加上这一项后的Loss函数,还是需要去求其最小值。但是因为加入了所有参数Wi的平方和,为了让此时的Loss函数最小,可以预测的是,求得的参数Wi不仅会让原来的error较小,还会让所有的Wi尽可能小。
而更小的Wi意味着这个改进后的Loss函数会更加平滑。而我们相信更加平滑的函数更可能是正确的。
以下是使用不同的 λ 得到的 最小的Loss函数值。可以发现添加一项后,training data 的 error 值在变大,而testing data 的值有显著的变小,也就是说Regularization这方法是切实有效的。
最后,在选择 λ 时,我们要注意许多地方,我们希望最后得到的 function平滑,所以为Loss添加了包含参数的一项,但是我们也不希望最后的 function过于平滑。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。