【机器学习基础】概率分布之指数族分布

2024-04-05 04:38

本文主要是介绍【机器学习基础】概率分布之指数族分布,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本系列为《模式识别与机器学习》的读书笔记。

一,指数族分布

1,指数族分布基本概念

参数为 η \boldsymbol{\eta} η 的变量 x \boldsymbol{x} x 的指数族分布定义为具有下⾯形式的概率分布的集合:
p ( x ∣ η ) = h ( x ) g ( η ) exp ⁡ { η T μ ( x ) } (2.106) p(\boldsymbol{x|\eta}) = h(\boldsymbol{x})g(\boldsymbol{\eta})\exp \{\boldsymbol{\eta}^{T}\boldsymbol{\mu}(\boldsymbol{x})\}\tag{2.106} p(xη)=h(x)g(η)exp{ηTμ(x)}(2.106)
其中 x \boldsymbol{x} x 可能是标量或者向量, 可能是离散的或者是连续的。 这⾥ η \boldsymbol{\eta} η 被称为概率分布的 ⾃然参数natural parameters), μ ( x ) \boldsymbol{\mu}(\boldsymbol{x}) μ(x) x \boldsymbol{x} x 的某个函数。函数 g ( η ) g(\boldsymbol{\eta}) g(η) 可以被看成系数,它确保了概率分布是归⼀化的,因此满⾜:
g ( η ) ∫ h ( x ) exp ⁡ { η T μ ( x ) } d x = 1 (2.107) g(\boldsymbol{\eta})\int h(\boldsymbol{x})\exp \{\boldsymbol{\eta}^{T}\boldsymbol{\mu}(\boldsymbol{x})\}\mathrm{d}\boldsymbol{x}=1\tag{2.107} g(η)h(x)exp{ηTμ(x)}dx=1(2.107)
如果 x \boldsymbol{x} x 是离散变量,那么上式中的积分就要替换为求和。

考虑伯努利分布:
p ( x ∣ μ ) = Bern ( x ∣ μ ) = μ x ( 1 − μ ) 1 − x (2.108) p(x|\mu) = \text {Bern}(x|\mu) = \mu^{x}(1-\mu)^{1-x}\tag{2.108} p(xμ)=Bern(xμ)=μx(1μ)1x(2.108)

变形,有:

p ( x ∣ μ ) = exp ⁡ { x ln ⁡ μ + ( 1 − x ) ln ⁡ ( 1 − μ ) } = ( 1 − μ ) exp ⁡ { ln ⁡ ( μ 1 − μ ) x } (2.109) \begin{aligned} p(x|\mu) &= \exp \{x\ln \mu +(1-x) \ln (1-\mu)\} \\ &= (1-\mu)\exp \left\{\ln \left(\frac{\mu}{1-\mu}\right)x\right\}\end{aligned}\tag{2.109} p(xμ)=exp{xlnμ+(1x)ln(1μ)}=(1μ)exp{ln(1μμ)x}(2.109)

对比公式(2.106),可得:
η = ln ⁡ ( μ 1 − μ ) \eta = \ln \left(\frac{\mu}{1-\mu}\right) η=ln(1μμ)

从而,有:
μ = σ ( η ) = 1 1 + exp ⁡ ( − η ) (2.110) \begin{aligned}\mu &= \sigma(\eta) \\ &= \frac{1}{1+\exp(-\eta)}\end{aligned}\tag{2.110} μ=σ(η)=1+exp(η)1(2.110)

被称为 logistic sigmoid函数
因此,伯努利分布的指数族分布标准形式:
p ( x ∣ μ ) = σ ( − η ) exp ⁡ ( η x ) (2.111) p(x|\mu) = \sigma(-\eta)\exp(\eta x)\tag{2.111} p(xμ)=σ(η)exp(ηx)(2.111)
其中,
μ ( x ) = x h ( x ) = 1 g ( η ) = σ ( − η ) \mu(x) = x \\ h(x) = 1 \\ g(\eta)=\sigma(-\eta) μ(x)=xh(x)=1g(η)=σ(η)

