在机器学习中,找到训练集与随机权重拟合函数图像之间距离差之和称为总代价函数,然后逐步减少总代价函数过程称为寻找最小代价函数。而在寻找的过程中会形成自己代价函数。
利用代价函数的图像,可以使用导数的几何意义找到最小代价函数。
在机器学习中,寻找最小代价函数是拟合的关键。
代价函数的函数图像就像一座山。假设直升飞机随机把你扔到一座山头上,你的目标是如何从当前位置找到下山的最短路径。也就是找到最小代价函数。
梯度下降理解
假设一个你是超级近视眼站在上头上。你想下山且是最短路径。因为近视只能看到周围一点点地形的情况。所以只能让每一步尽可能的接近山脚的谷底。这就是梯度下降要完成的环境与目标。
对你而言要确定两个条件才能让迈出去的下一步是最接近山脚下的:
第1个条件:步幅有多大。
第2个条件:下一步朝着哪个方向迈出去,才能踩到下坡最大的地方。
第1个条件解析:作为人类步幅肯定不会太大,没人会担心这个问题,但是对算法而言步幅可能会非常的大,大到超过整个山的高度,那么永远也没办法下到山谷里了。他叫α学习率。
第2个条件解析:下一步迈出去的方向360°都可能,但哪个才对?哪个才是对当前这一步而言下山最快的且是正确的方向?对人类而言那肯定是脚踩出去坡度最大的那个方向。
如果这两个条件都满足,即便是盲人也可以找到下山最快的办法。假设这一步叫做炫酷一步。
对数学家而言。他要做的是对坡度进行抽象计算,然后告诉你炫酷一步该如何量化。
这就是梯度。
对二维图像,下一步的方向要么向左要么向右,其他地方也无路可走,数学上可以在小人所在点确定两个东西,一个方向,一个是坡度。如图所示。
该点斜率可以确定方向,如果是负的代表是下山,题目要求的就是下山,所以这是正确的方向。(切线与X轴为钝角或切线通过了二四象限)关于方向如图所示:
关于“坡度”如图所示:
B点显然比A点的坡度更大。因为看上去B点处更陡峭。数学上可没有重力也没有眼睛。
而且主角是超级近视眼。
所以确定A点和B点切线处的Y轴与x轴的比值哪个更大,哪个坡度就更大。
也就说哪个点的斜率更大坡度就更大。
所以梯度下降在函数图像上就是寻求导数。导向图像的坡度。
而如果代价函数不仅仅是平面图形,而是一个三维或者多维的图形。
那么这个过程就是面的偏导数,来找到下一步的最短路径
三维坐标系中,任意一点的总可以找到在z对x的偏导数(Y不变),与z对y的偏导数(X不变)。
利用三角函数就可以确定方向和大小了。
如图所示:
这也就是找到了坡度最大的那个方向和坡度。
把三维坐标分成两个二维坐标求解。最终得到梯度。就好比用两个值确定二维坐标的位置,三个值确定三维坐标的位置。n个值确定n为坐标的位置。
迭代这个过程
有了炫酷一步,接下来就是反复执行这个炫酷一步。直到我们导数、偏导数也就是坡度不再明显的时候,就算是完成梯度下降了,对于机器学习而言,需要保存西塔。来作为拟合函数的权重。使得拟合函数在训练集样本中的图像距离具备最小的代价函数。
不过这个过程有个前提条件,就是保证函数图像只有一个凹点,不然梯度下降只能下降到某个山坳而是不是真正的完成下山。