极大似然估计法及其损失函数的优化方法

news2024/11/19 20:29:27

二分类-逻辑回归模型

1.模型函数

1)多元线性回归函数: Z ^ 计算 = X W T \hat{Z}_{计算} = XW^T Z^计算=XWT
2)softmax函数: Y ^ 模型 = S i g m o i d ( Z ^ 计算 ) = 1 1 + e − Z ^ 计算 \hat{Y}_{模型} =Sigmoid(\hat{Z}_{计算})= \frac{1}{1+e^{-\hat{Z}_{计算}}} Y^模型=Sigmoid(Z^计算)=1+eZ^计算1
👉已知数据:实际Y值= [ y 0 y 1 y 2 y 3 . . . y n ] \begin{bmatrix}y_0\\y_1\\y_2\\y_3\\...\\y_n\end{bmatrix} y0y1y2y3...yn X= [ x 00 , x 10 . . . x m 0 x 01 , x 11 . . . x m 1 x 02 , x 12 . . . x m 2 x 03 , x 13 . . . x m 3 . . . x 0 n , x 1 n . . . x m n ] \begin{bmatrix}x_{00},x_{10}...x_{m0}\\x_{01},x_{11}...x_{m1}\\x_{02},x_{12}...x_{m2}\\x_{03},x_{13}...x_{m3}\\...\\x_{0n},x_{1n}...x_{mn}\end{bmatrix} x00,x10...xm0x01,x11...xm1x02,x12...xm2x03,x13...xm3...x0n,x1n...xmn
👉未知数据:有如下3组未知数据
①模型参数 W = [ w 0 , w 1 , w 2 , w 3 , . . . , w m ] \begin{bmatrix}w_0,w_1,w_2,w_3,...,w_m\end{bmatrix} [w0,w1,w2,w3,...,wm]
②线性函数计算 Z ^ 计算 = X W T = [ x 00 , x 10 . . . x m 0 x 01 , x 11 . . . x m 1 x 02 , x 12 . . . x m 2 x 03 , x 13 . . . x m 3 . . . x 0 n , x 1 n . . . x m n ] [ w 0 w 1 w 2 w 3 . . . w m ] = [ z 0 ^ z 1 ^ z 2 ^ z 3 ^ . . . z n ^ ] \hat{Z}_{计算}=XW^T=\begin{bmatrix}x_{00},x_{10}...x_{m0}\\x_{01},x_{11}...x_{m1}\\x_{02},x_{12}...x_{m2}\\x_{03},x_{13}...x_{m3}\\...\\x_{0n},x_{1n}...x_{mn}\end{bmatrix}\begin{bmatrix}w_0\\w_1\\w_2\\w_3\\...\\w_m\end{bmatrix}=\begin{bmatrix}\hat{z_0}\\\hat{z_1}\\\hat{z_2}\\\hat{z_3}\\...\\\hat{z_n}\end{bmatrix} Z^计算=XWT= x00,x10...xm0x01,x11...xm1x02,x12...xm2x03,x13...xm3...x0n,x1n...xmn w0w1w2w3...wm = z0^z1^z2^z3^...zn^

③模型分类 Y ^ = S i g m o i d ( Z ^ ) = [ 1 1 + e − z 0 ^ 1 1 + e − z 1 ^ 1 1 + e − z 2 ^ 1 1 + e − z 3 ^ . . . 1 1 + e − z n ^ ] = [ y 0 ^ y 1 ^ y 2 ^ y 3 ^ . . . y n ^ ] \hat{Y}=Sigmoid(\hat{Z})=\begin{bmatrix} \frac{1}{1+e^{-\hat{z_0}}}\\\frac{1}{1+e^{-\hat{z_1}}}\\\frac{1}{1+e^{-\hat{z_2}}}\\\frac{1}{1+e^{-\hat{z_3}}}\\...\\\frac{1}{1+e^{-\hat{z_n}}}\end{bmatrix}=\begin{bmatrix}\hat{y_0}\\ \hat{y_1}\\\hat{y_2}\\\hat{y_3}\\...\\\hat{y_n}\end{bmatrix} Y^=Sigmoid(Z^)= 1+ez0^11+ez1^11+ez2^11+ez3^1...1+ezn^1 = y0^y1^y2^y3^...yn^

