专栏首页AngelNISoftmax的理解与应用

Softmax的理解与应用

Softmax的理解与应用

Softmax在机器学习中有非常广泛的应用,但是刚刚接触机器学习的人可能对Softmax的特点以及好处并不理解,其实你了解了以后就会发现,Softmax计算简单,效果显著,非常好用。

我们先来直观看一下,Softmax究竟是什么意思

我们知道max,假如说我有两个数,a和b,并且a>b,如果取max,那么就直接取a,没有第二种可能

但有的时候我不想这样,因为这样会造成分值小的那个饥饿。所以我希望分值大的那一项经常取到,分值小的那一项也偶尔可以取到,那么我用softmax就可以了 现在还是a和b,a>b,如果我们取按照softmax来计算取a和b的概率,那a的softmax值大于b的,所以a会经常取到,而b也会偶尔取到,概率跟它们本来的大小有关。所以说不是max,而是 Soft max

定义

假设有一个数组V,Vi​表示V中的第i个元素,那么这个元素的softmax为:

也就是说,是该元素的对数值,与所有元素对数值和的比值

计算与标注样本的差距

在神经网络的计算当中,我们经常需要计算按照神经网络的正向传播计算的分数S1,和按照正确标注计算的分数S2,之间的差距,计算Loss,才能应用反向传播。Loss定义为交叉熵

取log里面的值就是这组数据正确分类的Softmax值,它占的比重越大,这个样本的Loss也就越小,这种定义符合我们的要求

计算推导

当我们对分类的Loss进行改进的时候,我们要通过梯度下降,每次优化一个step大小的梯度,这个时候我们就要求Loss对每个权重矩阵的偏导,然后应用链式法则。那么这个过程的第一步,就是求Loss对score的偏导 (下面公式推导部分对于求偏导符号就用求导符号代替)

我们首先定义

那么我们求Loss的偏导数就是

最后结果的形式非常的简单,只要将算出来的概率的向量对应的真正结果的那一维减1,就可以了

参考资料:

【1】https://blog.csdn.net/supercally/article/details/54234115

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • winter camp 2

    数学问题,关键在于6和1的数量,616161616161,1616161616,这样是616子串出现最多的情形。

    AngelNH
  • Keras-learn-note(2)

    在开始学习Keras之前,一些基础知识是必备的,关于深度学习的基本概念和技术,在使用Keras之前大体了解一下基础知识,这将减少你学习中的困惑。

    AngelNH
  • Keras-learn-note(1)

    在开始学习Keras之前,一些基础知识是必备的,关于深度学习的基本概念和技术,在使用Keras之前大体了解一下基础知识,这将减少你学习中的困惑。

    AngelNH
  • 机器学习之Softmax回归模型

    Softmax在机器学习中有非常广泛的应用,但是刚刚接触机器学习的人可能对Softmax的特点以及好处并不理解,其实你了解了以后就会发现,Softmax计算简单...

    week
  • wordpress博客搭建

    PS:如果只是用来写写东西,做个小网站宣传自己什么的,用便宜的主机就可以了,建议在硅云和亿速互联买中国香港虚拟主机

    huanhao
  • 深入理解Spring系列之六:bean初始化

    《深入理解Spring系列之四:BeanDefinition装载前奏曲》中提到,对于非延迟单例bean的初始化在finishBeanFactoryInitial...

    JavaQ
  • Mysql写入频繁,怎么破?

    Peter谭金杰
  • Python黑帽编程2.4 流程控制

    Python黑帽编程2.4 流程控制 本节要介绍的是Python编程中和流程控制有关的关键字和相关内容。 2.4.1 IF …..ELSE 先上一段代码: ...

    用户1631416
  • requests+BeautifulSoup详解

    人生不如戏
  • Python3学习笔记 | 十五、Python的语句与语法-while语句与for语句

    在Python里,while语句是最常见的循环语句。先看一下while语句的一般格式:

    TeamsSix

扫码关注云+社区

领取腾讯云代金券