ニューラルネットの新しい正規化手法 Group Normalization の高速な実装と学習実験

今年 1 月に ALBERT に入社した清水です。深層学習プログラマとして自社プロダクト開発をしております。このブログを書くのは始めてなのですが、今日はちょっとプログラミング寄りの記事を。残暑厳しい折ですが、実装の詳細にまで立ち入りつつアツく Yuxin Wu および Kaiming He の考案した手法 Group NormalizationECCV 2018 採択済)について語ります。Kaiming He 氏は ResNet を筆頭に優れた convolutional neural networks (CNN) の設計で知られていることもあり、みなさんも注目している手法ではないでしょうか?

Chainer v5.0.0b4 を用いて、Chainer に入っている実装と弊社の独自実装での速度比較、また Batch Normalization との速度・精度比較を行いました。その上で、速度差が生じる原因の調査や CUDA を使った高速化の工夫について詳しく記します。ソースコードは MIT ライセンスで GitHub に公開していますので、ぜひご覧ください。

Group Normalization って?

Group Normalization の発想はシンプルです。早速ですが、Group Normalization を端的に表す図(論文 Figure 2 より引用)を見てみましょう。

Batch Normalization, Layer Normalization, Instance Normalization, Group Normalization の図示

(N, C, HW) の 3 次元からなる多次元配列が出てきましたが、これは CNN の中間層の出力だと考えると想像しやすいかと思います。バッチサイズ N, チャンネル数 C, 画像の縦幅 H, 画像の横幅 W です。

図に示された Batch Normalization, Layer Normalization, Instance Normalization およびこの記事の本題 Group Normalization の 4 つの手法は、いずれも青色で示された領域ごとに算出される平均・分散によって入力を正規化 (normalize) します。Batch Normalization が各チャンネルごとに平均・分散を求めることは有名ですね。精度・収束性を劇的に向上させる Batch Normalization は今や CNN のデファクトスタンダードですが、しかし

  • 画像の解像度が大きくてメモリが不足するなどの理由でバッチサイズが小さくなる場合に、平均・分散の推定が不安定になり学習ができなくなる
  • 複数 GPU にまたがって平均・分散を推定することで実質的なバッチサイズを増やすことは可能だが、高価なハードウェアが必要になる上に実装や最適化が複雑
  • ビデオの隣接フレームといった相関がある画像をミニバッチとして入力する場合も平均・分散の推定が不安定になる
  • 学習時に平均・分散の移動平均を覚えておいて推論時に用いるといった処理が煩雑
  • Finetune 時に移動平均をどう扱うべきかよくわからない

といった難点も併せ持っており、いつでも使えるわけではありません。このためミニバッチに依存しない正規化手法が待ち望まれていました。

そのような手法として、全チャンネルにまたがって平均・分散を取る Layer Normalization と、各チャンネル独立に画像の縦横方向についてのみ平均・分散を取る Instance Normalization が考案されました。とはいえ十分にバッチサイズが確保されている条件下での精度は Batch Normalization に比べてかなり劣っており、主流とはなっていません。

そこで登場したのが Group Normalization です。チャンネルを G 個にグルーピングして Layer Normalization と Instance Normalization の中間的な処理を行うことで、画像分類などのタスクで Batch Normalization に匹敵する精度を実現しました。グループ数 G を 32 にした場合がベストだったと論文に述べられていますが、それほど G の値に対して敏感ではないようです。Group Normalization の論文では、Instance Normalization には複数のチャンネルの組み合わせによって表現される特徴を歪めてしまう問題があると考察されています。その対極になるのが Layer Normalization ですが、こちらは大域的すぎて、特に重要ではないチャンネルが画像全体にわたって高い値を示した場合に他の全てのチャンネルが抑制されてしまいます。中間的な Group Normalization は良いとこ取りをできるというわけです。

なんだか素晴らしそうですね。Chainer では v5.0.0b3 から Group Normalization がサポートされているのでお手軽に使えます。しかし、本当に Batch Normalization をドロップインで置き換えて精度低下は起きないのでしょうか? Batch Normalization と同等の速度で動作するのでしょうか? この疑問を検証します。

