個人的に面白かったMachine Learning論文 in 2019 — Part 1 —

この記事について

この記事は、2019年に発表された機械学習論文の中で、個人的に面白かった論文の概要を紹介します。まとめていると多くなってしまったので、3つの記事に分けます。

  • Part 1 : 画像・動画系と学習の工夫関連(今ココ)
  • Part 3 : GAN、実社会応用、その他分野(1/25までに投稿予定)

Part 1では、下記5分野の合計27の論文を紹介します。この5分野や便宜上設定したものなので、所属分野に重複等があることをご了承ください。

  1. 画像分類/物体検知/CNN Layerの改良

1. 画像分類/物体検知/CNN Layerの改良

ここでは、画像単体に関するタスクである画像分類・物体検知に関する論文と、それに伴いCNN Layerの新しい構造の提案をしている論文を紹介します。画像分類は深層学習の最も基礎的なタスクの1つであり、ここで開発された手法が他の分野でも適用されて広がっていく事も珍しくありません。今年の最重要論文の1つはEfficientNetでしょう。EfficientNetの機構は物体検知にも適用され、その考え方は動画における行動検知にも使われています。また、実装も簡単で計算コストも軽い新しいCNN Layerがいくつも発表されています。今後どのような展開をされていくのか楽しみです。

1. EfficientNet: Rethinking Model Scaling for Convolutional Neural Network

https://arxiv.org/abs/1905.11946

解像度・深さ・チャネル数を同時に最適化することによって、高速かつ高精度なネットワークを構築。式3におけるφ=1にしてMnasNetの探索空間でαβγを最適化(B0)、後にφを変えて再最適化を繰り返してB1->B7を構築する。パラメータ探索はグリッドサーチ。

2. EfficientDet: Scalable and Efficient Object Detection

https://arxiv.org/abs/1911.09070

物体検知において、EfficientNet的な探索空間(解像度、幅、深さ)と高低両解像度から情報を流すFeature Pyramid NetowrkであるBiFPNを用いて、高速かつ高精度なネットワークを開発。NASを使ったものより高精度でSOATながらも、10倍程度高速。

3. Dynamic Convolution: Attention over Convolution Kernels

https://arxiv.org/abs/1912.03458

直接CNNのチャネル(カーネル)数を増やすのではなく、増やしたカーネルにAttentionをかけたもので畳み込みを行うDynamic Convolutionを提案。通常のCNNの代替として扱え、分類と物体検知で成果。擬似的に多くのカーネルを使用できるので、宝くじ仮説的にいうと良い初期値が引きやすいのかもしれない。

4. Drop an Octave: Reducing Spatial Redundancy in Convolutional Neural Networks with Octave Convolution

https://arxiv.org/abs/1904.05049

詳細情報がある画像の密な部分と外形情報の疎の部分を別々に処理するConvolutioan Neural Layer, Octave Convを提案。低解像度・高解像度それぞれで畳み込み、高低の情報を統合する、というプロセスになっている。従来のCNNとそのまま入れ替えることができ、同じパラメータ数で高速・高精度になる。

以前勉強会で発表した解説資料→ https://www.slideshare.net/exwzds/multi-stream-convolutional-neural-network

5. CHANNEL EQUILIBRIUM NETWORKS

https://openreview.net/forum?id=BJlOcR4KwS

チャネル間の相関を調整することにより、全チャネルの有効活用をする研究。Conv-BN-Relu構造は、使わないチャネルが多くなり(スパース化)精度に悪影響を与えていた。それをチャネルを無相関にするChannel Equilibrium(CE) Blockを導入することにより、スパース化を防ぎ精度を向上させる。計算コストはほとんど増加せず、分類/物体検知で成果。

6. Stand-Alone Self-Attention in Vision Models

https://arxiv.org/abs/1906.05909

ResNetの深い場所にあるConv LayerをSelf-Attentionに置き換えるとよかったという研究。最初のlayerにConv (Conv-stem)を使い、残りをSelf-Attentionに置き換えたもの(Conv-stem+Attention)がImageNetとObject Detectionで成果を出す。基本的にSelf-AttentionはConvの後ろが良いらしい。その場合のフィルターサイズは大きいもの推奨

7. Adversarial Examples Improve Image Recognition

https://arxiv.org/abs/1911.09665

敵対的サンプルを使ってImageNetとノイズ付きのImageNetの精度を大幅に改善する研究。ノイズ等がない通常のデータとノイズが乗っている敵対的サンプル等のデータはドメインが違うため、ノイズがあるデータだと精度低下が発生するという考えに基づく。それに対して、ノイズありのデータ(敵対的サンプル)・通常のデータそれぞれ通過させるBatch Normalizationをわけることで、データ混合による分布の変化を防ぐ。シンプルながらかなり強力。

