タクシーの乗客を待たせない!?かゆいところに手が届く、気が利くAI

NTTドコモが実運用を開始した「AIタクシー」。時系列分析には、意外にも「オートエンコーダー」が使われている。

シェアする

人工知能,ロボット

お客さんはどこにいる?AIが予測

2018年2月から、株式会社NTTドコモによる人工知能を利用したサービスが始まった。「AIタクシー」と呼ばれるものだ。以前、NHKのドキュメンタリー番組でも取り上げられたこともあり、ベテランのタクシードライバーが印象的だった。

「AIタクシー」とは、タクシーをAIが自動運転するわけではない。タクシーの運転手をサポートするというものだ。タクシーを配車を効率よく行うための仕組みであり、タクシー会社の仕事の効率も上がるのはもちろん、お客さんの待ち時間を減らす効果も大いに期待される。タクシーに直接関わらない立場でも、「AIタクシー」は交通全体の効率化にも寄与するため、タクシーを利用しない人にも恩恵をもたらすはずだ。

NTTドコモはこのサービスを、AIとビッグデータ、ネットワーク通信網など、複雑な技術基盤を駆使することで実現している。同社によると、リアルタイムの人口統計データとAIを活用したタクシーの需要予測のサービスとしては、”世界初”だという。当サービスは実証実験段階を終えていて、すでに日本全国で実運用が始まっている。

では、どのようにして、これほどの複雑で高度な”世界初”のサービスを実現できたのだろうか。主にAIの仕組みに焦点を当てて、見ていくことにしよう。

タクシーに関する社会的な問題も、「AIタクシー」が解決する

NTTドコモの「AIタクシー」は、より具体的には、「タクシーに乗りたいと思っているお客さんはどこにいそうか」という予測を行っている。効率的にタクシー待ちのお客さんを見つけることが、新人ドライバーでも可能になるのだ。すでに、東京無線タクシーや名古屋市のつばめタクシーグループなどが、それぞれ1,000台以上のタクシー車両で運行することが決まっている。

従来、タクシーに乗りたいお客さんがどこにいるのかは、ベテランのタクシードライバーの長年の勘に頼っていて、そこが運転手としての腕の見せ所でもあった。しかし、NHKの番組でもそうだったが、ベテランドライバーでも認めざるを得ないほど、AIは高い予測精度を実現した(500mで区切ったエリアでの30分後までの予測精度は、93%から95%というかなり高い精度だという)。このように、どんなドライバーでも効率的にお客さんを見つけることができるため、ドライバー不足で悩むタクシー会社としても助かるだろう。

NTTドコモはこの取り組みによって、ドライバー不足の問題以外にも、交通空白地の問題などの社会的な問題についても解決の糸口になるのではないかと期待している。駅や大型デパートの近くなどの街中でタクシーが長い行列を作ってしまって、ある時間帯には決まって渋滞を起こしてしまったり、など・・・。一般ドライバーでも、タクシーの配車が効率よく運行されると嬉しいと思っている人はたくさんいるのではないだろうか。

「AIタクシー」サービスを実現するための仕組みとは

「AIタクシー」サービスを実現するためのおおまかな仕組みとしては、以下のような流れだ。

・人口統計情報をリアルタイムで分析し、
・携帯電話ネットワーク網を介して、
・AIで予測

この仕組みで、タクシードライバーに「タクシー待ちのお客さんがどこに多そうか」を伝える。30分後までの予測を、当然ながらリアルタイムでドライバーに伝えなくてはならない。

しかし、時間帯や天候などで刻々と変わる状況を精度高く予測し、リアルタイムで伝えるというのは非常に大変困難なことだ。データとしては、人口統計情報の他にも、気象情報や施設・建物に関するデータ、曜日や時間帯などの違い。それからタクシー自身から集められた情報をも加えて、120次元もの複雑な情報から分析を行うという。どうやってAIは実現できたのか。

開発陣では、さまざまな最適化手法を試していて、主にディープラーニングが汎用的に高い精度だったという。随時お客さんがどこで待っているかは変化していくため、ディープラーニングの中でも時系列データ分析に向いていると言われるRNNなども試された。しかし、最終的には「オートエンコーダー(自己符号化器)」が最も結果がよく、選ばれることになった。

オートエンコーダー(自己符号化器)とは

オートエンコーダーは、層を加えていくような従来のニューロネットワーク/ディープラーニングとはちょっと毛並みが違う、
奇抜なアイデアから生まれた手法だ。

人工知能,ロボット

通常のニューロネットワークでは、データが左の入力層から右の出力層へ動いていく過程で学習を行う。しかし、オートエンコーダーでは、入力層のデータと同じデータを、出力層として使う。間にある中間層(隠れ層とも言う)では、まず入力層のデータを圧縮する。圧縮されたデータを出力層と誤差を抑えるように復元させる。つまり、出力層が教師データとなるのだ。

