机器学习入门教学——损失函数(极大似然估计法)

news2024/11/27 20:58:14

1、前言

  • 我们在训练神经网络时,最常用到的方法就是梯度下降法。在了解梯度下降法前,我们需要了解什么是损失(代价)函数。所谓求的梯度,就是损失函数的梯度。
  • 如果不知道什么是梯度下降的,可以看一下这篇文章:机器学习入门教学——梯度下降、梯度上升_恣睢s的博客-CSDN博客
  • 损失函数其实就是神经网络里的标准和期望的标准相差多少的定量表达。(现有模型与期望模型的质量差距)
  • 损失函数越小,现有模型就越逼近期望模型,现有模型的精度也就越高。
  • 【注】损失函数和代价函数可以看作是两个概念不同的名字,但代表的函数和作用完全一样,通常可以互相替换使用,没有实质区别。
  • 损失函数该如何设计呢?这里有三种方法:最小二乘法、极大似然估计法、交叉熵法。
    • 机器学习入门教学——损失函数(最小二乘法)
    • 机器学习入门教学——损失函数(极大似然估计法)

2、极大似然估计法

2.1、似然
  • 在了解极大似然估计时,我们先要弄清楚什么是似然。
  • 似然和概率都是统计学中非常重要的概念,了解似然之前,我们先了解什么是概率。
  • 概率是指某个特定环境下某件事情发生的可能性。
    • 例如,在抛硬币前,根据硬币的性质,我们可以推测任何一面朝上的可能性是50%。
  • 似然和概率恰好相反。它是基于已经确定的结果,来推测产生这个结果的可能环境。
    • 例如,我们随机抛1w次硬币,得到8000次人像,2000次数字。从而推断出人像朝上的概率是0.8,数字朝上的概率是0.2。
  • 假设,θ是环境对应的参数(上述案例中,θ为0.8),x是事件发生的结果。
    • 概率:,即在环境参数θ的条件下,x发生的概率。P是关于x的函数。
    • 似然:,即在已知观察结果是x的情况下,去推断环境参数θ。L是关于θ的函数。
2.2、极大似然估计
2.2.1、简介
  • 我们先用简单的抛硬币实验说明一下什么是极大似然估计。
  • 假设,抛了10次硬币,7次人像朝上,3次数字朝上,这是实验的情况;设人像朝上的概率为θ,数字朝上的概率为1-θ,这是真实的情况。
  • 我们要做的就是计算出θ的值。
  • 我们根据假设出的θ,可以得出硬币抛出这种情况的概率为:函数L(θ)被称为θ的似然函数,L(θ)的值被称为似然值。
  • 我们可以枚举θ的值,然后画出L(θ)的图像。
  • ,可以看出θ=0.7时,L(θ)的值最大,即硬币最有可能抛出上述情况。
  • 最大似然估计就是要求环境参数θ等于多少时,观测的结果最可能发生。
  • 【注】理念情况下,θ应该为0.5,与计算的θ不符合。我们可以增加实验次数,例如抛1w次,重新进行计算。
2.2.2、作为损失函数
  • 我们已经了解了极大似然估计,那接下来看看它是如何作为损失函数的呢。
  • 我们还是用之前的这个案例。其中W和b是环境对应的参数,它确定了神经网络中概率模型的样子。这些输入的图片就像抛出的一个个硬币。
  • 在这极大似然估计就是要求W,b等于多少时,观测的结果(输入图片的真实值)最可能发生。
  • 已知似然:是在已知观察结果是x的情况下,去推断环境参数θ。对应到这里,得到似然函数为:
    • (W,b的情况下,发生的概率)
  • 将似然函数写成连乘的形式:
  • 由于W,b在神经网络中是确定值,而是由W,b得到的,所以可以使用代替W,b,即:
    • (W,b隐藏在中)
  • 的概率是真实情况,的概率是理念情况(需要不断逼近的情况)。的概率就是我们需要不断调整的θ。
  • 我们再进行一次替换。由于,设为1的概率为p,为0的概率为1-p,则的概率分布为:
  • 的概率改成的概率,似然函数就可以替换成下面的形式:
    • ,其中p为为1的概率。
  • 两边同时取对数,把连乘变成连加,进行化简。取对数不影响函数的单调性。
  • 在这个公式基础上添加一个负号,将最大化该公式改为最小化,这就符合损失函数的定义了。即:

