专栏首页go语言核心编程技术梯度下降算法中的偏导公式推导

梯度下降算法中的偏导公式推导

前言:最近在跟着吴恩达老师(Andrew Ng)的视频课程学习机器学习,该视频是2014年拍的,虽然有点老,但理论却并不过时,是非常经典的机器学习入门教程,也正是因为这是入门教程,所以视频中的有些数学知识只给出了结论却未进行推导,这对于入门来说再适合不过了,但如果想深入学习机器学习理论和算法就得对那些数学公式的来龙去脉有比较清楚的认识。所以随着学习的深入,我不知道为什么的地方也越来越多,所以我决定先搞清楚视频中涉及到的那些未被推导的数学公式之后再继续学习后面的视频教程。在搞清楚那些数学知识的时候我会在纸上进行演算,但纸质介质对我来说并不利于长时间保存因而不利于备忘,于是决定把学习到的知识和心得组织成一系列文章发布在公众号上,一方面利于自己温故而知新,另一方面也希望这些文字对有同样疑惑的网友有那么一丁点儿用处。

本文是上述所说的系列文章的第一篇,主要对梯度下降算法中的偏导公式进行推导。梯度下降算法是我们在吴恩达老师的教程中遇到的第一个算法,算法中的对代价函数的求导也是我们需要自己推导的第一个数学结果。

我们先来看看梯度下降算法和其代价函数,下图是我从视频中截取出来的:

上图左边是梯度下降算法伪码,右边是h和J函数的定义。需要注意的是代价函数J的自变量是和,而不是x和y,x和y只是一些常量。

梯度算法的核心是反复迭代改变和的值直到代价函数J的值达到最小,这里关键是如何去求J的偏导数。

下面我们就尝试着来推导它。代入J可得

根据导函数的加法运算法则(f + g)' = f' + g',也就是多个函数的和的导数等于各函数的导数的和,我们可得到

又根据复合函数的求导法则f'(g(x)) = f'(u)g'(x),有

到此,余下部分的偏导就比较简单了,它是对一个二元一次函数的自变量求偏导,根据偏导的定义,对求偏导数时,我们把看作常数,对求偏导数时,我们把看作常数。于是有:

把上面两式分别带入(1)式可得:

至此推导完成,可以跟吴恩达老师给出的结果对比一下确认其正确性。

后记

通过这段时间的学习,发现数学对机器学习真的是太重要了,要不然只知道What而不知道Why。可惜的是上学时对数学一点都不感冒导致现在重新来学习。在寻找微积分教材的过程中发现了下面两本很不错的书,顺便推荐给大家。我看的是第一本,第二本评价也很高,但内容没有第一本全。

本文分享自微信公众号 - 源码游记(gh_8b5b60477260),作者:爱写程序的阿波张

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 为什么tcp的TIME_WAIT状态要维持2MSL

    本文主要分析为什么TIME_WAIT状态的持续时间是2MSL而不是1MSL,3MSL或其它的时长,而不会详细描述为什么需要TIME_WAIT状态。

    阿波张
  • 深入理解defer(上)defer基础

    f() 函数首先通过调用 getResource() 获取了某种资源(比如打开文件,加锁等),然后进行了一些我们不太关心的操作,但这些操作可能会导致 f() ...

    阿波张
  • go调度器源代码情景分析之九:操作系统线程及线程调度

    要深入理解goroutine的调度器,就需要对操作系统线程有个大致的了解,因为go的调度系统是建立在操作系统线程之上的,所以接下来我们对其做一个简单的介绍。

    阿波张
  • BAT机器学习面试1000题系列

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_35512245/articl...

    大黄大黄大黄
  • javascript算法学习打卡(第二周)

    对这个问题的进一步扩展,比如说我不仅要求重复的数字,我还要计算出出现次数最多的数字呢?笔者写了一个方法,供大家参考:

    徐小夕
  • 1000 面试题,BAT 机器学习面试刷题宝典!

    为了通过层层考验,刷题肯定是必不可少的。本文作者根据网络在线发布的BAT机器学习面试1000题系列,整理了一份面试刷题宝典。

    小小詹同学
  • 浅说深度学习之一-从到

    上一次,司德谭同学给大家介绍了机器学习的基本概念和特征提取的具体例子,相信大家对于机器学习已经有了一个基本的概念。 和君商学院的王明夫院长曾经给我们提出了一个A...

    企鹅号小编
  • 【斯坦福CS229】一文横扫机器学习要点:监督学习、无监督学习、深度学习

    【磐创AI导读】:提及机器学习,很多人会推荐斯坦福CSS 229。本文便对该课程做了系统的整理。包括监督学习、非监督学习以及深度学习。可谓是是学习ML的“掌上备...

    磐创AI
  • 【斯坦福CS229】一文横扫机器学习要点:监督学习、无监督学习、深度学习

    给定一组与输出{y(1),...,y(m)}相关联的数据点{x(1),...,x(m)},我们希望构建一个能够根据x值预测y值的分类器。

    新智元
  • 机器学习中的最优化算法总结

    对于几乎所有机器学习算法,无论是有监督学习、无监督学习,还是强化学习,最后一般都归结为求解最优化问题。因此,最优化方法在机器学习算法的推导与实现中占据中心地位。...

    SIGAI学习与实践平台

扫码关注云+社区

领取腾讯云代金券