深度学习入门手稿笔记系列
神经网络学习的过程,很多人都看成是一个黑箱的过程,对于其中超参数的调试,正则化,以及优化,都理解的不清楚,很多同学都是知道怎样去使用,但是不懂为什么会有那样的效果。通过学习吴恩达老师的课程,我想跟大家分享一下自己对于这里的理解,应该对大家的学习会很有帮助。
楚门.
这个作者很懒,什么都没留下…
展开
-
深度学习入门笔记手稿(十二)学习率衰减
学习率衰减加快学习算法的一个办法就是随机慢慢减少学习率在使用mini batch梯度下降算法时,最后会在一点附近摆动,并不会真正收敛,因为学习率为固定值,不同的mini batch中有噪音但是慢慢减少学习率,在初期学习率还比较大,但是随着学习率变小,学习不长也变慢,最后会在最小值一小块区域摆动1.可以将学习率设置为 1/(1+decay_rate*epoch_num)decay_rate...原创 2019-05-15 12:47:16 · 215 阅读 · 0 评论 -
深度学习入门笔记手稿(十一)Momentum,RMS,Adam梯度下降法
Momentum梯度下降法运行速度快于标准梯度下降算法基本思路: 计算梯度的指数加权平均数,利用该梯度更新你的权重红线为batch梯度下降法的梯度下降情况,同momentum梯度下降法可以让梯度在纵向上更平缓,更直接,因为加权平均指数更平缓如铅笔图上面再两个超参数学习率和加权指数平均的超参数B,后者最常用的值为0.9B控制指数加权平均数,关于偏差修正 Vdw/1-Bt 一般不这么做。...原创 2019-05-15 12:25:28 · 946 阅读 · 0 评论 -
深度学习入门笔记手稿(十)理解指数加权平均
深度学习入门笔记手稿(十)理解指数加权平均理解指数加权平均理解指数加权平均原创 2019-05-15 00:27:34 · 334 阅读 · 0 评论 -
深度学习入门笔记手稿(九)mini-batch梯度下降
mini-batch梯度下降数据特别大时在,在全部处理完全部数据之前,先让梯度下降处理一部分,算法速度会加快。把训练集分割为小一点的子训练集,这些子集取名为mini batch#一代 只是一次遍历训练集例子 500万数据X=[x(1),x(2),…x(1000)] 【x(1001),…x(2000)】…[…x(m)]X=x{1},x{2}…x{5000}Y=[y(1),y(2)…y(1...原创 2019-05-15 00:21:03 · 531 阅读 · 0 评论 -
深度学习入门笔记手稿(六)正则化输入
正则化输入训练神经网络其中一个加速训练方法就是归一化输入假设训练集有两个输入特征x={x1,x2} 是一个二维的归一化输入需两步,第一步零均值化 第二步 归一化方差(对x1方差比x2方差大很多的情况特别有效)具体如图中所示。完成后,的均值和方差分别为0和1.如果用归一化来调整训练数据,再用相同的归一化中的超参数归一化测试集,而不是在训练集和测试集上分别预估归一化中的超参数。归一化中的超...原创 2019-05-14 21:48:31 · 318 阅读 · 0 评论 -
深度学习入门笔记手稿(五)其他正则化方法
深度学习入门(五)其他正则化方法其他正则化方法机器学习过程步骤其他正则化方法除了L2正则化和随机失活(dropout)正则化,还有几种方法可以减少神经网络中的过拟合.1.假设正在拟合猫咪图片分类器,由于扩增训练数据代价高,有时通过水平翻转图片,这样会让训练集有冗余,效果虽然不如心搜集图片好,但是节省了收集图片的时间成本,还可以通过放大,旋转,裁剪。2。另外一种方法叫做,earlystop...原创 2019-05-14 21:17:48 · 283 阅读 · 0 评论 -
深度学习入门笔记手稿(四)dropout随机失活
dropout随机失活dropout会遍历网络的每一层,设置消除神经网络中节点的概率每一层保留节点的概率都可单独设置,这样可以得到一个精简的网络。代码实现:d3=np.random.rand(a3.shape[0],a3.shape[1])<keepproba3=np.multply(a3,d3)#a3d3a3/=keepprob #为了不影响下一层的期望值a4=a3w4+b...原创 2019-05-14 20:51:29 · 581 阅读 · 0 评论 -
深度学习入门笔记手稿(三)正则化
正则化目的是为了让误差函数最小化即:得到由于有很多公式,我就传我自己的笔记图了原创 2019-05-14 20:25:46 · 203 阅读 · 0 评论 -
深度学习入门笔记手稿(二)偏差与方差
偏差与方差通过判断网络系统中训练集误差和验证集误差来判断情况:图中给出了两种划分方式,线为决策边界。一种欠拟合 高偏差,一种过拟合高方差两种情况。如何判断是高偏差还是高方差,下面给出在一个分类网络系统中出现的4种情况A:训练集误差 1%,验证集误差11%B:训练集误差 15%,验证集误差16%C:训练集误差 15%,验证集误差30%D:训练集误差 0.5%,验证集误差1%A中:训...原创 2019-05-14 15:45:08 · 393 阅读 · 0 评论 -
深度学习入门笔记手稿(一)数据集的划分
简介神经网络学习的过程,很多人都看成是一个黑箱的过程,对于其中超参数的调试,正则化,以及优化,都理解的不清楚,很多同学都是知道怎样去使用,但是不懂为什么会有那样的效果。通过学习吴恩达老师的课程,我想跟大家分享一下自己对于这里的理解,应该对大家的学习会很有帮助。训练/验证/测试集搭建合理的训练验证集和测试集能加速网络的形成,也更有效的衡量算法偏差和方差。在配置训练,验证,测试数据集过程中做出...原创 2019-05-14 15:19:01 · 1830 阅读 · 0 评论 -
深度学习入门笔记手稿(八)梯度检验
深度学习入门笔记手稿(八)梯度检验梯度检验梯度检验在实施backprop时有一个测试叫做梯度检验。是用来检查梯度是否约等于使用双边误差来逼近的导数。具体过程如下:1.首先不要在训练中使用梯度检验,它只用于调试,为了实施梯度下降,必须使用backprop计算导数。2.如果检验失败,要检查所有项。要确定出问题的导数3在检验时,如果使用了正则化,则导数也一定包含正则项4,梯度检验不能与dr...原创 2019-05-14 22:41:35 · 321 阅读 · 0 评论 -
深度学习入门笔记手稿(七)梯度消失与梯度爆炸和神经网络权重初始化
梯度消失与梯度爆炸训练神经网络会面临导数或梯度变得非常大,或者非常小,这加大了训练难度,而明智的选择随机初始化权重可避免这一问题。下图是梯度消失和梯度爆炸产生的原因:神经网络的权重初始化针对梯度消失和梯度爆炸的问题z=w1x1+w2x2+…xnwn为了预防z值过大或过小,则n越大则希望wi越小 则设置wi=1/nw[l]=np.random,randn(shape)*np.sqrt...原创 2019-05-14 22:29:14 · 444 阅读 · 0 评论