贝叶斯优化、高斯过程相关概念总结

2024-08-27 13:20

本文主要是介绍贝叶斯优化、高斯过程相关概念总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

目录

贝叶斯优化

贝叶斯定理

贝叶斯推断

贝叶斯方法、贝叶斯推断和贝叶斯估计概念对比

高斯过程

先验、后验、似然

采集函数

最大似然估计(MLE)

最大后验概率估计(MAP)


贝叶斯优化

超参数优化 - 维基百科,自由的百科全书 (wikipedia.org)

        贝叶斯优化是一种针对噪声黑盒函数全局优化方法。 贝叶斯优化用于超参数优化时建立超参数值到在验证集上目标函数值的函数的概率模型。贝叶斯优化是要据当前模型,迭代地评估较好的超参数配置、再更新,收集尽可能多的观察结果,揭示有关该函数的信息,尤其是最佳值的位置。它试图在探索(结果最不确定的超参数)和利用(预期接近最优的超参数)之间取得平衡。实践中,贝叶斯优化同前两种算法(随机搜索和网格搜索)相比[7][8][9][10],由于能在实验前就推理实验质量,因此能以更少的评估次数获得更好的结果。

贝叶斯优化 | 黑盒优化+全局最优方法 | Bayesian Optimization_哔哩哔哩_bilibili

        贝叶斯优化用于解决寻找某个函数的最大值/最小值,在自变量维度比较小时(<20)表现的非常好。
        适用于观测目标函数非常昂贵的时候,比如每次观测需要大量时间、成本或者机会成本。如在选择学习率之后,训练一次神经网络需要很长时间。
        适用于不知道目标函数,目标函数是个黑盒子,不知道它的公式和性质,不知道目标函数的一阶和二阶导数
        贝叶斯优化有两个模块:1.用贝叶斯统计模型建模目标函数。2.用采集函数找下一个采样点在哪儿。

什么时候需要使用贝叶斯优化? (BO系列一) |作者:Eduardo C. Garrido Merchán中等的 --- When do I need to use Bayesian optimization? (BO series I) | by Eduardo C. Garrido Merchán | Medium

贝叶斯优化适用于:

        1.f(x) 没有解析表达式。如果您有解析表达式,那么您将能够计算梯度并应用文献中的其他优化算法!

        2.f(x) 是平滑且连续的。

        3.f(x) 的评估成本很高。例如,如果我们想要优化深度神经网络相对于超参数的泛化误差的估计,如层数或神经元数量、激活函数、正则化机制、层类型、学习率、动量等每次我们将神经网络拟合到一个巨大的数据集时,我们都需要大量的计算时间。换句话说,我们无法承受大量不同的超参数值,因为每种不同的配置都非常昂贵。这是贝叶斯优化相对于遗传算法等元启发式算法的主要区别。就遗传算法而言,f(x) 的评估成本较低。

        4.f(x) 可能有噪音。但到底什么是噪声函数呢?很简单,它是一个非确定性函数,或随机函数,对于同一组参数值,我们获得不同但相似的值。也就是说,y=f(x) 被噪声破坏了。如果该噪声是高斯噪声,e=N(0, sigma),使得 y=f(x)+e,那么向贝叶斯优化的概率代理模型添加高斯似然性将使该技术发挥良好作用。

贝叶斯优化(原理+代码解读) - 知乎 (zhihu.com)

        优化命题:如在某个区间内去最大化某个函数

        贝叶斯优化属于无梯度优化算法中的一种,它希望在尽可能少的试验情况下去尽可能获得优化命题的全局最优解

        由于我们要优化的这个函数计算量太大,一个自然的想法就是用一个简单点的模型来近似 𝑓(𝑥) ,这个替代原始函数的模型也叫做代理模型,贝叶斯优化中的代理模型为高斯过程,假设我们对待优化函数的先验(prior)为高斯过程,经过一定的试验我们有了数据(也就是evidence),然后根据贝叶斯定理就可以得到这个函数的后验分布

        在贝叶斯学派中,先验分布+数据(似然)= 后验分布

2.概率论基础 - 六、先验分布与后验分布 - 《AI算法工程师手册》 - 书栈网 · BookStack

        有了这个后验分布后,我们需要考虑下一次试验点在哪里进一步收集数据,因此就会需要构造一个acquisition函数用于指导搜索方向(选择下一个试验点),然后再去进行试验,得到数据后更新代理模型的后验分布,反复进行。

        优化过程:

                1.根据截止到t-1次试验得到的数据D,选择第t次试验的数据x,使得采集函数(价值函数)最大;

                2.根据x_t得到y_t;

                3.把t次试验的x和y加入到数据中,并且更新GP。