y ^ i 值为 0 到 1 的小数,例如 0.4 ,表示分类为 1 的概率是 0.4 \hat{y}_i值为0到1的小数,例如0.4,表示分类为 1 的概率是0.4 y^i值为01的小数,例如0.4,表示分类为1的概率是0.4
在这里插入图片描述

2.损失函数

逻辑回归模型的损失函数,采用极大似然估计法
L o s s = −  ∑ i = 0 n ( y i ^ . l n y i + ( 1 − y i ^ ) . l n y i ) Loss = -\sum_{i=0}^{n}{(\hat{y_{i}}.lny_{i}+(1-\hat{y_{i}}).lny_{i}}) Loss=i=0n(yi^.lnyi+(1yi^).lnyi)

2.1 极大似然估计法的公式推导

二分类,指实际只有两种互斥的类别:要么是男,要么是女(要么A类,要么B类)
这就是个典型的0-1分布(伯努利分布)

分类y=0y=1
计算出的分类概率 1 − y ^ 1-\hat{y} 1y^ y ^ \hat{y} y^

单次分类正确的概率为: y ^ 计算 y ∗ ( 1 − y ^ 计算 ) ( 1 − y ) \hat{y}_{计算}^y*(1-\hat{y}_{计算})^{(1-y)} y^计算y(1y^计算)(1y)

  • 实际分类为y=1时,分类正确的概率为 y ^ 计算 y ∗ ( 1 − y ^ 计算 ) ( 1 − y ) \hat{y}_{计算}^y*(1-\hat{y}_{计算})^{(1-y)} y^计算y(1y^计算)(1y)= y ^ \hat{y} y^
  • 实际分类为y=0时,分类正确的概率为 y ^ 计算 y ∗ ( 1 − y ^ 计算 ) ( 1 − y ) \hat{y}_{计算}^y*(1-\hat{y}_{计算})^{(1-y)} y^计算y(1y^计算)(1y)= 1 − y ^ 1-\hat{y} 1y^

无论实际分类是y=0还是y=1,我们都希望模型分类正确的概率达到最大!
👉即求出 y ^ 计算 y ∗ ( 1 − y ^ 计算 ) ( 1 − y ) \hat{y}_{计算}^y*(1-\hat{y}_{计算})^{(1-y)} y^计算y(1y^计算)(1y)的最大值。

即为分类正确的概率:即为似然值——表示基于实际分布下,模型分类正确的概率值

y ^ 计算 y ∗ ( 1 − y ^ 计算 ) ( 1 − y ) \hat{y}_{计算}^y*(1-\hat{y}_{计算})^{(1-y)} y^计算y(1y^计算)(1y),可以转化为 l n ( x ) ln(x) ln(x)函数,因为 l n ( x ) ln(x) ln(x)是单调递增函数,那么只要x越大,则 l n ( x ) ln(x) ln(x)也越大。
因此 y ^ 计算 y ∗ ( 1 − y ^ 计算 ) ( 1 − y ) \hat{y}_{计算}^y*(1-\hat{y}_{计算})^{(1-y)} y^计算y(1y^计算)(1y)则变为👇

l n ( y ^ 计算 y ∗ ( 1 − y ^ 计算 ) ( 1 − y ) ) = y l n ( y ^ 计算 ) + ( 1 − y ) l n ( 1 − y ^ 计算 ) ln(\hat{y}_{计算}^y*(1-\hat{y}_{计算})^{(1-y)})=yln(\hat{y}_{计算})+(1-y)ln(1-\hat{y}_{计算}) ln(y^计算y(1y^计算)(1y))=yln(y^计算)+(1y)ln(1y^计算)

求出 y l n ( y ^ 计算 ) + ( 1 − y ) l n ( 1 − y ^ 计算 ) yln(\hat{y}_{计算})+(1-y)ln(1-\hat{y}_{计算}) yln(y^计算)+(1y)ln(1y^计算)的最大值即可,这正是极大似然估计法

