はじめに
文系の皆さんがAI人材になるためのノウハウを投稿していきます。今回は実行系AIの作り方を学んでいきます。「そもそもAIはどんなものか」について知りたい方は「AI作成の流れ」を把握、「AI企画」をスムーズに進行させるためにをご参照ください。
実行系AIの活用例を復習する
実行系AIの活用例としては次のような内容がありました。
実行系×代行型AIの活用例
- 自動運転
- 工場内作業
- 倉庫内作業
- データ入力作業
- ロボットによる店頭案内
実行系×拡張型AIの活用例
- ドローンのAIによる拡張
- 自立型機械制御
実行系AIは、これまで紹介してきた予測系AI、識別系AI、会話系AIが組み合わされて作られることが多いです。たとえば、ロボットによる店頭案内の例で説明しましょう。カメラを通じて識別系AIを使い、人の認識を行ない、性別や年代を推定し、過去のやり取りデータから次に求める内容を予測系AIで割り出し接客内容を変え、会話系AIによって音声対話を行ない、移動しながら顧客を誘導する。このような形で各AIをコンピネーションさせていきます。
実行系AIを制御する強化学習の仕組み
実行系AIはさまざまなタイプのAIの組み合わせにより構成されることが多いですが、今回は前述している強化学習をメインで用いた、シンプルな形の実行系AIの例を掘り下げます。
実行系AIでは、強化学習をメインで用いることで、物体を適切に動かすことを可能にしてい強化学習による実行系AIの例として、Amazon のAWS DeepRacerを使って、説明を進めていきたいと思いますAWS DeepRacer は、強化学習によって駆動する1/8スケールの完全自走型レーシングカーです。パソコン画面上の3Dレーシングシミュレーターによって学習が進められて、リアルな世界でもレースの大会が用意されています。なお、このレーシングカーは実用性があるわけでなく、あくまで強化学習を学ぶためのキットとして用意されているものです。
強化学習
- 報酬と罰による学習法で「よい選択を繰り返させる」こと
- 複数の選択の組み合わせにより、結果として出る総合的な「答え」(結果としてのあるべき状態)を導く学習
- 強化学習では、「エージェント」が「行動を選択」することで「環境」から報酬を得る
1/18スケールのレーシングカーであるDeepRacer は、報酬と罰の概念を用いた強化学習によって、コース上を締麗に走るようになります。このレーシングカーの例での「エージェント」「行動」「環境」は次のようになります。
- エージェント:レーシングカー
- 行動:走行
- 環境:コース上の世界
今回の例の場合、実行系AIで使われる強化学習では、「レーシングカー(エージェント)」が「走行 (行動)」を選択することで「コース上の世界(環境)」から報酬を得ることになります。強化学習の結果として、コース上を締麗に走るようになっていきます。
このレーシングカーは、コース上の世界の中で、スタート地点から走行を開始し、走行開始後はコース上でどの地点にどの状態でいるのかをカメラを通じて観測します。状態の観測を通じて、たとえば次のカープに差し掛かるタイミングではどんな走行をすべきなのか(減速のタイミング、スピード調整、カープの角度)などを決定し行動します。
その行動の結果、コース上で適切な場所にいるかを判断し、もし、コースアウトしていたら罰を与えられ、コース内での最短距離ルートを取れていたら報酬が与えられます。このような報酬と罰を与えて学習させることによって、レーシングカーがコース上でどのような状態にいるかを観測して、その状態に合わせて適切な走行を選択できるようになっていきます。
実行系AIはどのように作られるのか
実行系AIを作るための強化学習の概念は押さえてもらったと思います。続いては実行系AIの作り方を流れに沿って見ていきます。
企面
- AIプラン ニング
- 報酬と罰の設計
シミュレータ設定
- シミュレータのセットアップ
- 学習のための設定
学習
- AIモデル構築
- AIモデル精度検証
予測
- AIモデル実行
- 運用·再学習
これらの流れを引き続き、レーシングカーの例を元に説明をしていきます。「企画1:AIプランニング」では、実行系AIを何に使うかを決めます。今回の例ではレーシングカーをコース上でより速く適切に走らせるために利用することになります。
「企画2:報酬と罰の設計」では、どの状態になったら報酬を与えて、どの状態になったら罰を与えるかを決めます。また報酬と罰、それぞれに対してどの状況のときにどんな言みをつけるのかなどの基本ルールを決めておきます。
予測系AIや識別系AI、会話系AIと大きく異なるのは、シミュレータの存在です。実系AIは実際の世界で稼働する前に、パソコン上でのシミュレータの中で動作を試験的に行ない、学習精度を高めていきます。「シミュレータ設定1:シミュレータのセットアップ」では、試験的に動作させ学習させる場所を用意します 。
「シミュレータ設定2:学習のための設定」では、用意したシミュレータ環境の中で、よりよい結果を導けるように報酬と罰の重みづけの調整設定を行なったり、各種パラメータの値を調整していきます。パラメータの調整の例としては、コースインを続けた場合の報酬の重みやコースアウトしたときの罰の重さを決めたり、スピードの最大値や最小値、カープのときの曲がり方の角度の最大値や最小値、学習の回数や時間の制限などを決めることがあげられます。
「学習1:モデル構築」 では、シミュレータ上で実際に学習をさせます。パソコン内のシミュレータ上の架空の環境において、エージェントであるレーシングカーを走らせます。まず何も学習していない状態でレーシングカーを走らせて、うまくコースインしている状態のときに報酬を与え、コースアウトした際に罰を与えるという学習を行ないます。このシミュレータ上での学習を繰り返し行なうことによって、走行の精度を上げていきます。
「学習2:AIモデル精度検証」では、今回の例でいうと、決められたコースを「何秒でゴールできたのか」を指標として、そのスコアを確認します。また、コースアウトした回数なども精度検証の指標とすることになります。学習を繰り返すことによってどれくらいの改善がなされているかもチェックします。パラメータを変えずに学習を繰り返してもいつかは改善の上げ止まりがあります。学習の伸び代がなくなったと判断したら、各種設定値を変えることによってさらなる精度向上を目指すことになります。
「予測1:AIモデル実行」では、シミュレータで学習させたレーシングカーを実察のコースで走らせます。
「予測2:運用、再学習」では、実際のコースで走らせた結果、「スコアがどうだったのか」「シミュレータでの走行との違いが出ていなかったか」などをチェックし、シミュレータで再度学習をさせて精度を上げていくということを繰り返し行なっていきます。
このような流れで強化学習を行ない、実行系AIのメインである物体の制御を行なっていくことができます。
まとめ
いかがったでしょうか。それぞれのAIの作り方について理解が深まったかと思います。次回からは,「AI企画力」高める練習法を掲載していきます。「予測系AI」「識別系AI」「会話系AI」「実行系AI」については、以下の記事でより詳しく解説していきます。