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

2023-09-20 19:18:49

1、前言


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只是改成了的概率。
更多推荐

SkyWalking快速上手(一)——安装单机版SkyWalking、使用SkyWalking

文章目录什么是SkyWalking为什么选择SkyWalking安装步骤前置条件环境要求下载SkyWalking配置SkyWalkingSkywalking使用Agent配置Collector配置启动SkyWalking配置SkyWalking代理SkyWalking的监控功能分布式调用链追踪性能指标监控告警和报警总结

黑马JVM总结(六)

(1)常量池方法区的组成中都由一个叫做运行时常量池的部分,内部包含一个叫做StringTable的东西反编译二进制字节码:类的基本信息:常量池:方法定义:构造方法main方法:方法中有一些指令,通过指令#2去常量池中找这个静态指令常量池:#2它是要找java/lang/System类下的out变量,类型是java/io

负载均衡原理及应用

🌷🍁博主猫头虎(🐅🐾)带您GotoNewWorld✨🍁🦄博客首页——🐅🐾猫头虎的博客🎐🐳《面试题大全专栏》🦕文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺🌊《IDEA开发秘籍专栏》🐾学会IDEA常用操作,工作效率翻倍~💐🌊《100天精通Golang(基础入门篇)》🐅学会Gol

基于Java+SpringBoot+Vue的图书借还小程序的设计与实现(亮点:多角色、点赞评论、借书还书、在线支付)

图书借还管理小程序一、前言二、我的优势2.1自己的网站2.2自己的小程序(小蔡coding)2.3有保障的售后2.4福利三、开发环境与技术3.1MySQL数据库3.2Vue前端技术3.3SpringBoot框架3.4微信小程序四、功能设计4.1主要功能描述五、系统实现5.1小程序界实现5.1.1首页展示5.1.2点赞、

MYSQL_

文章目录①.索引的概述②.二叉树和红黑树③.Hash建立索引结构④.B树的数据结构⑤.MyISAM存储引擎索引实现⑥.InnoDB索引实现(聚集)⑦.联合索引的设定①.索引的概述①.索引是帮助MySQL高效获取数据的排好序的数据结构②.mysql数据库的实现原理通过b+树实现的,b+树的原理是先找到所有的数据,然后折半

【 安全】什么是CSRF攻击?如何避免?开发的时候怎么预防?

文章目录前言CSRF概念CSRF原理CSRF攻击防御防御方法session工作原理几种常见的攻击类型CSRF攻击实例CSRF攻击的对象当前防御CSRF的几种策略验证HTTPReferer字段在请求地址中添加token并验证在HTTP头中自定义属性并验证Chrome浏览器端启用SameSitecookieCSRF工具的防

应用程序处理:TCP模块的处理

1、应用程序处理首先应用程序会进行编码处理,这些编码相当于OSI的表示层功能;编码转化后,邮件不一定马上被发送出去,这种何时建立通信连接何时发送数据的管理功能,相当于OSI的会话层功能。2、TCP模块的处理TCP根据应用的指示,负责建立连接、发送数据以及断开连接。TCP提供将应用层发来的数据顺利发送至对端的可靠传输。为

Go 字符串处理

一、字符串处理函数我们从文件中将数据读取出来以后,很多情况下并不是直接将数据打印出来,而是要做相应的处理。例如:去掉空格等一些特殊的符号,对一些内容进行替换等。这里就涉及到对一些字符串的处理。在对字符串进行处理时,需要借助于包“strings”下面讲解一下常用的字符串处理函数:1.ContainsfuncContain

ChatGLM 实现一个BERT

前言本文包含大量源码和讲解,通过段落和横线分割了各个模块,同时网站配备了侧边栏,帮助大家在各个小节中快速跳转,希望大家阅读完能对BERT有深刻的了解。同时建议通过pycharm、vscode等工具对bert源码进行单步调试,调试到对应的模块再对比看本章节的讲解。涉及到的jupyter可以在代码库:篇章3-编写一个Tra

电脑不在身边能远程控制吗?

​什么是无人值守远程访问?无人值守远程访问是指对方电脑面前没有授权连接的人,可以直接远程访问对方的电脑。那么,电脑不在身边能远程控制它吗?答案当然是可以的。您可以使用远程桌面软件,在电脑无人值守的情况下远程访问它。无人值守远程访问有什么好处?无人值守的远程访问为企业提供了许多优势,如提高工作效率和安全性,员工通过无人值

用户与权限管理

文章目录用户与权限管理1.用户管理1.1MYSQL用户1.2登录MySQL服务器1.3创建用户1.4修改用户1.5删除用户1.6修改密码1.修改当前用户密码2.修改其他用户密码1.7MYSQL8密码管理用户与权限管理1.用户管理1.1MYSQL用户MYSQL用户分为普通用户和root用户root用户:超级管理员,拥有所

热文推荐