softmax损失函数

softmax损失函数cnn进行前向传播阶段,依次调用每个Layer的Forward函数,得到逐层的输出,最后一层与目标函数比较得到损失函数,计算误差更新值,通过反向传播逐层到达第一层,所有权值在反向传播结束时一起更新。losslayer是CNN的终点,接受两个Blob作为输入,其中一个是CNN的预测值,另一个是真实标签。损失层则将这两个输入进行一系列运算,得到当前网络的损失函数(LossFunction),

大家好,又见面了,我是你们的朋友全栈君。

一:神经网络中的损失函数

cnn进行前向传播阶段,依次调用每个Layer的Forward函数,得到逐层的输出,最后一层与目标函数比较得到损失函数,计算误差更新值,通过反向传播逐层到达第一层,所有权值在反向传播结束时一起更新。

loss layer 是CNN的终点,接受两个Blob作为输入,其中一个是CNN的预测值,另一个是真实标签。损失层则将这两个输入进行一系列运算,得到当前网络的损失函数(Loss Function),一般记做L(θ)其中θ是当前网络权值构成的向量空间。机器学习的目的是在权值空间中找到让损失函数L(θ) 最小的权值θ(opt),可以采用一系列最优化方法(如SGD方法)逼近权值θ(opt)。

损失函数是在前向传播计算中得到的,同时也是反向传播的起点。


二:Softmax函数

假设有K个类别,Softmax计算过程为:


softmax损失函数其中,j=0,1,2,3,4,5,…,K-1


下面图更直观:


softmax损失函数

softMax的结果相当于输入图像被分到每个标签的概率分布,该函数是单调增函数,即输入值越大,输出也就越大,输入图像属于该标签的概率就越大。

神评论:SVM只选自己喜欢的男神,Softmax把所有备胎全部拉出来评分,最后还归一化一下

对softmax的结果计算交叉熵分类损失函数为:

softmax损失函数

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


三:wiki百科对softmax函数的定义:

In mathematics, the softmax function, or normalized exponential function,[1]:198 is a generalization of the logistic function that “squashes” a K-dimensional vector {\displaystyle \mathbf {z} }\mathbf {z}  of arbitrary real values to a K-dimensional vector {\displaystyle \sigma (\mathbf {z} )}\sigma (\mathbf {z} ) of real values in the range [0, 1] that add up to 1. The function is given by

{\displaystyle \sigma (\mathbf {z} )_{j}={\frac {e^{z_{j}}}{\sum _{k=1}^{K}e^{z_{k}}}}}\sigma (\mathbf {z} )_{j}={\frac {e^{z_{j}}}{\sum _{k=1}^{K}e^{z_{k}}}}    for j = 1, …, K.

The softmax function is used in various multiclass classification methods, such as multinomial logistic regression,[1]:206–209 multiclass linear discriminant analysisnaive Bayes classifiers, and artificial neural networks.[2] Specifically, in multinomial logistic regression and linear discriminant analysis, the input to the function is the result of K distinct linear functions, and the predicted probability for the j‘th class given a sample vector x and a weighting vector w[further explanation needed] is:

{\displaystyle P(y=j\mid \mathbf {x} )={\frac {e^{\mathbf {x} ^{\mathsf {T}}\mathbf {w} _{j}}}{\sum _{k=1}^{K}e^{\mathbf {x} ^{\mathsf {T}}\mathbf {w} _{k}}}}}{\displaystyle P(y=j\mid \mathbf {x} )={\frac {e^{\mathbf {x} ^{\mathsf {T}}\mathbf {w} _{j}}}{\sum _{k=1}^{K}e^{\mathbf {x} ^{\mathsf {T}}\mathbf {w} _{k}}}}}

This can be seen as the composition of K linear functions {\displaystyle \mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} _{1},\ldots ,\mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} _{K}}\mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} _{1},\ldots ,\mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} _{K} and the softmax function (where {\displaystyle \mathbf {x} ^{\mathsf {T}}\mathbf {w} }\mathbf {x} ^{\mathsf {T}}\mathbf {w}  denotes the inner product of {\displaystyle \mathbf {x} }\mathbf {x}  and {\displaystyle \mathbf {w} }\mathbf {w} ). The operation is equivalent to applying a linear operator defined by {\displaystyle \mathbf {w} }\mathbf {w}  to vectors {\displaystyle \mathbf {x} }\mathbf {x} , thus transforming the original, probably highly-dimensional, input to vectors in a K-dimensional space {\displaystyle R^{K}}{\displaystyle R^{K}}.

