其他分享
首页 > 其他分享> > 为了搞清深度学习的随机梯度下降我复习了下微积分

为了搞清深度学习的随机梯度下降我复习了下微积分

作者:互联网

在学习深度学习时遇到了个新名词:随机梯度下降--可以想象把一个篮球扔到群山之中,让它自由滚动,直到滚动到最低点.找最低点的过程也是机器学习模型训练的过程.对于篮球来说在现实世界中有万有引力会牵引它走向最地点.在计算机的世界里谁来告诉迷茫的篮球该往何处呢?如果把山川地表看成是由函数绘制的,在地表上随机放一个篮球,然后让这个篮球不断的往低洼的方向运动,就有可能找到最低点是不是?那是不是传说中有种秘法可以算出函数中某个点的变化趋势.是的,微积分.但实在是想不起是高中学过还是大学学的了,一点印象都没有,只记得有这个名字.与其说复习倒不如说重学,也不用学的太深,可以理解深度学习的梯度下降就可以了.

比如现在的函数是:f(x)=2x^2 + 1. 求函数在某个点(x,f(x))的变化趋势,其实就是求函数上穿过点(x,f(x))和点(x+h,f(x+h))这条直线的斜率.h的值越趋近于0就越能表示函数在点(x,f(x))的变化趋势.

斜率也就是 

(f(x+h)-f(x))/(x+h-x)

也就是

(f(x+h)-f(x))/h

可以记做f'(x),读作f prime x.把f(x)和f(x+h)替换为使用x表示.也就是

f'(x)=(2(x+h)^2+1 - (2x^2 + 1))/h

简化下就是:

f'(x)=(2x^2+2h^2+4hx+1-2x^2-1)/h

        =2h+4x

当h趋近于0的时候,2h也就趋近于0,也就可以写作:

f'(x)=4x

如果我们把球扔在了函数上的点(5,51)上,穿过这一点的直线的斜率是4x也就是4*5=20.有了斜率m=20和直线上的一个点(5,51)代入公式y=mx+b不难求出b,最后直线可以表示为:

y=20x-49

画在图上应该更好理解:


可以看出我们只要沿着斜线y=20x-49下降就可以找到函数f(x)=2x^2+1的最低点了.这就是梯度下降.



标签:函数,梯度,微积分,篮球,2x,斜率,2h,搞清,复习
来源: https://blog.51cto.com/u_14256460/2748139