AutoML初识

附一下学习链接,摘自知乎:
知乎AutoML(上)
知乎AutoML(下)

AutoML初识

主要是由于今年来深度学习模型愈加复杂,所以产生了一种研究自动化机器学习的方向,越来越多的研究项目关于于AutoML

AutoML初识 机器学习管道图

谷歌已经有CloudAutoML这样的应用落地

AutoML初识

为什么会有AutoML出现的可能——因为NAS(Neual Architecture Search)的出现

NAS的工作流程图
AutoML初识

数据处理

  1. 数据准备
    数据合成

    也可以理解为数据增广:可以使用各种办法进行数据数据增广,比如裁切,翻折,周围补零(padding),旋转,缩放(resize)等(仿射变换和透视变换也挺好用的,特别是分类数据集上)。

    数据仿真

    数据仿真,通过尽量匹配真实世界的环境生成数据。OpenAI Gym就是提供多种仿真环境的工具。
    生成对抗网络(GAN):GAN相对较新的技术,值得一提的是除了图片之外也可以生成文本之类的数据。

    数据搜索

    标签和自标签

  2. 数据搜索

    类似于python爬虫之类的

  3. 数据清洗(预处理)

    特征提取之前,进行数据清洗也是常规操作。比较简单的例子是表格数据中的缺失值啊,错误的数据类型之类的问题。
    常见的数据清洗方法诸如规范化(standardization),放缩(scaling),定量特征的二值化(binarization of quantitative characteristic),独热编码定性特征(one-hot encoding qualitative characteristic),用平均值填充缺失值(filling missing values with mean value)等等。

特征工程

  1. 特征选择

    对原始数据集降低不相关和冗余的特征,创建原始特征集的子集。
    AutoML初识

  2. 特征提取

    特征提取是个降维的活儿。特征提取使用一些映射函数,根据特定的度量提取信息丰富的非冗余特征。
    与特征选择不同,特征提取将改变原始特征。特征提取的核心是一个映射函数,可以通过多种方式实现。
    常见的传统方法:
    主成分分析(PCA)
    独立成分分析
    等距映射(isomap)
    非线性降维
    线性判别分析(LDA)

    近年来,也有用前向神经网络做自编码器(autoencoder)的方法

    搜索策略
    首先,根据搜索策略选择特征子集并进行评估。然后,实现一个验证过程来检查子集是 否有效。然后重复上述步骤,直到满足停止条件。
    经过总结,搜索测率可以分为以下三种:
    完全(complete)搜索,启发式(heuristic)搜索,随机(random)搜索

    完全搜索:涉及到穷尽(exhaustive)和非穷尽搜索。并可以细分为四种搜索方式:
    广度优先搜索(Breath First Search),分支定界法(Branch and Bound),集束搜索(Beam Search)(貌似是一种常见于NLP的搜索方式呢),最优优先搜索(Best First Search)

    启发式搜索:顺序正向选择(Sequential Forward Selection SFS)顺序反向选择(Sequential Backward Selection SBS)双向选择(Bidirectional Search BS)
    对于前两种情况,分别从空集添加特性或从完整集删除特性,而对于BS,它同时使用SFS和SBS进行搜索,直到这两种算法获得相同的子集。

    随机搜索方面:常用的方法有模拟退火算法Simulated Annealing (SA) 和遗传算法 Genetic Algorithms(GA)

    子集评价方式
    过滤法:先打分,然后设阈值,分数都是方差相关系数,卡方检验,互信息啥的
    包装法(Wrapper method,递归特征消除):直接拿特征进行分类,选效果好的
    嵌入法:特征选择作为学习的一部分,正则化,决策树,深度学习都属于这个方法。

  3. 特征构建

    特征构建是从基本特征空间或原始数据中构造新特征以增强模型的鲁棒性和泛化性的过程,其本质是提高原始特征的表达性。
    传统上,这一过程高度依赖于人类的专业知识,最常用的方法之一是预处理转换,如规范化(standardization)、标准化(normalization)、特征离散化(feature discretization)等。
    此外,转换操作可能因不同类型的特性而不同。
    人工尝试所有可能的特征构建方法是不可能的,所以为了进一步提高效率,就有了自动模型构建:自动化搜索和评估运算组合的过程。据说可以达到/超过人类专家的效果。
    基于树和遗传算法的搜索方法需要预定义的操作空间。而基于注释的办法,可以用训练样本使用域知识。

模型选择

一些流行贝叶斯实现的GitHub库
AutoML初识
AutoML开发成功后,终生学习就不远了