使用 ML 进行提升建模和因果推理。
Python 包提供了一套使用基于最近研究的机器学习算法的提升建模和因果推理方法。
允许用户根据实验或观察数据估计条件平均处理效果 (CATE) 或个体处理效果 (ITE)。
可下载资源
本质上,它估计了干预 对 具有观察特征的用户的 T
结果 的因果影响,而对模型形式没有强烈的假设。典型用例包括
在meta learning中,meta learner的优化是大家都没有过多去在意的地方,但在实际去完成一个基于meta learning的idea时,又真实地需要去了解和运用。本文将用尝试总结meta learner优化的几类方法,和大家分享与探讨。
Meta Learning的目标是:通过已有数据集与任务,学习出一种模型的元知识meta-knowledge,以此来加速并促进模型在新的数据集或任务中的学习。元知识meta-knowledge的概念很广泛,在模型中人为设定的规则,并不适用于任何情况,则寄希望于模型能通过meta-learning的形式,自动从数据中学习出来,并泛用于相似的数据集或者任务。
而从另一方面看meta-learning的motivation,可以看到一个宏愿,即形成模型自身的循环,一个完全自洽的智能程序。一个简单的例子就是,现有模型的损失函数都是研究者针对特定的任务精心设计的,但要一个程序犹如人类一般具有通用性,其遇到的任务种类花样繁多,再由人一个个去设计并不现实,也不一定是最优的方案。因此,我们需要一类自恰的学习框架,也许,其最终形成一个类似人脑的循环与相互嵌套的庞大网络。
Meta-Learning的一般框架,可以看做是两个部分:一个是通常的(Basis) Learner,另一个是我们所熟知的meta-learner,如下图所示。
Learner本身依靠任务相关的metric计算loss和grad,在自身内部循环迭代更新;在运行N步之后得到一个反馈值,meta learner依据该反馈值进行梯度计算并更新模型;优化后的Meta Learner进一步生成更优的元知识meta knowledge,输入给Learner作为其模型的一部分,形成一个优化的循环。
按元知识来划分,常见的meta learning方法有:
• Gradient / Back-propagation
e.g. Learning to learn, Optimization as a Model
• Hyper parameters
e.g. Neural Architecture Search (NAS)
• Initialization
e.g. Model-Agnostic Meta-Learning (MAML)
• Parameters of neural net
e.g. Generate/Model parameters via a Bayes model (included in few-shot learning & continuous learning)
• Loss function
e.g. Evolved Policy Gradient (EPG)
• ……
在以上方法中,meta learning中meta learner的优化方法主要分为三大类:
-
基于梯度下降的优化方法
特点:将经验风险最小化损失的梯度,同样传导到meta learner上,更新其参数;通常inner loop(Learner)更新N步,outer loop(Meta Learner)更新一步。
优点:能直接嵌合入神经网络模型之中,形式上最为简洁。在inner loop等于1时,就是完全融入神经网络之中的特例。
限制:要求inner model的优化目标对于元知识的拟合而言,是可导的。
例子:如Learning to learn by gradient descent by gradient descent中,直接由神经网络拟合梯度的计算 ,加上其赋值的操作,到最终优化目标的计算都是可导的。于是在计算完loss之后,可直接反传梯度更新meta learner。
-
基于强化学习的优化方法
特点:使用强化学习中Policy gradient的思想优化(可参考这篇专栏文章),meta learner选择/抽取一个动作,将依据于此动作的inner loop训练拟合,以反馈reward。
优点:可以处理一些元知识对于模型不可导的情况,e.g. 环境和模型的交互不可导;具有最intuitive的目标函数,即优化模型以达到奖励最大化。
限制:Policy gradient的优化式中, 是概率值,对于元知识是回归类模型拟合出的连续值无法训练;需将Learner训练至拟合+强化学习需要多探索=耗时。
例子:NAS中,使用LSTM生成超参数来构建神经网络,构建的神经网络对于训练样本的训练,单个batch的准确度并不能反映本次meta-knowledge的好坏,因而无法返回梯度给meta learner;同时,该文是在800块GPU上做的分布式训练。
-
基于启发式的优化方法
特点:利用现代启发式优化方法更新,可形象的理解为撒点去感知并更新。
优点:可以在任意情况下进行优化。
缺点:更耗时,并且属于一定程度上的暴力搜索,并不数学优美;一轮迭代都需要计算N个点,而且每个点都要将Learner训练至拟合得到反馈,更为耗时。
例子:EPG中,使用神经网络拟合loss function,对于meta-learner采用进化策略算法优化。
**广告活动定位优化**:在广告活动中提高投资回报率的一个重要手段是将广告定位到在给定 KPI(如参与度或销售量)中会有良好反应的客户群。通过根据 A/B 实验或历史观察数据在个人层面估计广告曝光的 KPI 影响来识别这些客户。
**个性化参与**:公司有多种选择与客户互动,例如在追加销售或消息渠道中的不同产品选择。可以估计每个客户和处理选项组合的异质处理效果,以获得最佳的个性化推荐系统。
视频
Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例
视频
从决策树到随机森林:R语言信用卡违约分析信贷数据实例
目前支持以下方法
- **基于树的算法** ==========
- 欧几里得距离和卡方上的随机森林
- 提升树/随机森林
- **元学习算法** =========
- S学习
- T学习
- X学习
- R学习
- **工具变量算法** ==========
- 2 阶段最小二乘法 (2SLS)
开始
S、T、X 和 R 学习的平均处理效果估计
xg = XGBTRrssor() nn = MLPTReesor(hidenlayer_izes=(10, 10)) xl = BaeXegrsor(lernr=XGBeresor()) rl = BaeRReresor(lerner=XRegrssor())
可解释的因果机器学习
提供了解释如下训练的处理效果模型的方法:
元学习特征的重要性
# 加载合成数据 np.array(\['treaet_A' if x==1 else 'cotol' for x in trtent\]) # 处理/控制名称 RnFostRgesor() # 为model\_tau\_feature指定模 # 在基础学习器中使用feature\_importances\_方法 plot_ipornce() # 绘制shap值 pot\_shp\_ues() # interaction_idx设置为'auto' ploshp_dpedece()
提升树可视化
uplit_del.fit(df\[fars\].values, trtnt=df\['trtme\_rop\_ey'\].values, y=df\['cvesin'\].values)
随时关注您喜欢的主题
可下载资源
关于作者
Kaizong Ye是拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。
本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。
非常感谢您阅读本文,如需帮助请联系我们!