关于本课程的相关资料http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html


根据前面所为,当我们得到Loss方程的时候,我们希望求得最优的Loss方程。为此,我们可以采用了一种方法----Gradien Descent
为什么可以使用这种方法呢,我们先保留这个疑问,先看一下什么是Gradien Descent。

如下图,我们假定某个Loss方程有两个参数,同时我们假定了一个learning rate。每次update 参数与其偏微分learning rate的差

那么这样做会有什么问题呢?如何优化这种做法呢?


Tuning your learning rates

如下图,当我们取的learning rate太大或者太小都会出现:梯度下降的效果达不到我们预期的目标。所以我们必须仔细考虑好learning rate

所以我们希望可以做到以下两点:

  • At the beginning, we are far from the destination, so we use larger learning rate
  • After several epochs, we are close to the destination, so we reduce the learning rate

Learning rate cannot be one-size-fits-all
所以我们是否能够给不同的参数以不同的learning rate以达到我们的目的?

为此:我们可以使用一种叫 Adagrad 的方法。
我们最开始参数更新的方法如下图:

其中:

为了使得learning rate的变化达到我们理想的效果,Adagrad在每次参数update的时候将变换后的learning rate除以所有前面参数偏微分的均方根,如下图所示:

其中:

这样化简可以得到Adagrad后的式子:

那么是如何想到用Adagrad这样一个方法的呢?

  • 看看课程就了解了……

Stochastic Gradient Descent

我们每次从样本中随机选出一个,求得其Loss方程,然后再不断进行迭代。

这样因为部分样本跨度较大,使得迭代过程中,我们更快接近最优的Loss方程,如下图所示:


Feature Scaling

Feature Scaling的做法是让特征值的分布都比较接近,如下图所示:

这样就会加速我们接近最优解:

而我们的做法就是,求得某个特征值在所有样本下的平均值和标准差,然后update特征值:


回到最初:

Gradien Descent从哪里来?

我们在Loss方程中位于某个点,为了达到最优的Loss方程,我们可以每次往前跨出一步。所以我们可以在该点附近画一个圈圈,然后选择圈圈内最优的点,然后再迭代。

利用泰勒公式,将当前的Loss方程化简:

此时我们为了是Loss方程最优(即最小),我们就要选取适当的值。

由于S为常量,我们不用考虑,则只需要考虑:

根据数学知识,我们知道两个向量相乘,值要最小,那么这两个向量应该为相反向量,即为(u,v)向量的相反向量

同时,在满足:的条件下,我们很容易得到:

而这个式子就是gradient descent,其中的系数n就决定了这个相反向量的长度,也就是learning rate,也就是和步长;负号则是表示(u,v)向量的相反。

现在让我们回到泰勒公式成立的条件,当我们的半径d足够小的时候,泰勒公式的一阶展开式:

才会足够准确。

所以如果我们只是一阶展开,我们的步子就不能太大。如果我们的模型足够复杂,我们的步子就可以往前多迈一些。

因此,learning rate便决定着整个推导的条件是否足够准确,当我们的learning rate太离谱的时候,我们很难得到所期望的结果

END

找个女孩子跨年有没有啊???