贝叶斯定理

        贝叶斯定理(英语:Bayes' theorem)是概率论中的一个定理,描述在已知一些条件下,某事件的发生概率。贝叶斯定理对于所有概率的解释是有效的。这一定理的主要应用为贝叶斯推断,是推论统计学中的一种推断法。

        贝叶斯定理可表述为:后验概率 = (似然性*先验概率)/标准化常量。也就是说,后验概率与先验概率和相似度的乘积成正比。

贝叶斯推断

        贝叶斯推断(英语:Bayesian inference)是推断统计的一种方法。这种方法使用贝叶斯定理,在有更多证据及信息时,更新特定假设的概率。

        贝叶斯推断将后验概率(考虑相关证据或数据后,某一事件的条件概率)作为先验概率(考虑相关证据或数据前,某一事件不确定性的概率)和似然函数(由观测数据的统计模型(概率模型)推导而得)这两个前因导出的结果。

贝叶斯方法、贝叶斯推断和贝叶斯估计概念对比

贝叶斯方法、贝叶斯推断和贝叶斯估计在统计学和机器学习中都是基于贝叶斯定理的概念,但它们的应用和侧重点略有不同:

  1. 贝叶斯方法(Bayesian Method)

    • 贝叶斯方法是一种统计学方法,它使用贝叶斯定理来更新对未知参数的信念或概率。
    • 这种方法考虑了先验信息(先验分布),并与似然函数结合,以计算参数的后验分布。
    • 贝叶斯方法不仅提供了参数的点估计,还提供了关于参数不确定性的完整概率分布。
  2. 贝叶斯推断(Bayesian Inference)

    • 贝叶斯推断是贝叶斯方法的一个应用,专注于使用后验分布来做出推断或决策。
    • 它包括了对后验分布的分析,例如计算期望值、方差、置信区间或进行假设检验。
    • 贝叶斯推断可以用于预测新数据点、模型选择、参数估计和不确定性量化。
  3. 贝叶斯估计(Bayesian Estimation)

    • 贝叶斯估计通常指的是使用贝叶斯方法来估计模型参数的过程。
    • 它涉及选择先验分布、计算似然函数和应用贝叶斯定理来获得后验分布。
    • 贝叶斯估计可以包括点估计(如后验均值或众数)和区间估计(如可信区间)。

贝叶斯方法的核心优势在于其能够结合先验知识和数据来更新我们对参数的信念,这使得它在以下方面特别有用:

  • 不确定性量化:贝叶斯方法提供了关于参数估计不确定性的完整概率分布,而不仅仅是点估计。
  • 先验信息整合:通过先验分布,贝叶斯方法允许我们将先验知识或专家意见整合到模型中。
  • 模型灵活性:贝叶斯方法适用于各种类型的模型,包括线性模型、非线性模型和复杂的贝叶斯网络。
  • 决策制定:贝叶斯推断可以用于支持决策制定,特别是在存在不确定性的情况下。

在实际应用中,贝叶斯方法可能涉及复杂的计算,特别是当模型或后验分布的解析形式难以获得时。此时,可能需要使用马尔可夫链蒙特卡洛(MCMC)等数值方法来近似后验分布。随着计算技术的发展,贝叶斯方法在许多领域,包括金融、生物信息学、环境科学和机器学习等,都得到了广泛应用。

高斯过程

        在概率论和统计学中,高斯过程(英语:Gaussian process)是观测值出现在一个连续域(例如时间或空间)的随机过程。在高斯过程中,连续输入空间中每个点都是与一个正态分布的随机变量相关联。此外,这些随机变量的每个有限集合都有一个多元正态分布,换句话说他们的任意有限线性组合是一个正态分布。高斯过程的分布是所有那些(无限多个)随机变量的联合分布,正因如此,它是连续域(例如时间或空间)上函数的分布。

        高斯过程被认为是一种机器学习算法,是以惰性学习方式,利用点与点之间同质性的度量作为核函数,以从输入的训练数据预测未知点的值。其预测结果不仅包含该点的值,而同时包含不确定性的资料-它的一维高斯分布(即该点的边际分布)。[1][2]

        对于某些核函数,可以使用矩阵代数(见克里金法条目)来计算预测值。若核函数有代数参数,则通常使用软件以拟合高斯过程的模型。

        由于高斯过程是基于高斯分布(正态分布)的概念,故其以卡尔·弗里德里希·高斯为名。可以把高斯过程看成多元正态分布的无限维广义延伸

        高斯过程常用于统计建模中,而使用高斯过程的模型可以得到高斯过程的属性。举例来说,如果把一随机过程用高斯过程建模,我们可以显示求出各种导出量的分布,这些导出量可以是例如随机过程在一定范围次数内的平均值,及使用小范围采样次数及采样值进行平均值预测的误差。

        统计学分布定义为{Xt, t∈T}是一个高斯过程,当且仅当对下标集合T的任意有限子集t1,...,tk,

𝑋𝑡1,…,𝑡𝑘=(𝑋𝑡1,…,𝑋𝑡𝑘)是一个多元正态分布。

        高斯过程是多元高斯分布向无穷维的扩展,如果说高斯分布是随机变量的分布,则高斯过程是函数的分布,它可以由均值函数和协方差函数组成。

        可以根据高斯过程的后验分布对这个未知函数在任意位置的值做出预测,均值包括方差。

先验、后验、似然

在统计学和机器学习中,后验分布(Posterior Distribution)是在已知一些观测数据(结果)的情况下,对模型参数的概率分布的重新评估。后验分布不是直接估计模型参数,而是在观测数据的条件下,更新了对参数不确定性的认识。

贝叶斯推断的核心思想是结合先验知识(先验分布)和新的观测数据来更新对参数的信念,这个过程称为更新或学习。以下是贝叶斯推断的基本步骤:

1. **先验分布(Prior Distribution)**:在观察到任何数据之前,我们对参数的初始信念或假设,通常基于领域知识或以往的经验。

2. **似然函数(Likelihood Function)**:给定模型参数时,观测数据出现的概率。似然函数是参数的函数,表示参数如何解释观测数据。

3. **贝叶斯定理(Bayes' Theorem)**:使用先验分布和似然函数来计算后验分布的数学公式。贝叶斯定理表明后验分布与先验分布和似然函数的乘积成正比。

4. **后验分布**:给定观测数据后,参数的概率分布。它是先验分布和似然函数的结合,反映了对参数当前的信念。

5. **模型参数的估计**:在某些情况下,我们可能需要对参数进行点估计,例如计算后验均值或模式(最可能的参数值)。然而,后验分布本身提供了更丰富的信息,包括参数的不确定性和置信区间。

在贝叶斯统计中,参数被视为随机变量,因此后验分布不仅告诉我们参数的可能值,还告诉我们这些值的不确定性。这种对不确定性的量化是贝叶斯方法的一个重要特点,它允许我们更深入地理解模型参数的可信度。

例如,在高斯过程回归中,后验分布允许我们对新的输入点进行预测,并提供关于预测的不确定性的估计。这种不确定性的量化对于决策制定和风险评估非常有价值。

采集函数

        贝叶斯优化选择的搜索方向为预测值大的位置或者不确定性大的位置,这样才有可能搜到目标函数的最优解。

最大似然估计(MLE)

        最大似然估计,英文为Maximum Likelihood Estimation,简写为MLE,也叫极大似然估计,是用来估计概率模型参数的一种方法。最大似然估计的思想是使得观测数据(样本)发生概率最大的参数就是最好的参数。

最大似然估计的求解步骤:

  • 确定似然函数
  • 将似然函数转换为对数似然函数
  • 求对数似然函数的最大值(求导,解似然方程)

最大后验概率估计(MAP)

        最大似然估计认为使似然函数P(X|θ)𝑃(𝑋|𝜃)最大的参数θ𝜃即为最好的θ𝜃,此时最大似然估计是将θ𝜃看作固定的值,只是其值未知;最大后验概率分布认为θ𝜃是一个随机变量,即θ𝜃具有某种概率分布,称为先验分布,求解时除了要考虑似然函数P(X|θ)𝑃(𝑋|𝜃)之外,还要考虑θ𝜃的先验分布P(θ)𝑃(𝜃),因此其认为使P(X|θ)P(θ)𝑃(𝑋|𝜃)𝑃(𝜃)取最大值的𝜃就是最好的𝜃。

        MAP=MLE*参数的先验分布

最大后验概率估计的求解步骤:

  • 确定参数的先验分布以及似然函数
  • 确定参数的后验分布函数
  • 将后验分布函数转换为对数函数
  • 求对数函数的最大值(求导,解方程)

        贝叶斯估计是最大后验估计的进一步扩展,贝叶斯估计同样假定θ是一个随机变量,但贝叶斯估计并不是直接估计出θ的某个特定值,而是估计θ的分布,这是贝叶斯估计与最大后验概率估计不同的地方。

贝叶斯估计的求解步骤:

  • 确定参数的似然函数
  • 确定参数的先验分布,应是后验分布的共轭先验
  • 确定参数的后验分布函数
  • 根据贝叶斯公式求解参数的后验分布

这篇关于贝叶斯优化、高斯过程相关概念总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

java中使用POI生成Excel并导出过程

《java中使用POI生成Excel并导出过程》:本文主要介绍java中使用POI生成Excel并导出过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录需求说明及实现方式需求完成通用代码版本1版本2结果展示type参数为atype参数为b总结注:本文章中代码均为

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi