softmax函数及其应用

softmax函数实际就是一个归一化函数,以一种特殊的方式将一个向量a=[a_1,...,a_K]归一化成和为1。在基于神经网络的分类任务中,经常用softmax函数将神经网络的多维输出a=[a_1,...,a_I]归一化成一个概率向量y=[y_1,..,y_K],如式(1)

y_i=\frac{e^{a_i}}{\sum^K_{k=1}e^{a_k}}, i=1,...,K. (1)

通常认为y_i是样本x属于第i类的概率P(y=i|x;\theta ),\theta为网络参数。

概率输出经常用似然函数(likelihood function)作为loss函数。在数理统计学中,似然函数是一种关于统计模型中的参数的函数,表示模型参数中的似然性。单个样本的似然性如式(2)

L(\theta)=P(y=i|x;\theta )=\prod ^K_{i=1}y_i^{t_i}, (2)

t为one-hot 向量。

 

一般期望得到使得概率P(y=i|x;\theta )最大的参数值,也就是极大似然估计思想。

\theta_* = \arg \max_{\theta} L(\theta)

L(\theta)=P(y=i|x;\theta )=\prod ^K_{i=1}y_i^{t_i}

但是由于下溢问题,一般取对数,进一步转化为最小化问题即为

\theta_* = \arg \min_{\theta} L(\theta)

L(\theta)=-\log\prod ^K_{i=1}y_i^{t_i}

经过变形可得下式:

L(\theta)=-\sum^K_{i=1}t_i\log y_i, (2)

解决此优化问题,可以用梯度下降法:需要求导;

\frac{\partial L(\theta)}{\partial \theta}=-\sum^K_{i=1}\frac{t_i}{y_i} \frac{\partial y_i}{\partial \theta} =-\sum^K_{i=1}\sum^K_{j=1}\frac{t_i}{y_i}\frac{\partial y_i}{\partial a_j} \frac{\partial a_j}{\partial \theta}

现在求

\frac{\partial y_i}{\partial a_j}

j=i,

\frac{\partial y_i}{\partial a_j} =y_i(1-y_i)

j\neq i,

\frac{\partial y_i}{\partial a_j} =0

所以

\frac{\partial y_i}{\partial a_j} =y_i(1-y_i)

\frac{\partial L(\theta)}{\partial \theta}=-\sum^K_{i=1}\frac{t_i}{y_i} \frac{\partial y_i}{\partial \theta} =-\sum^K_{i=1}\frac{t_i}{y_i}\frac{\partial y_i}{\partial a_i} \frac{\partial a_i}{\partial \theta}

=-\sum^K_{i=1}\frac{t_i}{y_i}y_i(1-y_i)\frac{\partial a_i}{\partial \theta}=-\sum^K_{i=1}t_i(1-y_i)\frac{\partial a_i}{\partial \theta}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值