写点什么

提高建模效率:自动化机器学习之贝叶斯优化综述

发布于: 2021 年 05 月 26 日

关注索信达控股

畅游金融人工智能世界

━━━━━━

近年来,深度学习逐渐受到工业界的欢迎,其强大的性能和端到端的训练方式贴合了现代企业的生产模式,被各行各业所认可。但与此同时,深度学习的广泛流行也部分改变了算法工作人员的工作模式。由于深度学习能够运用编码器从非结构化数据中提取特征,所以传统机器学习流程中的特征工程在深度学习中被大大弱化。同时,由于深度学习计算理论的不完备,算法工作人员时间精力的投入从数据和模型的全流程管理逐渐偏移到神经网络结构和参数的调试工作中,这也是深度学习常常为人所诟病的一点。

随着算力的提升和深度学习理论的发展,模型越来越倾向于庞大和复杂,动辄成千万上亿的参数数目已经远远超出了手动调参或者线性搜索的适用范围。因此,贝叶斯优化作为一种超参数自动调优的手段,从 2015 年开始慢慢被接受。以 AutoML 为首的自动化机器学习相关工作也逐渐作为一个专门研究方向为人们所熟知。如今,贝叶斯优化作为一种超参数调优工具正在逐渐取代网格搜索和随机搜索的地位,日益成为主流的调参方法。与此同时,在神经网络结构搜索(NAS)方向上,基于贝叶斯优化的方法也达到了当前先进水平,形成了较为成熟、完整的理论体系和结构框架。


https://mp.weixin.qq.com/s/lpt6w1G-mhuJ-qsIigaAMw

01 相关研究工作

贝叶斯优化发展到如今,已经算是相对比较成熟的理论。最早的相关主流算法包 Hyperopt 于 2013 年上线,2014- 2017 又有更多 AutoML 系统上线。至今,Hyperopt、auto-weka、auto-sklearn 仍然是自动化机器学习领域研究的经典基线。贝叶斯优化在 AutoML 领域之所以广受欢迎,是因为其典型的非梯度优化特征,能够把机器学习的超参数选择和模型结构设计问题转化为受边界约束的非梯度优化问题,从而实现自动化。这个优势在传统的依赖梯度的优化方法中是没有的。在算法层面,成熟的方法也是层出不穷。从最经典的基于高斯过程的贝叶斯优化(Bayesian Optimization with Gaussian Process Surrogate, GP-BO)到基于树结构的 SMAC,再到结合并行化机制的 BOHB,贝叶斯优化算法经历了持续的演变过程。

从金融领域视角来看,以银行为主的机构对模型的要求是高稳定性和合理的部署成本,其次才是性能层面的技术指标。所以银行往往倾向于性能稳定,解释性强的直观模型多过于性能优越但部署成本高的深度学习复杂模型。所以关键在于将深度模型和贝叶斯优化紧密结合,使模型性能得到跨越式提升的同时保证其稳定性和部署友好性。

02 贝叶斯优化基本方法论

在这一部分中,我将以 GP-BO 为例向大家介绍贝叶斯优化的基本构成组件和方法论,并向 SMAC 作一个扩展。贝叶斯优化的核心组件只有两个:使用统计描述的代理模型和采集函数。在以高斯过程为代理模型的 GP-BO 中,以超参数配置 λ为变量的高斯过程可以以样本均值 μ(λ)和样本方差 σ²(λ)确定,具体形式为:

其中 k*为当前超参数 λ和之前所有观测超参数矩阵的向量积,K 为已知所有超参数组合的联合协方差矩阵, y 为每组超参数对应的模型评估度量。在实际计算过程中,会使用不同的核函数来增加代理模型的非线性表达能力,常用的核函数为 Mátern 5/2 kernel ,这是由超参数优化问题不光滑的搜索空间形态所决定的。贝叶斯优化是一种顺序迭代型全局优化算法,可以通过上面的公式发现它在每一步都使用全局信息来更新代理模型。

代理模型的任务是帮助我们估计超参数表现的分布情况,而采集函数则决定了贝叶斯优化过程中的优化策略。当我们拥有超参数分布的贝叶斯先验时,可以用最大化采集函数的方法来确定下一步要进行采样的超参数组合。常用的采集函数包括基于统计学的 EI 类,基于信息学的 ES 类,还有基于运筹学的 KG 类。它们的作用是在对高均值区域的开发(exploitation)和对高波动区域的探索(exploration)之间做一个权衡,来选取合适的采样超参数样本点。注意的是采集函数在高维情况下可能仍然难以计算,这时可以使用蒙特卡洛方法降低计算成本。下图是以最小化问题为例,利用贝叶斯优化来选取超参数组合,可以发现在代理模型的全局最低点处采集函数的值最大,同时采样也最为密集。


