首先推荐学习markdown编辑公式技巧:
在Markdown中输入数学公式(MathJax)
markdown最全数学公式
牛逼!公式编辑器
如何在markdown中完美插入数学公式
深度学习的实用层面
1.1 训练,验证,测试集(Train / Dev / Test sets)
主要是改变了机器学习时代的数据集的划分,之前是三七分。
假设我们有100万条数据,其中1万条作为验证集,1万条作为测试集,100万里取1万,比例是1%,即:训练集占98%,验证集和测试集各占1%。对于数据量过百万的应用,训练集可以占到99.5%,验证和测试集各占0.25%,或者验证集占0.4%,测试集占0.1%。
1.2 偏差,方差(Bias /Variance)
假设这就是数据集,如果给这个数据集拟合一条直线,可能得到一个逻辑回归拟合,但它并不能很好地拟合该数据,这是高偏差(high bias)的情况,我们称为“欠拟合”(underfitting)。
相反的如果我们拟合一个非常复杂的分类器,比如深度神经网络或含有隐藏单元的神经网络,可能就非常适用于这个数据集,但是这看起来也不是一种很好的拟合方式分类器方差较高(high variance),数据过度拟合(overfitting)。
1.3 机器学习基础(Basic Recipe for Machine Learning)
1.4 正则化(Regularization)
深度学习可能存在过拟合问题——高方差,有两个解决方法,一个是正则化,另一个是准备更多的数据,这是非常可靠的方法,但你可能无法时时刻刻准备足够多的训练数据或者获取更多数据的成本很高,但正则化通常有助于避免过拟合或减少你的网络误差。
一般是使用L2正则化。它是在训练深度学习模型时最常用的一种方法。
1.5 为什么正则化有利于预防过拟合呢?(Why regularization reduces overfitting?)
1.6 dropout 正则化(Dropout Regularization)
Code for Inverted dropout:
keep_prob = 0.8 # 0 <= keep_prob <= 1
l = 3 # this code is only for layer 3
# the generated number that are less than 0.8 will be dropped. 80% stay, 20% dropped
d3 = np.random.rand(a[l].shape[0], a[l].shape[1]) < keep_prob
a3 = np.multiply(a3,d3) # keep only the values in d3
# increase a3 to not reduce the expected value of output
# (ensures that the expected value of a3 remains the same) - to solve the scaling problem
a3 = a3 / keep_prob
1.7 理解 dropout(Understanding Dropout)
Dropout可以随机删除网络中的神经单元。
直观上理解:不要依赖于任何一个特征,因为该单元的输入可能随时被清除,因此该单元通过这种方式传播下去,并为单元的四个输入增加一点权重,通过传播所有权重,dropout将产生收缩权重的平方范数的效果,和之前讲的正则化类似;实施dropout的结果实它会压缩权重,并完成一些预防过拟合的外层正则化;对不同权重的衰减是不同的,它取决于激活函数倍增的大小。
总结一下,dropout的功能类似于正则化,与正则化不同的是应用方式不同会带来一点点小变化,甚至更适用于不同的输入范围。
1.8 其他正则化方法(Other regularization methods)
a、L2正则化
b、随机失活(dropout)正则化,
c、增加数据
d、early stopping
1.9 标准化输入(Normalizing inputs)
1.10 梯度消失/梯度爆炸(Vanishing / Exploding gradients)
训练神经网络,尤其是深度神经所面临的一个问题就是梯度消失或梯度爆炸,也就是你训练神经网络的时候,导数或坡度有时会变得非常大,或者非常小,甚至于以指数方式变小,这加大了训练的难度。
1.11 神经网络的权重初始化(Weight Initialization for Deep NetworksVanishing /Exploding gradients)
1.12 梯度的数值逼近(Numerical approximation of gradients)
1.13 梯度检验(Gradient checking)
1.14 梯度检验应用的注意事项(Gradient Checking Implementation Notes)
优化算法 (Optimization algorithms)
2.1 Mini-batch 梯度下降(Mini-batch gradient descent)
2.2 理解Mini-batch 梯度下降(Understanding Mini-batch gradient descent)
比如说,如果
是500万或5000万或者更大的一个数,在对整个训练集执行梯度下降法时,你要做的是,你必须处理整个训练集,然后才能进行一步梯度下降法,然后你需要再重新处理500万个训练样本,才能进行下一步梯度下降法。所以如果你在处理完整个500万个样本的训练集之前,先让梯度下降法处理一部分,你的算法速度会更快,准确地说,这是你可以做的一些事情。
你可以把训练集分割为小一点的子集训练,这些子集被取名为mini-batch
2.3 指数加权平均(Exponentially weighted averages)
2.4 理解指数加权平均(Understanding Exponentially weighted averages)
2.5 指数加权平均的偏差修正(Bias correction in exponentially weighted averages)
2.6 momentum梯度下降(Gradient descent with momentum)
2.7 RMSprop——root mean square prop(RMSprop)
2.8 Adam优化算法(Adam optimization algorithm)
2.9 学习率衰减(Learning rate decay)
2.10 局部最优问题(The problem of local optima)
一、学习安排(11月7日-11月9日)
1.主要学习视频:第四课:深度学习的实用层面优化算法(https://mooc.study.163.com/smartSpec/detail/1001319001.htm?from=study)
2.参考资料:
C2M1 slides
C2M2 slides
C2M3 slides (optional)
Week 4 slides
(http://cs230.stanford.edu/syllabus.html)
二、作业上传事项
1.作业内容:
主要是总结所学习的视频和讲义内容
(提交形式,是以“汇报”形式汇报给助教(李凯旋),对于作业敷衍的直接视为下车)
2.作业提交日期
作业规定在11月9日24点之前,大家把握好时间,且11月10日晚上,助教会公布没有交作业者并令其下车;
@所有人
网友评论