动手学深度学习——基础优化算法梯度下降,小批量随机梯度下降
一、梯度下降算法
- 挑选一个初始值w0;
- 重复迭代参数t=1,2,3;
- 在接下来不断的更新w0,使它接近最优解;
- 具体来说,法则如下:
wt等于wt的上一时刻减去η乘以损失函数关于wt的上一时刻的梯度。
沿梯度方向将增加损失函数值。
η:是指学习率,我沿着这个方向每次走多远。
学习率:步长的超参数,是需要人为指定的一个值。
注意:
选择学习率:
- 不能太小,如果选的太小,每次的步长有限,每到达一个点都需要走好多步(计算梯度是很贵的,尽量少的计算梯度);
- 也不能太大,如果太大就可能迈过要下降的地方,使的一直在震荡,并没有真正的下降。
二、小批量随机梯度下降
在整个训练集上算梯度太贵,(需要把所有的训练集重新算一遍),一个深度神经网络模型可能需要数分钟至数小时,代价太大了,这时我们就可以随机采样b个样本i1,i2,....... ,ib来近似损失
当b很大的时候,计算是精确的,当b很小的时候可能没那么精确,但是b很小的时候计算它的梯度是很容易的,因为梯度的计算复杂度和样本的个数是线性相关的。这里b叫做批量大小,是另一个重要的超参数。
注意:
选择批量大小:
- 不能太小,每次计算量太小,不适合并行来最大利用计算资源;
- 也不能太大,内存和批量大小时成正比的。如果使用GPU,内存是一个很大的瓶颈,内存消耗增加,浪费计算;
三、总结
1、梯度下降通过不断沿着反梯度方向更新参数求解;好处是,不需要知道显示解是什么样子,只需要知道怎么求导就行了。
2、小批量随机梯度下降是深度学习默认的求解算法;一般来说是最稳定最简单的。
3、两个重要的超参数是批量大小和学习率。
动手学深度学习——基础优化算法梯度下降,小批量随机梯度下降相关推荐
- 动手学深度学习-过拟合、欠拟合及其解决方案;梯度消失、梯度爆炸;循环神经网络进阶
一.过拟合.欠拟合及其解决方案 前序知识点 模型选择 正则化:添加参数的惩罚项,防止过拟合.有L2正则化与L1正则化. 奥卡姆剃刀原则:有多个假设模型时,应该选择假设条件最少的. 模型的泛化能力:指模 ...
- 动手学深度学习(PyTorch实现)(一)--线性回归
线性回归 前言 1. 线性回归的基本要素 1.1 模型 1.2 数据集 1.3 损失函数 1.4 优化函数 2. 线性回归的PyTorch实现 2.1 导入相应的包 2.2 生成数据集并读取 2.3 ...
- 《动手学深度学习 PyTorch版》学习笔记(三):线性回归
线性回归输出是一个连续值,因此适用于回归问题.回归问题在实际中很常见,如预测房屋价格.气温.销售额等连续值的问题. 一.基本要素 摘自原书 模型定义 设房屋的面积为 x1,房龄为 x2,售出价格为 y ...
- 《动手学深度学习》笔记---3.16
3.16 实战Kaggle比赛:房价预测 3.16.2 读取数据集 # 导入所需的模块和包%matplotlib inline import d2lzh as d2l from mxnet impor ...
- 资源 | 李沐等人开源中文书《动手学深度学习》预览版上线
来源:机器之心 本文约2000字,建议阅读10分钟. 本文为大家介绍了一本交互式深度学习书籍. 近日,由 Aston Zhang.李沐等人所著图书<动手学深度学习>放出了在线预览版,以供读 ...
- 《动手学深度学习》—学习笔记
文章目录 深度学习简介 起源 特点 小结 预备知识 获取和运行本书的代码 pytorch环境安装 方式一 方式二 数据操作 创建 运算 广播机制 索引 运算的内存开销 NDArray和NumPy相互变 ...
- 08 线性回归 + 基础优化算法【动手学深度学习v2】
线性回归 输出层不当成一层 输入层和权重层放一起 x和y是列向量 因为loss=1/2(y-y_hat)^2 又因为y_hat的平均值=1/n(xi*w+b)=1/n(Xw+b) 唯一一个有显示解的模 ...
- 第3章(3.11~3.16节)模型细节/Kaggle实战【深度学习基础】--动手学深度学习【Tensorflow2.0版本】
项目地址:https://github.com/TrickyGo/Dive-into-DL-TensorFlow2.0 UC 伯克利李沐的<动手学深度学习>开源书一经推出便广受好评.很多开 ...
- 梯度消失和梯度爆炸_知识干货-动手学深度学习-05 梯度消失和梯度爆炸以及Kaggle房价预测...
梯度消失和梯度爆炸 考虑到环境因素的其他问题 Kaggle房价预测 梯度消失和梯度爆炸 深度模型有关数值稳定性的典型问题是消失(vanishing)和爆炸(explosion). 当神经网络的层数较多 ...
最新文章
- Focal Loss升级:让Focal Loss动态化,类别极端不平衡也可以轻松解决
- CSP认证	201312-1出现次数最多的数[C++题解]:简单题
- c++ 预处理命令 预定义变量用法
- Mozilla Firefox 在用户访问被黑客攻击的网站时发出警告
- python,可变参数
- gitee怎么仓库间传文件_薄书的Gitee 码云使用教程学习纪录 - 薄书
- python全栈工程师视频_python全栈工程师视频教程
- 三自由度机械手腕设计机构设计
- WPS如何并排放置两张图片_动图演示如何制作XRD叠图与PDF卡线图
- 全文检索语句中的AND和OR的用法
- 2022年最新云开发去水印小程序源码
- [Kafka] Kafka基本架构
- Hyper-V搭建centos8
- mac删除core文件并关闭core文件以节约磁盘
- Linux下修复U盘坏块,DiskGenius修复U盘坏块问题巧借
- Swift 头像上传(2)http://blog.csdn.net/wei_chong_chong/article/details/52611110
- 人脸口罩识别的项目总结
- RSD高程产品(DEM/DSM)的几个精度问题
- Go 语言入门三部曲(二):能用 Go 语言写管理系统
- 计算机毕业设计java+ssm的仓库进销存系统(源码+系统+mysql数据库+Lw文档)