Figure 1. 贝叶斯优化可视化展示

对于 SMAC 算法来说,则是把代理模型替换成了随机森林,用在所有子树中均值的期望来作为均值,用子树方差的期望和整个森林期望的方差之和来作为方差,模拟一个经验概率分布。采集函数的部分和优化流程保持不变。SMAC 与 GP-BO 相比,易于并行,善于处理混合类型的数据,并有计算复杂度的优势,但是同时降低了采样效率,同时需要更多的样本点来训练先验。


03 贝叶斯优化在金融行业的应用

深度学习在现今已经进入了一个百花齐放的阶段,不管是在计算机视觉领域还是自然语言处理领域都取得了长足的进步。但对于金融,尤其是银行业来说,最直接的数据还是结构化数据。因此我们的未来探索方向主要考虑基于高维、稀疏、序列化数据的深度学习模型和贝叶斯优化的结合。现有的贝叶斯优化框架能够在深度学习训练流程的基础上对其进行封装,而善于解决序列化数据问题的深度学习工具也已经成熟,但是这两者在金融领域的应用却还是一块新大陆。

与此同时,发展贝叶斯优化方法本身的性能和可用性也是我们所看重的。经典算法在应用中受到诸多限制,而改进过的算法在不同领域又各有千秋,这是由实际场景中的复杂业态和高人力成本所导致的。举个例子,对于 GP-BO 来说,虽然能够以极高的效率和相对合理的代价探索超参数组合的效用,但时间复杂度较高,且非连续型的变量会对性能造成一定损耗。同时,贝叶斯优化每运行一步都需要计算全局样本,这个特点使其不便于并行化,不能很好地利用分布式系统的算力。而优化过的算法中,有的适用于复杂的数据类型却需要较多样本点来学习先验(SMAC),有的能更好的估计效用函数的后验分布但计算复杂(TPE)。因此,如果我们希望达到较高的性能,就要对具体金融行业中数据结构的问题:稀疏性、长尾分布等特征进行优化,结合考虑可扩展性、分布式部署,赋予贝叶斯优化新的面貌。


04 研究初期落地建议

在进行贝叶斯优化研究的初期,实验条件有限。算法的选择,或者具体地说,代理模型和采集函数的选取都和贝叶斯优化的性能息息相关。由于实际应用的场景较为复杂,坚实的底层支持是必不可少的。因此,建议采用基于 scikit-optimize 的优化框架来部署算法,它支持多种多样的代理模型和获取函数,同时具有与 sklearn 同源的简洁文档和源代码风格,友好而便于上手。在具体采集函数的选择上,建议选择期望优化度(EI)和置信区间上界(UCB)作为获取函数。原因同样也是便于使用,具有一定的自解释性。

有初期经验的积累之后,我们可以对贝叶斯优化和整个系统作进一步功能上的扩展。在后期,则可以考虑使用结合带状资源分配算法的贝叶斯优化(BOHB),它支持分布式训练和灵活的计算资源分配规划,是成熟的贝叶斯优化算法配置的良选。


Figure 2. 贝叶斯优化算法发展历程

当然,优化算法的性能还依赖于算法工程师对搜索空间的认知。通俗来说,速度和泛化能力决定性能,而优化路径的选择又决定了算法的速度和泛化能力。如果把模型单纯的当作一个黑盒,而不考虑与该领域的知识相结合的话,拿任何一个目前先进水平的算法来进行优化效果都是差不多的,因为任务无非是黑盒优化,而黑盒优化的上限是达不到我们对模型效果和解释性的要求的。因此,我们应该深入具体的业务场景,根据不同的业务形态来调整模型,这样才能够将算法的作用发挥到最大。


索信达数据科学家:李越


发布于: 2021 年 05 月 26 日阅读数: 15
用户头像

索信达控股(股票代码:03680.HK) 2021.05.20 加入

索信达被誉为港股金融AI第一股。核心团队和研发团队全部来自SAS、Teradata、FICO、德勤、毕马威、安永等,天然具有世界级产品厂商的血缘和水准及专业服务能力,是中国金融行业AI大数据、整合智能营销领导者。

评论

发布
暂无评论
提高建模效率:自动化机器学习之贝叶斯优化综述