Apple Machine Learning Journal の技術翻訳 #1


この前、Google の六本木オフィスにおいて開催された技術翻訳の質を向上させる GDG Tokyo 主催のイベント、’Glossari-a-thon’ に参加したことをきっかけに技術翻訳が楽しく感じられるようになりました。そこで、数日前に Apple が開設した ‘Machine Learning Journal‘ に投稿されている記事を日本語に翻訳してみようと思いました。AI の力で翻訳を補っています。

PDF版
元の記事 (英語)


合成画像の現実感を向上させる

Vol.1, 第1版 ∙ 2017年7月


現在、ニューラルネットワークで最も成功している例は全て、監督の下でトレーニングを受けています。 しかし、高精度なニューラルネットワークを実現するためには、トレーニングのセットは大きく、多様で、正確に注釈を付ける必要があり、これはコストがかかります。ここで、 大量のデータを分類する代わりに、シミュレーターからの合成画像を使用することも可能です。この方法はデータの分類を行うコストがかからないので安価ですが、合成画像は十分に現実味を持たないため、実際のテスト画像での一般化が不十分になることがあります。そこで、このパフォーマンスの隔たりを解消するために我々は、合成画像を修正し、よりリアルに見せる方法を開発しました。これらの修正された画像上でのトレーニングは、様々な機械学習タスクの精度を大幅に向上させるということを示します。

概要

標準的な合成画像上で機械学習のモデルにトレーニングをさせるには問題があります。それは、画像が十分に現実味がないこともあり、モデルが合成画像のみに存在する詳細を学習し、実際の画像では一般化することが難しいからです。 合成画像と実際の画像との間のこの隔たりを埋める1つの方法は、シミュレーターを改良することです。シミュレーターを改良することは困難な上に多額の費用がかかり、また、最良のレンダリング・アルゴリズムでさえ、実際の画像に存在する全ての細部をモデル化することはできません。 この現実味の欠如は、モデルが合成画像の「非現実的」な詳細に過度にあてはまる原因となる可能性があります。 シミュレーターのすべての詳細をモデル化するのではなく、データからそれらを学習することは可能なのでしょうか? この目的のために、合成画像をよりリアルに見せるために、合成画像を改良する方法を我々は開発しました(図1)。

図1. 注釈付け情報を保存しながら、未分類の実データを使用してシミュレーターからの合成画像の現実感を向上させるモデルを学習することが目的です。

 

「現実感を改良する」という目標は、テストの精度を向上させるために、画像をできるだけリアルに見せるということです。 これは、機械学習モデルのトレーニングのために注釈情報を保存することを意味します。 例えば、図1の視線方向は保存されるべきであると同時に、アーティファクトを生産するべきではありません。というのも、機械学習モデルが過度にあてはまることを学習してしまう可能性があるからです。 そこで、合成画像を処理してその現実感を向上する、「Refiner Network」と呼ばれる深いニューラルネットワークについて学びます。

このような Refiner Network について学ぶには、実際の画像が必要です。 1つの選択肢は、画素単位の対応を有する実際の画像と合成像の対、もしくは注釈付きの実際の画像(例えば、目の場合の注視情報)を必要とすることです。 これはおそらく簡単な問題ですが、そのようなデータを収集するのは極めて難しいです。 画素単位の対応を作成するには、与えられた実際の画像に対応する合成画像をレンダリングさせるか、レンダリングされた合成画像に一致する実際の画像をキャプチャする必要があります。私たちは代わりに、画素単位の対応や実際の画像の注釈なしでこのマッピングを学ぶことができるのでしょうか? もしもできるのであれば、たくさんの合成画像を生成し、目の実際の画像をキャプチャし、そして、実際の画像に全く注釈を付けずにこのマッピングを学ぶことができますーこれにより、安価で簡単に実際に適用することができます。

監督されていない下で Refiner Network を学ぶために、私たちは画像を実際の画像と修正された(または偽の)画像の2つの種類に分類する、Auxiliary Discriminator Network を活用します。 Refiner Network は、この弁別ネットワークを欺いて、修正された画像が実際の画像であると考えるように仕向けます。 両方のネットワークが交互にトレーニングを受けさせられ、弁別装置が実際のイメージと偽のイメージを区別できないときにトレーニングは停止します。 Adversarial Discrimator Network を使用するという考え方は、生成された画像が実際のものと区別できないようにランダムベクトルを画像に写像するGANs(Generative Adversarial Networks [1] )アプローチと同様です。私たちの目標は、合成画像を現実的な画像にマッピングする Refiner Network(Generator)をトレーニングさせることです。 以下の図2にその方法の概要を示します。

