内容简介
本文主要介绍两篇用AutoML来做异常检测的文章,《PyODDS: An End-to-end Outlier Detection System with Automated Machine Learning》、《AutoOD: Automated Outlier Detection via Curiosity-guided Search and Self-imitation Learning》,第一篇关于模型和超参搜索,第二篇是神经网络结构搜索。
一、PyODDS
预设好算法空间和超参空间,应用时寻找最优的模型和超参。
算法空间:
超参空间:
目标,找到最优的模型和超参:
实际采用Expected Improvement来刻画
:
模型列表
优化过程
二、AutoOD
1. 搜索空间
除网络结构外,AutoOD还新增了异常定义空间和损失函数空间。
搜索空间:
:网络结构空间
:异常定义空间
:损失函数空间
网络结构空间
编码网络和解码网络,
是神经网络层数
衡量原始输入和重构输出的距离
由异常定义空间生成,异常定义空间如下所示 更详细的超参: 卷积核:
,
,
以及
池化类型:mean、max 标准化类型:batch normalization, instance normalization, no normalization 激活函数:sigmoid, tanh, ReLU, Linear, Softplus, LeakyReLU, ...
异常定义空间
2. 搜索策略:Curiosity-guided Search
通过Bayesian LSTM来进行神经网络结构的搜索。搜索过程可以理解为强化学习,action:
, reward:
,整个过程包含神经网络的参数
和 LSTM的参数
。
LSTM的不确定性
贝叶斯强化学习通过不确定性表征来选取下一步的行为。LSTM的不确定性如下,KL散度可以理解为新模型所带来的信息增益。
action
所带来的reward如下,除去外显的准确率提升,还有内隐的信息增益
贝叶斯变分推演
action
的后验概率分布如下,其中
为LSTM参数的先验分布:
我们很难估计LSTM参数的先验分布,因此通过最小化
的后验分布
与先验分布的KL散度,来估计其先验分布。后验分布
如下
明确
的后验分布,最终LSTM的参数可以通过如下公式进行训练:
由于高维数据的局限性,本文在这里还做了进一步的优化。使用hierarchical posterior替代上述提到的后验分布
最终模型训练的损失函数如下:
模仿学习
将之前训练好的结果应用到当前模型上,来提升整体的训练效果。模型训练过程中有如下buffer,action与reward相对应的buffer。
我们希望下一步的action有更高的reward,至少比之前Buffer中的baseline要高。最终优化目标如下: