损失函数是如何设计出来的

news2024/11/17 11:50:46

损失函数是如何设计出来的?

可以直接观看b站优质博主的视频,该博主讲的也是非常通透。劝大家直接去看视频,我这只是做一个学习笔记。
https://www.bilibili.com/video/BV1Y64y1Q7hi/?spm_id_from=333.788&vd_source=e13ed5ec556f20f3f3c29fffcc596924
交叉熵损失函数:https://www.bilibili.com/video/BV15V411W7VB/?spm_id_from=333.788&vd_source=e13ed5ec556f20f3f3c29fffcc596924
从学习神经网络的历程中,我们知道,通过使用梯度下降法来进行反向传播,来迭代更新网络的参数。在了解梯度下降算法之前,我们需要了解一下损失函数。(具体梯度下降如何计算,我会在后续的博客中进行更新。)
因此,现在有了第一个问题:科学家们是如何设计出来损失函数的呢?
我们已经知道,神经网络无非就是一堆线性映射函数,加一些激活函数来构成,结构非常简单,但是却能表现出智能。我们学习神经网络的优化过程中,总是绕不开一个问题,那就是损失函数。这个问题似乎很重要,但似乎又总是被我们忽略。吴恩达在他的课程里已经写了很多损失函数,让我印象深刻的有两个,第一个是最基础的MSE损失函数,另外一个就是交叉墒CE损失函数。但为什么要这么设计呢?
实际上,当我们在判断一张图片是不是猫时候,我们大脑中似乎是有一个分布的,那就是猫应该是什么样子的。而神经网络在学习时,它学习参数也存在一个分布。学习的实质是想让人脑中的分布与神经网络的学习到的分布达到一致。当然了,我们可以想象到的是,这两个分布差别越小,那么神经网络可能也就越标准。但关键是,这两个分布说不清道不明,不知道这两个概率模型应该如何比较。

那么接下来,我们就要想想,该如何比较这两个分布呢?神经网络的计算标准,和你的那个标准,如何进行一个定量的表达呢?如果是比较两个圆(直接比较半径),比较两个正态分布(比较方差),这都比较容易。当然你不知道损失函数怎么构造,似乎也没关系。你依然可以取跑代码,实现你个人的网络,但总有一种不通透的感觉。那么我们需要更好的理解损失函数。

现在我们用一个神经网络来模拟一下,伸进网络如何判断猫的?
请添加图片描述
可以看到,我们中间这一对神经元就代表了我们的神经网络,我们先不用去管,这些神经元的设计,你就暂时想象成一个编码器,这个编码器可以是任何你知道的能够提取特征的东西,比如,多层感知机,CNN,RNN,Transformer等等,那么蓝色的点,表示网络最终输出的结果,这个W和b呢,抽象成网络的参数。也就是网络要学习的东西。
一个符合人类直觉的比较就是,拿神经网络输出的这个结果,直接与人类判断的结果进行比较,如果一样,那么就学的是对的,如果不一样,我们就调整参数,让他变得一样,对吧。那么这样的一个过程,用数学表达式可以写成:
| X_i-Y_i |
如果是一百张,一千张呢?那么就对着个公式进行求和:那我们肯定是想要最小化这个值对吧?那就加上min表示我要最小化这个函数。

														min (Sum ( | X_i-Y_i | ))

当然这就是最简单的损失函数了。但此时出现一个问题就是:这样造出来一个函数做损失函数,它不可导啊!那不可导怎么反向求导,进行梯度下降来更新参数呢?那么最简单的就是把这个式子加一个平方。这就是MSE了。相信大家对这个已经很熟悉了。

