Softmax计算技巧

初始做法

在softmax回归中,定义
y ^ = s o f t m a x ( o ) y ^ j = exp ⁡ ( o j ) ∑ k exp ⁡ ( o k ) ( 1 ) ( i = 1... n , k = 1... q ) \hat{\mathbf{y}} = \mathrm{softmax}(\mathbf{o})\quad \text\quad \hat{y}_j = \frac{\exp(o_j)}{\sum_k \exp(o_k)} \text\quad (1)\\ (i=1...n,k=1...q) y^=softmax(o)y^j=kexp(ok)exp(oj)(1)(i=1...n,k=1...q)
对于任何标签 y y y 和模型预测 y ^ \hat{y} y^ ,损失函数为:
l ( y , y ^ ) = − ∑ j = 1 q y j log ⁡ y ^ j ( 2 ) l(\mathbf{y}, \hat{\mathbf{y}}) = - \sum_{j=1}^q y_j \log \hat{y}_j \text\quad (2) l(y,y^)=j=1qyjlogy^j(2)
( 1 ) (1) (1) 代入 ( 2 ) (2) (2) 中:
l ( y , y ^ ) = − ∑ j = 1 q y j log ⁡ exp ⁡ ( o j ) ∑ k = 1 q exp ⁡ ( o k ) = ∑ j = 1 q y j log ⁡ ∑ k = 1 q exp ⁡ ( o k ) − ∑ j = 1 q y j o j = log ⁡ ∑ k = 1 q exp ⁡ ( o k ) − ∑ j = 1 q y j o j . ( 3 ) \begin{split}\begin{aligned} l(\mathbf{y}, \hat{\mathbf{y}}) &= - \sum_{j=1}^q y_j \log \frac{\exp(o_j)}{\sum_{k=1}^q \exp(o_k)} \\ &= \sum_{j=1}^q y_j \log \sum_{k=1}^q \exp(o_k) - \sum_{j=1}^q y_j o_j\\ &= \log \sum_{k=1}^q \exp(o_k) - \sum_{j=1}^q y_j o_j. \end{aligned}\end{split} \text\quad (3) l(y,y^)=j=1qyjlo

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值