【损失函数系列】softmax loss损失函数详解

【损失函数系列】softmax loss损失函数详解1.损失函数:损失函数(lossfunction)是用来评测模型的预测值f(x)与真实值Y的相似程度,损失函数越小,就代表模型的鲁棒性越好,损失函数指导模型学习。根据损失函数来做反向传播修改模型参数。机器学习的目的就是学习一组参数,使得预测值与真值无限接近。2.softmaxloss:它是损失函数的一种,是softmax和cross-entropyloss组合而成的损失函数。先看softmax,其函数形式如下:其中zj就是某个神经网络全连…

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

1.损失函数:

        损失函数(loss function)是用来评测模型的预测值f(x)与真实值Y的相似程度,损失函数越小,就代表模型的鲁棒性越好,损失函数指导模型学习。根据损失函数来做反向传播修改模型参数。机器学习的目的就是学习一组参数,使得预测值与真值无限接近。

2.softmax loss:

        它是损失函数的一种,是softmax和cross-entropy loss组合而成的损失函数。

        先看softmax,其函数形式如下:其中z就是某个神经网络全连接层输出的一组结果,例如分类问题,做4分类,z就是一个1*4的向量。j就是0~3下标号。zk就是全连接层第k个值。

                                                                               【损失函数系列】softmax loss损失函数详解(1)

 全连接输出向量z的每个值没有大小限制,显然通过(1)后就强制将它给限制在0~1之间了,变成概率值。

        cross-entropy loss 交叉熵损失函数在我的博客详细写了下:https://blog.csdn.net/gbz3300255/article/details/106810047

这里就直接上交叉熵的公式了:

                                                                  【损失函数系列】softmax loss损失函数详解(2)

f(zc)就是上面的f(fzk),就是 softmax函数的输出值。yc就是样本真值喽。公式(2)就是最终的损失函数值了。

举例说明:例如真实样本标签为

yc = [0, 0, 1, 0]。  

而第一个预测结果为

f(z1) = [0.1, 0.1,  0.7, 0.1]

f(z2) = [0.25, 0.2, 0.3, 0.35]

f(z3) = [0.15, 0.2, 0.1, 0.55]

显然第一个预测结果是对的,第二个,第三个都是错的。他们的损失函数值分别为

Lz1 = -log0.7

Lz2 = -log0.3

Lz3 = -log0.1

L函数图像如下:

                              【损失函数系列】softmax loss损失函数详解

显然,与真值越接近,损失函数越小,与真值相去越远 ,损失函数越大。优化过程就是不断的将与真值接近的那个概率值提升,提升,再提升,让损失函数降低,降低,再降低。

 

 

 

 

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

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

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


相关推荐

  • Kettle工具简单使用(spoon)[通俗易懂]

    Kettle工具简单使用(spoon)[通俗易懂]1、添加测试数据在navicat中随便找个表当做被转化的数据进行测试,以下表为例:在SQLserver数据库中创建表2、下载spoon软件下载路径:https://download.csdn.net/download/qq_57404736/85013576打开文件夹,双击spoon.bat打开软件3、配置输入和输出文件双击左边输入,然后找到表输入,拖到右侧工作区双击工作区的表输入,进行配置点击确定,配置完毕点击获取

    2022年10月16日
    2
  • java中定义json格式数据类型_java解析字符串

    java中定义json格式数据类型_java解析字符串在开过发过程中,遇到将一个实体类转换成json对象,转义后得到的字符串中,存在大小写转义错误。在测试中发现:1、字段名称都大写(AAA),不会有问题。2、字段名称都小写(aaa),不会有问题。3、字段名称首字母大写,其余大小写都存在(AaBb),得到的后的是:aaBb;因为基于分离开发,要严格按照规定的协议去做,所以这样是不被允许的。解决方法:引入jar包:jackson-databind-2.8…

    2022年9月21日
    5
  • linux搜索文件或内容命令_linux怎么查看文件内容

    linux搜索文件或内容命令_linux怎么查看文件内容1、递归搜索文件内容,如果查找"hello,world!"字符串,可以这样:grep-rn"hello,world!"**:表示当前目录所有文件,也可以是某个文件名-r是递归查找-n是显示行号-R查找所有文件包含子目录-i忽略大小写2、搜索文件find/-name’pay.html’……

    2025年8月5日
    1
  • 一文吃透 VS Code+Git 操作(vs code中git的相关配置与使用)

    一文吃透 VS Code+Git 操作(vs code中git的相关配置与使用)vscode结合git的相关操作详解,案例演示。

    2022年8月22日
    19
  • Angular 2 前端 http 传输 model 对象及其外键的问题

    Angular 2 前端 http 传输 model 对象及其外键的问题

    2021年11月24日
    46
  • 亚信安全发布2021年挖矿病毒专题报告,聚焦挖矿病毒进化与治理

    亚信安全发布2021年挖矿病毒专题报告,聚焦挖矿病毒进化与治理供稿|亚信安全出品|CSDN云计算近日,《亚信安全2021年挖矿病毒专题报告》正式发布(以下简称《报告》)。《报告》以2021年亚信安全威胁情报与服务运营部门所监测、分析和处置的挖矿病毒事件为基础,对各类挖矿病毒和攻击进行分析梳理与情况总结,并且深度探究未来可能会演化的方向,以此帮助更多用户,以更安全、更高效、更全面的行动做出安全规划,为挖矿病毒治理提供了参考路径。2021年挖矿病毒大事件全面回顾2021全年,亚信安全共拦截挖矿病毒516,443次。《报告》基于此整体梳.

    2022年5月20日
    58

发表回复

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

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