softmax(Multinomial Logistic Regression)
如果把样本类别,看作是一种随机事件的话,那么它需要满足两种条件:
- 每个类别的概率和为1
- 每个类别的概率在【0,1】
p
(
C
k
∣
x
)
=
e
w
k
T
x
∑
k
′
e
w
k
′
T
x
p(C_k | x) = \frac{e^{w_k^T}x}{\sum_{k'} e^{w_{k'}^Tx}}
p(Ck∣x)=∑k′ewk′TxewkTx
或者写成:
s
o
f
t
m
a
x
(
x
n
)
=
e
x
n
∑
i
=
1
N
e
x
i
softmax (x_n) = \frac{e^{x_n}}{\sum^N_{i=1}e^{x_i}}
softmax(xn)=∑i=1Nexiexn
e
x
n
e^{x_n}
exn 表示当前标量
∑
i
=
1
N
e
x
i
\sum^N_{i=1}e^{x_i}
i=1∑Nexi 表示待映射标量的指数和
截图来源: 哔哩哔哩:编程八点档
决策边界:
a
r
g
m
a
x
k
P
(
C
k
∣
x
)
arg max_kP(C_k|x)
argmaxkP(Ck∣x)
a
r
g
m
a
x
k
w
k
T
x
arg max_kw_k^Tx
argmaxkwkTx
one-hot 编码
为了保证类别之间相互独立,转换成one-hot编码。
交叉熵误差函数
单个样本的损失:
l = − ∑ I = 1 N y i ∗ l o g 2 y ^ l = -\sum^N_{I=1}y_i*log_2\hat y l=−I=1∑Nyi∗log2y^
yi 真实概率
多个样本
l = − 1 T ∑ j = 1 T ( ∑ i = 1 N y i ( j ) ∗ l o g y ^ i ( j ) ) l = -\frac{1}{T}\sum^T_{j=1}(\sum^N_{i=1}y_i^{(j)}*log\hat y_i^{(j)}) l=−T1j=1∑T(i=1∑Nyi(j)∗logy^i(j))
T: 样本个数
j:第j个样本
i:第i个标签
l = − 1 T ∑ j = 1 T ( ∑ i = 1 N y i ( j ) ∗ l o g e x n ∑ i = 1 N e x i ) l = -\frac{1}{T}\sum^T_{j=1}(\sum^N_{i=1}y_i^{(j)}*log \frac{e^{x_n}}{\sum^N_{i=1}e^{x_i}}) l=−T1j=1∑T(i=1∑Nyi(j)∗log∑i=1Nexiexn)