视频的博主还形象的解释了概率和似然的关系,似然是什么意思呢?实际上就是概率的反向应用。比如,我们现在已经知道,质地均匀的硬币,投出去之后,它正面反面出现的概率各是0.5,那么如果,我们不知道这个概率分布呢?也就是说,这个0.5是理念世界的概率分布。而现实世界,你只抛十次硬币,他可能不会5次正面五次反面。
也就是说,你给神经网络一堆图片,实现神经网络是不知道这个理念世界的数据是如何分布的,也就是说,事件已经发生了,我们要从这些已知的事件中去估计这个真实的分布,这就是神经网络在做的事情。理念世界概率分布指导了现实世界事件发生的情况,但根据现实世界的发生情况,也可以反推理念世界的概率分布。也就是结果已知,反向推算概率模型的过程,就是似然的一个过程。反推过来的这个概率分布,就是似然值。似然值总是和真实值是有差异的,但是我们想要一个最大可能性的似然值,就是最大似然估计。这个值就是最接近真实分布的那个概率。

从连乘转化为连加,实际上就是添加了一个对数运算,最后转换为交叉墒损失。

由于公式难打,这里就不继续进行解释了,达不到视频理解的效果。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Medical Image Segmentation Review:The Success of U-Net

目录 医学图像分割综述:UNet的成功 1.摘要与介绍 2.分类 2.1.2D Unet 2.2 3D UNet 3.UNet扩展 3.1对于跳跃连接的增强与改进 3.1.1--增加跳跃连接数量 3.1.2--对跳跃连接过程中的特征进行处理 3.1.3--编码器和解码器特征图的组合 3.2--主干网络的改进与增…

【Lilishop商城】No3-2.模块详细设计,系统设置(系统配置、行政区划、物流公司、滑块验证码图片、敏感词过滤)的详细设计

仅涉及后端,全部目录看顶部专栏,代码、文档、接口路径在: 【Lilishop商城】记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接口类、业务类,具体的结合源代码…

【JavaWeb开发-Servlet】day04-学生成绩管理系统-环境搭建与展示页面

