神经网络常见问题和技巧(持续更新)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一,不同数据集下使用微调(迁移学习)
  • 二,BatchNorm的输出
  • 三,梯度下降方法的效率
  • 四,理想的激活函数应该具备的性质
  • 五,基于注意力的模型


前言

提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一,不同数据集下使用微调(迁移学习)

数据集1–数据量少,但于迁移的预训练模型数据相似度非常高
在这种情况下,我们所做的只是修改最后几层或最终的softmax图层的输出类别。

数据集2–数据量少,但于迁移的预训练模型数据相似度非常低
在这种情况下,我们可以冻结预训练模型的初始层(比如前K层),并再次训练剩余的(n-k)层。由于新训练集相似度比较低,因此根据新训练集对较高层进行重新训练具有重要意义。

数据集3–数据量大,但于迁移的预训练模型数据相似度非常低
在这种情况下,由于我们有一个很大的数据集,我们的神经网络训练会非常有效。但是,由于我们的数据集和训练预训练模型用的数据集相似度不高,因此使用预训练模型进行预测不会很有效,最好根据新的数据集重头开始训练新模型。

数据集4–数据量大,但于迁移的预训练模型数据相似度非常高
这种情况是最理想的情况,我们尽可能的保留预训练模型的初始权重和模型结构,仅根据任务需求重新设计最后一层的输出结果即可,甚至需求合适的时候可以不修改原模型。

二,BatchNorm的输出

如果一个模型的input batch的shape是(B,C,H,W)。那么batchnorm统计的mean和variance的shape为?
B代表图像的batch,即多少张图像一个batch,C是通道数,H和W是高和宽
BN是对batch个图像的同一通道做normalization
所以,有多少个通道就有多少个mean和variance,即shape是(1C1*1)
该处使用的url网络请求的数据。


三,梯度下降方法的效率

随机梯度下降(每次用一个样本计算)
小批量梯度下降(每次用一个小批量样本计算)
全批量梯度下降(一次性使用全部样本计算)
这三个方法,对于全体样本的损失函数来说,其梯度指向一个比一个准确,但是对内存、磁盘等限制也越来越严格。

四,理想的激活函数应该具备的性质

非线性:这个条件是多层神经网络形成的基础,保证多层网络不退化成单层线性网络
几乎处处可微:保证了优化过程中梯度的可计算性
计算简单:
非饱和性:饱和指的是在某些区间梯度接近于零(梯度消失)
单调性:即导数的符号不变,单调性使得在激活函数处的梯度方向不会经常改变利于收敛
输出范围有限:
接近恒等变换:即约等于x,好处是使得输出的幅值不会随着网络深度的增加而 发生显著增加,从而使网络更加稳定,同时梯度也能够更容易回传。这与非线性是有些矛盾的,因此激活函数只能部分满足这个条件。如relu函数在x>0时满足。
参数少:
归一化:如SELU函数,主要思想是使样本自动分布归一化到零均值,单位方差的分布,从而稳定训练。类似于batchnormalization。

五,基于注意力的模型

Attention-based model其实就是一个相似性的模型,当前的输入与目标状态越相似,那么在当前的输入的权重就会越大,说明当前输出依赖于当前输入。严格来说,attention并算不上是一种新的model,而仅仅是在以往的模型中加入attention的思想。

你可能感兴趣的:(神经网络的参数优化,神经网络,深度学习)