本篇文章属于总结性文章,看之前你需要对softmax与sigmoid都有一个大概的认识。全文没有代码纯理论,手写+公式的方式简单总结了两种激活函数在多方面的不同,看完对你有帮助的话可以点个收藏并小赞一下。
在动手学深度学习——softmax回归之OneHot、softmax与交叉熵一文中,我们以softmax函数和交叉熵实现了一个“单层神经网络”——softmax回归分类器;同样的,我们也可以用sigmoid函数作为激活函数实现sigmoid回归分类器。二者分别用于解决多分类问题与多标签问题:
当然我们这里不着重介绍两种分类器的实现和用途,主要介绍两种激活函数间的区别:
因此,两种激活函数在计算损失时,分别对应不同的交叉熵函数,推导如下:
不仅如此,由于两种激活函数计算输出值的方法不一样:
所以二者在 多样本(矩阵) 的情况下反向传播计算:损失函数对激活函数输出的梯度: ∂ L ∂ y i ^ \frac{\partial L}{\partial \hat{y_i}} ∂yi^∂L,以及激活函数对自身输入的梯度: ∂ y i ^ ∂ a i \frac{\partial \hat{y_i}}{\partial a_i} ∂ai∂yi^ 也有不同,推导如下: