尝试理解神经网络训练过程

https://www.cnblogs.com/ms-uap/p/9928254.html#4150272

https://www.cnblogs.com/ms-uap/p/9945871.html

在上一次,https://www.cnblogs.com/pylblog/p/10345255.html

仅仅在原函数的基础上,使用了一个“假的”梯度下降方法

图中三个箭头,代表w1,w2方向,在“山顶”处,沿各自方向的斜率;红点是山底;

红色箭头的长度,代表下降速度。

(w1,或w2方向走同样的距离,Z的下降速度显然不同)

如果按上一篇的说法,求解△w1 = △Z / (dZ / dw1);但是仅仅限于,明确知道△Z的情况下,而且没有考虑,有没有一下子,在W1方向跨过了最低点(如图,顶点的下山速度是比较慢的,中间比较快,会导致w1方向一下子跑过了);

梯度下降,其实是:

w1 = w1 - a * dZ / dw1;

也就是△w1 = a * dZ / dw1;

和之前的求法,不需要除以斜率,为什么?

假设并不知道山脚的位置,只能沿蓝色箭头方向,走一小段距离,b;

分到w1方向,肯定是dZ/dw1 * a

分到w2方向,肯定是dZ/dw2 * a

a是一个常数;

猜你喜欢

转载自www.cnblogs.com/pylblog/p/10345727.html