均方误差,交叉熵损失函数举例计算

目录

Classification Error(分类错误率)

 Mean Squared Error (均方误差)

交叉熵损失函数


我们希望根据图片动物的轮廓、颜色等特征,来预测动物的类别,有三种可预测类别:猫、狗、猪。假设我们当前有两个模型(参数不同),这两个模型都是通过sigmoid/softmax的方式得到对于每个预测结果的概率值:

模型1

预测真实是否正确
0.3 0.3 0.40 0 1 (猪)正确
0.3 0.4 0.30 1 0 (狗)正确
0.1 0.2 0.71 0 0 (猫)错误

模型1对于样本1和样本2以非常微弱的优势判断正确,对于样本3的判断则彻底错误。

模型2

预测真实是否正确
0.1 0.2 0.70 0 1 (猪)正确
0.1 0.7 0.20 1 0 (狗)正确
0.3 0.4 0.31 0 0 (猫)错误

模型2对于样本1和样本2判断非常准确,对于样本3判断错误,但是相对来说没有错得太离谱。

好了,有了模型之后,我们需要通过定义损失函数来判断模型在样本上的表现了,那么我们可以定义哪些损失函数呢?

Classification Error(分类错误率)

最为直接的损失函数定义为: 

模型1: 

模型2: 

我们知道,模型1模型2虽然都是预测错了1个,但是相对来说模型2表现得更好,损失函数值照理来说应该更小,但是,很遗憾的是,classification error  并不能判断出来,所以这种损失函数虽然好理解,但表现不太好。

 Mean Squared Error (均方误差)

均方误差损失也是一种比较常见的损失函数,其定义为:

模型1:

对所有样本的loss求平均:

模型2:

对所有样本的loss求平均:

我们发现,MSE能够判断出来模型2优于模型1,那为什么不采样这种损失函数呢?主要原因是在分类问题中,使用sigmoid/softmx得到概率,配合MSE损失函数时,采用梯度下降法进行学习时,会出现模型一开始训练时,学习速率非常慢的情况(MSE损失函数)。

有了上面的直观分析,我们可以清楚的看到,对于分类问题的损失函数来说,分类错误率和均方误差损失都不是很好的损失函数,下面我们来看一下交叉熵损失函数的表现情况。

交叉熵损失函数

现在我们利用这个表达式计算上面例子中的损失函数值:

模型1

对所有样本的loss求平均:

模型2:

对所有样本的loss求平均:

可以发现,交叉熵损失函数可以捕捉到模型1模型2预测效果的差异。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/7277.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Appium: Windows系统桌面应用自动化测试(一)

Appium: Windows系统桌面应用自动化测试 一、方案调研二、环境搭建1、WinAppDriver环境搭建(1)开启开发者选项中的“开发人员模式”(2)windows sdk下载安装(3)WinAppDriver下载安装 2、appium环境搭建&…

开发者活动:云原生的开源 AI 大模型基础设施

随着 ChatGPT 的火热,大语言模型和相关应用不断涌现。你是否了解大语言模型的技术细节?你是否曾经开发过大语言模型应用?如果你对大语言模型背后的基础设施感兴趣,那么7月8号,北京海淀中关村创业大街,云原生…

Jmeter接口测试参数化详解

目录 前言: RandomString函数 CSVRead函数 CSV Data Set Config配置元件 前言: 在进行接口测试时,参数化是一项重要的技术,可以帮助测试人员有效地模拟不同的场景和数据,增加测试用例的覆盖范围。JMeter提供了多种…

十七、docker学习-docker-compose安装nginx反向代理

compose安装nginx反向代理 IDEA安装docker插件 idea安装docker插件。Dockerfile、docker-compose.yml文件大部分内容会有提示信息。方便开发人员编写配置文件。 https://plugins.jetbrains.com/plugin/7724-docker/versions基础镜像 docker pull 1.21.0-alpine docker pull…

1.1、Java初级认识Java、jdk、 idea

前言 1.1 软件开发之 Java 开发 Java现在已经占有主流市场 企业级应用领域(JavaEE 后台):用来开发企业级的应用程序,大型网站如淘宝、京 东、12306,以及各大物流、银行、金融、社交、医疗、交通、各种 OA 系统等都…

Proxyman 替换js

在真机排查问题时,js不能格式化,导致没法看问题出在那一行,此时可以用这个方法替换js。 方法: 安装proxyman后,以iOS设备为例,菜单-证书-在iOS上安装证书 电脑、真机连接同一个网络,配置代理&…

1. MyBatis 整体架构

作为正式内容的第一篇,本次不会介绍具体的技术,而是先从全局视角上对 MyBatis 做一个俯瞰,了解 MyBatis 项目工程的组织结构,以及内部的核心功能模块。 工程结构 打开 MyBatis 的 Github 地址,就可以看到其代码工程结…

通过Appium Desktop实现录制功能并导出自动化脚本

1、我们进入下面这个界面 图中红色标记1为 “top by coordinates” 按钮, 这是一种通过坐标定位元素的方式。 图中红色标记2为 “Start Recording” 按钮, 选中表示处理录制状态。 2、点击“top by coordinates” 按钮,再点击 “Start Recor…

论文阅读 (94):Substructure Aware Graph Neural Networks (SAGNN, AAAI2023)

文章目录 1 要点1.1 概述1.2 一些概念1.3 代码1.4 引用 2 基础知识2.1 符号2.2 信息传递神经网络 (MPNN) 3 方法3.1 子图提取3.1.1 基于节点的策略3.1.2 基于图的策略 3.2 随机游走返回概率编码3.3 子图信息注入的信息传递 1 要点 1.1 概述 题目:子结构感知图神经…

【随笔】jupyter notebook启动打开文件出现:500 : Internal Server Error

错误: 看log有 module ‘mistune’ has no attribute BlockGrammar’错误 打开文件有500 : Internal Server Error 解决方法: pip install --upgrade jupyterhub pip install --upgrade --user nbconvertconda环境可以: conda install nbc…

linux基础命令总结

目录标题 目录操作1.绝对路径和相对路径2.目录的基本操作3.chomd、chown、chgrp4.cd命令 文件操作1.touch2.more4.cat5.grep6.rm7.cp8.mv9.find 磁盘操作1.df2.du date、passwd1.date2.passwd su、clear、man、who1.su2.man3.clear4.who unameuptimefreepsps与grep、kill1.与gr…