梯度下降学习

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

吴恩达老师讲的视频(果然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也可以同理进行迭代替换

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 现在我们设计了一个神经网络,但是它怎样通过学习来识别手写数字呢?首先需要的是被称为训练数据集的数据集合。我们将使用...
    魔法炼金术阅读 693评论 0 2
  • 1. 从梯度下降开始 这两天学习了机器学习课程的第二课,课程内容是围绕梯度下降展开的,下面就我的学习内容做一个总结...
    Zero黑羽枫阅读 646评论 0 3
  • 如何选择学习率以确保梯度下降工作正常? 一般有两种办法: 调试梯度下降。 在x轴上绘制具有迭代次数的图。 绘制成本...
    奈何qiao阅读 875评论 0 0
  • 文中截图均来自Andrew Ng 视频,文字总结部分全为原创。 如何得知我们的梯度下降算法是在正常工作的 梯度下降...
    0过把火0阅读 2,672评论 0 0
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,427评论 0 2