但我们习惯转化为损失函数,求损失函数的极小值,因此可在函数前加负号即可:

L o s s = − [ y l n ( y ^ 计算 ) + ( 1 − y ) l n ( 1 − y ^ 计算 ) ] Loss = - [ yln(\hat{y}_{计算})+(1-y)ln(1-\hat{y}_{计算})] Loss=[yln(y^计算)+(1y)ln(1y^计算)],求出Loss的极小值,即可使单次分类正确率达到最大

那么,要使所有分类的正确率达到最大,即将每次分类的Loss值累加:

L o s s 总 = − ∑ i = 0 n y l n ( y ^ 计算 ) + ( 1 − y ) l n ( 1 − y ^ 计算 ) Loss_总=- \sum_{i=0}^{n}yln(\hat{y}_{计算})+(1-y)ln(1-\hat{y}_{计算}) Loss=i=0nyln(y^计算)+(1y)ln(1y^计算)

多分类-逻辑回归模型

1. 模型函数

1)多元线性回归函数: Z ^ 计算 = X W T \hat{Z}_{计算} = XW^T Z^计算=XWT
2)softmax函数: Y ^ 模型 = s o f t m a x ( Z ^ 计算 ) = 1 1 + e − Z ^ 计算 \hat{Y}_{模型} =softmax(\hat{Z}_{计算})= \frac{1}{1+e^{-\hat{Z}_{计算}}} Y^模型=softmax(Z^计算)=1+eZ^计算1
👉已知数据:实际Y值= [ y 0 y 1 y 2 y 3 . . . y n ] \begin{bmatrix}y_0\\y_1\\y_2\\y_3\\...\\y_n\end{bmatrix} y0y1y2y3...yn X= [ x 00 , x 10 . . . x m 0 x 01 , x 11 . . . x m 1 x 02 , x 12 . . . x m 2 x 03 , x 13 . . . x m 3 . . . x 0 n , x 1 n . . . x m n ] \begin{bmatrix}x_{00},x_{10}...x_{m0}\\x_{01},x_{11}...x_{m1}\\x_{02},x_{12}...x_{m2}\\x_{03},x_{13}...x_{m3}\\...\\x_{0n},x_{1n}...x_{mn}\end{bmatrix} x00,x10...xm0x01,x11...xm1x02,x12...xm2x03,x13...xm3...x0n,x1n...xmn

