• Cross-Entropy Loss 与Accuracy的数值关系


    以分类任务为例, 假设要将样本分为(n)个类别.

    先考虑单个样本((X, z)).

    将标题(z)转化为一个(n)维列向量(y = (y_1, dots y_k, dots, y_n)^T):

    [y_k= egin{cases} 0& k eq z \ 1& k = z end{cases} ]

    (p_z)是模型将此样本分到类别(z)的概率, 即正确分类的概率(p_{correct}). 在这个样本上的Cross-Entropy Loss为:

    [loss = -ln p_z = -ln p_{correct} ]

    再考虑由(m)个样本组成的batch. 在整个batch上的loss:

    [loss = frac 1m sum_{i}^{m} - ln p^{(i)}_{correct} ]

    (- ln p^{(i)}_{correct})看作一个随机变量(C_i). 当(m ightarrow infty)时:

    [loss = E(C) = E(-ln p_{correct}) ]

    (p_{correct})对单个样本来说是被正确分类的概率, 对一个batch来说则是准确率 accuracy.
    当一个batch中包含无穷多个样本时:

    [loss = E(-ln accuracy) ]

    (m ightarrow infty)时,

    [accuracy = e^{-loss} ]

    这就是ce loss与accuracy之间的数值关系.

    也就是说,**用batch-based + Cross-Entropy loss训练机器学习算法时, 根据loss可大致计算出accuracy, 并且误差随 batch size 增大而减小. **我常用batch size = 100, 此时(e^{-loss})(accuracy)之间已经很接近了, 误差通常小于(0.01).

  • 相关阅读:
    【2021-08-25】连岳摘抄
    【2021-08-24】对意义的过度扭曲
    【2021-08-23】枕边语
    【2021-08-22】连岳摘抄
    【2021-08-21】旅历尚浅
    【2021-08-20】做事情,等对应好角色去思考
    索引缓冲对象(EBO或IBO )的理解
    vao, vbo的一点拙见
    兔队线段树
    「具体数学」二:和式
  • 原文地址:https://www.cnblogs.com/dengdan890730/p/6132937.html
Copyright © 2020-2023  润新知