目录
Sigmoid 函数的优缺点是什么
ReLU 的优缺点
什么是交叉熵
为什么分类问题的损失函数为交叉熵而不能是 MSE?
多分类问题中, 使用 sigmoid 和 softmax 作为最后一层激活函数的区别
为什么 LSTM 中的激活函数为 tanh 和 sigmoid 而不用 Relu
softmax 的反向传播
Sigmoid 函数的优缺点是什么
优点:
输出范围优先, 可以将任意范围的输出映射到 (0, 1) 范围内, 在输出层可以用于表示二分类的输出概率
易于求导
缺点:
Sigmoid 函数容易饱和, 且梯度范围为 (0, 0.25] , 在反向传播中容易导致梯度消失问题.
ReLU 的优缺点
优点
ReLU 的非饱和性可以提供相对宽的激活边界.
梯度只有 0, 1 两个变量, 有效地解决梯度消失的问题.
ReLU 的单侧抑制提供了网络的稀疏表达能力.
缺点
训练过程中会导致神经元死亡的问题. 在训练时, 如果参数在一次不恰当的更新后, 第一个隐藏层中的某个 ReLU 神经元在所有的训练数据上都不能被激活. 那么, 这个神经元自身参数的梯度永远都会是 0, 在以后的训练过程中永远不能被更新. 这种现象称为死亡 ReLU 问题 (Dying ReLU Problem)
什么是交叉熵
交叉熵刻画的是两个概率分布之间的距离, 描述了真实分布和预测分布之间的差异性.
交叉熵的公式:\(H(p, q) = -\sum_x p(x) log\ q(x)\), 其中, x 为一个样本中每一个类别的概率
为什么分类问题的损失函数为交叉熵而不能是 MSE?
从建模上来看:
MSE 是假设数据符合高斯分布时, 概率分布的负条件对数似然. 表示两个向量之间的欧几里得距离
CE 是假设模型分布为多项式分布时, 概率分布的负条件对数似然. 表示真实分布和预测分布之间的差异性
从梯度上来看:
MSE 的梯度 \(\frac{\partial L}{\partial \hat y_i} = 2(\hat y_i - y_i)\)
CE 的梯度 \(\frac{\partial L}{\partial \hat y_i} = \frac{y_i}{\hat y_i}\)
MSE 在优化后期侧残差会趋于零, 非常小, 导致优化速度减慢. 而 CE 在优化后期正确类别的分量是趋于 1 的, 而非正确类别的分量恒为 0, 优化速度更快.
直观上来看:
MSE 无差别得关注全部类别上预测概率和真实概率的差.
CE 关注的是正确类别的预测概率.
多分类问题中, 使用 sigmoid 和 softmax 作为最后一层激活函数的区别
sigmoid 函数的每次输出是相互独立的, 不能体现样本之间的相关性.
而 softmax 的归一化意味着一个输出增大必然伴随着其他输出的减小, 这更符合概率规则, 体现了样本互斥的关系.
如果是一个样本隶属于多个样本, 且各个样本是相互独立的分类问题, 可以采用 sigmoid 作为每个输出的激活函数; 而对于类别互斥的分类问题则应该采用 softmax 作为最后的激活函数.
为什么 LSTM 中的激活函数为 tanh 和 sigmoid 而不用 Relu
在 LSTM 中, sigmoid 作用为门函数的作用, 取值范围为 (0, 1), 是无法替代的
使用 Relu 的目的是为了解决梯度消失问题, 而在 LSTM 中, 由于时序上的残差机制, 梯度消失问题已经大大减弱了.
另一方面, tanh 能够将模型输出映射在 (-1, 1) 范围内, 更易于优化
softmax 的反向传播
对于多分类问题, 输出层激活函数为 softmax 的单层神经网络分类器只考虑权重参数 \(W\), 采用 SGD 的优化方法, 输入样本为 \(x\), 标注为 \(y\), 样本特征维度为 \(m\), 类别个数为 \(n\), 其前向传播和反向传播公式:
前向传播:
\[\begin{aligned} &z = Wx \\ &p_i = softmax(z) = \frac{exp(z_i)}{\sum_{j=1}^{n} exp(z_j)} \\ &L(\hat{y}, y) = -\sum_{i=1}^ny_i\ log\ p_i \end{aligned}\]
反向传播:
- \[\frac{
- \partial L
- }{
- \partial p_i
- } = -\sum_{
- i=1
- }^n\frac{
- y_i
- }{
- p_i
- } \]
- \[\begin{
- cases
- } \frac{
- \partial p_i
- }{
- \partial z_j
- } = \frac{
- exp(z_j)\sum_{
- k=1
- }^{
- n
- } exp(z_k) - exp(z_j)^2
- }{
- (\sum_{
- k=1
- }^{
- n
- } exp(z_k))^2
- } = p_j(1-p_j) & , i = j\\ \frac{
- \partial p_i
- }{
- \partial z_j
- } = -\frac{
- exp(z_j)exp(z_i)
- }{
- (\sum_{
- k=1
- }^{
- n
- } exp(z_k))^2
- } = -p_ip_j & , i \ne j \end{
- cases
- } \]
则
\[\begin{aligned} &\frac{\partial L}{\partial z_i} = \frac{\partial p_i}{\partial z_i} \frac{\partial p_i}{\partial z_i}\\ &= - \frac{y_i}{p_i}p_i(1-p_i) - \sum_{j\ne i}\frac{y_j}{p_j}(-p_ip_j) \\ &= -y_i + p_iy_i + p_i\sum_{j\ne i}y_j \\ &= -y_i + p_i \sum_{j=1}^ny_j \\ &= p_i - y_i \end{aligned}\]
表示为矩阵为:\(\frac{\partial L}{\partial z} = p - y\)
来源: https://www.cnblogs.com/sandwichnlp/p/12631015.html