👉未知数据: 如果原数据共有 k+1 个类别,则有如下未知数据
①模型参数 W= [ w 00 , w 10 , . . . , w m 0 w 01 , w 11 , . . . , w m 1 w 02 , w 12 , . . . , w m 2 . . . w 0 k , w 1 k , . . . , w m k ] \begin{bmatrix}w_{00},w_{10},...,w_{m0}\\w_{01},w_{11},...,w_{m1}\\w_{02},w_{12},...,w_{m2}\\...\\w_{0k},w_{1k},...,w_{mk}\end{bmatrix} w00,w10,...,wm0w01,w11,...,wm1w02,w12,...,wm2...w0k,w1k,...,wmk
②计算 Z ^ n × k = X ( n × m ) W m × k T = [ z 00 ^ , z 01 ^ , . . . , z 0 k ^ z 10 ^ , z 11 ^ , . . . , z 1 k ^ z 20 ^ , z 21 ^ , . . . , z 2 k ^ . . . z n 0 ^ , z n 1 ^ , . . . , z n k ^ ] \hat{Z} _{n×k}= {X_{(n×m)}W^T_{m×k}}=\begin{bmatrix}\hat{z_{00}},\hat{z_{01}},...,\hat{z_{0k}}\\ \hat{z_{10}},\hat{z_{11}},...,\hat{z_{1k}}\\\hat{z_{20}},\hat{z_{21}},...,\hat{z_{2k}}\\...\\\hat{z_{n0}},\hat{z_{n1}},...,\hat{z_{nk}}\end{bmatrix} Z^n×k=X(n×m)Wm×kT= z00^,z01^,...,z0k^z10^,z11^,...,z1k^z20^,z21^,...,z2k^...zn0^,zn1^,...,znk^
③模型分类 Y ^ = S o f t m a x ( Z ) = [ e z i j ∑ j = 1 k e z i j ] = [ e z 00 ∑ j = 1 k e z 0 j , e z 01 ∑ j = 1 k e z 0 j , . . . , e z 0 k ∑ j = 1 k e z 0 j e z 10 ∑ j = 1 k e z 1 j , e z 11 ∑ j = 1 k e z 1 j , . . . , e z 1 k ∑ j = 1 k e z 1 j e z 20 ∑ j = 1 k e z 2 j , e z 21 ∑ j = 1 k e z 2 j , . . . , e z 2 k ∑ j = 1 k e z 2 j . . . e z n 0 ∑ j = 1 k e z n j , e z n 1 ∑ j = 1 k e z n j , . . . , e z n k ∑ j = 1 k e z n j ] = [ y 00 ^ , y 01 ^ , . . . , y 0 k ^ y 10 ^ , y 11 ^ , . . . , y 1 k ^ y 20 ^ , y 21 ^ , . . . , y 2 k ^ . . . y n 0 ^ , y n 1 ^ , . . . , y n k ^ ] \hat{Y}=Softmax(Z)=\begin{bmatrix}\frac{e^{z_{ij}}}{\sum_{j=1}^ke^{z_{ij}}}\end{bmatrix}=\begin{bmatrix} \frac{e^{z_{00}}}{\sum_{j=1}^ke^{z_{0j}}},\frac{e^{z_{01}}}{\sum_{j=1}^ke^{z_{0j}}},...,\frac{e^{z_{0k}}}{\sum_{j=1}^ke^{z_{0j}}}\\\\ \frac{e^{z_{10}}}{\sum_{j=1}^ke^{z_{1j}}},\frac{e^{z_{11}}}{\sum_{j=1}^ke^{z_{1j}}},...,\frac{e^{z_{1k}}}{\sum_{j=1}^ke^{z_{1j}}}\\\\ \frac{e^{z_{20}}}{\sum_{j=1}^ke^{z_{2j}}},\frac{e^{z_{21}}}{\sum_{j=1}^ke^{z_{2j}}},...,\frac{e^{z_{2k}}}{\sum_{j=1}^ke^{z_{2j}}}\\\\...\\\\ \frac{e^{z_{n0}}}{\sum_{j=1}^ke^{z_{nj}}},\frac{e^{z_{n1}}}{\sum_{j=1}^ke^{z_{nj}}},...,\frac{e^{z_{nk}}}{\sum_{j=1}^ke^{z_{nj}}}\\ \end{bmatrix}= \begin{bmatrix}\hat{y_{00}},\hat{y_{01}},...,\hat{y_{0k}}\\ \\\hat{y_{10}},\hat{y_{11}},...,\hat{y_{1k}}\\\\ \hat{y_{20}},\hat{y_{21}},...,\hat{y_{2k}}\\\\...\\\\ \hat{y_{n0}},\hat{y_{n1}},...,\hat{y_{nk}}\end{bmatrix} Y^=Softmax(Z)=[j=1kezijezij]= j=1kez0jez00,j=1kez0jez01,...,j=1kez0jez0kj=1kez1jez10,j=1kez1jez11,...,j=1kez1jez1kj=1kez2jez20,j=1kez2jez21,...,j=1kez2jez2k...j=1keznjezn0,j=1keznjezn1,...,j=1keznjeznk = y00^,y01^,...,y0k^y10^,y11^,...,y1k^y20^,y21^,...,y2k^...yn0^,yn1^,...,ynk^

