Andrew-Coursera-DL课程-笔记part2-1(Practical aspects of Deep Learning)
来源:互联网 发布:华族经典 知乎 编辑:程序博客网 时间:2024/06/03 20:51
Setting up your Machine Learning Application
- Train/Dev/Test sets
总体数量在1000左右时,6:2:2的比例分配Train/Dev/Test sets大小;
总体数量在一百万以上时,98:1:1的比例分配Train/Dev/Test sets大小;
三个数据集需来自相同的分布,Dev/Test数据集大小2000-10000即可,没有test-sets,只有Dev-sets也是可以。 Bias/Variance
Trainset error 1% 15% 15% 0.5% Dev set error 11% 16% 30% 1% high var high bias high bias&high var low bias &low var 训练集有high-bias表现时,延长训练时间,增大网络结构
验证集有high-var表现时,需要更多的数据和正则化处理
Regularizing your neural network
Regularization
L1正则 L2正则
在机器学习或者模式识别中,会出现overfitting,而当网络逐渐overfitting时网络权值逐渐变大,为了避免出现overfitting,会给误差函数添加一个惩罚项,其用来惩罚大的权值。
weight decay(权值衰减惩罚项)使得权值收敛到较小的绝对值,而惩罚大的权值。因为大的权值会使得系统出现过拟合,降低其泛化性能。Why regularization reduces overfitting?
L1正则项是为了使得那些原先处于零(即|w|≈0)附近的参数w往零移动,使得部分参数为零,从而降低模型的复杂度(模型的复杂度由参数决定),从而防止过拟合,提高模型的泛化能力。
L2正则项起到使得参数w变小加剧的效果,但是为什么可以防止过拟合呢?如下图:tanh函数,在0值附近表现为linear,在远离0值的地方更加复杂。一个通俗的理解便是:更小的参数值w意味着模型的复杂度更低,对训练数据的拟合刚刚好(奥卡姆剃刀),不会过分拟合训练数据,从而使得不会过拟合,以提高模型的泛化能力。Dropout Regularization
神经网络中预防过拟合的方法- Understanding Dropout
Intuition:Can’t rely on any one features, so have to spread out weights.
不能依赖于某一个特征,所以需要把权重传播。
和L2正则相似,可以防止过拟合,方式不一样。
dropout 也可以应用在input层,但是一般很少这么用,及时用也是设置成0.9,而不可能设置成0.5,因为如果这样,就会丢掉一大半的特征。
在计算机视觉中很常用。 - Other regularization methods
除了L2和dropout以外,数据集增强(data augument):图像左右反转、旋转、扭曲生成新的训练集;stop early等.
Setting up your optimization problem
- Normalizing inputs
为什么要标准化处理,经过标准化处理后保证所有的特征都在一个数量级, cost function 的优化变得更加简单和快速 - Vanishing / Exploding gradients
在很深的网络中,梯度会指数级的增加或减小,即产生梯度爆炸或梯度消失的现象 Weight Initialization for Deep Networks
如果把所有的weights初始值设置为0会导致所有的hidden层计算是完全重复的(forward propagation和backward propagation时,值完全相同),所以需要随机初始化。随机初始化时比较常见的会选择服从正态分布的随机值。
为什么随机值要选的很小比如0.01,而不可以选100之类的数,因为如果weight设为100,z值会很大,经过sigmod后,梯度或者斜率会变得很小,不利于backward propagation。
除了随机初始化,练习里还提到了 He initialization,随机数的范围是上一层网络的节点数量,sqrt(2./layers_dims[l-1])。比如正常是np.random.randn(..,..) by 10,在这里是 2/(dimension of the previous layer)^0.5.
He initialization works well for networks with ReLU activations.Numerical approximation of gradients
- Gradient checking
梯度校验的数值校验公式:
g(θ)≈J(θ+ϵ)−J(θ−ϵ)/2ϵ,常将 ϵ 设为一个很小的常量,比如 10−4 数量级 - Gradient Ghecking Implementation Notes
- Andrew-Coursera-DL课程-笔记part2-1(Practical aspects of Deep Learning)
- Andrew-Coursera-DL课程-笔记part2-2(Optimization algorithms)
- Coursera deeplearning.ai 深度学习习题2-1-Practical aspects of deep learning
- Andrew-Coursera-DL课程-笔记part2-3(Hyperparameter tuning,Batch Normalization)
- Coursera deeplearning.ai 深度学习笔记2-1-Practical aspects of deep learning-神经网络实际问题分析(初始化&正则化&训练效率)与代码实现
- 深度神经网络优化(一)- Practical aspects of Deep Learning
- deeplearning Note : Practical aspects of Deep Learning
- Andrew Ng's deeplearning Course2Week1 Practical aspects of Deep Learning(深层学习的实用层面)
- Coursera Deep Learning 第2课 Improving Deep Neural Networks 第一周 测验题 Practical aspects of deep learning
- Andrew-Coursera-DL课程-笔记part1-3(Deep neural networks)
- Andrew Ng(吴恩达) deep learning 课程 (coursera)
- Andrew-Coursera-DL课程-笔记part1-1(Neural Networks Basics)
- Andrew-Coursera-DL课程-笔记part1-2(Shallow neural networks)
- Andrew Ng Neural-networks-deep-learning 课程笔记一
- coursera Machine learning Andrew NG 笔记(一)
- Coursera-Deep Learning Specialization 课程之(一):Neural Networks and Deep Learning-weak1
- Coursera-Deep Learning Specialization 课程之(一):Neural Networks and Deep Learning-weak2
- Coursera-Deep Learning Specialization 课程之(一):Neural Networks and Deep Learning-weak2编程作业
- PAT 甲级 1085. Perfect Sequence (25)
- 直通BAT面试算法精讲课
- bootstrap 框架
- [bzoj1009][HNOI2008]GT考试(dp+矩阵加速+KMP)
- 朴素贝叶斯模型
- Andrew-Coursera-DL课程-笔记part2-1(Practical aspects of Deep Learning)
- 二维数组中的查找
- 在部署django时踩的坑 uwsgi + nginx 部署django应用
- DP问题—Leetcode 64. Minimum Path Sum
- analytical model、numerical model 和 empirical model 三者的区别
- 图的基础
- 在centos6.5上安装Django1.7.11笔记
- poj3684:Physics Experiment
- 数据结构:定长顺序表