Sequential Model-Based Optimization(SMBO)
来源:互联网 发布:恩牛网络怎么样 编辑:程序博客网 时间:2024/06/05 16:42
The Gaussian Process Approach(GP)
所谓概率模型,是指训练模型的形式是P(Y|X)。输入是X,输出是Y,训练后模型得到的输出不是一个具体的值,而是一系列的概率值(对应于分类问题来说,就是输入X对应于各个不同Y(类)的概率),然后我们选取概率最大的那个类作为判决对象(软分类–soft assignment)。所谓非概率模型,是指训练模型是一个决策函数Y=f(X),输入数据X是多少就可以投影得到唯一的Y,即判决结果(硬分类–hard assignment)
高斯混合模型概述
1.1. 单高斯模型(Single GaussianModel, SGM)
对于单高斯模型,由于可以明确训练样本是否属于该高斯模型(如训练人脸肤色模型时,将人脸图像肤色部分分割出来,形成训练集),故μ通常由训练样本均值代替,由样本方差代替。为了将高斯分布用于模式分类,假设训练样本属于类别K,那么,式(1)可以改为如下形式:
式(2)表明样本属于类别K的概率大小。从而将任意测试样本输入式(2),均可以得到一个标量,然后根据阈值t来确定该样本是否属于该类别,阈值t可以为经验值,也可以通过实验确定。
1.2高斯混合模型(Gaussian Mixture Model,GMM)
高斯混合模型就是用高斯概率密度函数(正态分布曲线)精确地量化事物,它是一个将事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。s是单一高斯概率密度函数的延伸。
假设有一批观测数据
假设每个高斯模型在混合模型所占的比例
其中
表示第j个的单一高斯模型。其中
令
通过EM(Expectation Maximum)算法对GMM参数进行估计。
算法流程:
(1)初始化
方案1:协方差矩阵
(2)估计步骤(E-step)
(3)最大化步骤(M-step)
更新权值:
更新均值:
更新方差矩阵
(4)收敛条件
不断地迭代步骤(2)与(3),重复更新上面的三个值,直到
高斯过程的某个x得到的f(x)是个不确定的过程。
如何通俗易懂的了解高斯模型
https://www.zhihu.com/question/46631426?sort=created
详细讲解期望最大化算法的高斯过程的实施
http://www.cnblogs.com/549294286/p/3273290.html
全局超参数优化
全局超参数可以使用多种方法,有grid search 和random search.
- grid search 对参数空间一一举例,类似枚举,对连续型float型枚举不出来所有个体的参数空间并不适用,且时间花费较大。
- random search 对参数空间随机搜索,其搜索范围遍布整个搜索区域,但是对于评估函数时间花费较大的优化函数,其效果并不理想。
- 因此,新的时序模型全局优化(SMBO)出现了:
Sequential Model-Based Optimization(SMBO)
Model-based optimization 方法是生成可以预测性能并可以使用其来进行优化的一个回归模型(也称之为响应面模型)。
SMBO也是如此,它不停的迭代去训练模型,再基于该模型收集其他的数据。
对训练集
SMBO也可以表示为每一次迭代都会基于其已经求过评估的域
SMBO已经大量使用于适应度函数代价太大的应用中,譬如真实的适应度函数
通过对
GP:
高斯进程(GP)简要表示为在某个连续空间上的观测域的统计模型,GP的每个点的输入空间都是正态分布的随机变量,确定期望mean和协方差函数,就可以得到一个GP(协方差函数有多种形式,用kernel表示)。
https://en.wikipedia.org/wiki/Kernel_density_estimation
关于期望为0,kernel 为k
用GP对模型
GP每次迭代时间代价与观测域H的三次方与优化参数个数线性相关。然而评估函数
该算法的优化标准是Expected Improvement (EI).当然也可以是Probability of Improvement and EI,最小化极小值条件熵等等。EI是最原始的而且在很多设置中表现性能很好,EI是在关于
tree-structured Parzen estimator
处理高维的适应度评估预算比较小的超参数优化。高斯进程方法主要对
TPE定义了
根据对在基于k近邻算法在观测域
优化
通过构造
所以
所以,最后
细节部分:
模型
其最主要的效率改进是只需要每次对最理想的x求评估而且其推荐点将总是往有可能好的方向发展。
hyperopt:就是一个关于超参数优化的开源项目;该开源目前只实现了随机搜索和TPE算法。
主要包括四个部分:
- 参数空间的表示:normal/choice/uniform等多种转换形式
- loss function :评价函数,也可能加入其他条件,譬如时间
- hyper parameter optimization algorithm(HPOA)超参数优化的主题部分
- database 实验过程中已计算的点和评估值
该项目还有用mongodb进行存储数据。
下面有个简单的例子:
from hyperopt import fmin, tpe, hpbest = fmin(fn=lambda x: x ** 2, space=hp.uniform('x', -10, 10), algo=tpe.suggest, max_evals=100)print best
一些跟常用的Hyperopt和贝叶斯优化相关的软件
使用Hyperopt优化的软件:
hyperopt-sklearn -使用hyperopt优化across sklearn estimators (Work In Progress).
hyperopt-convnet -优化convolutional architectures for image classification (Work In Progress)
hyperopt-dbn - 优化深度认知网络(Deep Belief Networks)
其他贝叶斯优化软件:
SMAC - Sequential Model-based Algorithm Configuration (based on regression trees).
Spearmint - Gaussian-process SMBO in Python.
BayesOpt - Bayesian optimization toolbox
有几种改进:
1、在TPE算法过程中,有一种权重改进,试验点越新得到,权重越大,概率越大,越容易被选择到,观测值T,取最好的T/4的点去评估
2、GP算法前30次迭代使用的点都是随机样本得到的,到30代之后的样本点来自于历史域
本文所有均根据以下论文得到:
[1]Sequential Model-Based Optimization for General Algorithm Configuration
主要介绍了SMBO算法,并对其进行改进得到了强化版本ROAR
[2]Making a Science of Model Search
主要讲了介绍了hyperopt四个概念,对不同数据集LFW,Pibfig83,CIFAR-10用TPE和 随机搜索两种算法进行了对比
[3]Initializing Bayesian Hyperparameter Optimization via Meta-Learning
[4]Practical Bayesian optimization of machine learning algorithms
介绍了具有GP前验的贝叶斯优化:介绍了贝叶斯优化用到的请求函数:三个标准:Probability of Improvement(PI标准),Expected Improvement(EI标准),GP Upper Confidence Bound(GP-UCB标准),显示了高斯先验的重要性,可能极大程度影响贝叶斯优化成功或失败
[5]Algorithms for Hyper-Parameter Optimization
主要介绍了GP及GP的EI优化,TPE及TPE的EI优化,然后对随机搜索及SMBO算法在对DBN超参数优化上做了比较。
[6]Random Search for Hyper-Parameter Optimization
主要内容介绍了随机搜索在超参数优化方面的应用
- Sequential Model-Based Optimization(SMBO)
- MLlib - Optimization-based Algorithms
- SMO优化算法(Sequential minimal optimization)
- SMO优化算法(Sequential minimal optimization)
- SMO优化算法(Sequential minimal optimization)
- SMO优化算法(Sequential minimal optimization)
- Efficient ASMD-based Sequential Binary Multiplier
- Jordan Lecture Note-8: The Sequential Minimal Optimization Algorithm (SMO).
- 11 SMO优化算法(Sequential minimal optimization)
- SVM学习—SMO算法(Sequential Minimal Optimization)
- 开始 Keras 序列模型(Sequential model)
- model based testing
- Gradient-based Hyperparameter Optimization through Reversible Learning
- Sequential Task Process based on Spring Event Framework
- Topic-Based Vector Space Model
- Model-Based Long Haul Testing
- Software Testing in Sequential Lifecycle models (waterfall, v-model)
- 《2013-Finding Locally Optimal, Collision-Free Trajectories with Sequential Convex Optimization》
- 牛腩(2)-'calues' 附近有语法错误
- 使用小path解析XMl文档
- 自定义一个页面弹出框
- TCP通信实现
- 过滤器、监听器、拦截器的区别
- Sequential Model-Based Optimization(SMBO)
- jax-rs2.0
- activiti 流程框架 保存流程变量 获取流程变量打印问题 toString
- Google 广告投放(iOS)
- Java 基础
- C++ 界面设计须知
- 浅谈Draw Call和Batch的区别
- Unix下Apache HTTP编译及安装
- MySQL启动报【The server quit without updating PID file】错误的解决过程