梯度下降学习

今天开始学习机器学习,仅供参考的个人理解,如有错误望指正。

吴恩达老师讲的视频(果然b站是个学习的网站)https://www.bilibili.com/video/av15346993?from=search&seid=4468047430738351672

如给定f(x)=wx+b,有多组数据(xi,yi),求目标函数F(x) 即是求w和b的最符合函数的值

可以通过计算每个(yi-f(xi))^2,进行累加(符号不会打= =),得到一个关于w,b的函数J(w,b)


J(w,b)即为代价函数,通过寻找J(w,b)的最小值,使得代价函数最小。

该函数是一个凸函数,目标是通过梯度下降,到达底部。

给定w,b初始值,通过梯度下降,每次都找到最陡峭的方向移动指定的步数,直至达到底部(获得最优解)。

首先给定一维图像J(w)目标是找到一个最优值w,使得J(w)处于最低处

首先如果对J(w)求导得出J'(w),函数在某一点的导数就是该函数所代表的曲线在这一点上的切线(图中橙色的线)的斜率,如果J(w)延正方向值增加,那么导数在该点的值为正(斜率为正值),反正亦然。

设wa为初值,wb为第二个值,在假设一个步数n用来权衡移动的速度那么移动的函数为wb=wa-nJ'(w)。

参考w0处,J'(w)是一个正值,wb=wa-nJ'(w) ,可知wb是小于wa的,那么w的值就向左移动。当然因为步数的不同,步数大了,下降的快,但接近底部时又可能直接越过该值,到达另一边通过多次迭代,最终就得到一个接近最优解的值。

大概就是这样,仅供参考


那么在多维的函数中,也可以用类似的方法找到函数的“底部”,首先要知道什么是偏导数(高数劝退ing)

直接截图,符号不会写.... 那个类似反着的6的符号就是偏导b也可以同理进行迭代替换

最后就可以找到三维的函数底部。

你可能感兴趣的:(梯度下降学习)