見出し画像

現実世界のVUCAに挑む Data Augmentation

AI 技術の進化はとどまるところを知らず、ますます加速しています。

関連して、最近、学習データが少なくとも効果的にDeep Learningを活用していくために、データを水増ししていく Data Augmentation のテクニックが普及してきていることに注目しています。先日、カオナビ 社長の柳橋さんと公開対談をした際にも、Data Augmentation の重要性についてやや大げさではありましたが強調しました。


対談の中でも言及してます通り、画像だけでなく、様々な分野で試みがあって、楽天技術研究所でも画像認識はもちろん音声認識のモデル構築に用いていたりもしています。


そんなトレンドの中、先日、Google(Alphabet)グループ の自動運転車を作っている Waymo 社の去年12月の論文「ChauffeurNet: Learning to Drive by Imitating the Best and Synthesizing the Worst」を読んでいたら、より複雑なというか、高度な、現実世界のVUCA(Volatility=変動性/Uncertainty=不確実性/Complexity=複雑性/Ambiguity=曖昧性)を吸収する Data Augmentation の使い方に気付かされました。

Waymo は、車に運転をより汎用的に学習させていたくため、エキスパートドライバーによる、「3000万の運転例」の学習データセットを用意してシステムを作っているのですが、これだけでは不十分だったことに早々気づいたのと、やはり過学習はよくないと考えた。つまり、エキスパートでない未熟なドライバーの運転を避けるべきものとして車に学習させた方がいいし、(ちょっと僕の解釈が入りますが)道路の状態もでこぼことか色々ありうるし、それらに対応するため、データを撹乱させてゆらぎ・変動性を作った方がいいと考えました。

そこで、データを拡張させていくのですが、彼らはセンサーからの生データを拡張する手段はとらなかったと。

実は、Deep Learningのモデル(DNN)が

・自車や周囲の状況を認識するDNN
・それの認識結果を受けて、どう走るかを決めるDNN (1つのCNNと3つのRNNによる複雑な構成)

と大きく複数存在していて、
エキスパートの運転によって存在する前者の出力たる、認識された自車の軌道(Trajectory)や自車の角度をある範囲でランダムに乱していき、それを後者のどう走るかを決めるDNNの学習に使う、ことでロバストにしている。

彼らは生データやどう走るかを決めたアウトプットのデータを拡張する方法では、現実的なゆらぎを生成するのは難しいと主張しています。確かに、生のセンサーデータをランダムに撹乱しても、Bumpyな道や避けるべき運転というものの学習に効果のあるデータは生成できないかもしれないと思います。

効果のある学習データが用意できない、ゆらぎのある、不確実な現実世界の話においては、経験から学習していく強化学習(Reinforcement Learning)を組み合わせていくのが定石なわけですが、

Waymo は、強化学習(Reinforcement Learning)を使わなくても、このようなDeep Learning のアーキテクチャ構成にすれば、Data Augmentation によって多様なケースに対応できるデータの撹乱もできるし、他にもシミュレーションデータを混ぜることもできて、VUCAをカバーすることができ、よりロバストなものが作れるということを示したわけです。

素晴らしいアプローチだと感嘆します。

この論文は、Data Augmentation の応用だけでなく、とても勉強になる点が多く、色んな損失関数が出てくるなと思っていると、特徴表現獲得を洗練させていくための予測学習(Predictive Learning)も出てきたり等、とても高度です。最後の最後には、強化学習を使わなくてもいいと前段で言っているのに、今後は強化学習をこのアーキテクチャに組み合わせて進化させていくことをほのめかして終わっています。

AI 技術の開発・適用は新しい次元に来ています。このトレンドをいかにビジネスの力、社会の力にしていくかの挑戦は引き続き大事なテーマです。





この記事が気に入ったらサポートをしてみませんか?