问题: 模型计算出的 Y ^ = [ y 00 ^ , y 01 ^ , . . . , y 0 k ^ y 10 ^ , y 11 ^ , . . . , y 1 k ^ y 20 ^ , y 21 ^ , . . . , y 2 k ^ . . . y n 0 ^ , y n 1 ^ , . . . , y n k ^ ] ,实际 Y 值 = [ y 0 y 1 y 2 y 3 . . . y n ] 模型计算出的 \hat{Y} =\begin{bmatrix}\hat{y_{00}},\hat{y_{01}},...,\hat{y_{0k}}\\ \\\hat{y_{10}},\hat{y_{11}},...,\hat{y_{1k}}\\\\ \hat{y_{20}},\hat{y_{21}},...,\hat{y_{2k}}\\\\...\\\\ \hat{y_{n0}},\hat{y_{n1}},...,\hat{y_{nk}}\end{bmatrix},实际Y值=\begin{bmatrix}y_0\\y_1\\y_2\\y_3\\...\\y_n\end{bmatrix} 模型计算出的Y^= y00^,y01^,...,y0k^y10^,y11^,...,y1k^y20^,y21^,...,y2k^...yn0^,yn1^,...,ynk^ ,实际Y= y0y1y2y3...yn ,如何进行比较?极大似然估计法如何计算??

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

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

相关文章

继瑞吉外卖后的又一个项目——SpringBoot+Vued前后端的博客系统

文章目录 博客系统项目介绍前言项目演示前台演示后台演示 组织结构后端组织结构前端组织结构 技术选型前端技术后端技术架构图系统架构图业务架构图 模块介绍前端模块后端模块 环境搭建开发工具开发环境项目运行 未完待续结语 博客系统项目介绍 前言 本项目已开源在Gitee 后端…

【P32】JMeter While 控制器(While Controller)

文章目录 一、While 控制器(While Controller)参数说明二、测试计划设计2.1、变量2.2、函数2.2.1、groovy脚本2.2.2、jex13脚本2.2.3、js脚本 一、While 控制器(While Controller)参数说明 可以对部分逻辑按变量条件进行循环迭代…

【算法】—— 简单多状态 dp 问题

在上期,我给大家讲解了关于单个状态下的dp问题,本期我给大家讲述几道关于多状态下的dp问题。希望大家有所帮助!!! 目录 (一)粉刷房⼦ (二)买卖股票的最佳时机含冷冻期 …

破解提升 LLMs 性能的黑匣子—— LlamaIndex

“可以将 LlamaIndex 视为外部数据和 LLM 连接在一起的黑匣子。”在 Zilliz 组织的网络研讨会中,LlamaIndex 的联合创始人兼首席执行官 Jerry Liu 曾这样说道。 对于 Jerry Liu 的这个比喻,熟悉 LLMs 的开发者会觉得颇为贴切,尤其是对于那些想…

Chinese-LLaMA-Alpaca代码实战

文章目录 微调chinese-alpaca部署llama.cpp将FP16模型量化为4-bit 项目地址: https://github.com/ymcui/Chinese-LLaMA-Alpaca 微调chinese-alpaca 本项目基于中文数据 开源了使用中文文本数据预训练的中文LLaMA大模型(7B、13B)开源了进一…

JavaFX【TableView使用详解】

目录 概述 组件 Student ObservableList TableView setCellValueFactory() TableColumn 1. Callback 2. PropertyValueFactory 增加到末行 1、tableView.getItems().add(Student s) 2、list.add(Student s) 删除指定行 1、tableView.getItems().remove(int i) 2、…

软件测试完后,运行后还有BUG,测试人员就应该背锅吗?

测试完成后还有bug,测试人员肯定是有责任的,第一时间要赶紧处理而不是着急甩锅。但是这口锅全部扣测试身上,明显也是不能接受的,关键在于测试人员需要找出足够的证据来保护自己。 或许很多人会说测试不可能发现所有的bug&#xf…

软件测试人的第一个实战项目:web端(视频教程+文档+用例库)

最近很多自学测试的小伙伴在问我,学完基础的知识后面临着项目问题,网上项目大都不全,而且也不知道该怎么做,不知道做哪些项目能帮助自己提升 今天给大家分享一个web软件测试实战项目,该项目对新手十分友好,…

STM32入门100步(第4步~第5步)

