【深度学习中常出现的参数与】

batchsize:一批的大小。即每一次训练在训练集中取batchsize个样本训练;

iteration:1个iteration等于使用batchsize个样本训练一次;

epoch:1个epoch等于使用训练集中的全部样本训练一次;

—————————————–

增大batchsize的好处有三点:

  1. 提高了内存的利用率,提高了大矩阵乘法的并行化效率。
  2.  跑完一次epoch(全数据集)所需迭代次数减少,对于相同的数据量的处理速度进一步加快。
  3. 一定范围内,batchsize越大,其确定的下降方向就越准,引起训练震荡越小。

盲目增加有三个弊端:

  1. 当数据集太大时,内存无法容纳它。
  2. 减少了运行一次所需的迭代次数,但要达到同样的精度,时间开销较大,参数校正较慢。
  3. batchsize增大到一定的程度,其确定的下降方向已经基本不再变化。

总结: Batch_Size越大修正越准,但也越缓慢,因此 Batch_Size 增大到某些时候,达到最终收敛精度上的最优。

channels:每个卷积层中卷积核的数量

损失函数loss:用来评价模型的预测值和真实值不一样的程度,只要满足误差大的时候损失函数值大,误差小的时候损失函数值小就行了

损失函数包括距离损失函数

反向传播算法是目前用于训练人工神经网络的最常见和最有效的算法。

反向传播是这样工作的:

(1)前向传播:将训练集数据输入到ANN的输入层,经过隐藏层,最后到达输出层并输出结果。【输入层—隐藏层–输出层】
(2)反向传播:由于ANN的输入结果与输出结果有误差,则计算估计值与实际值之间的误差,并将该误差从输出层向隐藏层反向传播,直至传播到输入层。【输出层–隐藏层–输入层】
(3)权重更新:在反向传播的过程中,根据误差调整各种参数的值;不断迭代上述过程,直至收敛。

一个例子来说明我所理解的反向传播的想法是:

(1)前向传播:三个人在玩你画我猜的游戏,然后第一个人给第二个人描述,再将信息传递给第三个人,由第三个人说出画的到底是啥。
(2)反向传播:第三个人得知自己说的和真实答案之间的误差后,发现他们在传递时的问题差在哪里,向前面一个人说下次描述的时候怎样可以更加准确的传递信息。就这样一直向前一个人告知。
(3)三个人之间的的默契一直在磨合,然后描述的更加准确。

正则化:提高模型的泛化能力,减少过拟合。
在训练深度神经网络模型时,模型可能会过拟合训练数据集,如下图所示:

几乎拟合每个训练样本,在训练样本中虽然准确率很高,但模型泛化能力差,往往在测试集上预测准确率较低。那么怎么解决这种问题?通过正则化(regularization)提高模型的泛化能力,减少过拟合现象。
传统的定义可能定义为在模型的损失函数增加惩罚项来增强模型的泛化能力。但是,在最新的Goodfellow和Bengio出的deep learning一书中,给出了 “正则化” 较为广义的定义:能够提高模型在test上的准确率,能够提高模型的泛化能力所做的任何改动,我们都可以称之为正则化,如下是常见的一些正则化方法。

正则化(regularization)方法总结_BGoodHabit的博客-CSDN博客_正则化的方法[0]

正则化方法:

1.基于数据的正则化(对输入进行一个变量的变换处理,得到有助于泛化的新的数据集,如:更大的训练样本集、更利于学习的数据分布)

  1. data augmentation:通过对输入或者隐层特征进行转换,获得一个更大的数据集,防止过拟合
  2. dropout:随机丢弃一部分神经元节点,让模型变得简单,防止过拟合[0]

2.基于网络结构的正则化

  1. weight sharing:不同的任务共享网络模型结构的部分,则称作权重共享,从而减少模型参数。
  2. activation functions:正确选择激活函数,而ReLu函数的成功除了能够缓解梯度消失问题,还因为具有更强的映射能力
  3. Noisy models:通过随机在模型中注入噪声,可以减缓模型的过拟合问题
  4. Multi-task learning:可以结合半监督学习,在辅助task任务中充分利用无标签的数据。同样这种知识共享的概念也在meta-learning中有体现,通过来自相同领域的多个任务有序的学习,用前面的任务学到的知识作为新任务的一个bias。类似在transfer learning中,主要通过从一个领域的知识迁移到另外一个领域。
  5. Model selection:从我们训练的多个模型中选择最佳的模型,交叉验证(cross-validation)

3.通过在损失函数中增加正则化项

损失函数主要是保证模型的输出和目标label一致性,而加入的正则化项是独立于label标签,可以对数据的先验知识进行建模,如果数据是稀疏的或者服从某种分布,我们可以在损失函数中加入这种先验知识限制,提高模型的效果。

L2正则化:通过在损失函数上额外添加一项正则化项,如下图所示。其中λ是一个参数权重,控制正则化项(λ后面式子)在loss中的比重。

effect:

第一:整个loss不仅看模型预测结果E_D(w)产生的loss,还与本身权重参数w的有关系,使得模型的预测的结果尽可能准的条件下,希望模型的参数权重也尽可能小,防止模型结构复杂,减少模型过拟合。
第二:从贝叶斯角度理解,L2正则化其实是加入了数据的先验知识,认为权重参数服从高斯先验分布,所以在损失函数中加入这样的先验知识,让模型表现更好。那L2正则与高斯分布有什么关系? 首先我们来看下高斯分布的概率密度函数如下:

而L2范数正好服从的是均值为0,标准差近似为\lambda^{-1}的高斯先验分布。
权重参数w服从高斯分布,只有当w在分布中出现的概率较大的区域范围,对应的概率密度值就越大,则L2范数loss越小,也就是限制让模型的参数w服从先验高斯分布。

L1正则化

损失函数中还加入了一个正则化项,公式如下:

优化的目标是使模型的预测结果尽可能准确,并希望模型的参数权重尽可能稀疏。

在损失函数中加入这样一个惩罚项,让模型的权重参数服从拉普拉斯分布,若权重参数离分布的中心值较远,则对应的概率越小,产生的损失loss就会大,起到惩罚的作用。L1正则化可以让模型更加稀疏,简化模型的效果,进而防止模型过拟合。

L1与L2进行正则化

相同点:

防止模型过于复杂,通过在损失函数中加入正则化项来防止模型过拟合
假设模型参数服从某个分布,通过加入先验知识,限制模型参数服从某个分布

difference:

L2正则化相比L1对大数值参数w更敏感,惩罚粒度也会更大
L1相比L2会更容易获得稀疏解

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2022年5月8日
下一篇 2022年5月8日

相关推荐