zoukankan      html  css  js  c++  java
  • SoftMax

    熵、交叉熵

    在信息论中,一个离散型随机变量X的熵被定义为:

    交叉熵则用来描述xi的实际输出概率和期望输出概率间的距离,定义函数q()为实际概率分布、p()为期望概率分布,那么交叉熵H()为:

    交叉熵损失函数交叉熵损失函数被广泛应用于分类问题。

    在二分类问题中,定义y为样本标签(正标签为1,负标签为0),p预测为正样本的概率,此时交叉熵损失函数为:

    可以很容易的将二分类问题拓展到多分类问题上。定义K为分类数,在多分类问题中的交叉熵损失函数为:

    此时,求交叉熵损失函数J关于pi的偏导得到:

    交叉熵损失函数与SoftMax

    e为自然底数,softmax函数形如:

    如下图所示,通过softmax可以将来自多个神经元的输出值映射到(0,1]区间内,并且所有输出的映射值之和为1(映射值满足概率性质)。

    通常情况下,softmax激活函数与交叉熵损失函数搭配使用。

    在反向传播时,通过链式法则求解损失函数L关于某一参数的偏导w(也就是梯度),而后辅以学习率,向梯度的反方向更新该参数:

     若损失函数为交叉熵损失函数则L=J,同时激活函数为softmax,由于学习率与输入值已知,我们只需求解交叉熵损失函数的偏导与softmax的偏导:

    softmax的偏导需要分情况讨论

    当i==j时:

     当i!=j时

     所以将softmax的偏导与交叉熵损失函数的偏导结合得到:

     针对分类问题,我们给定的结果y_i最终只会有一个类别是1,其他类别都是0,因此,对于分类问题,这个梯度等于:

     辅以学习率,我们可以非常快速的向梯度的反方向更新参数:

  • 相关阅读:
    Structured streaming
    streaming窗口操作
    scala伴生对象,apply()及单例
    storm集成kafka
    solr简易安装配置
    拦路雨偏似雪花,饮泣的你冻吗?--稍瑞,我是关键字过滤器
    我存在,你深深的循环里--从反射看JSON死循环
    ueditor:原谅我这一生不羁放纵爱独特
    或许你不知道(2):LinkedList
    自定义负载均衡
  • 原文地址:https://www.cnblogs.com/alan-W/p/13766135.html
Copyright © 2011-2022 走看看