図2. 私たちの Refiner Neural Network「R」は、局所的対立的損失と「自己正則化」の期間の組み合わせを最小限に抑えます。対立的損失は、イメージを現実のもの、または、洗練されたものとして分類する Dsicriminator Network「D」を欺きます。自己正規化は、合成画像と改良画像との間の画像差を最小にします。 Refiner Network と Discriminator Network は交互に更新されます。

 

注釈を保存するには?

Refiner Network は、現実味のある画像を生成することに加えて、シミュレーターの注釈情報を保存する必要があります。 例えば、注視推定のために、学習された変換は注視方向を変えてはなりません。 この制限は、洗練された画像をシミュレーターの注釈とともに使用する機械学習モデルの訓練を可能にするために不可欠な要素です。 合成画像の注釈を保存するために、我々は合成画像と修正された画像との間の大きな違いに不利益を与える自己正則化 L1 損失で対立的損失を補完します。

アーティファクトをどうやって防ぐか?

ローカル変更を行う

Refiner Network のもう1つの重要な条件は、アーティファクトを導入することなく実際の画像の性質や特性をモデル化することを学ぶべきであるということです。 1つの強力な Discrimator Network をトレーニングさせるとき、Refiner Network は、現在の Discriminator Network を欺くために画像の特定の特徴を強調する傾向があり、そして、流されるようにアーティファクトを生成します。 重要なことは、修正された画像からサンプリングされたローカルパッチは、実際の画像パッチと同じ統計量を持つべきであるということです。 したがって、グローバルの Discriminator Network を定義するのではなく、すべてのローカルイメージパッチを個別に分類する Discriminator Network を定義できます(図3)。 この分割は、受信フィールドを制限するだけでなく、つまり、Discriminator Network の容量を制限するだけではなく、Discriminator Network を学習するために画像ごとに多数のサンプルをも提供します。 Refiner Network は、画像ごとに複数の「現実感損失」値を持つことによっても改良されています。

図3. 局所対立的損失の図。 Discriminator Networkは、w×h (横幅 x 縦幅) 確率マップを出力します。対立的損失関数は、クロスエントロピー損失を局所パッチで割った数の和です。

Generator の履歴を使用してディスクリミネータを改善する

Generator は、新規分布のサンプルまたはターゲット(実データ)の分布のいずれかを使用して Discriminator を欺くことができます。新しい分布から生成することは、弁別子がその新規分布を知るまで、弁別子を欺くことになります。 Generator が Discriminator を欺くことができるより有用な方法は、ターゲット分布から生成することです。

これらの2つの進化の仕方を考えると、通常、現在の Generator とDiscriminator をお互いにトレーニングさせるときに観察された、新しい出力を生成するのが最も簡単です。 図4の左側に、この非生産的な序列の簡略図を示します。Generator と Discriminator の分布は、それぞれ黄色と青色で示されています。

以前の世代のジェネレーターサンプルを保存する履歴を導入することで(図4の右側)、Discriminator は既に学習した空間の一部を忘れにくくなります。 より強力な Discriminator は、Generator がターゲットディストリビューションに速く移動するのを助けます。 この図は単純化されており、分布が複雑で、しばしば切断された領域であることを示すために無視されています。 しかしながら、実際には、単純なランダム置換バッファは、 Discriminator を強化することによって反復を防止するために、以前の発生器分布から十分な多様性を捕捉します。 私たちの考えは、訓練手順全体のどの時点でも、Refiner Networkによって生成された修正された画像は、実際には Discriminator のための「偽の」イメージであるということです。 我々は、履歴バッファからのサンプルの半分と現在のジェネレータの出力からの残りの半分(図5参照)でDのミニバッチを構築することにより、トレーニングを改善できることを見出しました。

図4. Discriminator を改善するために画像の履歴を使用する際に裏で働きがけている直観の図

図5. D の履歴付きミニバッチの図。各ミニバッチは、Generator の現在の反復からの画像と、以前の偽の画像のバッファから構成されています。

 

