自学内容网 自学内容网

深度学习网络(11)——训练神经网络

训练神经网络

对当前输入的感受野,只与滤波器的大小有关,与padding和stride无关,
对网络输入的感受野: r 0 = ∑ l = 1 L ( ( k l − 1 ) ∏ i = 1 l − 1 s i ) + 1 r_0=\sum_{l=1}^L((k_l-1)\prod_{i=1}^{l-1}s_i)+1 r0=l=1L((kl1)i=1l1si)+1

激活函数

ReLU:max(0,x):

  1. 在正数区域,梯度不会消失
  2. 计算效率非常高
  3. 收敛速度很快

问题:

  1. 输出不是以0为中心
  2. 负数区域梯度为0(神经元“死掉”)

Leaky ReLU:
y = { x , x > 0 0.01 x , x ≤ 0 y=\begin{cases}x,x>0\\ 0.01 x,x\leq 0\end{cases} y={x,x>00.01x,x0
任何时候梯度都不会为0(神经元不会“死掉”)

输出以0为中心的好处:模型训练收敛更快

使用建议:使用ReLU,可以尝试Leaky ReLU,尽量避免使用sigmoid/tanh

数据预处理:

X ′ = X − μ σ X'=\frac{X-\mu}{\sigma} X=σXμ, μ \mu μ是训练集的均值, σ \sigma σ是训练集的标准差, X ′ X' X是归一化后的数据

将权重全部设置为一个常量的话:不管进行多少轮正向传播以及反向传播,每俩层之间的参数都是一样的。换句话说,本来我们希望不同的结点学习到不同的参数,但是由于参数相同以及输出值都一样,不同的结点根本无法学到不同的特征!!!这样就失去了网络学习特征的意义。

dropout

在模型训练的每次前向传播计算中,将一些神经元随即设置为0,让网络学习冗余表示,防止特征的协同适应

Stochastic Depth

随机网络深度
训练时:随机跳过某些层
测试时:使用所有层

数据增强

水平翻转、锐化、随即裁剪和缩放、颜色扰动

超参数选择:

  1. 检查初始损失(关闭权重衰减)
  2. 过拟合少量样本
  3. 选择合适的lr
  4. 粗调1-5epochs
  5. 细调10-20epochs
  6. 检查损失和准确率曲线
  7. 如果第六步出现问题,返回第五步

原文地址:https://blog.csdn.net/m0_74259787/article/details/144786519

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!