機械学習

機械学習のひとつである強化学習とは?ライブラリ7選も紹介!

「ライブラリを活用して、効率よく強化学習を実装したい」

「そもそも強化学習が何か、よくわかっていない」

上記のように考えている人に向けて、強化学習について解説します。近年、注目の集まっている機械学習。機械学習の中でも自動運転やゲームAIなど、発展の望まれている分野に関わっているのが、強化学習です。

今回は強化学習の概要だけでなく、手法やライブラリについても解説します。ぜひ参考にしてくださいね。

強化学習をはじめる前に知っておきたい基礎知識

強化学習のライブラリを使用する前に、基本的な知識を学習しておきましょう。

機械学習の意味を理解しよう

まずは、機械学習について解説します。なぜなら、強化学習は機械学習のひとつだからです。機械学習は人工知能(AI)を支える技術のひとつです。

機械学習では、コンピューターが自動で反復学習をおこない、データから有益な法則や知見を発見します。機械学習のメリットは、導き出したパターンから将来を予測できる点です。

人間には難しい大量で複雑なデータ分析も、機械学習の技術を用いれば、正確な結果を速やかに生成できます。そのため、機械学習は金融や医療、流通など、幅広い分野で活用されています。

機械学習の種類

機械学習には種類があり、主に次の3つに分けられます。

・教師あり学習

・教師なし学習

・強化学習

教師あり学習では、正解のラベルのついたデータを用います。正解のデータを学習させておくことで、入力されたデータが正しいかどうかをAIが判断します。

例えば、AIで車とバイクの画像分類を教師あり学習で実装するとしましょう。車の画像データに正解ラベルを付与します。

すると、車もしくはバイクの画像が提示されたとき、AIは自動で画像を分類するようになります。未知のデータを与えた際、正誤を判定してくれるのが教師あり学習です。

近年のAIでは、教師あり学習が主流になっています。なぜなら、人間が正解をコントロールしやすいからです。しかし、学習データの収集や正解データの付与に時間がかかるというデメリットもあります。

 

一方、教師なし学習では正解のデータは使用しません。大量のデータ群から構造を学習します。

画像を分類する際には、それぞれの特徴から類似度を機械が検討し出力します。正解のデータを付与する必要はありませんが、意図しない結果がでるおそれがあります。

強化学習」はAIが試行錯誤を繰り返し、最適な行動系列を求める学習方法です。行動系列とは、目的を達成するまでの一連の行動のこと。

強化学習では学習データを用いないため、データ収集も正解ラベルの付与もおこないません。与えられるのは指針であり、その評価基準にもとづいて改善を目指します。

例えば、ゲームAIや自動運転に強化学習が使われていますが、どちらにおいても最適な行動を求めてAIが自動で学習します。

深層強化学習とは

深層強化学習は、強化学習と深層学習を組み合わせた学習法です。「深層学習」はディープランニングとも呼ばれています。人間の神経細胞の仕組みを模したニューラルネットワークが用いられており、画像認識や音声認識に活用されているテクノロジーです。

強化学習と深層学習を組み合わせると、ゲームAIやロボットなどの複雑なシステムの制御が可能になります。

強化学習の理解に欠かせない基本用語

強化学習への理解を深めるために、関連用語を解説します。順に確認しましょう。

エージェント

「エージェント」は行動を起こす主体のことです。学習者のような立場にあります。強化学習ではエージェントが特定の条件下でさまざまな試行錯誤をおこない、状況に適した行動を追求します。

報酬

エージェントは定められた「報酬」にしたがって行動を決定します。つまり、報酬はエージェントの行動指針です。

ある行動を起こした際、報酬がもらえたか否かによって、エージェントは次のアクションを決定します。試行錯誤を繰り返し、報酬が最大化されるように調整されていきます。

強化学習の3つの手法

強化学習には、いくつかの手法が存在します。メジャーな手法3つを紹介するので、確認しましょう。

①Q-Learning

Q-LearningはQ学習とも呼ばれ、Q関数という関数を用いて制御を実施します。Q-Learningでは、「Q値」という値が価値とみなされます。

Q値を学習し、価値が高まるように導くアルゴリズムがQ-Learningです。成功率が高く、使用頻度の多い手法です。

②SARSA

SARSAもQ-Learningと同様に、Q関数を学習します。異なるのは学習の仕方です。Q-Learningは期待値の見積もりを推定で得た値の最大値で置き換えます。

一方、SARSAでは実際の行動から得られた結果を使用し、期待値を見積もります。したがって、価値の更新にはエージェントが再度、行動を実施する必要があります。

③モンテカルロ法

環境や行動基準が不明の場合に役立つのが「モンテカルロ法」です。モンテカルロ法では、報酬が得られるまでランダムで行動を繰り返し、期待値を推定します。つまり、実施した行動やその際の状況に対して価値を分配する学習法です。

強化学習のライブラリ5選

強化学習をおこなうには、ライブラリが便利です。ライブラリには、誰もが扱いやすいように一連の処理があらかじめプログラムされているからです。

汎用性にすぐれたライブラリを使って、効率よく強化学習を実装しましょう。使用頻度の高いライブラリを5つ紹介します。

①OpenAI Gym

「OpenAI Gym」を使えば、初心者でも簡単に強化学習をはじめられます。OpenAI Gymは非営利団体によって公開されている強化学習アルゴリズムを開発したり、比較したりするためのツールキットです。

ゲーム感覚で強化学習を学べるうえに、他のライブラリとの連携も可能です。強化学習に興味のある方は、OpenAI Gymからはじめてはいかがでしょうか。

②RLlib

「RLlib」は強化学習用のオープンソースライブラリです。数多くのアルゴリズムを高い自由度で扱えるのが特徴のRLlib。Q-Learningのアルゴリズムが実装されています。しかし、コードが複雑で使用の難易度はやや高めです。

③PFRL

「PFRL」はゲームAIや自動運転に使用する強化学習に特化したライブラリのひとつです。多層のニューラルネットワークを用いる深層強化学習を実装できます。自動運転やゲームにおけるAIを開発したい場合におすすめです。

④Dopamine

「Dopamine」もゲームや自動運転に活用できる強化学習のライブラリです。人間の脳で作用するドーパミンというホルモンから着想を得たライブラリであるDopamine。Google Brainチームが2018年に公開し、話題になりました。

⑤TensorForce

強化学習用のオープンソースライブラリに「TensorForce」があります。ディープランニングのライブラリとして有名な「TensorFlow」の上に構築されています。

 

ライブラリも利用しながら強化学習をおこなおう

人工知能の一部である機械学習は、教師あり学習・教師なし学習・強化学習の3つにわけられます。この記事ではその中でも、強化学習に焦点をあてて解説しました。

強化学習は自動運転やゲームAIといった、最先端のテクノロジーに利用されており、今後も活躍が期待されます。OpenAI GymやRLlibなど、開発に便利なライブラリも多くあります。強化学習を身につけたいと考えている場合は、ぜひライブラリもマスターしてください。