及时行乐|算法工程师福利:超实用技术路线图( 十 )


  • 自我考核:了解超参优化的基础概念 , 能够在项目中应用框架工具来实现模型超参的贝叶斯优化流程 。
元学习
Meta learning 是近年来非常活跃的一个新兴领域 , 其主要思路是希望能通过元学习模型方法 , 去积累建模调优的先验知识 , 跨任务推断模型效果并 warm start 新的训练任务 , 或者指导学习算法来进行更高效的具体任务的训练过程 。 这方面在工业界的主要应用基本上集中在建模调优先验知识的积累方面 , 比如通过一系列公开数据集搜索寻找出表现较好的起始参数 , 用于指导在新任务上做超参优化的起始搜索点 。 学术研究中除了 configuration space 的研究 , 还包括从 learning curve 中进行学习推断 , 元特征提取与建模 , HTN planning 在 pipeline 构建中的应用 , 以及 MAML 等 few-shot learning 方向的探索 。 这方面推荐 Lilian Weng 的一系列文章() , 以及网站上的资料 。
  • 自我考核:设计一系列 meta feature 与 meta learning 手段 , 实现对新任务的参数选择的初始化 。
NAS
AutoML 领域比较火 , 但也是比较特别的一个方向 , 目前需要大量的计算资源投入才能做这方面的研究与尝试 , 因此主要建议了解一下这个方向的一些工作即可 , 不做深入探索学习 。
AutoML 系统
自动化机器学习相关的框架工具也非常多 , 比较有代表性的框架有 auto-sklearn(来自团队) , nni(microsoft) , auto-gluon(amazon) , H2O , ray tune 等 , 在工具级别也有如 hyperopt , SMAC3 , featuretools 等 。 可以通过学习这些工具框架 , 了解 AutoML 系统的架构与实现方式 , 并应用到实际项目中 。
  • 自我考核:使用一种 AutoML 系统来进行项目的模型自动优化 , 并与手工优化的结果进行比较 , 看是否有所提升 , 及寻找背后的原因 。
模型解释
模型解释技术
主要有三个方面 , 一是模型本身的解释性 , 例如线性回归 , 决策树等 , 模型结构简单 , 根据其原理 , 可以直接对预测结果 , 特征使用等方面给出解释 。 另外一些复杂模型 , 例如 EBM , 神经网络 , Bayesian rule lists , SLIMs 等 , 也可以利用一些本身的特性给出一些解释 , 例如 GradCAM 方法等 。 二是模型无关的解释方法 , 包括经典的 PDP , ICE 等特征图 , LIME 等 surrogate model 方法 , 以及基于博弈论的 Shapley 方法 。 三是基于 sample 的解释方法 , 例如 conterfactual explanations , adversarial examples , prototypes , influential instances , kNN 等 , 不过看起来这类方法对于计算的开销一般都会比较大 , 不太容易在工程中实现落地 。 这方面的资料可以学习《Interpretable Machine Learning》和《Explainable AI》(关于深度学习的内容会更多) 。 另外学术界也有很多前沿探索 , 比如针对模型解释的降维工作 , 自动的时间序列分析及报告生成 , 因果模型 , 模型公平性及社会影响等方面 , 可以保持关注 。
  • 自我考核:理解 LIME , Shapley 的运作原理 , 并分析其局限性 , 尝试提出改进方案 。
模型解释应用
从工具框架方面 , 有许多可以使用的开源项目 , 例如微软的 interpret , eli5 , shap , AIX360 等 。 另外也有一些非传统意义上的模型解释 , 例如 manifold , tensorboard 这类模型 debugging 工具 , 自动化的误差分析与模型改进方案 , 因果模型框架 , 模型公平性评估与纠正工具等 , 都可以涵盖在广义的模型解释领域中 。 在工具基础上 , 如何结合业务领域知识 , 给出更有针对性的解释方案 , 也是值得思考深挖的方向 。