結論から言えば、Batch Normalization を単に Group Normalization に置き換えるだけでは精度がかなり落ちてしまいました。なので Group Normalization を使う場合は精度の確認やパラメータチューニングをきちんとやるべきでしょう。また、Chainer v5.0.0b3 に追加された Group Normalization の実装はあまり効率的ではなく、CNN 全体の実行速度を大きく下げてしまうことがわかりました。この原因や、より効率のいい実装方法についても詳述します。

続きを読む ニューラルネットの新しい正規化手法 Group Normalization の高速な実装と学習実験

データサイエンティスト新卒研修レポート

こんにちは。
2018年4月に新卒としてALBERTに入社した、データソリューション部の羽山です。

入社式から、早3ヶ月が経ちました。
ALBERTでは入社式のブログでお伝えしたように、ALBERTに在籍している100人のデータサイエンティストのノウハウを活用した2ヶ月のデータサイエンティスト技術研修が新卒社員に対して行われます。

本記事では入社後2ヶ月間に渡って受講したデータサイエンティスト研修の内容についてご紹介します。

続きを読む データサイエンティスト新卒研修レポート

「第2回 AI・人工知能EXPO」に出展☆ 熱気のあるブースの様子をレポートします!

こんにちは!PR担当の五味です。

4月4日(水)~6日(金)に東京ビッグサイトにて開催された、「第2回 AI・人工知能EXPO」に出展してまいりました。
3日間、非常にたくさんの方にお越しいただきまして、おかげさまで大変熱気のあるブースとなりました。本日は、その様子をレポートいたします。

 

続きを読む 「第2回 AI・人工知能EXPO」に出展☆ 熱気のあるブースの様子をレポートします!

2018年度新入社員入社式を開催いたしました♪

こんにちは。人事の亀岡です!

暖かい日が続き、春本番ですね。
年度初めの4月2日、2018年度新入社員入社式を開催いたしました★

ALBERTは新たに12名の仲間が加わり、新卒採用としては過去最高人数。
式典を行った会議室も満員で、身の引き締まる思いでした・・・!


続きを読む 2018年度新入社員入社式を開催いたしました♪

NVIDIA主催、日本最大のGPUテクノロジーイベント「GTC Japan 2017」レポート!

こんにちは!PR担当の五味です。

先日、ヒルトン東京お台場で開催されたNVIDIA主催のイベント「GTC Japan 2017」に出展し、「深度推定(距離推定)エンジン」を発表してまいりましたので、本日はその様子をレポートいたします。

GTC Japan 2017」は、文部科学省および理化学研究所後援のもと、NVIDIAが主催する日本最大のGPUテクノロジーイベントで、GPUテクノロジー関係者が一堂に会す貴重な機会です。ヒルトン東京お台場の宴会場にて行われ、会場はクリスマスムードでとても華やかでした☆

 

ALBERTが発表した「深度推定エンジン」って?

今回のイベントでALBERTは、「深度推定エンジン」を発表しました。この技術については、先日、日本経済新聞や日経産業新聞でもとりあげていただいています。

「深度推定」とは、二次元の映像・画像を解析し、カメラから物体までの距離を推定する技術です。人間の脳は、左右の目に映る景色の違い(視差)やこれまでの経験をもとにして対象までの距離を推定することができますが、ディープラーニングを活用することで、それと同じことを高精度に行なうことができます。

さらに今回ALBERTが発表した技術は、ひとつのカメラだけで行なう単眼推定が可能で、また極めて安価で汎用的な性能のカメラを用いた場合でも高い推定精度を実現しています。
この技術は自動車の自動運転で活用できるほか、工場や倉庫における物資の自動運搬、自動掃除機などの家庭用ロボット、車いすなどへの活用も期待できます。

続きを読む NVIDIA主催、日本最大のGPUテクノロジーイベント「GTC Japan 2017」レポート!

2019新卒採用向けノベルティ制作

こんにちは♪ 広報の大森です。
先日、2018年新卒入社の内定式の様子をご紹介しましたが、
ここ最近は2019年卒新卒採用に向けたノベルティ制作を進めています。