この圧縮・復元を繰り返しトレーニングすることで、教師データとしての出力層のデータと誤差を最小になるように学習させる。こうして圧縮された中間層がサイズの小さい抽象的データとなり、「特徴表現」として抽出されるという仕組みだ。

一般に、ニューロネットワークは教師データが必要な学習法なのだが、オートエンコーダーの場合は入力層がそのまま教師データとなるため、教師なし学習ということになる。通常、ニューロネットワークでは膨大な教師データを予め準備しなくてはいけないことがネックになりやすい。しかしオートエンコーダーは、その問題がないという素晴らしい特徴を持つ(しかし、やはり教師なし学習の分だけ精度が低くなりがちで、オートエンコーダーが使われる場面も少なくなっているようだ)。

「stacked denoising auto-encoder」とは

この「AIタクシー」で使われているオートエンコーダーは「stacked denoising auto-encoder」だという。”stacked” auto-encoderは、オートエンコーダーを積み上げて多層にする方法だ。

人工知能,ロボット

オートエンコーダーの中間層を出力として次のオートエンコーダーの入力層に渡し、さらにその抽象化した中間層を次のオートエンコーダーに渡し・・・と層を深くし、より抽象的な特徴表現を取り出す。

一方、”denoising” auto-encoderは、わざとノイズを加えることで、頑強性を上げるという仕組みだ。もともとオートエンコーダーは圧縮・抽象化を行うので、その過程でノイズは除去される効果があるが、denoising auto-encoderでは入力層にわざとランダムノイズを加えて学習させる。

人工知能,ロボット

つまり、「stacked denoising auto-encoder」とは、”stacked”と”denoising”を組み合わせたオートエンコーダーだ。

時系列分析の用途でオートエンコーダーの方が精度がよくなったというのは少し意外な気がするが、ノイズを取り除くことの方がこの事例では大きく影響したのかも知れない。オートエンコーダーで不要なノイズデータを除去することによって、駅前や繁華街などのお客さんが多そうなエリアでは、予測誤差50%以内に抑えた「準正解」精度を含めて90%以上、住宅街などのエリアでは+20%以内の予測誤差の正解だけで90%以上の精度を実現しているという。

タクシー待ちのお客さんだけではなく

「最適化」と呼ばれるアルゴリズムには、さまざまな方法がある。ヒルクライム法、群知能、遺伝的アルゴリズムなどなど・・・。また、ディープラーニング(ニューロネットワーク)も最適化問題に使うことができるため、最適化手法のひとつだ。「AIタクシー」の開発でも、さまざまな最適化手法を検討し、最終的にディープラーニング(オートエンコーダー)を使うことが”最適解”となったようだ。

最適化手法のどれを選ぶのが最適なのか、それを考えるのも最適化問題だ。「万能な最適化方法などは存在しない」ことは既に約20年前には分かっていること(ノーフリーランチ定理 )であるため、基本的には問題ごとに合った解法を選ばないといけないことが多い。だから、本当にどの解法が良いのかは「試してみないとわからない」ということも往々にしてあるのが現実だ。だからRNNやLSTMではなくオートエンコーダーが時系列分析で好結果になったという、意外な答えが出てくることもありえる。こちらの記事でも、「AIタクシー」を実現するため、つまり最適化問題を解くための、データサイエンティストや開発者たちの苦労が行間に垣間見えていた。

しかしいずれにしても、タクシー会社にとっても乗車客にとっても、そしてその交通状況に影響を受ける他のドライバーにとっても、「AIタクシー」サービスが始まったことは嬉しい結果をもたらしそうだ。このような新しい画期的なサービスの実現の為、深刻なドライバー問題などの社会的な問題の解決の為には、現時点ではビッグデータやAIが不可欠になっていることがよくわかる事例だ。


<参考>

    1. 報道発表資料 : (お知らせ)人工知能を活用したタクシー乗車需要予測サービス「AIタクシー」(NTTドコモ)https://www.nttdocomo.co.jp/info/news_release/2018/02/14_00.html
    2. NHKスペシャル「人工知能 天使か悪魔か 2017」(NHKドキュメンタリー)
      https://www.nhk.or.jp/docudocu/program/46/2586947/index.html
    3. NTTドコモ「AIタクシー」を支える TensorFlow と需要予測モデル(Google Cloud Platform Japan 公式ブログ)
      https://cloudplatform-jp.googleblog.com/2018/04/ntt-docomo-ai-taxi-tensorflow.html
    4. ノーフリーランチ定理(Wikipedia)
      https://ja.wikipedia.org/wiki/ノーフリーランチ定理

シェアする