トレーニングはどのように進行するのか?

我々は、最初に自己正則化損失のみで Refiner Network をトレーニングさせ、Refiner Network が入力合成画像のぼやけたバージョンを生成し始めると、対立的な損失を導入します。 図6は、トレーニングの様々な段階における Refiner Network の出力を示します。 最初はぼやけた画像を出力しますが、トレーニングが進行するにつれて、ますます現実味を帯びた画像を出力します。 図7は、異なるトレーニングの反復での Discriminator と Generator の損失を視覚化しています。 Discriminator の損失は最初は低いので、実際のものと修正されたものとの違いを容易に把握することができます。 トレーニングが進行するにつれてゆっくりと、Discriminator の損失は増加し、Generator の損失は減少し、現実味の帯びた、よりリアルな画像を生成します。

図6. トレーニングが進行するにつれての Refiner Network の出力。 ぼやけた画像から始まって、ネットワークは実際の画像に存在する細部をモデル化することを学習します。
図7.トレーニングが進むにつれての Discriminator と Generator の損失。

 

自己正則化 L1 の損失は制限されてるのか?

合成画像および実際の画像が分布において大きな推移を有する場合、画素ごとの L1 差は制限的であり得ます。 このような場合、アイデンティティマップを代替フィーチャ変換に置き換えることができ、自己正則化をフィーチャ空間上に置くことができます。 これらは、手で調整された機能、またはVGGnetの中間層などの学習された機能です。 例えば、カラー画像の細分化のために、RGBチャネルの平均は、図8のような現実的なカラー画像を生成することができます。

図8. 特徴空間における自己正則化損失の例

 

Generator によってラベルが変更されることはあるのか?

ラベルが大きく変化しないことを確認するために、合成画像と修正された画像に手動で楕円を描き、それらの中心の差を計算しました。 図9に、このような中心差の50点の散布図を示します。 推定瞳孔中心と対応する修正された画像との間の絶対差は、1.1 +/- 0.8px(目の幅= 55px)と非常に小さいことがわかります。

図9. 合成画像と実画像の瞳孔中心間の距離の散布図。

 

ハイパーパラメータを設定する、ヒントと秘訣。

G の初期化

最初は、合成入力画像のぼやけたバージョンを生成することができるように自己正則化損失を伴う G のみを初期化しました。 おおよそ、500〜2,000ステップの G(D のトレーニングはなし)が必要とされました。

 

トレーニングの繰り返しごとにGとDの異なるステップ

我々は、各トレーニングの反復において、Generator と Discriminator に複数の段階を使用しました。 奥行きを用いた手姿勢推定のために、DステップごとにGの2ステップを使用し、視線推定実験のために、Dステップごとに50ステップのGを使用した。 識別器のバッチノルムが原因で、識別器がジェネレータと比較してより迅速に収束することがわかりました。 そこで、#Dステップを1に固定し、少数から始まって#Gステップを変化させ、ディスクリミネータの損失値に応じて徐々に増加させました。

 

学習率と停止基準

学習率を非常に小さく(約0.0001)続け、長期間トレーニングをすることが有用であることが判明しました。 この方法はおそらく、Generator または Discriminator の両方が突然の変移を起こさないようにするため、上手くいったのでしょう。 トレーニングの損失を視覚化することでトレーニングを中止させることは我々にとってみれば困難でした。 したがって、代わりに、トレーニングの進行に合わせてトレーニングの画像を保存し、修正された画像が実際の画像と視覚的に似ていると判断された時にはトレーニングを中止させました。

定性的結果

修正された画像の視覚品質を評価するために、我々は、ユーザーが画像を実際の画像または修正された合成画像として分類するようにユーザーに求める簡単な調査を設けました。 結果、被験者達にとって実際の画像と洗練された画像との違いを見極めることは非常に困難であるということが分かりました。 私たちの集計分析では、10人の被験者達は1000回の試行のうち517回正しいラベルを選択しました。つまり、実際の画像と修正された合成画像を確実に区別することはできませんでした。 それとは別に実際の画像と元の合成画像を用いた実験を行なったところ、対照的な結果が得られました。被験者ごとに10個の実際の画像と10個の合成画像が表示されたところ、被験者達は200回の試行のうち162回正しい選択をすることができました。 図10では、いくつかの例示的な合成画像および対応する修正された画像を示します。

