Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization总结
来源:互联网 发布:安全风险评估矩阵 编辑:程序博客网 时间:2024/06/05 02:47
这门课主要讲解了神经网络中常用的一些调试、优化方法
训练集、开发集、测试集
训练集用来训练网络参数
开发集用来调整网络各个超参数
测试集用来评估网络性能
各部分比例分配如下:
数据量
训练集
开发集
测试集
1,000-10,000
60%
20%
20%
70%
30%
1,000,000
98%
1%
1%
>1,000,000
99.5%
0.25%
0.25%
0.4%
0.1%
模型偏差、方差
偏差
方差
解释
模型预测能力不足(前拟合),表现为训练误差较大
模型泛化能力不足(过拟合),表现为测试误差较大
解决方法
1. 更深、更宽的网络
2. 训练更长时间
3. 更好的优化方法
4. 更优的网络结构
1. 更多的数据
2. 正则化
3. 更优的网络结构
(减小偏差:5.更优的超参数)
正则化
L0正则化:L0范数指向量中非0元素的个数,可以让权重矩阵W更稀疏,但是因为难于优化,一般用L1替代
L1正则化:L1范数指向量中各元素绝对值的和。
L2正则化:L2范数指向量中各元素平方和的二次方根,让权重更加平滑。
L2正则化每次更新时,w都变得更小,所以L2正则化也叫做权重衰减
Dropout正则化:一定要在激活后除以keep-prob,确保该层的期望不变。测试阶段不可用
减小方差的其他方法:
data augmentation:对于图像有 翻转、裁剪、扭曲、旋转等操作
early stopping:在验证误差开始上升时,停止训练
梯度消失和梯度爆炸
网络过深时产生的现象
解决方法:
1.权重初始化时,让权重满足方差为(relu)或(Xavier, tanh)或的高斯分布,其中表示第l层的输入数据的维度
2.用relu替代sigmoid和tanh
3.clip gradients
4.类似resnet中的shortcut connection
加速训练的方法
1.对输入数据进行归一化处理,即减去平均值,除以方差
2.mini-batch梯度下降(一般取64,128,256,512,1024)和随机梯度下降
3.Momentum梯度下降:使得系统有机会跨过局部最优点
此公式为指数加权平均,偏差修正为
4.Adagrad:由于一直累加梯度的平方,每个元素的学习率一直在降低或不变。
5.RMSprop:使用指数加权平均对Adagrad进行了改进,学习率可以根据情况而不同
6.Adadelta:没有学习率参数
7.Adam:组合了Momentum和RMSprop
一般的,超参数取值为
8.学习率下降
指数衰减
or
离散的学习率下降,如epoch大于某个值时,学习率为多少
超参数调试
优先级:
,hidden units,mini-batch
layers,learning rate decay
搜索超参数时,随机取值,不要使用网格似的取值方法。注意线性取值和对数线性取值。根据训练速度,选择是小心维护一次训练,还是开启多个训练
Batch normalization
一般在激活函数之前进行batch normalization
注意,一个batch normalization有2个参数需要学习,4个参数需要保存
上一篇:Neural Networks and Deep Learning总结
下一篇:Structuring Machine Learning Projects总结
- Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization总结
- COURSE 2 Improving Deep Neural Networks Hyperparameter tuning, Regularization and Optimization
- Improving Deep Neural Networks Regularization 参考答案
- Improving Deep Neural Networks Optimization Methods Homework
- Coursera 吴恩达 Deep Learning 第2课 Improving Deep Neural Networks 第一周 编程作业代码 Regularization
- Neural Networks and Deep Learning总结
- Improving Deep Neural Networks Initialization 参考答案
- Improving Deep Neural Networks Gradient Checking 参考答案
- Improving Deep Neural Networks学习笔记(一)
- Improving Deep Neural Networks学习笔记(二)
- Improving Deep Neural Networks学习笔记(三)
- Improving Deep Neural Networks Tensorflow 参考答案
- Coursera 吴恩达 Deep Learning 第二课 改善神经网络 Improving Deep Neural Networks 第二周 编程作业代码Optimization methods
- Coursera 吴恩达 DeepLearning.ai 第2课 Improving Deep Neural Networks 第二周 测验题 Optimization algorithms
- Neural Networks and Deep Learning
- Neural Networks and Deep Learning
- Neural networks and Deep Learning
- Neural Networks and Deep Learning
- linux 下mysql的安装
- 图像有用区域(bfs)
- 探秘lua词法分析
- Prime Path POJ
- web前端面试入坑(1)
- Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization总结
- tomcat 开启cgi配置
- 剑指offer---数组中的逆序对
- LeetCode331. Verify Preorder Serialization of a Binary Tree
- python批量预处理图片
- C/C++中怎样获取日期和时间
- 最新最全的网站内容联盟大全
- 功能:显示所有用户
- Oracle之分析函数 之 order by子句