谷歌机器学习速成课程笔记 4(Reducing Loss-降低损失)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30354455/article/details/79831625

看了谷歌机器学习的视频,受益颇多,纯属想记录下免得以后忘了,٩(๑❛ᴗ❛๑)۶

如何降低损失?

梯度下降法

  • (y-y’)∧2相对于权重和偏差的倒数可以让我们了解指定样本的损失变化情况
    易于计算且为凸形(一个碗的样子,只有一个最低点)
  • 因此,我们在能够尽可能降低损失的方向上反复采取小步
    我们将这些小步称为梯度步长(但他们实际上是负梯度步长)
    这里写图片描述

凸形

这里写图片描述
例如,我们随机选择一个θ的值初始值,就可以看到对应的误差值(y轴),接着我们可以计算负梯度,从而得知往哪个方向前进,才能尽可能减小误差(如果我们朝着右侧方向沿着梯度前进,就会看到新的误差是较小的,之后我们再继续沿着这个方向前进,直到超过最小值(严格来说是局部最小值),这时负梯度会指示我们沿着来时的方向返回)
那么,在负梯度上,我们应该迈多大的步伐前进呢?这是由学习速率决定的——如果学习速率非常小,那么我们的梯度步伐就回小而密,这就需要进行大量的计算,才能达到最小值如果学习速率非常大,那么我们会在负梯度方向上迈出一大步,这有可能超过最小值,误差甚至会比之前还大,在维度更多的情况下,这将会当值咱们所建的模型发生偏离,这时我们应该将学习速率减慢(减慢差不多一个数量级)


非凸形

然鹅,很多机器学习的问题并不是凸形的。众所周知,神经网络就不是凸形的,也就是说神经网络并不像个碗,应该像个蛋架,有很多可能的极小值,其中一些极小值优于其他极小值(极小值中的最小值)
这里写图片描述


SGD和小批量梯度下降法

在实际运用中,我们的数据集可能很大很大,这时我们可以采用折中的解决方案——我们并非使用一个样本或整个数据集,而是使用一小部分样本(差不多10-1000个样本)
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_30354455/article/details/79831625