fbpx
维基百科

Softmax函数

数学,尤其是概率论和相关领域中,Softmax函数,或称归一化指数函数[1]:198,是逻辑函数的一种推广。它能将一个含任意实数的K维向量  “压缩”到另一个K维实向量  中,使得每一个元素的范围都在之间,并且所有元素的和为1(也可視為一個 (k-1)維的hyperplane或subspace)。该函数的形式通常按下面的式子给出:

   for j = 1, …, K.

Softmax函数实际上是有限项离散概率分布的梯度对数归一化。因此,Softmax函数在包括 多项逻辑回归[1]:206–209 ,多项线性判别分析朴素贝叶斯分类器人工神经网络等的多种基于機率的多分类问题方法中都有着广泛应用。[2] 特别地,在多项逻辑回归和线性判别分析中,函数的输入是从K个不同的線性函數得到的结果,而样本向量 x 属于第 j 个分类的機率为:

这可以被视作K个线性函数Softmax函数的复合)。

例子 编辑

输入向量 对应的Softmax函数的值为 。输出向量中拥有最大权重的项对应着输入向量中的最大值“4”。这也显示了这个函数通常的意义:对向量进行归一化,凸显其中最大的值并抑制远低于最大值的其他分量。

下面是使用Python进行函数计算的範例程式碼:

import math z = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0] z_exp = [math.exp(i) for i in z] print(z_exp) # Result: [2.72, 7.39, 20.09, 54.6, 2.72, 7.39, 20.09]  sum_z_exp = sum(z_exp) print(sum_z_exp) # Result: 114.98  softmax = [round(i / sum_z_exp, 3) for i in z_exp] print(softmax) # Result: [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175] 

Python使用numpy计算的示例代码:

import numpy as np z = np.array([1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]) print(np.exp(z)/sum(np.exp(z))) 


Julia 的範例:

julia> A = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0] 7-element Array{Float64,1}:  1.0  2.0  3.0  4.0  1.0  2.0  3.0 julia> exp.(A) ./ sum(exp.(A)) 7-element Array{Float64,1}:  0.0236405  0.0642617  0.174681  0.474833  0.0236405  0.0642617  0.174681 

參考資料 编辑

  1. ^ 1.0 1.1 Bishop, Christopher M. (2006).
  2. ^ ai-faq What is a softmax activation function? (页面存档备份,存于互联网档案馆

softmax函数, 在数学, 尤其是概率论和相关领域中, 或称归一化指数函数, 是逻辑函数的一种推广, 它能将一个含任意实数的k维向量, displaystyle, mathbf, 压缩, 到另一个k维实向量, displaystyle, sigma, mathbf, 使得每一个元素的范围都在, displaystyle, 之间, 并且所有元素的和为1, 也可視為一個, 維的hyperplane或subspace, 该函数的形式通常按下面的式子给出, displaystyle, sigma, mathbf, fr. 在数学 尤其是概率论和相关领域中 Softmax函数 或称归一化指数函数 1 198 是逻辑函数的一种推广 它能将一个含任意实数的K维向量 z displaystyle mathbf z 压缩 到另一个K维实向量 s z displaystyle sigma mathbf z 中 使得每一个元素的范围都在 0 1 displaystyle 0 1 之间 并且所有元素的和为1 也可視為一個 k 1 維的hyperplane或subspace 该函数的形式通常按下面的式子给出 s z j e z j k 1 K e z k displaystyle sigma mathbf z j frac e z j sum k 1 K e z k for j 1 K Softmax函数实际上是有限项离散概率分布的梯度对数归一化 因此 Softmax函数在包括 多项逻辑回归 1 206 209 多项线性判别分析 朴素贝叶斯分类器和人工神经网络等的多种基于機率的多分类问题方法中都有着广泛应用 2 特别地 在多项逻辑回归和线性判别分析中 函数的输入是从K个不同的線性函數得到的结果 而样本向量 x 属于第 j 个分类的機率为 P y j x e x T w j k 1 K e x T w k displaystyle P y j mathbf x frac e mathbf x mathsf T mathbf w j sum k 1 K e mathbf x mathsf T mathbf w k 这可以被视作K个线性函数x x T w 1 x x T w K displaystyle mathbf x mapsto mathbf x mathsf T mathbf w 1 ldots mathbf x mapsto mathbf x mathsf T mathbf w K Softmax函数的复合 x T w displaystyle mathbf x mathsf T mathbf w x displaystyle mathbf x w displaystyle mathbf w 例子 编辑输入向量 1 2 3 4 1 2 3 displaystyle 1 2 3 4 1 2 3 nbsp 对应的Softmax函数的值为 0 024 0 064 0 175 0 475 0 024 0 064 0 175 displaystyle 0 024 0 064 0 175 0 475 0 024 0 064 0 175 nbsp 输出向量中拥有最大权重的项对应着输入向量中的最大值 4 这也显示了这个函数通常的意义 对向量进行归一化 凸显其中最大的值并抑制远低于最大值的其他分量 下面是使用Python进行函数计算的範例程式碼 import math z 1 0 2 0 3 0 4 0 1 0 2 0 3 0 z exp math exp i for i in z print z exp Result 2 72 7 39 20 09 54 6 2 72 7 39 20 09 sum z exp sum z exp print sum z exp Result 114 98 softmax round i sum z exp 3 for i in z exp print softmax Result 0 024 0 064 0 175 0 475 0 024 0 064 0 175 Python使用numpy计算的示例代码 import numpy as np z np array 1 0 2 0 3 0 4 0 1 0 2 0 3 0 print np exp z sum np exp z Julia 的範例 julia gt A 1 0 2 0 3 0 4 0 1 0 2 0 3 0 7 element Array Float64 1 1 0 2 0 3 0 4 0 1 0 2 0 3 0 julia gt exp A sum exp A 7 element Array Float64 1 0 0236405 0 0642617 0 174681 0 474833 0 0236405 0 0642617 0 174681參考資料 编辑 1 0 1 1 Bishop Christopher M 2006 ai faq What is a softmax activation function 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title Softmax函数 amp oldid 76029919, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。