EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

文章链接:
https://arxiv.org/pdf/1905.11946v2.pdf

motivation

在计算资源受限的情况下,科学家们往往需要精心设计网络模型。在往计算能力更强的计算环境进行迁移时,我们需要增加模型的运算量来提升模型精度,充分利用计算资源。

innovation

一般常见的方法在模型宽度 , 模型深度, 模型输入 上进行研究。本文综合考虑了三个方面,提出了简单而有效的compund coefficient方法。

问题定义

一般的神经网络模型由多个相似的stage组成(如ResNet),每个stage中又包含一些常见操作(conv,bn,relu等),因此一般的模型可以描述为:

在不改变模型结构的前提下,要扩大模型计算量,我们需要在模型宽度 , 模型深度, 模型输入 进行考虑,形式定义如下:

\begin{eqnarray*} \max_{d,w,r} && Accuracy(N(d,w,r)) \\ s.t. N(d,w,r) &=& \bigodot_{i=1}^{s} \hat{f}_{i}^{\hat{L}_i}(X_{(r*\hat{H}_i, r*\hat{W}_i, w* \hat{C}_i)}) \\ Memory(N) &<=& target_memory \\ FLOPS(N) &<=& target_flops \end{eqnarray*}

两个发现

1 单独改变三个变量中的一个,准确率的增益会逐渐变小甚至消失。
2 为了更好地平衡准确率和效率,需要平衡地改动三个变量。

发现一
发现二

Compound Scaling Method

该文章提出了一个准则,只需要按照这个准则,就可以非常有限地扩大网络:

\begin{eqnarray*} depth: & d = \alpha^{\phi} \\ width: & w = \beta^{\phi} \\ resolution: & r = \gamma^{\phi} \\ s.t. & \alpha * \beta^2 * \gamma^2 \approx 2 \\ & \alpha \geq 1, \beta \geq 1, \gamma \geq 1 \end{eqnarray*}

是用于控制网络计算量的,扩大后的网络计算量为原始网络的倍。

实验结果

最后文章在ResNet,mobileNet以及自己搜出的网络结构上进行了实验,实验结果比较好。进行的实验较多,这里就不贴图了。感兴趣的朋友可以去看原文

我的看法

其实本人并没有在这个领域有过研究,只是这篇文章在 Arxiv Sanity上排名较高,所以拿过来读一读。知乎上的大佬们对这个有比较深入的探讨,大家可以读一读。

研究生已经过去一年了,自己还是一事无成。希望能通过这第一篇博客,养成自己规律读论文并总结的习惯。路漫漫其修远兮,吾将上下而求索。

你可能感兴趣的:(EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks)