[論文メモ] Patches Are All You Need?

openreview.net

2021/10/8時点でUnder review as a conference paper at ICLR 2022

概要

画像タスクでViTが高い性能を発揮しているが、それは本当にTransformerのアーキテクチャの恩恵なのか、それともパッチに分割するという画像タスクに適した帰納バイアスのおかげなのか。
提案するConvMixerはMLP-MixerをベースにしつつViTの考え方を踏襲した非常にシンプルなモデルだが、ViTやMLP-Mixerよりも優れている。
f:id:Ninhydrin:20211008101053p:plain

手法

ConvMixerのアーキテクチャについて。全体図は図2参照。
f:id:Ninhydrin:20211008091809p:plain
構造としてはPatch EmbeddingとConvMixer LayerとGlobal Average Poolingから成る。

Patch Embedding

Patch Embeddingはただのconvolutionで行う(式(1))。
入力チャンネルが c_{in}、出力チャンネルが h、パッチサイズが p(なのでconvのstrideとkernelサイズは p)
 \sigmaは活性化関数でここではGELU。
f:id:Ninhydrin:20211008091433p:plain

ConvMixer Layer

ConvMixerのブロックはdepthwise convとpointwise convから成る(式(2), 式(3))。
residual構造のdepthwise convのあとに pointwise convを適用する。
f:id:Ninhydrin:20211008092336p:plain
このブロックを d回繰り返したあとGlobal Average Pooling -> FCで出力を得る。

図3にConvMixerブロックPytorchの実装を示す。
f:id:Ninhydrin:20211008092538p:plain

ConvMixerは入力画像のサイズは自由。

Motivation

MLPやSelf-Attention(SA)の強みは空間的に離れた箇所の特徴を使えることにある。そこでカーネルサイズを大きくして対応。
MLPやSAはConvと違い受容野のサイズが自由で柔軟だが、Convは受容野が狭い分画像タスクの帰納バイアスがありデータ効率が良い。

実験

ConvMxierは4つのパラメータから成る。
 h) チャンネルサイズ
[te:x d]) ブロックの繰り返し回数
 p) 入力のパッチサイズ
 k) カーネルサイズ
ConvMixerの命名はチャンネルサイズとブロックの繰り返し回数から ConvMixer- h/ dとする。また入力の画像サイズをnとしてそれをパッチサイズ pで割った値をinternal resolutionと呼ぶ。

CIFAR-10については図4を参照。

f:id:Ninhydrin:20211008093744p:plain

ImageNet-1k

augmentationはRandAugment、mixup、CutMix、 random erasing。またgradient norm clippingも採用。最適化はAdamW。
実験結果が表1。他モデルと比べ少ないパラメータで同等レベルのtop-1精度だが、実行時間が遅い。
f:id:Ninhydrin:20211008094323p:plain

Appendix

詳しくは論文を参照。
1) カーネルサイズは大きいほうがよ差そうだが、速度が遅くなる。
2) CIFAR-10ではLyaerNormよりBatchNormの方が優れていた。ImageNetレベルでは不明。
3) パッチサイズを大きくすると速くなるけど精度が落ちる。トレードオフ

所感

シンプルなconvolutionのみでSOTAレベルを達成。ただ速度とパラメータのトレードオフ感は否めない。
またブロック数が多くなると学習に必要なepoch数も多くなりそう。AppendixにConvMixer-1536/20の学習時間について記載があったが10個のRTX8000で150epochに9日はかなりコストが高いように感じる。
convolutionもまだまだ捨てたもんじゃないという気持ちになる論文ではあった。
本文自体は短く約4枚。Conclusionに「まだ先があると思った?急いで出したと思う?そうじゃなくてシンプルな手法だから説明もシンプルな方が効果的だと考えたんだ。必ずしも8ページや9ページも要るか?重要なところは書いたから詳細が必要な人のためには付録を付けたよ(意訳)」とありせやなという気持ち。
またタイトルも以下のようになっていて少々遊び心があるなと思った(これが良いのか悪いのかは...)。
f:id:Ninhydrin:20211008100949p:plain