前言
乍看两者好像差的很远的样子,现梳理下Inception的发展脉络,发现其中还是有很深的渊源的。dropout是ensemble by training方法,maxout则在dropout的思路上,扩展出了新的approximate路子,对approx的进一步优化,则有了Network in Network,对特征的表达需求更高(也是对网络深度的探索),发展出了Inception Network-v1 和 Inception Network-v3。始终围绕着层间函数的估计而不断延伸。
dropout
dropout的基本思想:训练时,对节点(输入层或者隐藏层)随机drop的方式,从而形成共享参数下的ensemble的训练结构,Andreas称之为ensemble by training,本质上是集成的思想。其他的ensemble的方法,可以去这篇博客ResNet的一波两折的小结里去看。
maxout
基于drop是描述层间函数的一种有效手段,Goodfellow提出了max-out的思路。对层间参数扩展为3-dim,对每个输出节点,都有 k k 个选择,取其最大值做该节点输出。
假设有
维输入, m m 维输出,