Linear
基于仿射变换的输出单元 y ^ = w ⊤ x + b \hat{y}=\pmb w^\top\pmb x +b y^=www⊤xxx+b,因其不具有非线性,这些单元一般称为线性单元.
线性输出层常用于产生高斯分布均值:
p
(
y
∣
x
)
=
N
(
y
;
y
^
,
I
)
p(y|\pmb x)=\mathcal N(y;\hat y, I)
p(y∣xxx)=N(y;y^,I)
最大化其对数似然,等价于最小化均方误差. 线性单元不会饱和,易于基于梯度优化.
Non-linarites
常见的非线性激活函数
![](https://i-blog.csdnimg.cn/blog_migrate/0769ba3c9a962e09a7205a7a1570cca9.png)
tanh仅重新缩放和移动sigmoid,使输出变为[-1,1]:
tanh
(
z
)
=
2
logistic
(
2
z
)
−
1
\tanh(z)=2\text{logistic}(2z)-1
tanh(z)=2logistic(2z)−1
logistic和tanh运算复杂,且饱和区梯度消失,人们提出hard tanh较好的解决了上述问题,从而衍生出ReLU.
![](https://i-blog.csdnimg.cn/blog_migrate/5271b41174034ce97bd2a5c3156d080e.png)
ReLU具有以下性质:
- 非零范围内仅有一个斜率,具有良好的梯度回流,训练速度快;
- 每个单元要么处于激活状态、要么处于终止状态;
Sigmoid
目标:二分类类别 y y y为0或1,预测 P ( y ∣ x ) P(y|\pmb x) P(y∣xxx)的概率,概率值位于 [ 0 , 1 ] [0, 1] [0,1]之间.
令
z
=
w
⊤
x
+
b
z=\pmb w^\top\pmb x+b
z=www⊤xxx+b,sigmoid函数预测输出为1的概率,并使得无论输出多少均有较大的梯度,则类1概率
P
^
(
y
=
1
∣
x
)
=
σ
(
w
⊤
x
+
b
)
=
σ
(
z
)
=
1
/
(
1
+
exp
(
−
z
)
)
\hat P(y=1|\pmb x) = \sigma(\pmb w^\top\pmb x+b)=\sigma(z)=1/(1+\exp(-z))
P^(y=1∣xxx)=σ(www⊤xxx+b)=σ(z)=1/(1+exp(−z))
以
z
z
z值定义
y
y
y的概率分布:
P
(
y
=
1
∣
x
)
=
σ
(
z
)
P
(
y
=
0
∣
x
)
=
1
−
σ
(
z
)
=
σ
(
−
z
)
⟹
P
(
y
∣
x
)
=
σ
(
(
2
y
−
1
)
z
)
\begin{aligned} P(y=1|\pmb x)=\sigma(z)\\[1ex] P(y=0|\pmb x)=1-\sigma(z)=\sigma(-z) \end{aligned}\implies P(y|\pmb x)=\sigma((2y-1)z)
P(y=1∣xxx)=σ(z)P(y=0∣xxx)=1−σ(z)=σ(−z)⟹P(y∣xxx)=σ((2y−1)z)
极小化负对数似然(抵消sigmoid函数中指数项),损失函数变为softplus函数为
J
(
θ
)
=
−
log
P
(
y
∣
x
)
=
−
log
σ
(
(
2
y
−
1
)
z
)
=
ζ
(
(
1
−
2
y
)
z
)
J(\theta)=-\log P(y|\pmb x)=-\log\sigma((2y-1)z)=\zeta((1-2y)z)
J(θ)=−logP(y∣xxx)=−logσ((2y−1)z)=ζ((1−2y)z)
Softmax
softmax函数为sigmoid函数的扩展,可表示具有n个可能值(n个类别的概率)的离散型随机变量的分布. “soft”术语表示softmax函数连续可微,是argmax函数的软化版本.
若线性层预测的输出为
z
=
w
⊤
h
+
b
\pmb z=\pmb w^\top\pmb h +\pmb b
zzz=www⊤hhh+bbb(过度参数化,实际有1个变量固定),softmax函数对其指数化和归一化获得概率分布
softmax
(
z
)
=
exp
(
z
)
∑
j
exp
(
z
j
)
\text{softmax}(\pmb z)=\frac{\exp(\pmb z)}{\sum_j\exp(\pmb z_j)}
softmax(zzz)=∑jexp(zzzj)exp(zzz)
使用最大化对数似然训练softmax来输出目标概率时
log
P
(
y
=
i
;
z
)
=
log
softmax
(
z
)
i
=
z
i
−
log
∑
j
exp
(
z
j
)
\log P(y=i;\pmb z)=\log\text{softmax}(\pmb z)_i=z_i-\log\sum_j\exp(z_j)
logP(y=i;zzz)=logsoftmax(zzz)i=zi−logj∑exp(zj)
极小化交叉熵中对数项将softmax中的指数项被消除,即式中第一项
z
i
z_i
zi使得概率不会饱和,第二项大致近似于
max
j
z
j
\max_jz_j
maxjzj,即任何明显小于
max
j
z
j
\max_jz_j
maxjzj的
z
k
z_k
zk和
exp
(
z
k
)
\exp(z_k)
exp(zk)都可忽略,总是惩罚最不正确的预测.
当正确答案已是softmax的最大输入,则softmax输出接近0,此时该样本对整体训练代价贡献很小.
softmax的常用变体(variants)形式
softmax
(
z
)
=
softmax
(
z
−
max
i
z
i
)
\text{softmax}(z)=\text{softmax}(z-\max_iz_i)
softmax(z)=softmax(z−imaxzi)
利用该性质可降低数值误差,提高数值稳定性,即使
z
\pmb z
zzz包含极正或极负的情况.
Softmax and Multi-Classification
m m m个样本 x ∈ R n \pmb x \in \R^n xxx∈Rn, 类别总数为 k k k, 每个类别 j j j对应各自的模型参数 θ j = ( w j , b ) \theta_j=(\pmb w_j, b) θj=(wwwj,b), x ^ = ( x , 1 ) \pmb {\hat x}=(\pmb x, 1) x^x^x^=(xxx,1).
模型参数矩阵
Θ
=
[
w
11
⋯
w
1
n
b
1
⋮
⋱
⋮
w
k
1
⋯
w
k
n
b
k
]
\Theta = \begin{bmatrix} w_{11} &\cdots &w_{1n} &b_1 \\ \vdots &\ddots & &\vdots \\ w_{k1} &\cdots &w_{kn} &b_k \end{bmatrix}
Θ=⎣⎢⎡w11⋮wk1⋯⋱⋯w1nwknb1⋮bk⎦⎥⎤
softmax定义类别概率
p
(
y
=
j
∣
x
^
;
Θ
)
=
exp
(
θ
j
T
x
^
)
∑
l
=
1
k
exp
(
θ
l
T
x
^
)
p(y=j|\pmb{\hat x};\Theta)= \frac{\exp(\pmb\theta_j^T\pmb{\hat x})}{\sum_{l=1}^k\exp(\pmb\theta_l^T\pmb{\hat x})}
p(y=j∣x^x^x^;Θ)=∑l=1kexp(θθθlTx^x^x^)exp(θθθjTx^x^x^)
预测函数输出(所有类别概率和为1)
h
Θ
(
x
^
)
=
[
p
(
y
=
1
∣
x
^
,
θ
1
)
⋮
p
(
y
=
k
∣
x
^
,
θ
k
)
]
=
1
∑
l
=
1
k
exp
(
θ
l
T
x
^
)
[
exp
(
θ
1
T
x
^
)
⋮
exp
(
θ
k
T
x
^
)
]
h_\Theta(\pmb{\hat x})= \begin{bmatrix} p(y=1|\pmb{\hat x},\pmb\theta_1)\\ \vdots\\ p(y=k|\pmb{\hat x},\pmb\theta_k)\\ \end{bmatrix} = \frac{1}{\sum_{l=1}^k\exp(\pmb\theta_l^T\pmb{\hat x})} \begin{bmatrix} \exp(\pmb\theta_1^T\pmb{\hat x})\\ \vdots\\ \exp(\pmb\theta_k^T\pmb{\hat x}) \end{bmatrix}
hΘ(x^x^x^)=⎣⎢⎡p(y=1∣x^x^x^,θθθ1)⋮p(y=k∣x^x^x^,θθθk)⎦⎥⎤=∑l=1kexp(θθθlTx^x^x^)1⎣⎢⎡exp(θθθ1Tx^x^x^)⋮exp(θθθkTx^x^x^)⎦⎥⎤
交叉熵作为损失函数
J
(
Θ
)
=
−
∑
i
=
1
m
∑
j
=
1
k
1
{
y
i
=
j
}
ln
exp
(
θ
j
T
x
^
i
)
∑
l
=
1
k
exp
(
θ
l
T
x
^
i
)
J(\Theta) = -\sum_{i=1}^m\sum_{j=1}^k 1\{y_i=j\}\ln \frac{\exp(\pmb\theta_j^T\pmb{\hat x}_i)}{\sum_{l=1}^k\exp(\pmb\theta_l^T\pmb{\hat x}_i)}
J(Θ)=−i=1∑mj=1∑k1{yi=j}ln∑l=1kexp(θθθlTx^x^x^i)exp(θθθjTx^x^x^i)
对于单一样例
(
x
^
,
y
)
(\pmb{\hat x}, y)
(x^x^x^,y), 考虑以下两种情况求解
∂
J
/
∂
θ
j
{\partial J}/{\partial \pmb\theta_j}
∂J/∂θθθj:
∂
J
(
Θ
)
∂
θ
j
=
{
−
x
^
(
1
−
exp
(
θ
j
T
x
^
i
)
∑
l
=
1
k
exp
(
θ
l
T
x
^
i
)
)
,
y
=
j
−
x
^
(
0
−
exp
(
θ
j
T
x
^
)
∑
l
=
1
k
exp
(
θ
l
T
x
^
)
)
,
y
≠
j
\frac{\partial J(\Theta)}{\partial \pmb\theta_j} = \begin{cases} -\pmb{\hat x}(1 - \dfrac{\exp(\pmb\theta_j^T\pmb{\hat x}_i)}{\sum_{l=1}^k\exp(\pmb\theta_l^T\pmb{\hat x}_i)}), & y=j \\[5ex] -\pmb{\hat x}(0 - \dfrac{\exp(\pmb\theta_j^T\pmb{\hat x})}{\sum_{l=1}^k \exp(\pmb\theta_l^T\pmb{\hat x})}), & y \neq j \\ \end{cases}
∂θθθj∂J(Θ)=⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧−x^x^x^(1−∑l=1kexp(θθθlTx^x^x^i)exp(θθθjTx^x^x^i)),−x^x^x^(0−∑l=1kexp(θθθlTx^x^x^)exp(θθθjTx^x^x^)),y=jy=j
梯度方向
∇
θ
j
J
(
Θ
)
=
−
∑
i
=
1
m
x
^
i
(
1
{
y
i
=
j
}
−
p
(
y
i
=
j
∣
x
^
i
;
Θ
)
)
\nabla_{\pmb\theta_j} J(\Theta) = -\sum_{i=1}^m \pmb{\hat x}_i(1\{y_i =j\} - p(y_i=j|\pmb{\hat x_i};\Theta))
∇θθθjJ(Θ)=−i=1∑mx^x^x^i(1{yi=j}−p(yi=j∣x^ix^ix^i;Θ))