
深度学习
文章平均质量分 70
manong_wxd
这个作者很懒,什么都没留下…
展开
-
深度学习总结(一)——参数初始化
1. 参数初始化的目的是什么?为了让神经网络在训练过程中学习到有用的信息,这意味着参数梯度不应该为0。而我们知道在全连接的神经网络中,参数梯度和反向传播得到的状态梯度以及入激活值有关。那么参数初始化应该满足以下两个条件:初始化必要条件一:各层激活值不会出现饱和现象;初始化必要条件二:各层激活值不为0。2. 把参数都初始化为0会是比较好的初始化?这样做其实会带来一个问题,经过正向传播和反向传播后原创 2017-12-06 20:21:43 · 12881 阅读 · 1 评论 -
深度学习总结(十)——dropout
1. Inverted dropout大家都知道dropout是一个概率值,它表示的是a[l] (第l层的输入)中的元素以多大的概率置零。这里我们用它的对偶变量keep-prob代替dropout,它表示的是以多大的概率保留元素。可见dropout+keep-prob=1。现在我们以一个三层的神经网络为例,讨论keep-drop在神经网络中是如何发生作用的。import numpy as npkee原创 2017-12-07 19:33:48 · 5330 阅读 · 0 评论 -
深度学习总结(九)——正则化
1. 正则化简介以逻辑斯蒂回归为例,介绍正则化。 原来的成本函数(cost function):minw,bJ(w,b)=minw,b1m∑i=1mL(y^(i),y(i))\min_{w,b}J(w,b)=\min_{w,b}\frac{1}{m}\sum^m_{i=1}\mathcal L(\hat y^{(i)},y^{(i)}) 其中:w∈Rnx,b∈Rw∈\Bbb R^{n_x}, b原创 2017-12-07 15:33:37 · 1305 阅读 · 0 评论 -
深度学习总结(八)——训练、开发和测试集及偏差和方差
1. 数据集的划分小数据时代: 70%(训练集)/30%(测试集)或者60%(训练集)/20%(验证集)/20%(测试集) 大数据时代: 验证集和测试集的比例要逐渐减小,比如: 980000/10000/100002. 验证集和测试集的作用深度学习需要大量的数据,我们可能会采用网上爬取的方式获得训练集,容易出现训练集和验证集、测试集分布不一致的情况,由于验证集的目的就是为了验证不同的算法,选取效原创 2017-12-07 10:33:41 · 8561 阅读 · 0 评论 -
深度学习总结(七)——调参经验
关键词:Relu,batchnorm,dropout,adam,Learning Rate设置合理观察loss胜于观察准确率,Loss设计要合理,对比训练集和验证集的loss;Relu可以很好的防止梯度弥散问题,当然最后一层的激活函数千万慎用relu,如果是分类的用softmax;Batchnorm可以大大加快训练速度和模型性能;Dropout防止过拟合,可直接设置为0.5,即一半一半,测试原创 2017-12-06 21:49:42 · 2804 阅读 · 0 评论 -
深度学习总结(六)——梯度弥散、爆炸和过拟合
一、梯度弥散和爆炸1. 梯度弥散的解释梯度弥散的问题很大程度上是来源于激活函数的“饱和”。因为在后向传播的过程中仍然需要计算激活函数的导数,所以一旦卷积核的输出落入函数的饱和区,它的梯度将变得非常小。 使用反向传播算法传播梯度的时候,随着传播深度的增加,梯度的幅度会急剧减小,会导致浅层神经元的权重更新非常缓慢,不能有效学习。这样一来,深层模型也就变成了前几层相对固定,只能改变最后几层的浅层模型。梯度原创 2017-12-06 21:46:06 · 9820 阅读 · 0 评论 -
深度学习总结(五)——各优化算法
一、各优化算法简介1. 批量梯度下降(Batch gradient descent,BGD)θ=θ−η⋅∇θJ(θ)θ = θ - η \cdot \nabla_θ J(θ) 每迭代一步,都要用到训练集所有的数据。2. 随机梯度下降(Stochastic Gradient Descent,SGD)θ=θ−η⋅∇θJ(θ;x(i);y(i))θ = θ - η \cdot \nabla_θ J(θ;原创 2017-12-06 21:30:26 · 11364 阅读 · 0 评论 -
深度学习总结(四)——正则项系数、Batch_size设置
1. 正则项系数(λ)的设置建议一开始将正则项系数λ设置为0,先确定一个比较好的learning rate。然后固定该learning rate,给λ一个值(比如1.0),然后根据validation accuracy,将λ增大或者减小10倍(增减10倍是粗调节,当你确定了λ的合适的数量级后,比如λ = 0.01,再进一步地细调节,比如调节为0.02,0.03,0.009之类。)2. Batch s原创 2017-12-06 20:34:28 · 20412 阅读 · 0 评论 -
深度学习总结(三)——学习率设置
1. 学习率对训练的影响为了能够使得梯度下降法有较好的性能,我们需要把学习率的值设定在合适的范围内。太大的学习速率导致学习的不稳定,太小值又导致极长的训练时间。自适应学习速率通过保证稳定训练的前提下,达到了合理的高速率,可以减少训练时间。2. 学习率的设置固定学习率的设置:经验选择:一般情况下倾向于选取较小的学习速率以保证系统的稳定性,学习速率的选取范围在0.01~0.8之间。对于不同大小的数据原创 2017-12-06 20:31:50 · 30678 阅读 · 0 评论 -
深度学习总结(二)——激活函数的介绍
1. ReLU函数用ReLU代替了传统的Tanh或者Logistic。优点:ReLU本质上是分段线性模型,前向计算非常简单,无需指数之类操作;ReLU的偏导也很简单,反向传播梯度,无需指数或者除法之类操作;ReLU不容易发生梯度发散问题,Tanh和Logistic激活函数在两端的时候导数容易趋近于零,多级连乘后梯度更加约等于0;ReLU关闭了左边,从而会使得很多的隐层输出为0,即网络变得稀疏,原创 2017-12-06 20:27:15 · 894 阅读 · 0 评论 -
深度学习总结(十一)——early stopping
在训练中,我们希望在中间箭头的位置停止训练。而Early stopping就可以实现该功能,这时获得的模型泛化能力较强,还可以得到一个中等大小的w的弗罗贝尼乌斯范数。其与L2正则化相似,选择参数w范数较小的神经网络。可以用L2正则化代替early stopping。因为只要训练的时间足够长,多试几个lambda。总可以得到比较好的结果。Early stopping: 优点:只运行一次梯度下降,我们原创 2017-12-07 19:55:46 · 22406 阅读 · 0 评论