SpineNet:ニューラルアーキテクチャ探索で発見された新しい物体検出アーキテクチャ(1/2)

モデル

1.SpineNet:ニューラルアーキテクチャ探索で発見された新しい物体検出アーキテクチャ(1/2)まとめ

・畳み込みネットワークは段階的に入力画像のスケールを削減するためマルチスケールなタスクが苦手
・スケール交換モデルはスケールを削減ではなく交換する新アーキテクチャでマルチスケール対応が優秀
・SpineNetはニューラルアーキテクチャ探索で自動で発見した最適なスケール交換モデル

2.スケール交換モデルとは?

以下、ai.googleblog.comより「SpineNet: A Novel Architecture for Object Detection Discovered with Neural Architecture Search」の意訳です。元記事の投稿は2020年6月30日、Xianzhi DuさんとJaeyoun Kimさんによる投稿です。

Spineは脊椎の意味を持つので、SpineNetはそれを意図した命名したのだと思うのですが、とげや針の意味ももってるんですね。なので、背中を露わにした美女画像を押しのけてアイキャッチの座を射止めた眠そうなハリネズミ画像のクレジットはPhoto by Tadeusz Lakota on Unsplash

画像タスクを扱うために開発された畳み込みニューラルネットワークでは、通常、入力画像を一連の中間特徴表現にエンコードしていきます。画像内の特徴的な形状を小さな断片から大きな塊まで各レイヤーで段々と捕捉していきますが、各レイヤーの空間的次元は後続になるにつれて減っていきます。

訳注:文章で書くとわかりにくいですが、畳み込みニューラルネットワークの内部動作はActivation Atlasesの図がわかりやすいです。

ただし、このようなスケール削減モデルは、物体認識能力と物体位置特定能力の両方を重視するマルチスケールな視覚認識タスク(物体検出と物体輪郭特定など)に十分強力な特徴表現を提供できない場合があります。

FPNやDeepLabv3+を含むいくつかの研究では、この問題に対処するためのマルチスケールエンコーダー/デコーダーアーキテクチャが提案されています。

スケールを減少させるネットワーク(ResNetなど)がエンコーダー(一般にバックボーンモデルと呼ばれます)として使用されます。 次に、デコーダネットワークがバックボーンに適用され、空間情報が復元されます。

このアーキテクチャは、画像認識および位置特定タスクに成功をもたらしましたが、それでも、次元を減らす事によって空間情報を破棄するバックボーンモデルに依存しており、デコーダーは情報の回復を試みる必要があります。

もし、この空間情報の損失を回避し、本質的に画像認識タスクにも位置特定タスクにも適している代替バックボーンモデルが設計出来るしたらどうでしょうか。

直近のCVPR 2020で発表した論文「SpineNet: Learning Scale-Permuted Backbone for Recognition and Localization」では、スケール交換モデル(scale-permuted model)と呼ぶ新しいメタアーキテクチャを提案します。

スケール交換モデルは、バックボーンのアーキテクチャ設計に2つの大きな改善を行っています。

まず、中間特徴表現マップの空間解像度はいつでも増減できなければなりません。これにより、モデルがより深く成長しても空間情報を保持できるようになります。

第2に、特徴マップ間の接続は、上位から下位に順番に接続されるだけでなく、スケールを飛び越えたマルチスケールな特徴表現の融合を促進できる必要があります。

これを実現するため、ニューラルアーキテクチャ探索(NAS:neural architecture search)を使い、これらの機能を含む斬新な探索空間を設計し、この検索空間から効率的なスケール交換モデルを発見しました。

このモデルは、マルチスケールの視覚認識タスクで成功し、標準のスケール削減されたバックボーンを備えたネットワークよりも優れている事が示されています。

この分野での継続的な研究を容易にするために、Tensorflow 1のTensorflow TPU GitHubリポジトリとTensorflow 2のTensorFlow Model Garden GitHubリポジトリにSpineNetのコードをオープンソースとして公開しました。


スケール削減したバックボーンが左側に表示され、スケール交換したバックボーンが右側に表示されています。各長方形はネットワークを構築するために使われる様々なブロック(building block)を表します。色と形状は、異なる空間解像度と特徴次元を表現します。矢印はブロック間の接続を表します。

SpineNetアーキテクチャの設計
SpineNetのアーキテクチャを効率的に設計し、何が最適なアーキテクチャか調べる人力で時間のかかる試行錯誤を回避するため、ニューラルアーキテクチャ探索を活用して最適なアーキテクチャを自動で探索しました。

バックボーンモデルは、COCOデータセットを使用した物体検出タスクで学習します。このタスクは、物体認識と物体位置特定を同時に行う必要があります。アーキテクチャの探索中に、3つのことを学びます。

(1)スケールの並び替え
ネットワークの基本ブロックの順序は重要です。各ブロックは、既に配置されているブロックからのみ作成できるためです。(つまり、より低次になります)。中間ブロックと出力ブロックをそれぞれ再配置することにより、スケール交換の検索空間を定義しました。

(2)クロススケール接続
探索空間の各ブロックに2つの入力接続を定義します。親ブロックは、より低い順序の任意のブロックまたはステムネットワーク(stem network)からのブロックにすることができます。

(3)ブロック調整(オプション)
ブロックのスケールレベルとタイプを調整できます。


スケール削減バックボーンをベースにスケール交換バックボーンを探索するアーキテクチャ探索プロセス

 

3.SpineNet:ニューラルアーキテクチャ探索で発見された新しい物体検出アーキテクチャ(1/2)関連リンク

1)ai.googleblog.com
SpineNet: A Novel Architecture for Object Detection Discovered with Neural Architecture Search

2)arxiv.org
SpineNet: Learning Scale-Permuted Backbone for Recognition and Localization

3)github.com
models/official/vision/detection/
tpu/models/official/detection/

コメント

タイトルとURLをコピーしました