吴恩达老师深度学习笔记第二课第一周

第一周深度学习的实践层面

1.1训练_开发_测试集
主要内容:对训练集测试集和验证集的定义,生成和作用的介绍
吴恩达老师深度学习笔记第二课第一周
训练(train)集:训练模型
验证集(Dev set):验证训练集产生的模型哪一个更好
测试集(test set):用来评估最后产生的模型(可以没有)
注意事项:尽量保证测试集和验证集来自同一分布

1.2偏差_方差
主要内容:通过分析训练误差和验证误差来分析偏差和方差的高低
吴恩达老师深度学习笔记第二课第一周
吴恩达老师深度学习笔记第二课第一周
1.3机器学习基础
主要内容:讲述找到低方差,低偏差的模型的基本方法
基本方法:初始模型训练完成后,首先知道算法的偏差高不高,(如果偏高,试着评估训练集和训练数据的性能,如果确实不好,选择新网络等方法(一般使用更大网络),直到拟合数据至少拟合训练集),当偏差可以接受,检查方差(评估方差,就要查看验证集性能,如果方差高最好的办法就是更多数据),最后就是找到一个低方差,低偏差的模型
1.4正则化
主要内容:神经网络应用正则化L2的过程
正则化;可以解决过拟合的问题
吴恩达老师深度学习笔记第二课第一周
吴恩达老师深度学习笔记第二课第一周
1.5为什么正则化可以减少过拟合
主要内容:通过例子举例说明正则化减少过拟合过程

吴恩达老师深度学习笔记第二课第一周直观理解:当λ足够大,把多隐藏单元的权重设为0,消除了隐藏单元的许多影响,神经网络会被大大简化为很小的网络,但是深度仍然很大,他会从过拟合状态更接近欠拟合状态,中间会有一个λ的值接近(just right)适度拟合状态。
吴恩达老师深度学习笔记第二课第一周
使用正则化时J函数被重新定义,其包括L2正则式
1.6Dropout正则化
主要内容:dropout的工作原理
1)原理简介
吴恩达老师深度学习笔记第二课第一周
2)实现dropout的方法:反向随机失活(inverted dropout)
吴恩达老师深度学习笔记第二课第一周
这个我学的不是很明白,还是建议做作业感受和掌握吧
1.7理解Dropout
主要内容:Dropout进行了更深一层的介绍
○1产生收缩权重的平方范数的效果,并完成一些预防过拟合的外层正则化
功能类似L2正则化
○2每一层的keep_prob参数可能变化
1.8其他正则化方法
主要内容:除了L2正则化和随机失活(dropout)正则化 ,其他减少过拟合的方法
1)通过水平翻转(裁剪)图片,使训练集增加一倍
对于字符,还可以通过扭曲字符来增加额外训练集
2)early stopping

吴恩达老师深度学习笔记第二课第一周

1.9归一化输入

主要内容:介绍归一化输入的方法和原因
1)零均值化
每个变量都减去平均数
2)归一化方差
每个变量都除以方差
吴恩达老师深度学习笔记第二课第一周

要用同样的办法归一化训练集和测试集
3)归一化输入的原因
吴恩达老师深度学习笔记第二课第一周
1.10梯度消失与梯度爆炸
主要内容:梯度消失和爆炸的含义
1)定义:就是说当神经网络深度较大时,如果W的值都大于1,或者都小于1,那么**函数的值将会随着深度增加,以指数函数增加(梯度爆炸)或者下降(梯度消失)
1.11神经网络得到权重初始化
主要内容:介绍了权重初始化的方法和如何避免梯度消失和梯度爆炸
设置某层权重矩阵W,为一个随机矩阵,然后除l层上拟合的单元数量(如果使用的是Relu**函数,而不是1/n,方差设置为2 /n效果会更好)
1.12梯度的数值逼近
双边误差公式结果更准确,我们用双边逼近法来表示导数

吴恩达老师深度学习笔记第二课第一周
1.13梯度检验
1)梯度检验的作用:帮助检验网络是否正确以及debug
2)梯度检验的实现:首先把所有参数转换成一个巨大的向量数据(把矩阵W转换成一个向量,做连接运算,得到一个巨型的向量θ),得到J(θ);用dw,db初始化大向量dθ;循环执行对每一个θ组成元素,计算Dθapprox [i]的值(用双边误差算法)
吴恩达老师深度学习笔记第二课第一周
当结果在e-7那么证明很好!如果在e-5,甚至e-3那么几乎就是有bug,这时应该检查所有θ值,看是否有突然很大或者很小的值。
1.14关于梯度检验实现的注记
不要再训练中使用梯度检验,它只用于调试
当算法梯度检验失败,要检查所有项
在梯度检验过程中如果使用正则化,请注意正则项
不可以和dropout同时使用
如果随机初始值较小,反复运行网络之后,再重新运行梯度检验(没太懂,但是貌似不常用)