zoukankan      html  css  js  c++  java
  • A-交叉熵的使用

    交叉熵刻画了两个概率分布之间的距离

    但是神经网络的输出却不是一个概率分布

    softmax回归可以把前向传播返回的结果变成一个概率分布的问题

    在tf中,softmax回归参数被去掉了,只是一个额外的输出处理层

    也就是说原来的输出被当成了置信度

    从交叉熵的公式来来看H(A,B)!=H(B,A)也就是说这个函数是不对称的。

    H(A,B)表达的是概率分布B来表达概率分布A的困难程度

    当交叉熵作为损失函数的时候,A表示的是正确答案,而B表示的则是预测的答案

    也就是说交叉熵的值越小,两个概率的分布也就越接近

    例题:有一个三分类的问题,某个样例的正确答案是(1,0,0),某个模型经过softmax回归之后的预测答案是(0.5,0.4,0.1)

       那么这个预测和正确答案之间的交叉熵是

       

       如果另外一个模型的预测是(0.8,0.1,0.1),那么交叉熵为

       

    可以看到区别呢,tf实现代码如下

        cross_entropy = -tf.reduce_mean(y_*tf.log(tf.clip_by_value(y,1e-10,1.0)))
    

     clip_by_value(y,up,dowm) 可以将一个张量中的数值限制到一个范围,避免出现log0这样的错误

    把y限制到(up,down)之间

  • 相关阅读:
    保障升级:Splashtop 公布安全顾问委员会成员
    Android Studio gradle-5.4.1
    C++__静态成员
    网络嗅探及协议分析-wireshark
    网络嗅探及协议分析-tcpdump
    Linux基本安全防护技术
    C++__动态对象
    C++___深浅拷贝
    C++____函数重载
    C++__函数的默认参数和占位
  • 原文地址:https://www.cnblogs.com/simon-idea/p/9626275.html
Copyright © 2011-2022 走看看