以前書いた解説ブログはこちら → 敵対的サンプルで精度を上げる(Adversarial Examples Improve Image Recognitionの紹介)

8. FreeAnchor: Learning to Match Anchors for Visual Object Detection

https://arxiv.org/abs/1909.02466

単一のアンカーへの回帰ではなく、複数の候補を使った最尤推定により物体検知をする手法の提案。人手で適切なアンカーを決めてもずれることが多いので、最尤推定でやったほうが良いという提案。最適度に従ってロスをとれるようなSartulated Linear導入と学習に従って最適なものの比重を増すmean-max関数の導入が鍵。

9. EdgeNet — Balancing Accuracy and Performance for Edge-based Convolutional Neural Network Object Detectors

https://arxiv.org/abs/1911.06091

高解像度画像を処理するEdgeカメラ用に高速で省電力なEdgeNetを提案した。位置候補算出部、検出、Optical Flowによるトラッキングに分かれる。高解像度なのでRegion Proposal Network的なもので位置の概算をさせた方が早いのかもしれない。Tiny-YoloV3より高速で正確。

10. Fooling automated surveillance cameras: adversarial patches to attack person detection

https://arxiv.org/abs/1904.08653

物体検知において、人を検出しなくなる絵柄を作る研究。これを印刷したポスターを首からかけておけば、人間だと認識されない。人に分類するロスと物体だと認識するロスが上がるように設計して作成する。後続研究の[Making an Invisibility Cloak: Real World Adversarial Attacks on Object Detectors](https://arxiv.org/abs/1910.14667)では、妨害するパッチを作って、それが別のモデルに有効かどうかを検証した。わりと妨害は他のモデルに対しても転移可能で図のように服に印刷しても有効。

2. 動画系タスク

動画解析もDLが活躍できる分野の1つです。ただでさえ重い画像を時系列で繋げたデータを扱うため、Optical Flowのような不可データを使わない、軽いネットワークを使う、などで高速処理する研究がチラホラある印象がありました。

Slow-Fast Networkは特徴量エンジニアリングをネットワークで実施したような印象をうけます。Tiny video Networkの探索空間はEfficientNetの影響を受けていそうで、探索結果によく使われるConv3DやNon-localが出てこないのは印象的です。Temporal Cycle-Consistency Learningは教師なしでこんなことができるのかと感動しました。

1. SlowFast Networks for Video Recognition

https://arxiv.org/abs/1812.03982

動画解析において、高FPS処理と低FPS処理に分けてネットワークを構築するSlowFastネットワークを提案。前者では動きがある部分の解析を担当する。後者では、動きがない部分(服、髪型等)を扱い、時系列方向のpoolingでフレーム数を減らした後にConv2Dをメインで使っている。高低フレーム情報を統合する部分は時系列方向でConvしたものが良かった模様。また、2つの処理時間を合わせるためか、高FPS処理部のチャネル数をフレーム数の数に従って減らしている

以前勉強会で発表した解説資料→ https://www.slideshare.net/exwzds/multi-stream-convolutional-neural-network

2. Tiny Video Networks

https://arxiv.org/abs/1910.06961

ビデオ解析のネットワークを遺伝的アルゴリズムを使って数百分の1の計算コストで同等の性能を出せるネットワークを作ったという研究。探索済みネットワークは意外なことによく使われるConv3D, Non-local layerが全く使われていない。深さ/チャネル数/解像度を探索しているのでEfficientNetっぽい探索空間になっています。

3. Temporal Cycle-Consistency Learning

https://arxiv.org/pdf/1904.07846.pdf

Cycle-consistencyとself-supervised learningで、異なるビデオの同じ動作を学習する。2つのビデオの各時刻をEncodeした特徴量がお互いの対応する時刻点のNearst Neighberになる(Cycle-consistency)ように学習させる。動作は同じ時間感覚行われる必要があり、同じ動作だが、遅い動作と早い動作は、同じものとして扱えない。

3. 表現学習/蒸留

表現学習は画像等の高次元データをいかに情報を落とさずに低次元空間に埋め込めるかという研究分野です。距離学習を用いて教師なしで良い埋め込み表現を作る研究が散見された印象があります。相互情報量を使う方法もありますが、それは良い手法ではないのでは、と一石を投じる論文もありました。

蒸留は重量級の高精度ネットワークを軽量なネットワークにいかに転移させるかという研究です。この蒸留を距離学習を使いながら実施した研究が成果を上げています。

1. Momentum Contrast for Unsupervised Visual Representation Learning

https://arxiv.org/abs/1911.05722

画像の教師なし表現学習において、辞書で距離学習的なことを行い、key算出ネットワークを徐々にquery算出ネットワークに近づける(momentum) MoCoを提案。ImageNetの潜在表現で線形回帰させるタスクで良いだけでなく、事前学習に使うと物体検知でも大幅な精度向上ができる。

2. CONTRASTIVE REPRESENTATION DISTILLATION

https://arxiv.org/abs/1910.10699

蒸留において、TeacherとStudentに同じ入力を入れた場合は距離を近づけ、そうでない場合は遠ざけるような目的関数の導入で、既存の蒸留方法を凌駕する。教師データの分布を良く捕らえられている

3. ON MUTUAL INFORMATION MAXIMIZATION FOR REPRESENTATION LEARNING

https://arxiv.org/abs/1907.13625

既存の相互情報量を最大化する表現学習は、Encoderと評価器の帰納バイアスがのっており、純粋に相互情報量を最大化するだけでは良い表現を得られないのではないか、という研究。簡便な評価器かつ(MIの理論値の)lower boundが低い方が成果を上げたり、相互情報量を大きくしながらも敵対的学習によって得られた表現から分類をする線形分類器の精度を下げるような学習ができる。

4. Multi-Object Representation Learning with Iterative Variational Inference

https://arxiv.org/abs/1903.00450

複数の物体が写っている画像から、変分近似でそれぞれの物体を分離する研究。それぞれの物体ごとに潜在変数を設け、分離された物体の画像と、実際の画像に割り当てる際のマスクを推論している。

4. データ拡張

データ拡張は良いモデルを得るために必須ともいえる手段です。2018年に発表された良いデータ拡張を自動探索するAutoAugmentの後継研究がいくつかでています。拡張を行うタイミングにも良い悪いがあるようで、学習の最終段階では拡張していないデータを用いるという”Data Augmentation Revisited”はなるほどなぁと納得しました。GANによるデータ拡張も色々研究がなされていますが、そこまで効果がないのではないかと主張しているのがClassification Accuracy Score for Conditional Generative Models です。確かに分類より密度推定(生成)の方が難しいので一理あるかな、という感じもします。

1. Faster AutoAugment: Learning Augmentation Strategies using Backpropagation

https://arxiv.org/abs/1911.06987

最適なデータ拡張手法を探索するAutoAugmentにおいて、各変換操作の期待値をとることで、変換操作の方策の誤差逆伝播による最適化を可能にして高速化する。また、データ拡張は既存データの補完であるという考えから、拡張データが既存データに近いか、上手く分類できるかの2指標で最適化をする。

2. RandAugment: Practical automated data augmentation with a reduced search space

https://arxiv.org/abs/1909.13719

最適なデータ拡張を見つけるAuto Augmentにおいて、学習も同時にするRandAugmentを提案。最適なデータ拡張とデータ数・モデルは相関があるので、最適なデータ拡張方法と学習を分けている先行研究は良くない、とのこと。ランダムにN個選んだ拡張方法(画像変換)をMの強さでかける、という(N,M)の探索空間にすることでGrid Searchでも有効なサイズに探索空間を圧縮。単純にも関わらず、膨大な探索空間をもつ先行研究と同等以上の成果。

3. Data Augmentation Revisited: Rethinking the Distribution Gap between Clean and Augmented Data

https://arxiv.org/abs/1909.09148

拡張データで学習したあと、最後に拡張なしデータで調整するというステップを加えるという研究。データ拡張は良いが、不適なデータが出てくる可能性があるので最後の微調整では綺麗なものを使った方が良いのでは、という提案。

4. Classification Accuracy Score for Conditional Generative Models

https://arxiv.org/abs/1905.10887

GANは本物っぽい画像を作れるようになったけど、その生成画像だけで分類器作っても上手くいかなかった、という研究。拡張データを用いた分類器の精度とGAN評価で頻繁に使われるFIDスコアとは相関がなく、FIDスコアが低い自己回帰やVQ-VAEで生成したデータの方がよい精度の分類器を作れたとのこと。各クラスの分類精度を見ていると、生成画像のみを使った分類精度は実データを使ったそれに及ばず、うまく行かなかったクラスのGAN生成画像はモード崩壊を起こしてそうな一方で、VQVAEは起こしていない。

5. 学習手法/目的関数/半教師あり学習

ここでは、Optimizerや目的関数の工夫などで面白そうだったものを紹介します。Warm upの効果を組み込んだRectiried Adamは、warm upが必須といわれているTransformer系で流行るかもしれません。Optimizerの比較では、きちんとチューニングするとAdamが強いとのことですが、タスクによってチューニングコストがどれだけかかるのか気になるところです。不均衡データに対しても色々手法が提案されています。しかし、DLに関してはOversamplingでも大丈夫(https://arxiv.org/abs/1710.05381)という話もあるので、どれほど実戦で役に立つのかは未知数なのかなという気持ちもあります。

1. Confident Learning: Estimating Uncertainty in Dataset Labels

https://arxiv.org/abs/1911.00068

規格化した混同行列をもとに”Noisy”なラベル(自信度が低い予測ミスデータ)を除去することで、データを洗練する手法の提案。可視化するとImageNetはNoisyであることがわかる。しかし除去による精度向上はそれほど大きくない。

2. ON EMPIRICAL COMPARISONS OF OPTIMIZERS FOR DEEP LEARNING

https://arxiv.org/abs/1910.05446

最適化手法の比較をした研究。Optimizerには内包関係が存在し、最も一般的なAdam等が一番よかった、とのこと。基本的な主張は『①キチンとチューニングするとSGD momentumよりAdaptive系(Adam等)が良い②スケジュール等LRの調整に重きを置きがちだが、beta, epsilon最適化による改善幅も大きい③最適epsilonはタスクによる(図示なし)』。実務上はAdaptive系で全メタパラメータをチューニングするのが良いとのこと。

以前書いた解説ブログ→ “Optimizerはどれが優れているか(ON EMPIRICAL COMPARISONS OF OPTIMIZERS FOR DEEP LEARNINGの紹介)”

3. ON THE VARIANCE OF THE ADAPTIVE LEARNING RATE AND BEYOND

https://arxiv.org/abs/1908.03265

「少ないサンプルしか見ていない分散が大きな状態で、大きなlearning rateをかけると変な局所解に陥る」問題が回避されるので、Warm up(最初の数stepは小さなlearning rateを使う)は効果があった、ということを示した。また、分散値に基づいたlearinng rateをかけるAdamの改良版Rectified Adamを提案した。

4. MixMatch: A Holistic Approach to Semi-Supervised Learning

https://arxiv.org/abs/1905.02249

半教師あり学習で使われる3つの戦略(consistensy regularization: 本論ではデータ拡張された予測値の平均を用いる, generic regularization : 本論ではMIXUPを使う, entropy minimization:本論では温度項を用いてデータを決定境界から遠ざける)を合わせて認識精度向上し、sota達成。

5. Class-Balanced Loss Based on Effective Number of Samples

https://arxiv.org/abs/1901.05555

カテゴリ毎のデータ数が大きく異なるデータセットに対するClass-Balanced Lossを提案。データ数に応じた傾斜をかける。よく使われるデータ数の逆数をかけるものとは異なり、ある一定のデータ数以上をもつカテゴリでは同じような係数をかける仕様となっている。実装も簡単。

6. Analyzing and Improving Representations with the Soft Nearest Neighbor Loss

https://arxiv.org/abs/1902.01889

Soft Nearest Neightbor Lossに温度項をいれて拡張した。隠れ層に入れて最大化させると、生成モデルが良くなったり、外れ値に強い分類器ができる。これを使ってResNetを解析すると、最終層以外はクラス分類に必要そうな特徴より、クラス共通な特徴を学習していそうだという結果が出ていて面白い。

以下はSoft Nearest Neighbor lossの定義式と、Lossの大きさによるクラスのばらつき図。ミニバッチ内で、同クラス内距離の総和 / 全データ内の距離の総和 を実施する。Lossの値が小さい=同クラスデータが固まっている となるので、ロスの値によって、図のようにばらつきが変化する。

これを考慮して、最終層でMIXUPすると良い結果が得られたというブログ記事→ “最終層でMIXUPしたら良さげだった件”

7. Max-margin Class Imbalanced Learning with Gaussian Affinity

https://arxiv.org/abs/1901.07711

不均衡データにおいて、分類とクラスタリングを同時に行うロス関数”Affinity loss”を提案。SVMのように各クラスの分布の真ん中に分類する線を引ける、かつ、クラスごとの分布の大きさを合わせられる。前者では、データが所属するクラスに落とし込む重みW_iとNNが出す特徴量ベクトルfの類似度を最大化し、それ以外の重みW_jとNNが出す特徴量ベクトルfの類似度を最小化するようにロスを構成することで達成する。後者は最終層の重みWの各クラスに対応する数値の、クラス差分の大きさに制限をかけることによって達成する。

まとめ

今回のブログでは、画像・動画系と学習の工夫関連を主に紹介しました。来週ち再来週は下記のようなテーマで2019年の面白かった論文一覧を投稿しますので、よろしければまたご覧ください。

  • Part 2 : NLP、自然科学分野、DLの解析(1/18までに投稿予定)

Twitter , 一言論文紹介とかしてます。

Data Scientist (Engineer) in Japan Twitter : https://twitter.com/AkiraTOSEI LinkedIn : https://www.linkedin.com/mwlite/in/亮宏-藤井-999868122