【李宏毅2020 ML/DL】P5-7 Gradient Descent_1-3
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。
已经有人记了笔记(很用心,强烈推荐):
https://github.com/Sakura-gh/ML-notes
本节对应笔记:
- Regression:linear model
- Gradient Descent
本节内容综述
- 首先复习:
Gradient
是Loss
的等高线的法线方向; - 接下来是关于梯度下降的技巧,一是“小心地调正学习率”,有没有方法自动地调学习率呢?
Adaptive Learning Rates
是一个基础的方法。但还不够好。 - 一个更复杂的、典型的方法是
Adagrad
,介绍了其简单的推导与公式的理解。 - Stochastic Gradient Descent;
- Feature Scaling;
- 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+∑wixin))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+∑wixin))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←σixir−mi
Gradient Descent为何有效
考虑泰勒展开,在数学上可以推导出,最优的下降方向就是求梯度。不考虑二阶及以上梯度,因为这样带来的时间效率得不偿失。
此外,Gradient Descent有可能陷入局部最优。
李老师用帝国时代
和我的世界
举例,非常生动。很优秀,名不虚传。
【李宏毅2020 ML/DL】P5-7 Gradient Descent_1-3相关推荐
- 【李宏毅2020 ML/DL】P1 introduction
[李宏毅2020 ML/DL]P1 introduction 本节主要介绍了 DL 的15个作业 英文大意 Regression: 回归分析 Classification: 分类 RNN: 循环神经网 ...
- 【李宏毅2020 ML/DL】P14 Tips for training DNN | 激活函数、Maxout、正则、剪枝 Dropout
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...
- 李宏毅svm_李宏毅2020 ML/DL补充Structured Learning Structured SVM
李宏毅2020 ML/DL补充Structured Learning Structured SVM [李宏毅2020 ML/DL]补充:Structured Learning: Structured ...
- 【李宏毅2020 ML/DL】P86-87 More about Domain Adaptation
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课由助教 Chao Brian 讲解. 首先讲解些领域适配的基础内容,包括名词.定义等. 接 ...
- 【李宏毅2020 ML/DL】P59 Unsupervised Learning - Auto-encoder
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...
- 【李宏毅2020 ML/DL】P58 Unsupervised Learning - Neighbor Embedding | LLE, t-SNE
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...
- 【李宏毅2020 ML/DL】P15 Why Deep-
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...
- 【李宏毅2020 ML/DL】补充:Ensemble: Bagging, Boosting, Adaboost, Gradient Boosting, Stacking
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本次笔记补充视频 BV1JE411g7XF 的缺失部分.在另一个UP主上传的2017课程BV13x411v7U ...
- 【李宏毅2020 ML/DL】补充:Meta Learning - Gradient Descent as LSTM
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本次笔记补充视频 BV1JE411g7XF 的缺失部分.上节课李老师讲了元学习中的参数初始化方法:MAML 与 ...
最新文章
- 1小时学会:最简单的iOS直播推流(七)h264/aac 硬编码
- php对象当参数传递 php深复制和浅复制
- VTK:相互作用之DoubleClick
- 鹅厂又赢了!游戏不再是玩家的资产,我们只有“使用权”不能交易
- MySQL数据库时区问题导致java程序无法连接数据库
- mysql 判断字段为null表示 false 其它为true_日拱一卒,MySQL数据库 常用SQL优化技巧 十一式...
- php为什么查询语句加上order by就显示不出来,sql会查出结果 php页面偶尔显示空白 没有从sql得到结果...
- 【深入理解Java虚拟机学习笔记】第三章 垃圾收集器与内存分配策略
- OSPF邻接关系建立过程
- EXTJS 5 开发环境搭建
- 马斯克再次创造历史!三位太空游客坐五手火箭成功升空,今晚达到空间站,票价3.5亿...
- 电子书分页,翻页效果,字体大小调整和基本功能实现
- Access2016学习12
- LimeSDR 中文教程 (三)
- 【PTA】【C语言】球体的表面积及体积
- html5 自动刷新,javascript – 每5分钟自动刷新一次
- android如何设置自适应大小的背景图片,Android – 设置壁纸以适应手机屏幕尺寸...
- Windows登录多微信
- c语言给图片打码,OpenCV (一):初相识:马赛克处理图片
- 浦东人大常委会副主任刘宇青一行莅临零数科技指导工作
热门文章
- 解决java中对URL编码的问题
- 【ROS系统】解决找不到用户工作空间下的程序包的问题——E:No such package
- Bootstrap弹出层(modal)垂直居中简单解决方案(无需修改js)
- springboot系列六、springboot配置错误页面及全局异常
- mac上安装webpack报错解决方法Hit error EACCES: permission denied, mkdir ‘/usr/local/lib/node_modules/webpack
- MySQL的IFNULL解决判空问题
- Tomcat:Can‘t load IA 32-bit .dll on a AMD 64-bit platform问题的解决
- deepin安装卡在deepin标志界面解决方案
- 在使用Navicat for MySQL 出现 异常“You have an error in your SQL syntax......“
- 蓝屏代码PAGE_FAULT_IN_NONPAGED_AREA的解决方法