1、项目名称:学生成绩管理系统 2、技术要求:Java、Servlet、JSP、HTML5、JavaScript、Css 3、编译环境:JDK1.8、eclipse2022、TomCat9.0 4、基本功能:增、删、改、查、分页、登录、注册 目录 一、创建项目 (1&#x…

自动化测试平台(一):前期准备和后端服务搭建

一、前言 本专栏会基于djangoreact,并结合这些年自己构建多个自动化测试平台的经验,从0开始,一步一步教会你实现一个完备的商用级自动化测试平台,真正意义上能够降本增效创造价值的平台。 二、前期准备 安装mysql,版…

用Virtuoso和Abstract完成gds2lef

需要用到的工具有virtuoso和abstract。 数模混合的项目通常需要模拟完成模块设计,把接去数字的pin打上label(text),数字的floorplan才能正式开始。 如果只需要简单的数字PR boundary和pin点位置,那么只使用virtuoso就…

MySQL分区详解

目录 一、定义 1.1 概述 1.2 分区的优势 二、分区的类型 2.1 检查MySQL是否支持分区 2.2 类型 2.3 分区的其他操作 一、定义 1.1 概述 数据库分区是一种物理数据库设计技术。虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写…

基于jsp+java+ssm考研指导平台-计算机毕业设计

项目介绍 本考研学习类的网站,采用了ssm框架技术和mysql数据库进行网站设计研发,系统具有前台展示,后台管理的设计模式,是一款典型的计算机毕业设计学习资料。前台主要展示了考研相关的资讯,方便用户在线注册并且留言…

【Windows逆向】【Qt】资源解析

▒ 目录 ▒🛫 导读需求开发环境1️⃣ 分析思路思路获取资源路径的方法2️⃣ c正向编码编码使用流程不使用Qt方式获取思路3️⃣ frida方式获取Origin平台资源win32 - 定位目标资源win32 - 查找API含义win32 - 查找《符号》构造frida本地函数win32 - 全部代码win64 - …

【ESP32+freeRTOS学习笔记-(一)freeRTOS介绍】

目录FreeRTOS基本情况FreeRTOS的特色发行版的目录结构与文件说明原生程序的下载与目录结构FreeRTOS的主要文件说明头文件说明关于FreeRTOSConfig.h的说明主要的数据类型说明重要数据类型 -- TickType_t重要数据类型 -- BaseType_t一些默认的规则变量名的规则函数的命名规则宏的…

你在网络上发布的内容真的归你所有吗?有Web3.0和元宇宙的未来是什么样的?

欢迎来到Hubbleverse 🌍 关注我们 关注宇宙新鲜事 📌 预计阅读时长:9分钟 本文仅代表作者个人观点,不代表平台意见,不构成投资建议。 你认为你在微博、抖音等社交媒体上发布的内容是属于你的吗?事实并非…

Dashed lines generator for 3dMax 虚线生成器插件使用教程

Dashed lines generator虚线生成器是一个3DMAX建模工具,可以通过简单的步骤自动生成所有类型的虚线:它可以用于模拟交通标志标准;使用“蒙皮修改器SKIN MODIFIER”选项,可以非常容易地操纵创建的虚线,更改其位置和方向…

关于Pytorch模型检查点大小和参数量的一些观察

目录 背景和需求 一、模型的参数量统计 二、模型检查点大小查看 三、检查点大小和模型参数量之间的关系 总结 背景和需求 一个Pytorch模型的大小可以从两个方面来衡量:检查点大小和模型的参数量。现在我从两个方面都拿到了具体数值,想要验证它们两个是否…

数据开源 | Magic Data开源DMS驾驶员行为数据集

由于近几年人工智能、芯片技术的发展,自动驾驶被资本市场越炒越热。目前大部分车企正在朝着完全自动驾驶努力,大部分已经落地的无人驾驶技术仍然是L2与L3级。同时,汽车行业也逐渐在汽车上集成了辅助自动驾驶和智能助手等功能,让驾…

C语言结构体详解

邀请加入嵌入式社区,您可以在上面发布问题,博客链接,公众号分享,行业消息,招聘信息等。 目录 结构体有什么用? 结构体声明 正常的结构体声明 匿名结构体 匿名结构体只有在创建的时候可以建立变量 两个…

vuex通过Mutations来修改状态的原理及devtools插件的下载

状态修改: 通过Mutations来修改状态,并配合devtools调试工具会记录这个状态何时被修改过; 好处是因为所有组件都可以访问和修改状态,通过Mutations配合调试工具能知道状态被哪个组件什么时候被修改过,方便追溯&#…

如何让 ChatGPT 写短篇小说?

故事一 请根据下面内容续写故事,要求800字。 在一个晴朗的秋日下午,男主人 Jack 抱着他的妻子 Rose,两人坐在沙发上看着电视。 这是,Jack对Rose说:”亲爱的,我们来玩一个游戏吧。” ChatGPT回答&#xff1a…

华为机试 - 端口合并

目录 题目描述 输入描述 输出描述 用例 题目解析 算法源码 题目描述 有M(1<M<10)个端口组&#xff0c; 每个端口组是长度为N(1<N<100)的整数数组&#xff0c; 如果端口组间存在2个及以上不同端口相同&#xff0c;则认为这2个端口组互相关联&#xff0c;可以…

CentOS部署主从DNS服务器

几个概念&#xff1a; 域名解析为IP地址&#xff1a;正向解析 IP地址解析为域名&#xff1a;反向解析 主DNS服务器&#xff1a;在特定区域内具有唯一性&#xff0c;负责维护该区域内的域名和IP地址之间的对应关系。 从DNS服务器&#xff1a;从服务器中获得域名和IP地址对应关系…

PCIE2PCI104载板转接卡

功能型号 PCIE2PCI104 此无源扩展卡允许开发人员将PCI104或PC/104plus卡安装到通用PCI总线系统中。适配器配备了一个堆栈式连接器。 功能描述 规格 适用于标准&#xff1a;Universal.3.3V或5V PCI插槽 工业温度工作范围&#xff1a;-40至85 C 连接器/接口&#xff1a;包括一个带…

干货 | 肖特基二极管4大特性

前言 肖特基二极管是重要的电子元器件&#xff0c;因为其承载着保护电路的重要作用&#xff0c;所以显得格外的不可或缺&#xff0c;我们都知道在选择肖特基二极管时&#xff0c;主要看它的正向导通压降、反向耐压、反向漏电流等。 但我们却很少知道其在不同电流、不同反向电压…