激活函数(ReLU、Sigmoid、Softmax)

Linear

基于仿射变换的输出单元 y ^ = w ⊤ x + b \hat{y}=\pmb w^\top\pmb x +b y^=wwwxxx+b,因其不具有非线性,这些单元一般称为线性单元.

线性输出层常用于产生高斯分布均值:
p ( y ∣ x ) = N ( y ; y ^ , I ) p(y|\pmb x)=\mathcal N(y;\hat y, I) p(yxxx)=N(y;y^,I)
最大化其对数似然,等价于最小化均方误差. 线性单元不会饱和,易于基于梯度优化.


Non-linarites

常见的非线性激活函数

'>

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.

ReLU具有以下性质:

  • 非零范围内仅有一个斜率,具有良好的梯度回流,训练速度快;
  • 每个单元要么处于激活状态、要么处于终止状态;

Sigmoid

目标:二分类类别 y y y为0或1,预测 P ( y ∣ x ) P(y|\pmb x) P(yxxx)的概率,概率值位于 [ 0 , 1 ] [0, 1] [0,1]之间.

z = w ⊤ x + b z=\pmb w^\top\pmb x+b z=wwwxxx+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=1xxx)=σ(wwwxxx+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=1xxx)=σ(z)P(y=0xxx)=1σ(z)=σ(z)P(yxxx)=σ((2y1)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(yxxx)=logσ((2y1)z)=ζ((12y)z)


Softmax

softmax函数为sigmoid函数的扩展,可表示具有n个可能值(n个类别的概率)的离散型随机变量的分布. “soft”术语表示softmax函数连续可微,是argmax函数的软化版本.

若线性层预测的输出为 z = w ⊤ h + b \pmb z=\pmb w^\top\pmb h +\pmb b zzz=wwwhhh+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=zilogjexp(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(zimaxzi)
利用该性质可降低数值误差,提高数值稳定性,即使 z \pmb z zzz包含极正或极负的情况.


Softmax and Multi-Classification

m m m个样本 x ∈ R n \pmb x \in \R^n xxxRn, 类别总数为 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} Θ=w11wk1w1nwknb1bk
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=jx^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=1x^x^x^,θθθ1)p(y=kx^x^x^,θθθk)=l=1kexp(θθθlTx^x^x^)1exp(θθθ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=1mj=1k1{yi=j}lnl=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} θθθjJ(Θ)=x^x^x^(1l=1kexp(θθθlTx^x^x^i)exp(θθθjTx^x^x^i)),x^x^x^(0l=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=1mx^x^x^i(1{yi=j}p(yi=jx^ix^ix^i;Θ))

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值