ALBERTが初めて新卒採用をしたのは2013年。そのころは2名の採用でした。
あれから早5年・・・来年2018年の新卒採用者は11名、そして2019年も積極的に新卒社員の採用を予定しています。

今回作成したノベルティは、ALBERTのトートバッグ!

続きを読む 2019新卒採用向けノベルティ制作

「EC Camp 2017」トークセッションレポート!~AIによるEコマース業界の現在と未来~

こんにちは!PR担当の五味です。

ALBERTでは、近頃、AI(人工知能)関連イベントへの参加が非常に増えております。

今月もたくさんのイベントに参加しておりますが、先月には東京と大阪で行われた「EC Camp 2017」にALBERTの執行役員 パートナサポート部 部長 平原が登壇しましたので、本日は、その東京会場の様子をレポートいたします!

「EC Camp」はECビジネスのさまざまのノウハウが学べるビッグイベントですが、なかでも平原が登壇したスペシャルトークセッション「最新テクノロジーAIによるEコマース業界の現在と未来」は、非常に多くのご応募をいただきまして、イベント開始前から、AIへの注目度の高さが伺えました。

スペシャルトークセッションは、株式会社ブティックスター 代表取締役・プロデューサー・編集長である高田 博之様がモデレーターを務め、そしてパネリストとして4名が参加という形式でした。

東京会場では、株式会社Flicfit CEOの廣橋 博仁様、 Emotion Intelligence株式会社 代表取締役CEOの太田 麻未様、 カラフル・ボード株式会社 取締役CBOの皆川 朋子様、 そしてALBERTからは平原が、パネリストとして登壇いたしました。

各社自己紹介を終え、トークセッションが始まります。

全部で1時間半の長丁場でしたのでその全てをお伝えすることはできませんが、抜粋してレポートいたします。

続きを読む 「EC Camp 2017」トークセッションレポート!~AIによるEコマース業界の現在と未来~

内定式を開催いたしました

こんにちは。人事の亀岡です。

今回は10月4日(水)に行なわれた2018年度新卒入社内定式についてご紹介いたします。
実は今回がALBERTとして初の内定式です☆

この日が内定者全員での初めての顔合わせということで、
皆さん緊張した面持ちで始まりました。

祝辞は代表の上村と配属先のデータ分析部部長の安達から。
これからALBERTの社員となるみなさんに期待することはもちろんのこと、まずは社会人の先輩として社会人になるにあたっての心得なども熱く語っていただきました…!

続きを読む 内定式を開催いたしました

Azure Batch AI Trainingを利用したツイートデータ分類モデルの分散学習

はじめまして、システムソリューション部の松本です。

今回は、ディープラーニングの分散学習を可能にするサービス「Azure Batch AI Training」を用いて、Twitterの投稿に対する分類モデルを分散学習させてみようと思います。

アウトライン

  1.  Azure Batch AI Trainingとは
  2.  Azure Batch AI Training APIを使用してディープラーニング分散処理を行う流れ(Python&Tensorflowを使用した例)
  3. Tensorflowによるリツイート数でのツイートCNN2値分類
  4. 結果
  5. まとめ
  6. Appendix:独自Dockerコンテナssh設定

続きを読む Azure Batch AI Trainingを利用したツイートデータ分類モデルの分散学習

AzureのデータサイエンスVMを用いたニューラルネットワーク機械翻訳

初めまして。
システムソリューション部の長田と申します。

昨今では「AI」や「Deep Learning」などのキーワードとともに、データ分析が注目されています。 データ分析を行うためのツールは数多く存在し、それらをインストールするには意外と手間がかかります。 特にDeep LearningのアルゴリズムをGPUで計算する際に使われるcuda周りのインストールはノウハウがないと面倒です。

本記事では、データ分析で用いる主要なツールがプレインストールされているAzureのデータサイエンス仮想マシン(DSVM)を使ってDeep Learningを行ってみた感想について書いていきます。

続きを読む AzureのデータサイエンスVMを用いたニューラルネットワーク機械翻訳