# ML学习小笔记—Gradien Descent的更多相关文章

  1. # ML学习小笔记—Linear Regression

    Regression Output a scalar Model:a set of function 以Linear model为例 y = b+w * $x_cp$ parameters:b,W f ...

  2. # ML学习小笔记—Classification

    关于本课程的相关资料http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html 通过模型可以分类输入,此时根据分类结果的正确与否会有一个Loss函数.找 ...

  3. # ML学习小笔记—Where does the error come from?

    关于本课程的相关资料http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17.html 错误来自哪里? error due to "bias" ...

  4. English - 英语学习小笔记

    1.It is...to do sth:做某事是.... 解析:It 是形式主语,后面一半接形容词做表语,to do sth是不定式短语作真正主语. 2.make do和make doing是两种表达 ...

  5. WEB学习小笔记

    环境基于WIN10.IDEA最新版.JDK1.8.TOMCAT9 下面说的有错的地方希望指出,谢谢. STRUT2 1.在maven下的时候系统会系统创建一个叫做log4j的配置文件,但是到了这个版本 ...

  6. SQL 学习小笔记

    1.FOUND_ROWS() 题目: ,; 在上边sql中使用什么选项可以使 SELECT FOUND_ROWS()忽略LIMIT子句,返回总数? *答案* : SQL_CALC_FOUND_ROWS ...

  7. java学习小笔记(三.socket通信)【转】

    三,socket通信1.http://blog.csdn.net/kongxx/article/details/7288896这个人写的关于socket通信不错,循序渐进式的讲解,用代码示例说明,运用 ...

  8. MongoDB 学习小笔记

    1.配置:mongod --dbpath=D:\MongoDB\data mongo2.基本的增删查改 find() update()-- 整体更新,局部更新. 修改器: $inc db.person ...

  9. vue 的个人学习小笔记

    一.vite2.0+vue3.0+ts 创建.配置 个人公众号文章地址 个人github仓库地址 1.Vite 创建 vue3 项目: 1.1.npm 常用命令 1.npm 查看版本号 npm vie ...

随机推荐

  1. rest_framework -- mixins&generics

    上面的mixins.generics都是rest_framework里的模块,我们可以继承其中的某些类,达到代码量减少的效果,这里充分体现出了面向对象的继承 一.mixins模块 mixins : f ...

  2. 【PTA 天梯赛】L2-026. 小字辈(广搜+邻接表)

    本题给定一个庞大家族的家谱,要请你给出最小一辈的名单. 输入格式: 输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号.随后第二行 ...

  3. 微信小程序bindtap与catchtap的区别

    1.什么是事件 (1) 事件是视图层到逻辑层的通讯方式. (2) 事件可以将用户的行为反馈到逻辑层进行处理. (3) 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数. (4) ...

  4. jquery点击li 获取当前父节点所在类的索引

    jquery点击li 获取当前父节点所在类的索引 $('.jbcz').find('.content li').click(function(){ //alert($('.jbcz').find('. ...

  5. PHP-提升PHP性能的几个扩展

    下面介绍的几个扩展原理都是对OPCODE进行缓存(Opcode缓存原理查看http://www.cnblogs.com/JohnABC/p/4531029.html): Zend Opcache: 由 ...

  6. ZooKeeper(1)-入门

    一. Zookeeper工作机制 二.Zookeeper特点 三.Zookeeper数据结构 四.Zookeeper应用场景 统一命名服务 统一配置管理 统一集群管理 服务器动态上下线 软负载均衡

  7. python3 练习题100例 (二十二)输入两个字符串,输出两个字符串集合的并集

    题目内容: 输入两个字符串,输出两个字符串集合的并集. 为保证输出结果一致,请将集合内元素排序之后再输出, 如对于集合aset,可输出sorted(aset). 输入格式: 共两行,每一行为一个字符串 ...

  8. hack游戏攻略(黑吧安全吧的黑客闯关游戏)古墓探秘

    2019.2.11 这个是找到的一个黑客游戏,就是一关一关,挺像ctf的,玩玩也挺有意思,还能涨知识. 地址:http://hkyx.myhack58.com/ 入口: 入口就是这样的.提示是 图内有 ...

  9. Manacher(马拉车)学习笔记

    Manacher可以有效的在\(O(n)\)时间内解决一个字符串的回文子串的题目 目录 简介 讲解 推介 简单的练习 恐怖的练习QAQ 小结 简介 开头都说了,Manacher是目前解决回文子串的最有 ...

  10. AES128加密-S盒和逆S盒构造推导及代码实现

    文档引用了<密码编码学与网络安全--原理和实践>里边的推导过程,如有不妥,请与我联系修改. 文档<FIPS 197>高级加密标准AES,里边有个S盒构造,涉及到了数论和有限域的 ...