(一)学习softmax函数

三世轮回 提交于 2019-12-09 21:46:14

今天简单了解了一下softmax函数,记录一下呀呀呀呀~~~~~~~~

深度学习最终解决的是分类或者回归问题。分类:离散问题(是或不是);回归:连续值问题(是多少)。

在现实中,输出层我们采用softmax函数或sigmoid函数来输出分类概率值,其中二元分类一般采用的是sigmoid函数。softmax函数将多个神经元的输出映射到(0-1)的区间内,根据概率的高低进行分类,并且概率之和为1,所以我们就可以看成概率来理解,从而进行多分类。

先了解max函数

假如说有2个数,a和b,并且a>b,如果取max,那么就直接取a(只能取一个,没有第二个可能性

但是我们并不希望上面的max函数那样,死死的,只能选一个。这样会造成max值小的那个,直接过滤掉。我们现在的目的:希望分值大的那一项经常取到,分值小的那一项在某种概率一下也可以取到,这时候就用到了sotfmax函数了。通过设定一个softmax函数来计算a和b的概率,这样,我们可以根据设置的概率大小来设置a和b的权重大小。

函数定义

假设我们有一个数组V,Vi表示V中的第i个元素,那么这个元素的softmax值就是
在这里插入图片描述
也就是说,每一个元素的概率值是该元素的指数与所有元素指数和的比值。

sofmax函数的特点

在这里插入图片描述
softmax应用于神经网络的最后一层,是因为这个函数优点很多:
(1)这个函数计算简单,在计算损失的时候,计算量小,这对于我们实际工程项目应用的时候十分重要。
(2)softmax将网络的输出转换为简单的形式,方便机器进行分类,而且可以将无论是正值或者负值都可以转换到(0,1)区间内。
(3)softmax不仅可以进行二分类,还可以根据计算到的概率进行多分类。

sofmax函数与深度学习

我们知道深度学习网络的优势是可以通过后向传播迭代更新我们网络的参数,一般是通过梯度下降的方法,每次优化一个step大小的梯度,在这个过程中,使用了softmax函数之后,梯度求导的过程会非常方便。
在这里插入图片描述
前向传播结束之后,就要开始后向传播了,对样本进行更新。在更新之前,需要定义损失函数,在分类问题中,与softmax函数结合的损失函数通常是交叉熵损失函数。

参考博客:
1、https://blog.csdn.net/qq_36671300/article/details/89211444
2、https://blog.csdn.net/lovelyaiq/article/details/79460243

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!