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

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.mzph.cn/news/83818.shtml

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

相关文章

性能测试 —— Tomcat监控与调优:status页监控

Tomcat服务器是一个免费的开放源代码的Web 应用服务器,Tomcat是Apache 软件基金会(Apache Software Foundation)Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。 Tomcat是一个轻量级应用服务器,在中小型系统…

DevExpress WinForms图表组件 - 直观的数据信息呈现新方式!(一)

凭借界面控件DevExpress WinForms全面的2D和3D图表类型的集合,DevExpress WinForms的图表控件设计大大简化了开发者直观地向最终用户呈现信息的方式。 DevExpress WinForms有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。同时能完…

IDEA——工程项目的两种窗口开发模式

文章目录 引言一、多项目窗口模式的便利1.1 源码 debug 二、多项目窗口模式的弊端三、多项目窗口的版本管理四、单项目、多项目窗口模式转换 引言 idea编辑器有两种窗口模式,一种是单项目窗口,另一种是多项目窗口。 我个人使用较多的是单项目窗口&#…

Linux 多线程 | 线程安全、死锁、线程同步

在前面的文章中我们讲述了锁的理解、原理、用户级线程库的内容,以及对Linux中的锁和线程进行了封装,本文中将继续对多线程的内容进行讲解。 可重入与线程安全 概念 线程安全:多个线程并发同一段代码时,不会出现不同的结果。常见…

网络安全第一次作业

1、什么是防火墙 防火墙是一种网络安全系统,它根据预先确定的安全规则监视和控制传入和传出的网络流量。其主要目的是阻止对计算机或网络的未经授权的访问,同时允许合法通信通过。 防火墙可以在硬件、软件或两者的组合中实现,并且可以配置为根…

七绝 . 秋寒

题记 拜读署名“淡定人生D”近日发表在“ 今日头条 ”上的古体诗《七绝 . 凉》,本老朽在由衷赞叹该女子才貌双全之时,也对自己寄居养老的成都崇州街子古镇今日下午的秋寒突至天气,情怀涌动,思绪万千,亦作《七绝 . 秋寒…

JavaScript小案例-树形菜单(菜单数据为数组)

菜单层级理论上可以无限多&#xff0c;因为是递归渲染。 gif演示图&#xff1a; 代码&#xff1a; 树形菜单.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content&quo…

超越创意,从用户创造内容到AI生成内容的新时代

在这个信息爆炸的时代&#xff0c;内容创作正经历前所未有的变革&#xff0c;其频率和多样性令人瞠目结舌。曾经&#xff0c;我们主要依赖传统媒体&#xff0c;需要专业团队为人们打造内容&#xff0c;这被称为专业生成内容&#xff08;PGC&#xff0c;Professional-generated …

MD5加密算法

1、简介 MD5在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明&#xff0c;经MD2、MD3和MD4发展而来。 MD5将任意长度的“字节串”变换成一个128bit的大整数&#xff0c;并且它是一个不可逆的字符串变换算法&#xff0c;换句话说就是&#xff0c;即使你看到源程序…

IO口电路种类

文章目录 参考1.高速振荡电路&#xff08;时钟IO引脚&#xff09;2.与 GPIO 功能共享的低速振荡电路&#xff08;子时钟IO&#xff09;3.CMOS 滞后输入引脚4.电源输入保护电路5.A/D 转换器 ref (AVRH)带保护电路的电源输入端6.CMOS 电平输出7.CMOS 电平输出&#xff0c;带有模…

sublime text3 设置代码错误提示之php

第一步&#xff1a; ctrlshiftp 输入 install package 并选中 第二步&#xff1a; 输入 sublimelinter-php 第三步&#xff1a; Prefernces> package Settings >Sublimelinter > settings 这里不同按照版本可能不一样 有些可能是 settings User 第四步 完成

Python 变量

视频版教程 Python3零基础7天入门实战视频教程 变量 无论使用什么语言编程&#xff0c;总要处理数据&#xff0c;处理数据就需要使用变量来保存数据。变量就像一个个小容器&#xff0c;用于“盛装”程序中的数据。 再说说&#xff0c;Python的数据类型&#xff0c;有以下六种…

分享一个基于uniapp+springboot技术开发的校园失物招领小程序(源码、lw、调试)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人七年开发经验&#xff0c;擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等&#xff0c;大家有这一块的问题可以一起交流&#xff01; &#x1f495;&…

TPU-MLIR——实现Chatglm2-6B大模型移植部署

TPU-MLIR——实现Chatglm2-6B大模型移植部署 本项目实现BM1684X部署语言大模型ChatGLM2-6B。通过TPU-MLIR编译器将模型转换成bmodel&#xff0c;并采用c代码将其部署到BM1684X的PCIE环境&#xff0c;或者SoC环境。 编译chatglm2-6B模型 1. 下载‘Chat-GLM2-6B’ 2. 对该模型…

谷歌版ChatGPT与旗下邮箱、视频、地图等,实现全面集成!

9月20日&#xff0c;谷歌在官网宣布推出Bard Extensions。借助该扩展用户可在谷歌的Gmail、谷歌文档、网盘、Google 地图、视频等产品中使用Bard。 Bard是谷歌基于PaLM 2大模型&#xff0c;打造的一款类ChatGPT产品&#xff0c;可自动生成文本、代码、实时查询信息等。新的集成…

数据结构与算法(C语言版)P5---栈

1、栈 1.1、栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。__进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。__栈中的数据元素遵守__后进先出&#xff08;先进后出&#xff09;__LIFO&#xf…

FPGA原理与结构(12)——FIFO IP核原理学习

系列文章目录&#xff1a;FPGA原理与结构&#xff08;0&#xff09;——目录与传送门 一、FIFO概述 1、FIFO的定义 FIFO是英文First-In-First-Out的缩写&#xff0c;是一种先入先出的数据缓冲器&#xff0c;与一般的存储器的区别在于没有地址线&#xff0c; 使用起来简单&…

BD就业复习第一天

hive 1.分区分桶 在Hive中&#xff0c;分区&#xff08;Partition&#xff09;和分桶&#xff08;Bucketing&#xff09;都是用于数据管理和查询性能优化的技术。它们有不同的用途和特点。 分区&#xff08;Partition&#xff09;&#xff1a; 定义&#xff1a;分区是将数据…

Hexo在多台电脑上提交和更新

文章目录 1.博客搭建2.创建一个新文件夹new&#xff0c;用于上传hexo博客目录3.github上创建hexo分支并设置为默认分支创建hexo分支将hexo分支设置为默认分支 4.进入新建的文件夹中git clone&#xff0c;再上传相关文件至hexo分支1.clone下来的文件夹内应该有个.gitignore文件&…

Springboot部署服务器项目上线

第一步&#xff0c;项目打包&#xff0c;有两种方式 第一种、直接在项目根目录打开终端&#xff0c;输入以下语句即可。如下图&#xff1a; mvn clean package -DskipTests 第二种、在右侧点击 Maven选项&#xff0c;选择鼠标左键双击package选项即可。如下图&#xff1a; 两…