2020-09-17

softmax

softmax函数常在神经网络输出层充当激活函数,目的就是将输出层的值归一化到0-1区间,将神经元输出构成概率分布,主要是将神经元输出值归一化。

在李宏毅机器学习中,logistic regression中,Multi-class Classification说过softmax:
假设有三个class:C1,C2,C3,每一个class都有自己的weight和bias,这里w1,w2,w3分别代表3个vector;b1,b2,b3分别代表3个const,input的x也是一个vector

softmax:意思是对最大值做强化,因为在做第一步的时候,对z取exponential回事大的值和小的值之间的差距被拉得更开,也就是强化大的值。

我们把z1,z2,z3丢进一个softmax的function,softmax做的事情是这样三步:

  • 取exponential,得到ez1,ez2,ez3
  • 把三个exponential累计求和,得到total sum=\sum_{j=1}^3 {e^{z_j}}
  • 将total sum分别除去这三项(归一化),得到y1=\frac{e^{z_1}}{\sum_{j=1}^3{e^{z_j}}}、y2=\frac{e^{z_2}}{\sum_{j=1}^3{e^{z_j}}}、y3=\frac{e^{z_3}}{\sum_{j=1}^3{e^{z_j}}}

text

z
原来的output z可以是任何值,但是做完softmax之后,output yi的值是介于0-1之间的,并且它们的和一定是1,
\sum_i {y_i}
=1,以上图为例,yi表示input x属于第i个class的概率,比如属于C_1的概率是y_1=0.88,属于C_2的概率是y_2=0.12,属于C_3的概率是y_3=0.
而softmax的output,就是拿来当z的posterior probability

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容