3、总结

  • 训练神经网络其实就是要找到适合的W和b。而是现在W和b的产物,我们可以根据的概率得到现有模型和理想模型的差距。当我们在最大化似然函数的时候,就是要求W,b等于多少时,观测的结果(输入图片的真实值)最可能发生,而这里的W,b只是改成了的概率。

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

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

相关文章

黑马JVM总结(十八)

(1)G1_FullGC的概念辨析 SerialGC:串行的,ParallelGC:并行的 ,CMS和G1都是并发的 这几种垃圾回收器的新生代回收机制时相同的,SerialGC和ParalledGC:老年代内存不足触发的叫FullGC…

【redis总结】

文章目录 1、redis简介2、为什么要选择redis做缓存3、数据结构4、redis多线程模型redis6.0的变化 5、redis持久化AOF的实现过程RDB的实现过程 6、redis集群的搭建7、 redis过期删除和淘汰策略8、redis的内存淘汰策略 1、redis简介 Redis(Remote Dictionary Server&…

Xcode 15 运行<iOS 14, 启动崩溃问题

如题. Xcode 15 启动 < iOS 14(没具体验证过, 我的问题设备是iOS 13.7)真机设备 出现启动崩溃 解决方案: Build Settings -> Other Linker Flags -> Add -> -ld64

【JavaEE】多线程案例-线程池

文章目录 1. 什么是线程池2. 为什么要使用线程池&#xff08;线程池有什么优点&#xff09;3. 如何使用Java标准库提供的线程池3.1 创建一个线程池对象3.2 什么是工厂模式3.3 为什么要使用工厂模式3.4 Executors 创建不同具有不同特性的线程池3.5 ThreadPool 类的构造方法3.6 线…

Linux系统100条命令:关于Ubuntu和 CentOS 7 相同功能的不同的终端操作命令

安装软件包&#xff1a; Ubuntu&#xff1a;apt-get install package_name CentOS 7&#xff1a;yum install package_name 更新软件包列表&#xff1a; Ubuntu&#xff1a;apt-get update CentOS 7&#xff1a;yum update 卸载软件包&#xff1a; Ubuntu&#xff1a;apt-…

vue网页缓存页面与不缓存页面处理

在主路由页面 <template><div style"height: 100%"><!-- 缓存 --><keep-alive><router-view v-if"$route.meta.keepAlive"></router-view></keep-alive><!-- 不缓存 --><router-view v-if"!$rou…

函数模板的概念和意义

问题 C 中有几种交换变量的方法&#xff1f; 交换变量的方法 定义宏代码块 优点&#xff1a;代码复用&#xff0c;适合所有类型缺点&#xff1a;编译器不知道宏的存在&#xff0c;缺少类型检查 定义函数 优点&#xff1a;真正的函数调用&#xff0c;编译器对类型进行检查缺…

使用@Builder注解后,该对象 拷贝时出现java.lang.InstantiationException异常报错

报错信息&#xff1a; 2023-09-21T16:02:00.83308:00 ERROR 23220 --- [nio-8080-exec-1] i.global.iot.common.utils.ConvertUtils : convert error java.lang.InstantiationException: io.global.iot.common.modules.dto.ZyOrderDTOat java.base/java.lang.Class.newInsta…

【计算机网络】IP协议第二讲(Mac帧、IP地址、碰撞检测、ARP协议介绍)

IP协议第二讲 1.IP和Mac帧2.碰撞检测2.1介绍2.2如何减少碰撞发生2.3MTU2.4一些补充 3.ARP协议3.1协议介绍3.2报文格式分析 1.IP和Mac帧 IP&#xff08;Internet Protocol&#xff09;和MAC&#xff08;Media Access Control&#xff09;帧是计算机网络中两个不同层次的概念&am…

前端Vue3+element-plus表单输入框实现Cron表达式校验

页面如下&#xff1a; 本来想手写正则表达式校验&#xff0c;结果发现很麻烦&#xff0c;cron表达式组成如下&#xff1a; 开发使用框架为vue3element-plus&#xff0c;于是选择cron-validator依赖。使用步骤如下&#xff1a; 1、通过npm install cron-validator命令安装&…

如何在Ubuntu系统部署RabbitMQ服务器并公网访问【内网穿透】

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…

Linux 中的make/makefile

一&#xff1a;背景 make是一个命令工具&#xff0c;是一个解释makefifile中指令的命令工具&#xff0c;一般来说&#xff0c;大多数的IDE都有这个命令&#xff0c;比如&#xff1a;Delphi的make&#xff0c;Visual C的nmake&#xff0c;Linux下GNU的make。可见&#xff0c;mak…

Doxygen在vs code配置

找到这个 就在这里面配置&#xff0c;如果要在原有的下面添加别忘了后面加个逗号&#xff0c;我在他前面加的所以我在上面加了个 //基础设置 “doxdocgen.c.triggerSequence”: “/", “doxdocgen.c.firstLine”: "/", “doxdocgen.c.commentPrefix”: &quo…

瑞芯微:基于RK3568的ocr识别

光学字符识别&#xff08;Optical Character Recognition, OCR&#xff09;是指对文本资料的图像文件进行分析识别处理&#xff0c;获取文字及版面信息的过程。亦即将图像中的文字进行识别&#xff0c;并以文本的形式返回。OCR的应用场景 卡片证件识别类&#xff1a;大陆、港澳…

软件测试进大厂,拿高薪,怎么做?看这里!

有些同学大学专业不对口&#xff0c;但有想进大厂想拿高薪心&#xff0c;只要你有想法&#xff0c;那就一定有实现的方法。 俗话说&#xff1a;“世间无难事&#xff0c;只怕有心人”。仔细思索一下&#xff0c;哪家大厂能缺软件测试这一重要职位。相对大学所学专业而言&#…

两数之和 三数之和【基础算法精讲 01】

灵神算法基础算法精讲[01] : 两数之和 三数之和【基础算法精讲 01】_哔哩哔哩_bilibili 167.两数之和 II - 输入有序数组 链接 : 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 思路 : 采用双指针的思想&#xff0c;因为给出的数组是有序的&…

Delft3D水动力与泥沙运动模拟实践技术应用

水体中泥沙运动是关系到防洪&#xff0c;调水等方面的重要问题&#xff0c;也是水利和水环境领域科研热点之一。水利数值模型&#xff0c;在环境影响评价、防洪规划等方面也有着广泛的应用。荷兰Delft研究所开发的Delft3D模型是世界上最先进的水动力之一&#xff0c;能够运用于…

5款精挑细选的软件,助你事半功倍

​ 在工作的时候&#xff0c;大家都喜欢通过一些好用有效率的工具&#xff0c;来让工作更加快速地完成&#xff0c;今天给大家带来的这5款软件&#xff0c;更是一款比一款还要惊喜&#xff01; 1.在线文件转换——Aconvert ​ Aconvert 是一款在线文件转换服务&#xff0c;它…

AVR 单片机 调试环境 JTAG MKII

注意 驱动 的厂家: 如果驱动备改变为其他厂家的驱动 就与 AVR Studio7不兼容 保证驱动选择正确是 能够使用硬件调试的关键 如果驱动不对&#xff0c;使用 USB驱动修改工具 修改 比如 UsbDriverTool.exe

“三高”论文完美复现!基于PSO-VMD-MCKD方法的风机轴承微弱故障诊断,实现早期微弱故障诊断,MATLAB代码实现...

声明&#xff1a;对于作者的原创代码&#xff0c;禁止转售倒卖&#xff0c;违者必究&#xff01; 本期文章思路来自振动测试与诊断期刊的一篇三高论文&#xff0c;点击链接可跳转。https://mp.weixin.qq.com/s/hmmDj5IwpaozeL4F0iI-2g 文章摘要如下&#xff1a; 针对风机滚动轴…