神经网络常用的sigmoid和softmax激活函数 |
您所在的位置:网站首页 › sigmoid概率 › 神经网络常用的sigmoid和softmax激活函数 |
1、Sigmoid -- 函数公式:
公式中,z是单个原始输出值,如原始输出值为[-0.5,0.3, 1.5, -2.0],则z1=-0.5,z2=0.3,z3=1.5,z4=-2.0;
sigmoid函数连续,光滑,严格单调,以(0,0.5)中心对称,是一个非常良好的阈值函数。sigmoid函数把一个实数压缩到(0,1),当z无穷大时,函数值趋于1,反之趋于0;我们知道(0,1)与概率值的范围是相对应的,这样sigmoid函数就能与一个概率分布联系起来了。 我们经常说的logistic函数,就是sigmoid函数,表征的是类别概率。
-- sigmoid的应用: 神经网络分类问题中,在输出层中,我们可以应用sigmoid函数。例如原始输出值为[-0.5, 1.2, 0.1, 2.4],经过sigmoid函数后,输出为概率值[0.37, 0.77, 0.48, 0.91],如下图: (蓝色框内输出的是原始输出值,红色框为sigmoid计算出的概率值)
我们发现概率值总和不为1,即 0.37+0.77+0.48+0.91≠1,是因为Sigmoid 在解决多标签分类问题,Sigmoid分别处理每一个原始输出值,其结果相互独立,允许多种可能性并存,概率总和不一定为1。如果模型原始输出值为非互斥类别,且可以同时选择多个类别,则采用Sigmoid函数计算该网络的原始输出值。 -- sigmoid的不足 sigmoid具有明显的饱和性,其两侧导数趋近于0,在反向传播的过程中,sigmoid的梯度会包含一个 f '(x)因子,在两端的饱和区内,f '(x)会趋于0,导致反向传播的梯度边的非常小,甚至不更新,也是常说的梯度消失。一般来说, sigmoid 网络在 5 层之内就会产生梯度消失现象。 sigmoid函数的输出均大于0,使得输出不是0均值,这称为偏移现象,这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。
2、Softmax -- 函数公式:
分子是某个原始输出值的e^zi,分母是1到k的所有原始输出值的e^zj,也就是说,softmax将所有原始输出值映射到(0,1)之间的值,且所有输出的映射总和就是1;
-- softmax应用 神经网络分类问题中,在输出层中,我们可以应用sigmoid函数。例如原始输出值为[-0.5, 1.2, 0.1, 2.4],经过softmax函数后,输出为概率值[0.04, 0.21, 0.05, 0.70],如下图: (蓝色框内输出的是原始输出值,红色框为softmax计算出的概率值)
我们发现概率值总和为1,即 0.04+0.21+0.05+0.70=1,符合概率模的性质,我们将映射输出的结果理解为概率值,最后选出概率最大的值所在节点作为分类的label输出。所以如果模型输出为互斥类别,且只能选择一个类别,则采用Softmax函数计算该网络的原始输出值。 Softmax函数的输出值相互关联,其概率的总和始终为1。因此,为了增大某一类别的概率,其他类别的概率必须相应减少。 如果预测的是多类别分类问题,且只有一个正确答案,那么就选用softmax函数处理原始输出值。 -- softmax的不足 softmax对样本类别覆盖较全的数据,可以按照分类个数进行划分,保证类别可分,即保证可分性;但是Softmax并不要求类内紧凑和类间分离,这一点非常不适合人脸识别任务,因为相对全世界70亿人口,我们的训练样本微不足道。
欢迎关注我的公众号! |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |