版权声明:本文为博主原创文章,未经博主允许不得转载。如有写的不恰当或者不正确的地方,请指正,欢迎与我讨论。如需要查看博客中的源代码,请联系博主QQ:1477517404 https://blog.csdn.net/hfutzhouyonghang/article/details/81630710
数学公式
对 于 x ∈ R 1 × n , s o f t m a x ( x ) = s o f t m a x ( [ x 1 x 2 … x n ] ) = [ e x 1 ∑ j e x j e x 2 ∑ j e x j . . . e x n ∑ j e x j ]
对于
x
∈
R
1
×
n
,
s
o
f
t
m
a
x
(
x
)
=
s
o
f
t
m
a
x
(
[
x
1
x
2
…
x
n
]
)
=
[
e
x
1
∑
j
e
x
j
e
x
2
∑
j
e
x
j
.
.
.
e
x
n
∑
j
e
x
j
]
对 于 一 个 矩 阵 x ∈ R m × n , x i j 表 示 x 的 第 i t h 行 与 第 j t h 列 , 我 们 有 :
对于一个矩阵
x
∈
R
m
×
n
,
x
i
j
表示
x
的第
i
t
h
行 与第
j
t
h
列,我们有:
s o f t m a x ( x ) = s o f t m a x ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ x 11 x 21 ⋮ x m 1 x 12 x 22 ⋮ x m 2 x 13 x 23 ⋮ x m 3 … … ⋱ … x 1 n x 2 n ⋮ x m n ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ = ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ e x 11 ∑ j e x 1 j e x 21 ∑ j e x 2 j ⋮ e x m 1 ∑ j e x m j e x 12 ∑ j e x 1 j e x 22 ∑ j e x 2 j ⋮ e x m 2 ∑ j e x m j e x 13 ∑ j e x 1 j e x 23 ∑ j e x 2 j ⋮ e x m 3 ∑ j e x m j … … ⋱ … e x 1 n ∑ j e x 1 j e x 2 n ∑ j e x 2 j ⋮ e x m n ∑ j e x m j ⎤ ⎦ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ = ⎛ ⎝ ⎜ ⎜ ⎜ ⎜ s o f t m a x (first row of x) s o f t m a x (second row of x) . . . s o f t m a x (last row of x) ⎞ ⎠ ⎟ ⎟ ⎟ ⎟
s
o
f
t
m
a
x
(
x
)
=
s
o
f
t
m
a
x
[
x
11
x
12
x
13
…
x
1
n
x
21
x
22
x
23
…
x
2
n
⋮
⋮
⋮
⋱
⋮
x
m
1
x
m
2
x
m
3
…
x
m
n
]
=
[
e
x
11
∑
j
e
x
1
j
e
x
12
∑
j
e
x
1
j
e
x
13
∑
j
e
x
1
j
…
e
x
1
n
∑
j
e
x
1
j
e
x
21
∑
j
e
x
2
j
e
x
22
∑
j
e
x
2
j
e
x
23
∑
j
e
x
2
j
…
e
x
2
n
∑
j
e
x
2
j
⋮
⋮
⋮
⋱
⋮
e
x
m
1
∑
j
e
x
m
j
e
x
m
2
∑
j
e
x
m
j
e
x
m
3
∑
j
e
x
m
j
…
e
x
m
n
∑
j
e
x
m
j
]
=
(
s
o
f
t
m
a
x
(first row of x)
s
o
f
t
m
a
x
(second row of x)
.
.
.
s
o
f
t
m
a
x
(last row of x)
)
代码
def softmax (x) :
x_exp = np.exp(x)
x_sum = np.sum(x_exp, axis = 1 , keepdims = True )
s = x_exp / x_sum
return s