我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。

已经有人记了笔记(很用心,强烈推荐):
https://github.com/Sakura-gh/ML-notes

本节对应笔记:

  • Regression:linear model
  • Gradient Descent

本节内容综述

  1. 首先复习:GradientLoss的等高线的法线方向;
  2. 接下来是关于梯度下降的技巧,一是“小心地调正学习率”,有没有方法自动地调学习率呢?Adaptive Learning Rates是一个基础的方法。但还不够好。
  3. 一个更复杂的、典型的方法是Adagrad,介绍了其简单的推导与公式的理解。
  4. Stochastic Gradient Descent;
  5. Feature Scaling;
  6. Gradient Descent为何有效?以及本身存在局部最优的算法。

小细节

Tuning your learning rate carefully & Adagrad

Adagrad就是将不同参数的learning rate分开考虑的一种算法,对于某个参数,迭代到后面速度会越来越慢,当然这只是adaptive算法中最基础的。

在 Adagrad 里存在“矛盾”?

解释一:∑i=0t(gi)2\sqrt{\sum^t_{i=0}(g^i)^2}∑i=0t​(gi)2​与gtg^tgt相互构成“比”的关系,用于表示一种反差,如下图。

解释二:李宏毅老师解释,“gradient越大,离最低点越远这件事情在有多个参数的情况下是不一定成立的”。如下图(c比a里最低点更近,但是其梯度更大)。

类似牛顿法思想,最合适的方法是将二次微分作为分母。但是求二次微分可能计算量更大,因此,使用 Adagrad 求近似。

Stochastic Gradient Descent

对于:L=∑n(y^n−(b+∑wixin))2L=\sum_n(\hat{y}^n - (b+ \sum w_i x_i^n))^2L=∑n​(y^​n−(b+∑wi​xin​))2

正常的Gradient Descent:

  • θi=θi−1−η∇L(θi−1)\theta^i = \theta^{i-1} - \eta \nabla L(\theta^{i-1})θi=θi−1−η∇L(θi−1)

Stochastic Gradient Descent:

  • Pick an example xnx^nxn
  • Ln=(y^n−(b+∑wixin))2L^n = (\hat{y}^n - (b + \sum w_i x_i^n))^2Ln=(y^​n−(b+∑wi​xin​))2
  • Loss for only one example
  • θi=θi−1−η∇Ln(θi−1)\theta^i = \theta^{i-1} - \eta \nabla L^n(\theta^{i-1})θi=θi−1−η∇Ln(θi−1)

显然,后者迭代次数更多,更加灵活,带来效果更好。

Feature Scaling

特征缩放:

  • 当特征的分布范围很不一样时,最好将这些不同feature的归为相同范围。

如下图,显然做了 feature scaling 后,方向更加正确。

feature scaling 方法有很多:

  • 比如标准化xir←xir−miσix_i^r \leftarrow \frac{x_i^r - m_i}{\sigma_i}xir​←σi​xir​−mi​​

Gradient Descent为何有效

考虑泰勒展开,在数学上可以推导出,最优的下降方向就是求梯度。不考虑二阶及以上梯度,因为这样带来的时间效率得不偿失。

此外,Gradient Descent有可能陷入局部最优。

李老师用帝国时代我的世界举例,非常生动。很优秀,名不虚传。

【李宏毅2020 ML/DL】P5-7 Gradient Descent_1-3相关推荐

  1. 【李宏毅2020 ML/DL】P1 introduction

    [李宏毅2020 ML/DL]P1 introduction 本节主要介绍了 DL 的15个作业 英文大意 Regression: 回归分析 Classification: 分类 RNN: 循环神经网 ...

  2. 【李宏毅2020 ML/DL】P14 Tips for training DNN | 激活函数、Maxout、正则、剪枝 Dropout

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

  3. 李宏毅svm_李宏毅2020 ML/DL补充Structured Learning Structured SVM

    李宏毅2020 ML/DL补充Structured Learning Structured SVM [李宏毅2020 ML/DL]补充:Structured Learning: Structured ...

  4. 【李宏毅2020 ML/DL】P86-87 More about Domain Adaptation

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课由助教 Chao Brian 讲解. 首先讲解些领域适配的基础内容,包括名词.定义等. 接 ...

  5. 【李宏毅2020 ML/DL】P59 Unsupervised Learning - Auto-encoder

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  6. 【李宏毅2020 ML/DL】P58 Unsupervised Learning - Neighbor Embedding | LLE, t-SNE

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  7. 【李宏毅2020 ML/DL】P15 Why Deep-

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

  8. 【李宏毅2020 ML/DL】补充:Ensemble: Bagging, Boosting, Adaboost, Gradient Boosting, Stacking

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本次笔记补充视频 BV1JE411g7XF 的缺失部分.在另一个UP主上传的2017课程BV13x411v7U ...

  9. 【李宏毅2020 ML/DL】补充:Meta Learning - Gradient Descent as LSTM

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本次笔记补充视频 BV1JE411g7XF 的缺失部分.上节课李老师讲了元学习中的参数初始化方法:MAML 与 ...

最新文章

  1. 1小时学会:最简单的iOS直播推流(七)h264/aac 硬编码
  2. php对象当参数传递 php深复制和浅复制
  3. VTK:相互作用之DoubleClick
  4. 鹅厂又赢了!游戏不再是玩家的资产,我们只有“使用权”不能交易
  5. MySQL数据库时区问题导致java程序无法连接数据库
  6. mysql 判断字段为null表示 false 其它为true_日拱一卒,MySQL数据库 常用SQL优化技巧 十一式...
  7. php为什么查询语句加上order by就显示不出来,sql会查出结果 php页面偶尔显示空白 没有从sql得到结果...
  8. 【深入理解Java虚拟机学习笔记】第三章 垃圾收集器与内存分配策略
  9. OSPF邻接关系建立过程
  10. EXTJS 5 开发环境搭建
  11. 马斯克再次创造历史!三位太空游客坐五手火箭成功升空,今晚达到空间站,票价3.5亿...
  12. 电子书分页,翻页效果,字体大小调整和基本功能实现
  13. Access2016学习12
  14. LimeSDR 中文教程 (三)
  15. 【PTA】【C语言】球体的表面积及体积
  16. html5 自动刷新,javascript – 每5分钟自动刷新一次
  17. android如何设置自适应大小的背景图片,Android – 设置壁纸以适应手机屏幕尺寸...
  18. Windows登录多微信
  19. c语言给图片打码,OpenCV (一):初相识:马赛克处理图片
  20. 浦东人大常委会副主任刘宇青一行莅临零数科技指导工作

热门文章

  1. 解决java中对URL编码的问题
  2. 【ROS系统】解决找不到用户工作空间下的程序包的问题——E:No such package
  3. Bootstrap弹出层(modal)垂直居中简单解决方案(无需修改js)
  4. springboot系列六、springboot配置错误页面及全局异常
  5. mac上安装webpack报错解决方法Hit error EACCES: permission denied, mkdir ‘/usr/local/lib/node_modules/webpack
  6. MySQL的IFNULL解决判空问题
  7. Tomcat:Can‘t load IA 32-bit .dll on a AMD 64-bit platform问题的解决
  8. deepin安装卡在deepin标志界面解决方案
  9. 在使用Navicat for MySQL 出现 异常“You have an error in your SQL syntax......“
  10. 蓝屏代码PAGE_FAULT_IN_NONPAGED_AREA的解决方法