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

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博客_正则化的方法

正则化方法:

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

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

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中的比重。

作用:

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

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

L1正则化

也是在损失函数中加入一项正则化项,公式表达如下:

 优化的目标是使得模型的预测的结果尽可能准的条件下,希望模型的参数权重尽可能为稀疏

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

L1与L2进行正则化

相同点:

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

不同点:

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


如何评价GAN网络的好坏?

IS(inception score)FID(Fréchet Inception Distance)均可以衡量

1. 生成图片的质量 
2. 生成图片的多样性

  •  IS值越大越好:为了综合两个指标,我们使用含有KL的公式计算
  •  IS缺点:当只产生一种物体的图像时,仍会认为是均匀分布,导致评价不正确。当模型坍塌时,结果就可能产生同样的图片。
  • FID越小,则意味着两个分布之间更接近,也就是图像多样性越好,质量也越好。 
  • FID缺点:当只产生一种物体的图像时,FID这个距离将会相当的高,性能相当差。因此,FID更适合描述GAN网络的多样性。当模型坍塌时,结果更可能产生同样的图片。
  • FID优点:相比较IS来说,FID对噪声有更好的鲁棒性。

IS与FID均存在的缺陷:都是基于特征提取,也就是依赖于某些特征的出现或者不出现。但是他们都无法描述这些特征的空间关系。这里我们我们人不会认为这是一张好的人脸图片。但是根据FID和IS,他们就是一个很好的人脸图片。因为它有人脸必要的特征,虽然这些特征的空间关系不好。
 

LPIPS

学习感知图像块相似度(Learned Perceptual Image Patch Similarity, LPIPS)也称为“感知损失”(perceptual loss),用于度量两张图像之间的差别。LPIPS 比传统方法(比如L2/PSNR, SSIM, FSIM)更符合人类的感知情况。LPIPS的值越低表示两张图像越相似,反之,则差异越大。

 d为 x0与x之间的距离。从L层提取特征堆(feature stack)并在通道维度中进行单位规格化(unit-normalize)。利用向量WL 来放缩激活通道数,最终计算L2距离。最后在空间上平均,在通道上求和。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值