なぜ社会実装が遅れているのか?「自動運転車」の最新のソリューション
今回紹介するのは、最新の自動運転技術――ではなく『自動運転の評価方法』です。自動運転車は実は2003年ごろには既に開発されており高速道路での実験も成功させていたのですが、なぜここまで社会実装が遅れているのか、その評価方法の難しさと最新のソリューションに着目していきます。
本日扱う論文はこちら
Scalable End-to-End Autonomous Vehicle Testing via Rare-event Simulation (NIPS2018)
目次
(1) 自動運転車の評価の難しさ
(2) 自動運転用シミュレーターの問題点
(3) 『珍しいシチュエーション』を頻繁に起こす
(4) まとめ
(1) 自動運転車の評価は難しい
今年の夏、期間限定ではありましたが東京で自動運転タクシーが走っていたことをご存知でしょうか。客が料金を払って自動運転タクシーに乗るというのは世界初の試みであったと報じられており[1]、日本も世界に先駆けて自動運転の社会実装を進めようとしています。
現在国家戦略として大変重要視されるようになっている自動運転車ですが、実は自動運転車の歴史は古く、2003年にはすでにドイツで公道での実験に成功していました。
自動運転車の社会実装がなかなか進まない理由の一つとして、その安全性を評価することの難しさがあげられます。安全性を最終的に評価するには実際に走って検証するしかありませんが、実際に自動運転車を公道で走らせて評価することには危険が伴います。また、正しく評価するためにはとっさの判断が難しいような『珍しいシチュエーション』をいくつも試す必要がありますが、実際公道で『珍しいシチュエーション』が頻繁に起こるわけではないので評価するには膨大な時間もかかります。
別の評価方法として、公道の3Dモデルや周囲の車そして自動運転車自体をコンピュータ上で再現し、シミュレーションを回すことで安全性を測ることも考えられます。こちらは物理的な危険性がない上、シミュレータ上で時間を早送りすれば何倍もの速さで評価を行うことができるので、今ではより一般的な評価方法となっています。
(2) 自動運転用シミュレーターの問題点とは?
自動運転社会を見据えて現在、自動運転AIの開発用に各社が独自のAI用のドライビングシミュレーターを開発しています。
これらの多くは、自動運転AIをシミュレータで学習させた後そのまま公道でも走れるよう景色のリアルさをかなり追求しています。
またそれぞれのリンクから動画を見ていただくとわかるように、AIはシミュレーター上で上手に運転できており、一見シミュレータを使った開発というのはうまく行きそうに見えますが、忘れてはならないのが、シミュレーター内に出てくるヒトや周りの車というのはヒトがその動きをモデル化している以上、起こりうるシチュエーションが制限されてしまっているということです。
シミュレータを使った開発はAIの学習に使うのは良いのですが評価方法としては不十分です。
本当に評価したいのは、急に子供が飛び出してきたり急に前の車の運転手が意識を失ったりなどといったとっさの判断が難しいような『珍しいシチュエーション』です。珍しいシチュエーションを一つ一つ設計することも考えられますが、それでは想定できるシチュエーションしか試すことができず、真の安全性は測れません。
今回紹介するこちらの論文では、シミュレーター上で『珍しいシチュエーション』を起こしやすいような周りの環境をどのように作るか、という問題に対してAIの技術を用いて解決しています。
(3) 『珍しいシチュエーション』を頻繁に起こす
簡単のため、論文では高速道路上で自動運転車(青)と周りに車が5台走っている場面を想定しています。
『珍しいシチュエーション』と書きましたが、実際には事故を起こしやすそうな危険な運転手が周囲にたくさんいる状態を想定すると良いかもしれません。
珍しいシチュエーションを発生させるポイントは、周りの車に現実的にあるうる運転方法に即しつつも危ない運転をさせることにあります。周りの車に対してもAIを用いることで、これを実現させたのが今回の論文の主な貢献です。
基本的な流れとしては、
①実際に高速道路を走っている車から集められたデータを用いて、人間っぽい運転をする周囲の運転手AIを作る。
②周囲の運転手AIを少しずつ調整して、実際にいてもおかしくないが事故を起こしやすいAIを作る。
となっています。ここで、周囲の運転手AIには自動運転させたいAIと同様、映像と距離センサーの情報を受け取って運転するような強化学習エージェントを使います。
①では模倣学習というAIの分野を用います。『高速道路データセット NGSim』という、実際にヒトが運転していた自動車から集められたデータセットを使い、映像等の情報から運転操作ができるようヒトの運転を真似するようなイメージでAIを学習させていきます。模倣学習には大きく2つのアプローチがあり、一つはヒトと同じデータを受け取った時に全く同じ運転操作ができるようにAIを学習させる方法で、もう一つはAIの行動かヒトの行動か区別がつかなくなるようにAIを学習させる、GANの考え方を用いた方法です。前者の方が一般的に簡単に学習させることができますが今回は、②のために後者を使っています。
②では、①のパラメータを少しずつ変えて、①と同様にヒトの運転かAIの運転か見分けられないようにしつつ事故を起こす確率を上げていきます。
②でパラメータを変える中で一定以上の事故を起こす運転手AIの割合を計算し、さらにそれらの運転手を実際にシミュレートしてどれだけ事故を起こすかを計算することで、何も調整されていないような交通状況ではどのくらいの確率で起こりうる事故かを後から逆算して評価することもできます。
この手法を用いると、事故が起こりやすいシチュエーションを高確率で発生させ、その環境下でも自動運転AIがどのくらい事故を防ぐことができるか、どうしようもない事態もあるかもしれないが、それは何も調整されていないリアルでの交通状況においてはどのくらい小さな確率で発生するのか、を評価することができます。またここでモデル化された周囲の運転手AIは、ヒトがルールベースのような手法でモデル化したわけではなく、ヒトの実際の運転を模倣して作られている上にニューラルネットワークを使ったモデルなので、これまでのドライビングシミュレーターとは違って想定することの難しいシチュエーションが多く発生していると考えられます。
このような珍しいシチュエーションが多く発生する厳しい環境下で自動運転AIをテストすることで、より短時間で、より信頼性の高い評価を行うことができます。
(4) まとめ
今回、シミュレーター環境にもAIを用いるという新しいAIの評価方法を紹介しました。最近の自動運転開発の活発化は近い将来自動運転社会が訪れることを予感させますが、自動運転車による事故も現に発生しており、公道を走る前の十二分なテストが要求されるようになっています。今回紹介したような手法により、事前にAIの弱い部分をより入念に洗い出し、乗る人も周りの歩行者も安心できるようなより安全な自動運転車の開発が進んでほしいと切に願います。
[1] 日経新聞「自動運転タクシー 乗ってみた 乗り心地に課題も安全実感
ライター:東京大学 学生
この記事に関するカテゴリー