機械学習

強化学習とは?勉強に役立つツールキットも紹介!

開発が急がれている自動運転の技術に「強化学習」が使われていることをご存じでしょうか。「そもそも強化学習が何かわからない」という人もいるでしょう。

今回は強化学習に焦点をあて、基礎的な内容を紹介します。強化学習の勉強に便利なツールや書籍も紹介するので、ぜひ参考にしてください。

強化学習に関連する基礎知識

強化学習とは何かを理解するために、基本的な事柄を紹介します。

そもそも機械学習とは?

機械学習とは人工知能(AI)を実現するためのデータ分析技術のひとつです。「機械」が自動で反復的に「学習」をおこない、データに潜む法則や知見を導きだします。

機械学習のメリットは「将来予測」ができる点です。学習結果から生まれた発見をもとに将来を予測します。人が手動でプログラムを書かなくても、機械が自動で大量のデータをもとに判断するため、さまざまな分野で活用されています。

「強化学習」は機械学習のひとつ

機械学習には、下記のように3つの種類があります。

・教師あり学習

・教師なし学習

・強化学習

教師あり学習と教師なし学習の「教師」とは、「正解のデータ」のことです。教師あり学習では、正解のデータを機械に教えることでAIモデルを構築します。正しい情報を与え続けると、未知のデータが入力されても、正解を機械が出力するようになります。

教師あり学習の例としては、分類プログラムがわかりやすいでしょう。リンゴとミカンの画像データを何度も学習させたモデルを作ります。すると、新しい画像を読み込ませたとき、自動でリンゴ、またはミカンに分類します。

教師なし学習では、正解のデータは与えられません。代わりに、データそのものの構造や特徴を機械が分析し、グループに分けたり情報を簡略化したりします。

強化学習でも、正解のデータは用いません。機械自身が試行錯誤を繰り返し、最適な行動を学習するのが強化学習です。

身近な強化学習の例としては「掃除ロボット」が挙げられます。掃除ロボットはゴミがたくさん取れる経路を求めて、改善しながら学習を繰り返します。

強化学習の重要性

強化学習の特徴は学習データが不要なうえに、情報の収集も正解の付与もおこなわない点です。そのため、評価尺度の定義が難しい場合や、未知の環境に対する適応が必要とされる場面で役立ちます。

例えば、将棋の学習モデルをつくるとしましょう。人間であれば、それぞれの局面でどのように将棋を指すかは、意見がわかれます。

しかし、強化学習では何度も対局することにより、あらゆる手を評価して選択を最適化できます。正解のデータを与えることが難しい分野で、強化学習は今後も活躍するでしょう。

強化学習の仕組みを理解するための基礎用語

強化学習の仕組みを理解するには、専門用語を学ぶ必要があります。自転車の操縦者を例に、基礎的な用語を解説するので確認しましょう。

エージェント

「エージェント」とは、ある条件の中で行動する主体のことです。自転車に乗る人に例えると、エージェントは自転車の操縦者になります。

環境

「環境」エージェントが存在している仮想空間を意味します。自転車に乗る場合は、走っている場所が環境です。

状態

「状態」とは、エージェントのいる環境の情報を意味します。つまり、自転車をこいでいるなら、道路の傾斜や自転車の速度が状態です。

行動

環境内でエージェントが起こしたアクションが、強化学習における「行動」です。自転車を例にとると、ペダルをこいだりブレーキをかけたりといった動作が行動になります。

報酬

「報酬」は、エージェントの行動指針となるものです。自転車に乗る場合では、走行距離が報酬となります。「自転車を運転し100m進むこと」を1点と設定したとしましょう。

強化学習によりエージェントは、1点をとるためにはどんな行動が必要になるのかを学習します。

強化学習の活用事例

強化学習の技術は現実世界において、どのように活用されているのでしょうか。具体例を紹介します。

ゲーム

ゲームの最適化は、強化学習の得意分野です。2016年、囲碁の世界トップ棋士に勝利した囲碁AIの「AlphaGo」が話題になりました。

何通りもある囲碁の打ち方。正解のデータを付与せず、最適な手を追求できる強化学習の技術が囲碁AIの進化を可能にしています。

自動運転

近年、開発の進む自動運転。自動運転を実現するのにも、強化学習が利用されています。事故を起こさずに運転することを報酬に設定すれば、道路状態や他の車といった環境を考慮しながら、行動を決定します。

物体の検知によるエンジン制御が可能になるため、交通量の多い交差点でも自動運転をおこなうような実験が日本でも実施されています。

強化学習におすすめの学習ツール

強化学習を習得するために、おすすめの学習ツールを紹介します。

OpenAI Gym

「OpenAI Gym」はゲーム間隔で強化学習を学べるツールキットです。有益な人工知能を広める活動をしている「OpenAI」という非営利団体によって提供されています。プログラミング言語のPythonを用いて強化学習のシミュレーションが可能なツールです。

ブロック崩しや、棒のバランスを取るようなゲームが用意されており、楽しみながら強化学習を学べますよ。強化学習に興味のある方は、ぜひインストールして、挑戦してください。

AWS DeepRacer

レースゲームを通して強化学習を学べるツールに「AWS DeepRacer」があります。Amazonの提供しているサービスで、自律走行のレースによる学習が可能です。

1/18スケールのレーシングカーを走らせて、ゴールするための行動を強化学習で試行錯誤します。走行タイムを他の人と競い合えるのが、AWS DeepRacerの魅力です。あなたもAWS DeepRacerで強化学習を学んではいかがでしょうか。

強化学習の勉強におすすめの書籍3選

強化学習に初めて挑戦するという場合には、手軽に勉強できる書籍もおすすめです。3冊紹介するので、興味のある本があれば、ぜひ手にとってください。

『機械学習スタートアップシリーズ Pythonで学ぶ強化学習 [改訂第2版] 入門から実践まで』

強化学習のメリット・デメリットから学べ、コードをもとに実践までおこなえる1冊です。読者からの要望や指摘を反映させた改訂版で、Pythonによるプログラミングもあわせて学習できます。

『OpenAI Gym / Baselines 深層学習・強化学習 人工知能プログラミング 実践入門』

ゲームやロボット制御の最適化だけでなく、FXや株の値動き予測についても触れている本書。強化学習や深層学習を用いて、明確に何をやりたいのか決まっている方におすすめです。

『Pythonによる深層強化学習入門 ChainerとOpenAI Gymではじめる強化学習』

強化学習のライブラリであるChainerやOpenAI gymを用いて、Pythonによる深層強化学習を学べます。深層強化学習とは、強化学習と深層学習を組み合わせたものです。

ゲームAIのAlphaGoやロボットアームの制御などに用いられています。人気の高いプログラミング言語のPythonによる実装を解説する入門書で、深層強化学習を学んではいかがでしょうか。

強化学習はツールキットを利用して楽しみながら学ぼう

機械学習のひとつで、自動運転やゲームの最適化に利用される強化学習。人間がデータを用意できなくても、行動指針となる報酬にもとづいて試行錯誤を繰り返します。

 

強化学習を学ぶには、書籍やゲーム感覚で勉強できるツールキットがおすすめです。強化学習に興味のある方は、OpenAI GymやAWS DeepRacerを使い、楽しみながら学習を進めてはいかがでしょうか。