文章目录
- 池化层pooling layer
- 概念
- 参数
- nn.MaxPool2d
- nn.AvgPool2d
- nn.MaxUnpool2d
- 线性层 linear layer
- 概念
- 参数
- 激活函数层 Activation Layer
- 概念
- 参数
- nn.Sigmoid
- nn.tanh
- nn.ReLU
- 其他激活函数
池化层pooling layer
概念
池化运算:对信号进行 “收集”并 “总结”,类似水池收集水资源,因而得名池化层
“收集”:多变少 “总结”:最大值/平均值
参数
nn.MaxPool2d
功能:对二维信号(图像)进行最大值池化
主要参数:
• kernel_size:池化核尺寸
• stride:步长
• padding :填充个数
• dilation:池化核间隔大小
• ceil_mode:尺寸向上取整
• return_indices:记录池化像素索引
nn.AvgPool2d
功能:对二维信号(图像)进行平均值池化
主要参数:
• kernel_size:池化核尺寸
• stride:步长
• padding :填充个数
• ceil_mode:尺寸向上取整
• count_include_pad:填充值用于计算
• divisor_override :除法因子
nn.MaxUnpool2d
功能:对二维信号(图像)进行最大值池化
上采样
主要参数:
• kernel_size:池化核尺寸
• stride:步长
• padding :填充个数
线性层 linear layer
概念
线性层又称全连接层,其每个神经元与上一层所有神经元相连 实现对前一层的线性组合,线性变换
参数
nn.Linear
功能:对一维信号(向量)进行线性组合
主要参数:
• in_features:输入结点数
• out_features:输出结点数
• bias :是否需要偏置
计算公式:y = 𝒙𝑾𝑻 + 𝒃𝒊𝒂 s
激活函数层 Activation Layer
概念
激活函数对特征进行非线性变换,赋予多层神经网络具有深度的意义
𝑯𝟏 = 𝑿 ∗ 𝑾𝟏 𝑯𝟐 = 𝑯𝟏 ∗ 𝑾𝟐
O𝒖𝒕𝒑𝒖𝒕 = 𝑯𝟐 ∗ 𝑾𝟑 = 𝑯𝟏 ∗ 𝑾𝟐 ∗ 𝑾𝟑 = 𝑿 ∗ (𝑾𝟏 ∗ 𝑾𝟐 ∗ 𝑾𝟑) = 𝑿 ∗ 𝑾
参数
nn.Sigmoid
计算公式:𝐲 = 𝟏/ 𝟏+𝒆−𝒙
梯度公式:𝒚′ = 𝒚 ∗ 𝟏 − 𝒚
特性:
• 输出值在(0,1),符合概率
• 导数范围是[0, 0.25],易导致梯度消失
• 输出为非0均值,破坏数据分布
nn.tanh
计算公式:𝐲 =
s in𝒙
𝒄𝒐𝒔𝒙
= 𝒆𝒙−𝒆−𝒙 𝒆− +𝒆−𝒙 = 𝟐 𝟏+𝒆−𝟐𝒙 + 𝟏
梯度公式:𝒚′ = 𝟏 − y 𝟐
特性:
• 输出值在(-1,1),数据符合0均值
• 导数范围是(0, 1),易导致梯度消失
nn.ReLU
计算公式:𝐲 = max(𝟎, 𝒙)
梯度公式:𝒚′ = ቐ𝟏, 𝒙 > 𝟎
𝒖𝒏𝒅𝒆𝒇 𝒊𝒏𝒆𝒅, 𝒙 = 𝟎 𝟎, 𝒙 < 𝟎
特性:
• 输出值均为正数,负半轴导致死神经元
• 导数是1,缓解梯度消失,但易引发梯度爆
炸
其他激活函数
nn.LeakyReLU
• negative_slope: 负半轴斜率
nn.PReLU
• init: 可学习斜率
nn.RReLU
• lower: 均匀分布下限
• upper:均匀分布上限