図10. 提案した方法を用いて修正された目の画像の例。

 

定量的結果

図11は、元の合成データを使用してトレーニングを行なった場合と比較して、修正されたデータを使用した場合の改善を示しています。 この図から注目すべき2つの点は、(1)修正された画像をトレーニングさせたものは、元の合成画像をトレーニングさせたものよりも優れていること、(2)より多くの合成データを使用することはパフォーマンスのさらなる向上につながるということ。 図12では、注視推定誤差を他の最先端の方法と比較し現実感を改善することが、モデルが実際のテストデータで一般化するのを助けることにつながるということを示しています。

図11. 視線推定のための合成画像と修正された画像を用いたトレーニングの比較。 実際のテスト画像で評価。

図12. MPIIGaze データセットにおける視線推定のための異なる方法の比較。 最初の2つの方法は参考文献[2]および[3]に記載。

 

関連事項

近年、Adversarial Training を用いた Domain Adaptation に多くの関心が寄せられています。 Isola およびその他による画像から画像への変換[4] は、あるドメインから別のドメインにイメージを変更する方法を学習する方法について説明していますが、画素単位の対応が必要です。 不対応の画像 – 画像変換ページ[5]は、画素単位の対応の必要性を緩和することを議論し、識別器を改善するためにジェネレータ履歴を使用する我々の戦略に従う。 監督されていない画像 – 画像変換ネットワーク[6]は、GANと変分自己符号化器の組み合わせを使用して、ソースドメインとターゲットドメインとの間のマッピングを学習する。 Costa およびその他 [7]は私たちの仕事のアイデアを使って、眼底の画像を生成する方法を学ぶ。 Sela およびその他[8]は、顔の幾何学的再構成のために同様の自己正則化アプローチを使用する。 Lee 及びその他 [9]はパッチの Discriminator を使用して主要なローカルパッチから画像を合成する方法を学習します。 この記事で説明する作業の詳細については、CVPRの論文「敵対的訓練を通して模擬画像と教師なし画像から学ぶ」 [10] を参照してください。

参考文献

[1] I. J. Goodfellow, J. Pouget-Abadie, M. Mirza, B. Xu, D. Warde-Farley, S. Ozair, A. Courville, and Y. Bengio, Generative Adversarial Nets. Proceedings Neural Information Processing Systems Conference, 2014.two thousand fourteen

[2] X. Zhang, Y. Sugano, M. Fritz, and A. Bulling, Appearance-based Gaze Estimation in the Wild. Proceedings Computer Vision Pattern Recognition Conference, 2015.two thousand fifteen

[3] E. Wood, T. Baltrušaitis, L.-P. Morency, P. Robinson, and A. Bulling,Learning an Appearance-based Gaze Estimator from One Million Synthesised Images. Proceedings ACM Symposium on Eye Tracking Research & Applications, 2016.two thousand sixteen

[4] P. Isola, J.-Y. Zhu, T. Zhou, and A. A. Efros, Image-to-Image Translation with Conditional Adversarial Networks. ArXiv, 2016.two thousand sixteen

[5] J.-Y. Zhu, T. Park, P. Isola, and A. A. Efros, Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks. ArXiv, 2017.two thousand seventeen

[6] M.-Y. Liu, T. Breuel, and J. Kautz, Unsupervised Image-to-Image Translation Networks. ArXiv, 2017.two thousand seventeen

[7] P. Costa, A. Galdran, M. I. Meyer, M. D. Abràmoff, M. Niemeijer, A. M.Mendonça, and A. Campilho, Towards Adversarial Retinal Image Synthesis. ArXiv, 2017.two thousand seventeen

[8] M. Sela, E. Richardson, and R. Kimmel, Unrestricted Facial Geometry Reconstruction Using Image-to-Image Translation. ArXiv, 2017.two thousand seventeen

[9] D. Lee, S.Yun, S. Choi, H. Yoo, M.-H. Yang, and S. Oh, Unsupervised Holistic Image Generation from Key Local Patches. ArXiv, 2017.two thousand seventeen

[10] A. Shrivastava, T. Pfister, O. Tuzel, J. Susskind, W. Wang, R. Webb, Learning from Simulated and Unsupervised Images through Adversarial Training. CVPR, 2017.

Leave a Reply

Your email address will not be published. Required fields are marked *