考虑单⼀观测 x \boldsymbol{x} x 的多项式分布,形式为:
p ( x ∣ μ ) = ∏ k = 1 K μ k x k = exp ⁡ { ∑ k = 1 K x k ln ⁡ μ k } (2.112) p(\boldsymbol{x|\mu}) = \prod_{k=1}^{K}\mu_{k}^{x_{k}} = \exp\left\{\sum_{k=1}^K x_{k}\ln \mu_{k}\right\}\tag{2.112} p(xμ)=k=1Kμkxk=exp{k=1Kxklnμk}(2.112)

其中 x = ( x 1 , … , x M ) T \boldsymbol{x} = (\boldsymbol{x}_1,\dots ,\boldsymbol{x}_M)^T x=(x1,,xM)T 。把它写成公式(2.106)的标准形式,即:
p ( x ∣ μ ) = exp ⁡ ( η T x ) (2.113) p(\boldsymbol{x|\mu}) = \exp(\boldsymbol{\eta}^{T}\boldsymbol{x})\tag{2.113} p(xμ)=exp(ηTx)(2.113)

其中, η k = ln ⁡ μ k \eta_{k} = \ln \mu_{k} ηk=lnμk η = ( η 1 , … , η M ) T \boldsymbol{\eta}=(\eta_1,\dots,\eta_{M})^T η=(η1,,ηM)T,并且
μ ( x ) = x h ( x ) = 1 g ( η ) = 1 ∑ k = 1 K μ k = 1 \boldsymbol{\mu}(\boldsymbol{x}) = \boldsymbol{x} \\ h(\boldsymbol{x}) = 1 \\ g(\boldsymbol{\eta}) = 1 \\ \sum_{k=1}^{K} \mu_{k}=1 μ(x)=xh(x)=1g(η)=1k=1Kμk=1

考虑只⽤ M − 1 M−1 M1 个参数来表⽰这个分布,把 μ M \mu_M μM ⽤剩余的 { μ k } \{\mu_k\} {μk} 表⽰,其中 k = 1 , … , M − 1 k = 1, \dots , M−1 k=1,,M1,这样就只剩下了 M − 1 M−1 M1 个参数,公式(2.112)变为:
p ( x ∣ μ ) = exp ⁡ { ∑ k = 1 K x k ln ⁡ μ k } = exp ⁡ { ∑ k = 1 M − 1 x k ln ⁡ ( μ k 1 − ∑ j = 1 M − 1 μ j ) + ln ⁡ ( 1 − ∑ k = 1 M − 1 μ k ) } (2.114) \begin{aligned}p(\boldsymbol{x|\mu}) &= \exp\left\{\sum_{k=1}^K x_{k}\ln \mu_{k}\right\} \\ &= \exp \left\{\sum_{k=1}^{M-1}x_{k}\ln\left(\frac{\mu_{k}}{1-\sum_{j=1}^{M-1}\mu_{j}}\right) + \ln \left(1-\sum_{k=1}^{M-1}\mu_{k}\right)\right\} \end{aligned}\tag{2.114} p(xμ)=exp{k=1Kxklnμk}=exp{k=1M1xk<

这篇关于【机器学习基础】概率分布之指数族分布的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/877644

相关文章

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Linux基础命令@grep、wc、管道符的使用详解

《Linux基础命令@grep、wc、管道符的使用详解》:本文主要介绍Linux基础命令@grep、wc、管道符的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录grep概念语法作用演示一演示二演示三,带选项 -nwc概念语法作用wc,不带选项-c,统计字节数-

python操作redis基础

《python操作redis基础》Redis(RemoteDictionaryServer)是一个开源的、基于内存的键值对(Key-Value)存储系统,它通常用作数据库、缓存和消息代理,这篇文章... 目录1. Redis 简介2. 前提条件3. 安装 python Redis 客户端库4. 连接到 Re

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Spring Boot集成Logback终极指南之从基础到高级配置实战指南

《SpringBoot集成Logback终极指南之从基础到高级配置实战指南》Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计,:本文主要介绍... 目录一、Logback简介与Spring Boot集成基础1.1 Logback是什么?1.2 Sprin

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示