zoukankan      html  css  js  c++  java
  • logits

    作者:王峰
    链接:https://www.zhihu.com/question/60751553/answer/1986650670
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    logit原本是一个函数,它是sigmoid函数(也叫标准logistic函数) [公式] 的反函数: [公式] 。logit这个名字的来源即为logistic unit。

    但在深度学习中,logits就是最终的全连接层的输出,而非其本意。通常神经网络中都是先有logits,而后通过sigmoid函数或者softmax函数得到概率 [公式] 的,所以大部分情况下都无需用到logit函数的表达式。

    什么时候我们会真的需要用到logit函数呢?考虑这样一个问题:如果我们拿到了一个黑盒模型的概率输出,想要用这个模型生成一批数据来distill我们自己的模型,但distill过程往往又需要调节温度项来重新计算概率(大概是这么个形式: [公式] ),此时我们就需要从概率值反推logits了,而反推的过程就如上边的公式所述: [公式] 。所以对于logistic regression来说,logit恰好是输出概率经过logit函数的结果,因此即使我们并没有真正地用到logit函数,也不妨将其称作logit。

    但是,目前大家用得更多的是多分类的softmax函数,而它的反函数其实并不是logit函数,而是log函数 [公式] ,这样再次经过softmax函数: [公式] ,就得到了原来的概率。这里需要注意的是:所有logits共同减去一个数字,其得到的softmax结果是不变的,所以得到的logits并不一定与原始logits一模一样,而是会相差一个常数。

    由此可见,使用logit一词来表示网络最后一层的输出,实际上只适用于logistic regression。而对于现在更多使用的多分类器softmax来说,其反函数应该是log函数,而非logit,继续用logit一词实际上是不恰当的。我个人倾向于使用“分数”或者直接说是最后一个全连接层的输出,这样比较形象,也不至于让初学者摸不到头脑。

  • 相关阅读:
    springboot整合Swagger2
    FastJson会把哪些字符串解析为null
    BitMap再再体验之布隆过滤器
    如何利用windows自带的画图工具拼接图片
    BitMap再体验之排序
    BitMap 初体验
    Chrome 隐藏最常访问的网站
    idea同一个项目不同端口启动
    ubuntu16搭建harbor镜像库
    virtualbox硬盘扩容
  • 原文地址:https://www.cnblogs.com/yibeimingyue/p/15023171.html
Copyright © 2011-2022 走看看