在深度神经网络(DNN)反向传播算法(BP)中,我们对DNN的前向反向传播算法的使用做了总结。里面使用的损失函数是均方差,而激活函数是Sigmoid。实际上DNN可以使用的损失函数和激活函数不少。这些损失函数和激活函数如何选择呢?下面我们就对DNN损失函数和激活函数的选择做一个总结。
1. 均方差损失函数+Sigmoid激活函数的问题
在讲反向传播算法时,我们用均方差损失函数和Sigmoid激活函数做了实例,首先我们就来看看均方差+Sigmoid的组合有什么问题。
首先我们回顾下Sigmoid激活函数的表达式为:
σ(z)=11+e−zσ(z)=11+e−z
σ(z)σ(z)的函数图像如下:

从图上可以看出,对于Sigmoid,当zz的取值越来越大后,函数曲线变得越来越平缓,意味着此时的导数σ′(z)σ′(z)也越来越小。同样的,当zz的取值越来越小时,也有这个问题。仅仅在zz取值为0附近时,导数σ′(z)σ′(z)的取值较大。
在上篇讲的均方差+Sigmoid的反向传播算法中,每一层向前递推都要乘以σ′(z)σ′(z
本文详细介绍了深度神经网络(DNN)中损失函数和激活函数的选择,包括均方差损失函数+Sigmoid的问题,如何通过交叉熵损失函数改进收敛速度,以及在分类任务中使用对数似然损失函数和softmax激活函数。同时,文章讨论了ReLU激活函数在解决梯度消失问题上的效果,以及DNN中其他常见的激活函数,如tanh和softplus。
订阅专栏 解锁全文
1079

被折叠的 条评论
为什么被折叠?



