zoukankan      html  css  js  c++  java
  • Negative log-likelihood function

    Softmax function

    Softmax 函数 (y=[y_1,cdots,y_m]) 定义如下:

    [y_i=frac{exp(z_i)}{sumlimits_{j=1}^m{exp(z_j)}}, i=1,2,cdots,m ]

    它具有很好的求导性质:

    [frac{partial y_i}{partial z_i}=y_i* (1-y_i) ]

    其中,(y)的每一个维度 (y_i) 表明,属于第 (i) 类的概率。求导过程,请参考:Softmax vs. Softmax-Loss: Numerical Stability

    Negative log-likehood

    当我们使用softmax 函数作为 output function的时候,即:

    [y=softmax(z) ]

    (z) 在这里只表示某些需要优化的参数。

    我们需要选择 negiative log-likelihood 作为代价函数( cost function), 也被称作 Cross-Entropy cost function. 即:

    [E(t,y)= -sumlimits_i {t_i log y_i} ]

    (t)表示的是 tagert, (y) 表示的是model's prediction. 通常,(t) 表示的是 one-hot representation, (y) 表示的是各类的 predicted probability.

    Note

    如果 (t) 采用的是 one-hot representation, 那么我们的计算公式是:

    [E(t,y)= -t log y ]

    如果 (t) 是对应的 index, 而 (y) 是对应的 predicted probability vector 的话,计算公式:

    [E(t,y)= - log y [t] ]

    它的求导公式也很简单:

    [frac{partial E(t,y)}{partial z_i}= sumlimits_j {frac{partial E(t,y)}{partial y_i}frac{partial y_j}{partial z_j}}= y_i -t_i ]

    Note

    如果 (t) 采用的是 one-hot representation, 那么我们的计算公式是:

    [frac{partial E(t,y)}{partial z}= y -z ]

    如果 (t) 是对应的 index, 而 (y) 是对应的 predicted probability vector 的话,计算公式:

    [y[t]-=1 ]

    [frac{partial E(t,y)}{partial z} := y ]

  • 相关阅读:
    2017ecjtu-summer training #4 CodeForces 731C
    HDU 1232 并查集
    2017ecjtu-summer training #3 POJ3264
    2017ecjtu-summer training #4 UESTC 30
    斑羚飞渡 贪心
    Codeforces Round #565 (Div. 3) D. Recover it!
    P3398 仓鼠找sugar lca
    P3146 [USACO16OPEN]248 dp
    P1955 [NOI2015]程序自动分析 离散化
    P2949 [USACO09OPEN]工作调度Work Scheduling 贪心
  • 原文地址:https://www.cnblogs.com/ZJUT-jiangnan/p/5489047.html
Copyright © 2011-2022 走看看