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

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

相关文章

SpringBoot 整合 Grizzly的过程

《SpringBoot整合Grizzly的过程》Grizzly是一个高性能的、异步的、非阻塞的HTTP服务器框架,它可以与SpringBoot一起提供比传统的Tomcat或Jet... 目录为什么选择 Grizzly?Spring Boot + Grizzly 整合的优势添加依赖自定义 Grizzly 作为

mysql-8.0.30压缩包版安装和配置MySQL环境过程

《mysql-8.0.30压缩包版安装和配置MySQL环境过程》该文章介绍了如何在Windows系统中下载、安装和配置MySQL数据库,包括下载地址、解压文件、创建和配置my.ini文件、设置环境变量... 目录压缩包安装配置下载配置环境变量下载和初始化总结压缩包安装配置下载下载地址:https://d

Python中实现进度条的多种方法总结

《Python中实现进度条的多种方法总结》在Python编程中,进度条是一个非常有用的功能,它能让用户直观地了解任务的进度,提升用户体验,本文将介绍几种在Python中实现进度条的常用方法,并通过代码... 目录一、简单的打印方式二、使用tqdm库三、使用alive-progress库四、使用progres

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

springboot整合gateway的详细过程

《springboot整合gateway的详细过程》本文介绍了如何配置和使用SpringCloudGateway构建一个API网关,通过实例代码介绍了springboot整合gateway的过程,需要... 目录1. 添加依赖2. 配置网关路由3. 启用Eureka客户端(可选)4. 创建主应用类5. 自定

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO