[人工智能-深度学习-12]:神经网络基础 - 激活函数之SoftMax与多分类神经网络模型

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120575018


目录

第1章 sigmoid函数在多分类中的困境

第2章 softmax函数在多分类中的应用

2.1 什么是softmax

2.2 softmax的几何意义

2.3 softmax在多分类中的应用

2.4 softmax与sigmoid比较


第1章 sigmoid函数在多分类中的困境

[人工智能-深度学习-12]:神经网络基础 - 激活函数之SoftMax与多分类神经网络模型_第1张图片

输入案例:(X1, X2, X3....... X728)

输出案例:【0.1,  0.6, 0.1, 0.1, 0.2, 0.4, 0.8, 0.2, 0.1, 0.9

  •  sigmoid函数中的每一路的输出值都是在【0,1】,但每一输出是独立的。
  • 因为每一路的输出是独立的,导致每一路的输出值累加,其累加和不等于1,甚至可能大于1,图上图所示,大于1导致:所有的输出体现不出“概率”的意图,也体现不出“比重”的概念。
  • 因为每一路的输出是独立的,无法体现每一路的相对关系,只能看出每一路的绝对关系, 如:
  • 更致命的问题是,不同序列的输出值之间也没有绝对值,也没有可比性

输出索引:  【 0,      1,   2  ,   3 ,   4 ,   5,   6  ,  7  , 8     9

输出案例1:【0.1,  0.6,  0.1, 0.1, 0.2, 0.4, 0.8, 0.2, 0.1, 0.9】=》0.9最大, index9的输出最接近样本标签1.

输出案例2:【0.1,  0.5,  0.1, 0.1, 0.2, 0.4, 0.1, 0.2, 0.1, 0.1  =》 0.5最大, index1的输出最接近样.

更尴尬的,同一路输出,如index1,第一次输出为0.6, 第二次输出为0.5,从绝对值的角度看,即0.6>0.5, 0.6比0.5更接近1, 尴尬的是,0.6反而没有0.5起到的作用大。

这里的根本原因是:多分类的每一路的输出是独立的,它们之间没有相对关系,没有对他们进行联合处理,相对性处理。

这里的根本原因是:

  • 每路输出,没有进行归一化处理(全部输出的累加和为1)
  • 没录输入,没有进行联合化处理(求每一类的累加和)

softmax就是这样的函数,能够解决上述两个问题。

第2章 softmax函数在多分类中的应用

2.1 什么是softmax

(1)数学公式

[人工智能-深度学习-12]:神经网络基础 - 激活函数之SoftMax与多分类神经网络模型_第2张图片

(2)softmax的作用与效果

[人工智能-深度学习-12]:神经网络基础 - 激活函数之SoftMax与多分类神经网络模型_第3张图片

  • softmax对输入数据的关系进行了放大:

如X7=2, 经过e^2放到后,变成了7.3890. 

如X7=9, 经过e^9放到后,变成了1096.62. 

  • softmax对放大后的数据进行累加和计算,把相互无关的独立数据,放到了同一个空间中进行累加。
  • softmax把每一路放大后的数据与累加和的数据进行比较,,得到了每一路在累加和中的比重或比例,这是典型的横向比较。实际上得到每一路的相对大小的关系!!!

[人工智能-深度学习-12]:神经网络基础 - 激活函数之SoftMax与多分类神经网络模型_第4张图片

2.2 softmax的几何意义

[人工智能-深度学习-12]:神经网络基础 - 激活函数之SoftMax与多分类神经网络模型_第5张图片

  • softmax把输入数值空间【-负无穷,+正无穷】映射到了数值空间【0,+无穷】,
  • 在映射的过程中,softmax对每一路输入x信号进行指数函数e^x进行放大。如输入x1=1, x2=5 => x2/x1 = 5 倍, 然而,映射后放大为e^x2/e^x1 = e^4倍。即经过softmax后,x2与x1的距离被放到了。

2.3 softmax在多分类中的应用

[人工智能-深度学习-12]:神经网络基础 - 激活函数之SoftMax与多分类神经网络模型_第6张图片

[人工智能-深度学习-12]:神经网络基础 - 激活函数之SoftMax与多分类神经网络模型_第7张图片

 用一个softmax替代每个神经元原先的每个sigmoid函数,最后通过ArgMax选择一路最大值输出。

2.4 softmax与sigmoid比较

(1)相同点

  • 输入值区间【-无穷,+无穷】,输出值为【0,1】

(2)不同点

  • sigmoid是单输入单输出,多个sigmoid组成多输入多输出; softmax本身就是多输入,多输出。
  • sigmoid的每一路输出是完全独立的,不相关的。softmax的各路输出是联合相关的,他们都是各路占汇总值的比例、权重,每一路的输出,除了与自身的输入相关,还与其他路的输入相关。

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/120575018

你可能感兴趣的:(人工智能-深度学习,人工智能-TensorFlow,人工智能-PyTorch,神经网络,人工智能,深度学习,softmax)