Softmax 函数的特点和作用
来源:互联网 发布:知乎二战德国石油 编辑:程序博客网 时间:2024/05/20 05:06
----------
因为这里不太方便编辑公式,所以很多公式推导的细节都已经略去了,如果对相关数学表述感兴趣的话,请戳这里的链接Softmax的理解与应用 - superCally的专栏 - 博客频道 - http://CSDN.NET
----------
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值就是
也就是说,是该元素的指数,与所有元素指数和的比值
这个定义可以说非常的直观,当然除了直观朴素好理解以外,它还有更多的优点
1.计算与标注样本的差距
在神经网络的计算当中,我们经常需要计算按照神经网络的正向传播计算的分数S1,和按照正确标注计算的分数S2,之间的差距,计算Loss,才能应用反向传播。Loss定义为交叉熵
取log里面的值就是这组数据正确分类的Softmax值,它占的比重越大,这个样本的Loss也就越小,这种定义符合我们的要求
2.计算上非常非常的方便
当我们对分类的Loss进行改进的时候,我们要通过梯度下降,每次优化一个step大小的梯度
我们定义选到yi的概率是
然后我们求Loss对每个权重矩阵的偏导,应用链式法则(中间推导省略)。
最后结果的形式非常的简单,只要将算出来的概率的向量对应的真正结果的那一维减1,就可以了
举个例子,通过若干层的计算,最后得到的某个训练样本的向量的分数是[ 1, 5, 3 ], 那么概率分别就是[0.015,0.866,0.117],如果这个样本正确的分类是第二个的话,那么计算出来的偏导就是[0.015,0.866−1,0.117]=[0.015,−0.134,0.117],是不是很简单!!然后再根据这个进行back propagation就可以了
- Softmax 函数的特点和作用
- Softmax 函数的特点和作用是什么?
- 构造函数的作用和特点
- JSP的作用和特点
- vpn的作用和特点
- sigmoid和softmax函数的C++实现
- sigmoid和softmax激活函数的区别
- SoftMax和代价函数
- 构造方法的特点和作用
- 振动流化床干燥机的作用和特点
- 小波变换的特点和作用
- UML各种图的作用和特点
- logistic函数和softmax函数
- logistic函数和softmax函数
- 函数的特点和应用
- Softmax 函数及其作用(含推导)
- Softmax 函数及其作用(含推导)
- Softmax 函数及其作用(含推导)
- python + webdriver
- 器——Eclipse开发JAVA中如何Debug
- datasnap回调演示
- Java并发之Semaphore
- 1094. The Largest Generation (25)
- Softmax 函数的特点和作用
- uva12563 劲歌金曲
- 嵌套循环
- hihoCoder 1407 后缀数组二·重复旋律2 && POJ 1743 Musical Theme(最长不可重叠重复子串问题)
- 百练_2676:整数的个数
- 注解是什么,为什么要使用注解?
- Codeforces Round #382 (Div. 1) 736B Taxes
- 洛谷P1091 合唱队形
- sudo: no tty present and no askpass program specified