第4~5步 STM32内部核心功能 前两节中,我们了解了什么是ARM、什么是STM32系列,接下来就是了解具体的一款STM32单片机的内部功能。单片机就是一种微小型计算机,其核心原理就是计算机原理。对于其他非ARM构架的单片机来说学习过程也是相似的。 我们学习的是STM32F103C8T6这款单…

细说前端打包发布后,浏览器缓存如何清理?其实只需要简单的webpack配置就行

前言 有没有这么一种场景,项目上线后,客户使用过程中发现了bug,你急急忙忙改完,发布。但你发布后 测试人员或者客户会说:“你这改了没用啊”。 你:“清下缓存试试” 客户:“?&am…

c#——WCF和HTTP文件传输实验

(1)掌握HTTP协议下WCF服务应用程序构建方法。 (2)掌握WCF客户端和服务端的消息交换模式。 (3)掌握协定的设计及实现方法。 (4)熟悉WCF和HTTP的相关绑定设置。 (5&#xf…

CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)

文章目录 1、CentOS安装OpenSSL1.1.1(前置环境)2、CentOS安装 Python 3.103、创建虚拟环境4、运行Django项目 1、CentOS安装OpenSSL1.1.1(前置环境) 编译安装Python3.10时需要openssl1.1.1 查看当前版本 & 删除openssl1.0 …

Java高并发核心编程—JUC显示锁原理

注:本笔记是阅读《Java高并发核心编程卷2》整理的笔记! 显示锁 使用Java内置锁时,不需要通过Java代码显式地对同步对象的监视器进行抢占和释放,这些工作由JVM底层完成,而且任何一个Java对象都能作为一个内置锁使用&a…

Apache Kafka - ConsumerInterceptor 实战 (1)

文章目录 概述使用场景实战配置文件配置类自定义ConSumerInterceptor使用 概述 ConsumerInterceptor是Kafka中的一个重要组件,它允许开发人员在Kafka消费者端拦截和修改消息的处理过程。ConsumerInterceptor可以用于实现各种功能,从消息监控到数据转换和…

【Python开发】FastAPI 01:hello world

FastAPI 是一个轻量级的后端框架,对于定制化不高或者功能简单的业务完全可以拿他作为后台。 FastAPI 一个比较重要的特性就是异步,简单来说就是相比 django 和 flask 快,FastAPI 和 flask 的语法类似。本篇文章介绍 FastAPI 运用的简单实例&a…

从索引结点出发探索软、硬链接

索引结点的初步认识 对于整个计算机系统的资源管理,我们可以认为,OS先将这些资源的数据信息,给描述起来构成一个部分,然后再将它们组织起来,就能够实现由OS集中管理。举一个最经典的例子,进程的引入是为了…

Cos上传(腾讯云):图片存储方案

Cos上传(腾讯云) 01.图片存储方案介绍 目标 了解主流的图片存储方案 两种常见方案 方案一:存到自己公司购买的服务器上 优点:好控制 缺点:成本高由于图片都存放到自己的服务器上,占据空间很大 方案二:存到三方…

总结SpringBoot常用读取配置文件的3种方法

文章目录 1、使用 Value 读取配置文件2、 使用 ConfigurationProperties 读取配置文件3、读取配置文件中的List 1、使用 Value 读取配置文件 注:这种方法适用于对象的参数比较少的情况 使用方法: 在类上添加configuration注解,将这个配置对…

Hotbit交易平台停运,百万用户待清退,币圈危机再度蔓延

“币圈”的危机似乎还没有走到尽头。5月22日,加密货币交易平台Hotbit发文宣布,决定从世界标准时间当日4:00停止所有CEX(中心化交易所)操作,希望所有用户在6月21日4:00之前提取剩余资产。据悉,该平台在其任期…

微前端乾坤

1. 乾坤 简介 qiankun 是一个基于 single-spa 的微前端实现库,旨在帮助大家能更简单、无痛的构建一个生产可用微前端架构系统 官网:https://qiankun.umijs.org/zh/guide 2.使用 背景: vue2.0 , vue-cli 5.0 主应用: 安装乾坤…