//李宏毅视频官网:http://speech.ee.ntu.edu.tw/~tlkagk/courses.html 点击此处返回总目录 //邱锡鹏《神经网络与深度学习》官网:https://nndl.github.io
今天要讲的是Gradient descent,Gradient descent 已经大概讲过怎么做了。但是有一些小技巧你可能是不知道的。所以我们要再详细说明一下Gradient descent,你要怎么把它做得更好。
------------------------------------------------------------------------------------------------------------------------------- 我们上次是这样说的,在整个machine learning的第三个步骤,我们要找一个最好的function。找一个最好的function这件事呢,是要解一个optimization problem。也就是在第二步的时候,我们定义了一个Loss function ,L。这个Loss function 呢,是function的function。你把一个function带到这个Loss function里面,或者你把一个操控function形状的参数(这里写作
那这件事情怎么做呢?可以用Gradient descent。 假设 如果你想要写的更简洁一些,假设你现在有两个参数,你可以这样写: 把L对参数求偏微分,然后把两个偏微分放在一起,组成一个向量。这个向量就叫做梯度。 所以,可以把更新过程简写为: ------------------------------------------------------------------------------------------------------------------------------- 如果把它virtualize的话呢,他看起来是这个样子: 首先初始,随机找两个参数: 然后计算这个点,对Loss function的梯度。假设梯度是红色的箭头。Gradient是一个向量。如果你不知道gradient是什么的话,你就想成它是等高线的法线方向。如果你把Loss function 的等高线画出来的话呢,这个红色的箭头指的方向就是等高线的法线方向。
那怎么update参数呢?你就把这个gredient乘上learning rate。再取一个负号,就是这个蓝色的箭头。再加上 然后这个步骤就反复地进行下去,再计算一遍梯度,得到另外一个红色的箭头,走的方向是红色箭头相反的方向。一直进行下去。算一次Gredient,决定要走的方向。。。
------------------------------------------------------------------------------------------------------------------------------- 以上的这些,我们其实都讲过了。接下来呢,讲一下gradient descent的tips。第一个呢是,你要小心地调你的learning rete。 如果你已经开始做作业1的话呢,你会知道说,learning rate 有时候会给你造成一些问题的。举例来说,下面是Loss function的曲线,长这个样子。 如果你的learning rate 调的刚刚好的话,你从左边开始,顺着红色的箭头可以很顺利地走到最低点。 可是,如果learning rate 调的太小的话,会变得非常慢。虽然,实际上给它足够的时间,它终究会走到local minimum的地方。但是,如果他走得太慢的话,你会没有办法接受这件事。 如果,今天这个learning rate 调的稍微大一点。像绿色这个箭头的话,那就变成说呢,它的步伐太大,它变得像个巨人一样,它永远没有办法走到这个特别低的地方。它都在这个山谷的口这个地方震荡。它永远走不下去。 甚至,如果今天你把learning rate 调的太大的话,它可能就一瞬间就飞出去了。结果你update参数以后,loss function反而越来越大。 其实是只有你的参数在一维或者二维的时候,你才能画出这样的图。如果你有很多维的参数,error 在一个高维的空间里面,你是没有办法visualize它的。但是有另外一个东西,你是可以visualize的。什么东西呢,你可以visualize参数的变化对loss的变化。你可以visualize每次参数update的时候,Loss的改变的情形。所以如果你今天learning rate设置的太小的话,你就会发现,Loss下降的非常非常慢。 如果,你今天learning rate调的太大的话,在前面的图也可以看到,loss 先快速的下降,接下来就卡住了。画出图来,是下面绿色的线,Loss很快就下降了,然后很快就卡住了。 如果,你的learning rate 调的过于大了,你会发现你的loss直接就飞出去了。
|
Gradient Descent
最新推荐文章于 2024-12-30 16:01:40 发布