スピードと正確さの組み合わせ - EfficientNet詳細

スピードと正確さの組み合わせ - EfficientNet詳細

 

GoogleのEfficientNetから、紙は、多次元ハイブリッドモデルグレーディングを提案しています。論文は(記事の最後がコードがある)リンクされています

https://arxiv.org/pdf/1905.11946.pdf arxiv.org

ネットワークの深さ、幅ネットワーク、画像の解像度を、より以前の記事より:著者は、口座に可能撮影前のモデルの作成者が再検討いくつかの寸法が縮小提案されるモデルのスケーリング方法、の速さと正確さを見つけることを願っています一つの寸法がより高い精度を達成するために拡大されており、そのようなResNet-18 ResNet-152には、精度を向上させるために、ネットワークの深さを増加させる方法です。

彼は、これらのスケーリングの寸法を見て高さから、スケーリングモデルの前の理解から飛び出しました。著者は、これらの3つのディメンション間の相互影響であると考えていると、次のように、この提案された新しいネットワークEfficientNetに基づいて、ネットワークのパフォーマンスを3との間で最良の組み合わせを探ります:

 
モデルの性能比較表

赤い曲線片がEfficientNetあり、横軸は、縦軸が精度を表し、モデルの大きさを表します。ちょうどあなたが、私たちはそれらのおなじみの名前、Resnet、Xception、ResNeXtを見てどのように厳しい知っているこの絵EfficientNetを見て、ロールアップすると言うことができます。精度、EfficientNetにのみ高い556MパラメータEfficientNetで、この精度GPipeを達成するために、以前のモデルGPipe SOTA 0.1%、よりだけ66M、テロリストの苦境を取りました!実際の使用では、0.1%は基本的に私たちが感じることであるの精度が、スピードの増加は、実際の契約、大いに有用性および産業用床可能性のネットワークを改善する8倍の速度の増加は確かです。

抽象的な問題

この質問式を以下のように、シンボルは、よりになりますが、理解することは難しいことではありません。私たちは、全体の畳み込みネットワークNと呼ばれ、それは、i番目の層であり、以下のマッピングコンボリューション機能として見ることができます。
Y_I = F_iと(X_I)

Y_Iテンソル出力、X_I寸法が提供された入力テンソル、  <H_I、W_i、C_I> (説明バッチ寸法の便宜のため省略する)、その後、ネットワーク全体の畳み込みN、k個の層のコンボリューションは、として表すことができます。
N = F_K \ ODOT ... \ ODOT F_2 \ ODOT F_1(X_1)= \ odot_ {J = 1 ... K} F_J(X_1)

実際、一般的に同一の構造層は、畳み込みステージと呼ばれる複数の、例えばResNetステージは5、各畳み込みステージの同じ層構造(第1層以外の層のダウンサンプリングである)に分割することができます。畳み込みネットワークNの単位で段階は次のように表すことができます。

 
画像

添字(1からSまで)iはステージ番号を表し、F ^ {L_iを} _i畳み込み層によって、I番目のステージを示して  F_iと 繰り返した  L_iを 構成倍<H_I、W_i、C_I> 入力段のテンソルの大きさを表します。

サーチスペース、固定ネットワークの基本的な構造が、上述した3つだけズーム変更寸法、ネットワークの深さ(Li)と、ウェブの幅の(CI)、入力解像度のサイズ(こんにちは、WI)を低減するためです。3次元を検索するだけでも場合は、探索空間が大きすぎる、著者らはまた、その後、制限はのみ一定の率を乗じ、知人のネットワークインフラストラクチャ内(EfficientNet-B0の後ろに、である)ネットワークを拡大することができます追加、我々だけ比を最適化するために必要とする人は、この最後の抽象的な数学モデル、のようなものです:

 
画像

前記は、D、W、Rは、ネットワーク、ネットワーク高解像度倍率の幅です。

実験

問題の上記の難しさは、そのような私たちが受容野キャプチャ機能を高めるために、より深いネットワークを必要とする高解像度の画像などの3倍の間に本質的なリンクが存在するということです。したがって、2回の実験の、最初の実験は、三次元の二つが固定されていることを次の結果を与えるために、増幅のみを検証する(はるかに実用的であるため)。

 
画像

図は、ネットワークの深さ(深さ、dは倍率である)(倍率wは、幅)右のみネットワーク拡大幅左からそれぞれ画像の解像度(分解能は、Rは倍率である)、単一の観測結果唯一最大で約80の寸法精度を拡大。視点の実験結果:任意の次元の拡大3次元の精度を向上させるために持って来るが、率でますます小さくなって強化するために増加することができます。

従って第二の実験で作られ、別の試みは、以下の図を与える、D、Rの組み合わせWを変化させます。

 
画像

从实验结果可以看出最高精度比之前已经有所提升,且不同的组合效果还不一样,最高可以到 82 左右。作者又得到一个观点,得到更高的精度以及效率的关键是平衡网络宽度,网络深度,图像分辨率三个维度的放缩倍率(d, r, w)。

由此,作者提出了一种混合维度放大法(compound scaling method),该方法使用一个混合系数 [图片上传失败...(image-70ab47-1570798285064)]

来决定三个维度的放大倍率:

 
image

其中,\アルファ、\ベータ、\ガンマ 均为常数(不是无限大的因为三者对应了计算量),可通过网格搜索获得。混合系数 \ファイ 可以人工调节。考虑到如果网络深度翻番那么对应计算量会翻番,而网络宽度或者图像分辨率翻番对应计算量会翻 4 番,即卷积操作的计算量(FLOPS) 与 D、2 ^ W、R ^ 2 成正比,因此上图中的约束条件中有两个平方项。在该约束条件下,指定混合系数 \ファイ 之后,网络的计算量大概会是之前的 2 ^ \ファイ 倍。

网络结构

网络结构作者主要借鉴了 MnasNet,采取了同时优化精度(ACC)以及计算量(FLOPS)的方法,由此产生了初代 EfficientNet-B0,其结构如下图:

 
image

有了初代的网络结构之后,放大就分为下面两步:

  • 第一步,首先固定 \ファイ 为 1,即设定计算量为原来的 2 倍,在这样一个小模型上做网格搜索(grid search),得到了最佳系数为 \アルファ= 1.2、\ベータ= 1.1、\ガンマ= 1.15 。
  • 第二步,固定 \アルファ= 1.2、\ベータ= 1.1、\ガンマ= 1.15,使用不同的混合系数 \ファイ 来放大初代网络得到 EfficientNet-B1 ~ EfficientNet-B7。

作者选择只在小模型上进行网络搜索,大大减少了计算量。因为在大模型上进行网格搜索的成本实在是太高了。

网络表现

跟其他网络的对比:

 
image

さらに上の計算量が以前よりも比較的高い精度であった場合には、この方法及び一般的なネットワークMobileNetsのResNetsによって増幅しました。この部分はあなたよりも将来、私より速くよりもまとめることができます。

概要

紙は、共通のベースラインとして使用することができ、変更はそれに置くことができ、非常に実用的な、スピードと精度を組み合わせた新しいネットワークを提示します。

コード

pytorch:https://github.com/lukemelas/EfficientNet-PyTorch

tensorflow:https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet

ハード:  https://github.com/qubvel/efficientnet

おすすめ

転載: www.cnblogs.com/yumoye/p/11882317.html