注:

softmax函数的本质就是将一个K 
维的任意实数向量压缩(映射)成另一个K维的实数向量,其中向量中的每个元素取值都介于(0,1)之间。

x,w 点积就是上图中Z1,Z2,Z3的计算。将高维的输入x转化一个K维的实数,即K类的各自的概率。


四:后记:

理想的分类器应当是除了真实标签的概率为1,其余标签概率均为0,这样计算得到其损失函数为-ln(1)=0.

损失函数越大,说明该分类器在真实标签上的分类概率越小,性能也就越差。

当损失函数接近正无穷明训练发散,需要调小学习速率

在ImageNet-1000分类问题中,初始状态为均匀分布,每个类别的分类概率均为0.001,此时损失函数-ln(0.001)=ln(1000)=6.90775..,

当loss总在6.9左右时,说明没有训练收敛的迹象,尝试调大学习速率,或者修改权值初始化方式。


参考

知乎

http://blog.csdn.net/u014422406/article/details/52805924

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153113.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MySQL JDBC URL各参数详解

    MySQL JDBC URL各参数详解参数名称参数说明缺省值最低版本要求user数据库用户名(用于连接数据库)password用户密码(用于连接数据库)useUnicode是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为truefalse1.1guseSSLMySQL在高版本需要指明是否进行SSL连接在mysql连接字符串url中加入ssl=true或者false即可characterEncoding…

    2022年7月16日
    11
  • utf-8的中文是一个汉字占三个字节长度吗?

    utf-8的中文是一个汉字占三个字节长度吗?英文字母和中文汉字在不同字符集编码下的字节数英文字母:字节数:1;编码:GB2312字节数:1;编码:GBK字节数:1;编码:GB18030字节数:1;编码:ISO-8859-1字节数:1;编码:UTF-8字节数:4;编码:UTF-16字节数:2;编码:UTF-16BE字节数:2;编码:UTF-16LE中文汉字:字节数:2;编码:GB2312字节数:2;编…

    2022年6月26日
    25
  • CreateProcess和WinExec

    CreateProcess和WinExecCreateProcess非阻塞运行,而WinExec为阻塞运行,它非要等到返回时才继续执行。在两个进程共享同一个端口时,为了能让一个退出另一个申请,必须用函数CreateProcess,等到我的端口资源释放后,在运行另一个进程进行申请

    2022年7月11日
    39
  • 因果图与判定表法_因果图如何转换为判断表

    因果图与判定表法_因果图如何转换为判断表1、什么是因果图及判定表法?因果图是用图解的方法表示输入的各种组合关系,依据因果图写出判定表,从而设计相应的测试用例。它适合于检查程序输入条件的各种组合情况。例约束关系、组合关系。2、因果图之4种因果关系(注:0表示某状态不出现,1表示某状态出现)恒等:若c1是1,则e1也为1;否则e1为0非:若c1是1,则e1也为0;否则e1为1或:若…

    2022年8月14日
    2
  • [51Nod1676 无向图同构]无向图哈希[通俗易懂]

    [51Nod1676无向图同构]无向图哈希分类:DataStructureHash1.题目链接[51Nod1676无向图同构]2.题意描述3.解题思路对某一个东西进行哈希,一般就选取一些特征点,然后尽可能离散化这些特征点。对于无向图中的每一个联通块来说,他的特征点就是顶点的度。显然这样还不够,那么可以加入深度这个特征,只需要对联通块的每一个顶点bfs求一边单源点最短路。利用这两个特

    2022年4月10日
    53
  • apifox的使用_怎样能快速上手做表格

    apifox的使用_怎样能快速上手做表格快速上手使用场景Apifox是接口管理、开发、测试全流程集成工具,使用受众为整个研发技术团队,主要使用者为前端开发、后端开发和测试人员。前端开发接口文档管理接口数据Mock接口调试前

    2022年8月7日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号