seegongsik
我的单词本
人工智能

一点点改着往下走,梯度下降

假设你站在一座大雾弥漫的山上。你想去最低的山谷,可它太远,看不见。但脚下往哪边倾斜,你还是感觉得到。朝着往下的那边一步,再一步,最后就到了谷底。降低损失的学习,也是这样一步步地改。

01

走下大雾的山坡

前面我们学过损失。
损失是错的总和,
越小越好。
那怎么把损失降下来呢?
把损失随值画出来,
就像中间凹下去的山谷。
谷底就是损失最小的地方。
朝那个谷底往下走就行,
可大雾挡住了谷底。
能看见的只有脚下的坡度。

3
现在损失 = 9
感觉脚下的坡度,朝更低的那侧走

一步步点着把球送下去。它朝坡度指的更低那侧滚,损失就减小。

每往下一步,
球的高度,也就是损失,就减小了。
看不见谷底也没关系。
只要知道脚下往哪边倾斜,
往下的方向就总能知道。
知道了方向,接下来
就是实际把值改多少。
来看看这一步怎么迈?

02

把值一点点改

这里的值,就像我们能转的
一个旋钮。
转这个旋钮,损失就升或降。
看脚下的坡度,
就知道该把旋钮往哪边转,
损失才会下降。
就朝那边把值改一点点。
不是一下子猛改,而是一点点。
这样损失就降一格。
把这个反复做,才是关键。

0损失 = 36
值(旋钮) = 6
朝坡度指的方向把值一点点改

点一下走一步的按钮。值朝坡度方向改一点,损失也随之减小。

步子迈得越多,
值就越往谷中间靠,
损失的条也越来越短。
坡陡的地方,
步幅看起来自然就大些。
越靠近谷底坡越缓,
步子也就越轻。
不过这里有一件事要定。
一步该迈多大?

03

步幅太大就会跨过去

一步的大小叫步幅。
在学习里把它叫学习率。
步幅大像是能快点下去,
可有个陷阱。
靠近谷底时步幅太大,
就会直接跨过谷底,
弹到对面的坡上去。
然后左一下右一下地摆,
损失反而可能变大。
反过来,步幅太小,
虽安全,往下却要很久。

3
位置 = 0.40 · 损失 = 6.76
选一个步幅,一步步走走看

选小步幅或大步幅走走看。小的慢慢到谷底;太大的跨过谷底,弹到对面去。

小步幅是一步一步来,
太大的步幅跨过谷底,
左右乱弹,我们都看见了。
所以步幅得选得
不太大也不太小。
合适的步幅又快,
又能在谷底稳稳落住。
来,用合适的步幅
一直走到谷底吧?

04

反复迈步到达谷底

现在办法都齐了。
用坡度定方向,
用合适的步幅迈一步,
再看坡度,再迈一步。
一直这样反复,
值就靠向谷底。
越靠近谷底坡度越近乎平,
步幅也就自然变小。
所以最后会缓缓停下。
停下的那地方,就是损失最小的地方。

3
第 0 步 · 损失 = 9.00
反复迈步,让它收敛到谷底

一步步地一直点。越靠近谷底步子越小,收敛到损失最小的那一点。

一步接一步之后,
球正好稳稳落在谷底。
损失的条也变得最短。
哪怕在雾里,只凭脚下的坡度,
一步步走下来,到了谷底。
不用看得很远,
就从你现在站的地方,朝最低的那侧
一点点改,最后就到。
现在来把整件事理一理。

05

来理一理

归成一句话,是这样。
损失像中间低的山谷。
大雾挡住了谷底,
但脚下的坡度感觉得到。
朝往下的那侧把值改一点,
损失就降一格。
反复这一步,就到谷底。
一步的大小,步幅,
太大就跨过,太小就慢。
感觉坡度一点点往下走,这就是梯度下降。

从第 1 个开始依次点要点回顾

依次点要点回顾一下。(损失是山谷 → 用坡度定方向 → 一步步改 → 步幅要紧 → 收敛到谷底)

现在你知道了降低损失
最基本的办法。
感觉坡度、一步步去改的这种本事,
就是机器自己学习的秘诀。
把无数个旋钮用同样的方式
一点点改着,机器就变聪明了。
下回我们接着一起看
把这一步迈得更好的办法。

一句话总结梯度下降是为了降低损失,靠感觉坡度,把值朝更低的那一侧一步步改过去的办法。损失曲线像中间最低的山谷,我们从现在站的地方看脚下的坡度,把值朝往下的那侧挪一点。这一步的大小叫步幅,也就是学习率。步幅太大就会跨过谷底、弹到对面去;太小则虽然在往下,却很慢。用合适的步幅反复迈步,就会靠近谷底,也就是损失最小的地方。一句话,感觉坡度一点点往下走,把步幅选好,这就是梯度下降。
人工智能
如果有帮助,请支持我们