1、softmax作用

softmax将输出的分类结果映射到(0-1)之间,将神经网络的分类结果转化成对应的概率。不同的概率,表示此样本属于对应类别的可能性大小,概率越大,样本属于该分类的可能性越大。概率的总和为1。

2、softmax工作原理

softmax位于网络输出层的后边,其在网络结构中的位置如下图所示:

8cd16de4d1fa93e8413a2a012d5838cc.png

和隐藏层神经元计算类似,softmax层对输出数据先进行线性运算,再使用softmax激活函数将输出转化为概率。

假设softmax的前一层输出用 eq?a%5E%7B%5Bl-1%5D%7D表示,则softmax首先进行线性运算:

eq?z%5E%7B%5Bl%5D%7D%3Dw%5E%7B%5Bl%5D%7Da%5E%7B%5Bl-1%5D%7D+b%5E%7B%5Bl%5D%7D

线性运算结束后进行softmax激活函数计算,激活函数公式为:

eq?a%5E%7B%5Bl%5D%7D%20%3D%5Cfrac%7Be%5E%7Bz%5E%7B%5Bl%5D%7D%7D%7D%7B%5Csum_%7Bj%3D1%7D%5E%7Bn%7De%5E%7Bz_%7Bj%7D%5E%7B%5Bl%5D%7D%7D%7D

示例说明:

为了更好地理解softmax激活函数作用,假设在一个分类任务中,softmax前一层输出经线性运算后的结果是[5, 2, -1, 3],即eq?z%5E%7B%5Bl%5D%7D%3D%5B5%2C%202%2C%20-1%2C%203%5D

采用softmax激活函数将输出转化为概率值。其中

eq?a%7B_%7B1%7D%7D%5E%7B%5Bl%5D%7D%3D%5Cfrac%7Be%5E%7B5%7D%7D%7Be%5E%7B5%7D+e%5E%7B2%7D+e%5E%7B-1%7D+e%5E%7B3%7D%7D%5Capprox%200.842

eq?a%7B_%7B2%7D%7D%5E%7B%5Bl%5D%7D%3D%5Cfrac%7Be%5E%7B2%7D%7D%7Be%5E%7B5%7D+e%5E%7B2%7D+e%5E%7B-1%7D+e%5E%7B3%7D%7D%5Capprox%200.042

eq?a%7B_%7B3%7D%7D%5E%7B%5Bl%5D%7D%3D%5Cfrac%7Be%5E%7B-1%7D%7D%7Be%5E%7B5%7D+e%5E%7B2%7D+e%5E%7B-1%7D+e%5E%7B3%7D%7D%5Capprox%200.002

eq?a%7B_%7B4%7D%7D%5E%7B%5Bl%5D%7D%3D%5Cfrac%7Be%5E%7B3%7D%7D%7Be%5E%7B5%7D+e%5E%7B2%7D+e%5E%7B-1%7D+e%5E%7B3%7D%7D%5Capprox%200.114

根据softmax公式分别算出每一类的概率,得到最终的概率输出为eq?a%5E%7B%5Bl%5D%7D%3D%5B0.841%2C%200.042%2C%200.002%2C%200.114%5D

3、损失计算

假设分类任务的真实结果是eq?y%3D%5B0%2C1%2C0%2C0%5D,经过softmax预测结果是eq?%5Chat%7By%7D%3D%5B0.3%2C%200.2%2C%200.1%2C%200.4%5D,根据如下损失计算公式:

eq?L%28%5Chat%7By%7D%2Cy%29%3D-%5Csum_%7Bj%3D1%7D%5E%7Bn%7Dy_%7Bj%7D%20log%5Chat%7By%7D_%7Bj%7D

在假设的例子中,n=4,则eq?L%28%5Chat%7By%7D%2Cy%29%3D-%280%5Ctimes%20log0.3+1%5Ctimes%20log0.2+0%5Ctimes%20log0.1+0%5Ctimes%20log0.4%29

假设有m个样本,损失为:

eq?J%28w%5E%7B%5B1%5D%7D%2Cb%5E%7B%5B1%5D%7D%2C...%29%3D%5Cfrac%7B1%7D%7Bm%7D%5Csum_%7Bi%3D1%7D%5E%7Bm%7DL%28%5Chat%7By%7D%5E%7B%28i%29%7D%2Cy%5E%7B%28i%29%7D%29

 

 

 

 

 

 

 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