不気味さすら感じる!AIが発見した検出精度抜群のbackboneモデル「SpineNet」
3つの要点
✔️ NASを使用する事で理想的なアーキテクチャを発見
✔️ 物体検出タスクでResNet-50-FPNよりも平均精度が2.9%向上
✔️ 検出だけではなく、分類とセグメンテーションとタスクを選ばず、汎化性能を持つ
SpineNet: Learning Scale-Permuted Backbone for Recognition and Localization
written by Xianzhi Du, Tsung-Yi Lin, Pengchong Jin, Golnaz Ghiasi, Mingxing Tan, Yin Cui, Quoc V. Le, Xiaodan Song
(Submitted on 10 Dec 2019 (v1), last revised 17 Jun 2020 (this version, v3))
Comments: Accepted at CVPR2020
Subjects: Computer Vision and Pattern Recognition (cs.CV); Machine Learning (cs.LG); Image and Video Processing (eess.IV)
はじめ
ここ数年のDeep learningの発展には多くの人が驚かされてきたと思います。その中でもこの発展を支えてきた1つを挙げるなら深層畳み込みニューラルネット(DCNN)ではないでしょうか?畳み込みニューラルネットの発見から多くのモデルが出てきました。それらの多くがネットワークアーキテクチャを深く・広くしたら精度が上がるという1つの考えのもとに発展してきました。
しかしこれほどまで精度を上げ、発展してきたと思うとともに、メタアーキテクチャに関していうと畳み込みニューラルネットワークの発明以来さほど変わっていないという矛盾があります。
どういうことかと言うと、入力画像の解像度を下げながら中間特徴量にエンコードする設計しかないと言うことです。ここまで発展しているにもかかわらず、この考えに変化がありません。しかしこの考えは分類タスクにおいては有効ですが、検出タスクにおいても有効なのでしょうか?このことに関連して、ヤンルカンはこの考えに対して「特徴の存在を検知するのに高解像度が必要なことがあるが、同じくらい高い精度でその位置を検出する必要はない」と述べています。すなわち、分類タスクにはいいけど、検出タスクは想定していないって言っているのです。ちなみに確かにこの解像度を下げる考えは検出には不向きであることはDetNetで実証されています。
次に下の画像を見てください。
この画像は検出モデルとして有名なYOLO v4のアーキテクチャである。ここでおかしなことに気づきます。図のBackboneの部分にVGG16やResNetなどが使用されている。検出には不向きだと上記で記載しているのにもかかわらず。解像度が下がることが不向きならば、その後にデコーダーで解像度を戻せばいいと言う発想からNeck部分のアイデアが生まれた。しかし、いくらデコーダーで戻しても位置情報が多少なりとも欠落している。そこで著者たちはこの減少させないBackboneモデルを設計すれば、検出精度をあげることができるのではないかと考えたのです。
提案手法
解像度の並べ替え(scale-permuted)モデルというメタアーキテクチャを提案しています。これによって以下の2つの点で利点があります。
- 中間特徴量マップの解像度いつでも増減させることができる→モデルは深くなっても空間情報を保持できる
- 特徴マップは、特徴マップの解像度を越えて接続することで、マルチスケールの特徴融合が可能
HRNetに多少似ていますが、HRNet が通常の並列マルチスケール設計であるのに対し、SpineNet は下図に示すように、より自由なマルチスケール設計となっています。
左が一般的なメタアーキテクチャで右がSpineNetである。かなり複雑な設計であることがわかります。明らかに、ネットワークの接続や位置関係までバラバラなモデルの設計のための探索空間は非常に大きくなることは自明です。そこで本論文では探索にニューラルアーキテクチャ探索(NAS:neural architecture search)を使用しています。
すなわち本論文の内容は、理論的にこういったモデル(解像度の並べ替え(scale-permuted)モデル)を設計すればうまくいくと考えられる。でも、そのための探索空間が膨大なものになるからAIに探させたと言う内容です。
NAS
NAS-FPNと同様にRetinaNetをベースにしています。ただ、本論文が探索のためにエンコーダーとデコーダーを1つに組み合わせてCOCO検出データセットで直接学習していることです。
(1)解像度の並べ替え(scale-permuted)
ネットワークの基本ブロックの順序は重要です。ResNet-50をベースラインとして、bottleneck blockを並び替え、最も良いものを探します。中間ブロックと出力ブロックをそれぞれ再配置することにより、スケール交換の探索空間を定義するので空間のサイズは(N−5)!5!になります。
(2)クロススケール接続
探索空間の各ブロックに2つの入力接続を定義します。図からもわかるように2つの入力接続はないことがわかります。
言うのは簡単ですが、スケールが違うのでスケールを合わせる処理が必要です。今回提案されたクロススケール接続は図のような方法をとっています。
スケールを大きくするには(上のライン)
- 再サンプリングの計算複雑性を抑えるために、チャネル変調係数は$\alpha$を使用しています。($\alpha$=0.5)
- 最近傍接続を用いたアップサンプリング
スケールを小さくするには(下のライン)
- 再サンプリングの計算複雑性を抑えるために、チャネル変調係数は$\alpha$を使用しています。($\alpha$=0.5)
- 3x3畳み込みでストライド2でダウンサンプリング
- 最大値プーリング
融合は要素足し算です。これを接続を変えるごとに計算し直しているわけですから人間では到底できないですね。
実験
COCOでのSpineNetの評価を下の表に示します。
モデルの計算量はResNet-50の機能ブロックの順序を並べ替えるだけなので、ResNet-50とほとんど変わりません。物体検出タスクでResNet-50-FPNよりも平均精度(AP)が2.9%向上しています。さらに追加で、ResNetモデルで使われる残差ブロックやボトルネックブロックなどを調整することでさらに効率を-10%FLOPできたそうです。
さらに、SpineNetは分類タスクにも転移可能で、iNaturalistの画像分類データセットで約5%のtop-1精度の向上を達成しました。
それだけではなく、インスタンスセグメンテーションタスクでも精度向上を見せました。
まとめ
この論文では、エンコーダーとデコーダーの機能を1つにまとめたメタアーキテクチャを構築していますが、これはHRNetのアイデアに多少似ていますが、より柔軟性があります。 また実験はSpineNetの一般化可能性を実証しており、検出、インスタンスのセグメンテーション、分類の各タスクで良好な結果が得られています。 まだ課題は多くあります。NASの定義の仕方で並び替えの精度にも影響します。
今後NASによって最適なネットワークを探す時代が来るかも知れません。今までは決まった形に対してやっていましたが今までに出てきたネットワークブロック全て、接続も自由と言うもっと探索空間を広げたときに汎化性能が強いアーキテクチャが出て来てもおかしくありません。パラメータの自動最適化、モデルのアーキテクチャの自動作成とどんどんAI自体が最適なAIを作る時代が来そうですね。
ただ、ここまで来ると何が重要で何が寄与したかは全く不明です。突然接続がなかったり、接続が飛んだりと人間には到底理解ができません。
この記事に関するカテゴリー