论文提出 MetaQNN, 基于 Q-Learning 的神经网络架构搜索, 将优化视觉缩小到单层上, 相对于 Google Brain 的 NAS 方法着眼与整个网络进行优化, 虽然准确率差了 2~3%, 但搜索过程要简单地多, 所以才能仅用 100GPU days 就可以完成搜索, 加速 240 倍. 论文本身是个很初期的想法, 可以看到搜索出来的网络结构还是比较简单的, 也需要挺多的人工约束. 整体而言, 论文的输出的搜索思想还是很重要的, 有很多参考的地方
论文: Designing Neural Network Architectures using Reinforcement Learning
论文地址: https://arxiv.org/abs/1611.02167
Introduction
论文提出 MetaQNN 算法, 使用基于强化学习的 meta-modeling procedure 来自动化 CNN 结构搭建过程. 该方法首先搭建一个全新的 Q-learning 代理, 学习如何发现性能好的 CNN 结构, 发现过程先按顺序选择网络每层的参数, 然后对搜索到的网络进行训练和测试, 并将测试准确率作为 reward, 在学习过程中使用了经验回放 (experience replay) 进行加速
Background
将代理学习最优路径的任务为有限环境 (finite-horizon) 内的马尔可夫决策过程(Markov Decision Process, MDP), 将环境限制为有限的能够保证代理在一定 time step 后停止. 限制离散的有限状态空间 $\mathcal{S}$ 以及动作空间 $\mathcal{U}$, 对于状态 $s_i \in S$, 存在可供代理选择的选择的动作集 $\mathcal{U}(s_i)\in \mathcal{U}$. 由于环境的随机转移性, 状态 $s_i$ 选择动作 $u\in \mathcal{U}(s_i)$ 转移到 $s_j$ 的概率为 $p_{s^{'}|s,u()}(s_j|s_i,u)$, 这可能是代理未知的. 在每个 time step $t$ 时, 代理的 reward $r_t$ 可能也是随机的, 由状态 $s$ 转移到 $s\prime$ 以及动作 $u$ 的概率 $p_{s\prime|s,u}(s_j|s_i,u)$ 决定
代理的目标是最大化所有可能路径的期望 reward, 即 ${\max}_{\mathcal{T}i \in \mathcal{T}}R{\mathcal{T}}$, 单个路径的 reward 计算如公式 1
尽管限制了状态空间和动作空间, 代理仍然能组合出大量的路径, 所以用强化学习来进行优化. 将最大化问题迭代成多个子问题, 优化每个子问题到最优解. 对于状态 $s_i\in S$ 以及后续动作 $u\in \mathcal{U}(s_i)$, 定义最大化期望 reward 为 $Q*(s_i,u)$,$Q(\cdot)$ 为 action-value 函数, 单个 $Q^(s_i,u)$ 称为 Q-values,Q-values 的最优解为公式 2, 即 Bellman's Equation, 为当前动作的回报的期望与下个状态的 Q 值最大的动作的加权求和
一般不能直接学习到概率来求解 Bellman's Equation, 可以转化为迭代式优化, 如公式 3, 为 Q-learning 的一种简单形式. 只要每种转移采样足够多次 ${\lim}_{t\to \infty}Q_t(s,u)=Q^*(s_i,u)$, 就可以很好地逼近公式 2, 更新公式包含两个参数:
$\alpha$ 为 Q-learning rate, 决定新信息对旧信息的权重
$\gamma$ 为折扣率(discount factor), 决定短期 reward 对于长期 reward 的权重
Q-learning 是 model-free 的, 代理的学习过程不用构造环境变量的估计, 也是 off policy 的, 意味着可以在非最优的整体行为分布下依然可以学习到最优的策略. 论文使用 $\epsilon$-greedy 策略, 以概率 $\epsilon$ 选取随机动作, 以概率 $1-\epsilon$ 选取贪婪动作 ${\max}_{u\in \mathcal{U}(s_i)}Q_t(s_i, u)$, 将 $\epsilon$ 逐渐从 1 降为 0, 这样代理能从探索 (exploration) 阶段慢慢变为榨取 (exploitation) 阶段. 由于探索阶段花费较大, 所以使用经验回放来加速收敛, 使用记录探索的路径和 reward 给予代理进行公式 3 学习
Designing Neural Network Architectures with Q-learning
代理的学习任务即按顺序地选取神经网络层, 图 2(a)展示了灵活的状态空间和动作空间, 图 2(b)则为代理可能选择的潜在路径并用该路径构造网络
将层选择过程建模为马尔可夫决策过程, 假设一个网络中表现好的层也能在别的网络中有很好的表现. 代理按顺序通过 $\epsilon$-greedy 策略进行选择直到达到停止状态, 从代理的路径中构建 CNN 网络, 然后进行训练并将准确率反馈给代理, 将准确率和网络存到回放存储 (replay memory) 中, 定期从回放存储中采样进行公式 3 的 Q-values 更新
MetaQNN 主要包含三个设计理念:
减少 CNN 层定义来简化状态参数
定义代理可选择的动作集, 用以状态转移
平衡 state-action 空间大小和模型容量的关系, 代理需要大量探索进行收敛
The State Space
每个状态为一组层相关参数, 如表 1 所示, 共有 6 种层类型, 网络每层都预有一个 layer depth 来表示当前层的位置, 从而进行 action 的约束, 保证网络为有向无环图(DAG)
为了避免感受域大于特征图大小, 每层有一个 representation size(R-size), 为特征图大小, 根据 R-size 进行两个 action 的约束, 限制 R-size 为 n 的状态的 action 的感受域必须小于或等于 n 来保证输出不会太小, 而为了更好的约束, 将 R-size 值分为 3 个离散区间, 但这有可能导致生成的状态在另一个不同的区间, 如图 A1 所示
The Action Space
对代理的动作进行了限制, 从而约束 state-action 空间大小和简化学习过程:
允许代理在任何节点终止, 可以从非终止状态直接转移到终止状态. 另外, 只允许层 $i$ 转移到层 $i+1$, 保证无环, 最大层仅能转移为终止层
限制全连接层的数量最多为两层, 防止参数过多, 另外全连接层转移到全连接层必须满足 consecutive FC 的限制, 而且全连接层只能转移为 neurons 不大于转移前的全连接层或终止状态
卷积状态能转移到其它任何状态, 而池化状态只能转移到非池化状态, 只有 Representation size 为 $[8,4)$ 和 (4,1] 的层能转移到全连接层
Q-Learning Training Procedure
设置公式 3 的 Q-Learning rate($\alpha$)为 0.001,discount factor($\gamma$)为 1,$\epsilon$ 的下降如表 2, 在 $\epsilon=1$ 的探索阶段训练大量的网络, 其它值则保证代理在压榨前有充足的时间来继续探索, 在 $\epsilon=0.1$ 时停止
在整个训练过程使用回放字典 (replay dictionary) 存放网络结构及其测试的准确率, 如果采样的网络有已经测试过的, 则直接拿之前的准确率, 不再重新训练, 在当前批次网络采样和训练完后, 从回放字典中随机选取 100 个网络对所有转移的进行公式 3 的 Q-value 更新, 更新顺序以时间倒序先对后面的 Q-value 进行更新
Result
共使用 10GPU 训练 8-10 天, 从所有模型中选取 10 个进行更长时间的训练
Model Selection Analysis
Prediction Performance
CONCLUSION
论文提出 MetaQNN, 基于 Q-Learning 的神经网络架构搜索, 将优化视觉缩小到单层上, 相对于 Google Brain 的 NAS 方法着眼与整个网络进行优化, 虽然准确率差了 2~3%, 但搜索过程要简单地多, 所以才能仅用 100GPU days 就可以完成搜索, 加速 240 倍. 但论文本身是个很初期的想法, 可以看到搜索出来的网络结构还是比较简单的, 没有残差连接和并行层, 也需要挺多的人工约束. 整体而言论文的输出的搜索思想还是很重要的, 有很多参考的地方
APPENDIX E -- Top Topologies Selected by Algorithm
如果本文对你有帮助, 麻烦点个赞或在看呗~
来源: https://www.cnblogs.com/VincentLee/p/12671442.html