G検定|深層強化学習|状態表現学習・sim2realなどを分かりやすく解説

G検定、「深層強化学習」の単語を分かりやすく解説。ひよっこDS、りけーこっとん G検定

※本記事はアフィリエイト広告を含んでいます

どーも、りけーこっとんです。

「G検定取得してみたい!」「G検定の勉強始めた!」

このような、本格的にデータサイエンティストを目指そうとしている方はいないでしょうか?

また、こんな方はいませんか?

「なるべく費用をかけずにG検定取得したい」「G検定の内容について網羅的にまとまってるサイトが見たい」

今回はG検定の勉強をし始めた方、なるべく費用をかけたくない方にピッタリの内容。

りけーこっとんがG検定を勉強していく中で、新たに学んだ単語、内容をこの記事を通じてシェアしていこうと思います。

結構、文章量・知識量共に多くなっていくことが予想されます。

そこで、超重要項目重要項目覚えておきたい項目という形で表記の仕方を変えていきたいと思いますね。

早速G検定の中身について知りたいよ!という方は以下からどうぞ。

具体的にどうやって勉強したらいいの?
G検定ってどんな資格?

そんな方は以下の記事を参考にしてみてください。

なお、りけーこっとんは公式のシラバスを参考に勉強を進めています。

そこで主な勉強法としては

分からない単語出現 ⇒ web検索や参考書を通じて理解 ⇒ 暗記する

この流れです。

※この記事は合格を保証するものではありません

大項目「ディープラーニングの手法」

G検定のシラバスを見てみると、試験内容が「大項目」「中項目」「学習項目」「詳細キーワード」と別れています。

本記事は「大項目」の「ディープラーニングの手法」の内容。

その中でも「深層強化学習」というところに焦点を当ててキーワードを解説していきます。

G検定の大項目には以下の8つがあります。

・人工知能とは
・人工知能をめぐる動向
・人工知能分野の問題
・機械学習の具体的な手法
・ディープラーニングの概要
・ディープラーニングの手法
・ディープラーニングの社会実装に向けて
・数理統計

とくに太字にした「機械学習とディープラーニングの手法」が多めに出るようです。

今回はディープラーニングの手法ということもあって、G検定のメインとなる内容。

ここを理解していないと、G検定合格は難しいでしょう。

ここから先の学習の理解を深めるために、そしてG検定合格するために、しっかり押さえておきましょう。

シラバスはこちらからご覧になれます。

今回は、深層強化学習を効率的に進める工夫、ロボットに応用するときにはどうするのかなどを押さえていきたいと思います。

今までの記事で、見たことある単語も出てくるとは思いますが、復習の意味も兼ねて触れていきますね。

状態表現学習

状態表現学習とは、環境を学習しておくことで、深層強化学習の効率を高める手法。

ロボット・車など、実際の環境で動く実態があるものに搭載するときに必要になる技術ですね。

工場にロボットが導入される、自動運転など、実例を挙げればより分かりやすいでしょう。

正しくロボットや車を動作させようと思ったら、AIが環境の状態を把握しないといけませんよね。

そのために、センサやカメラを使って情報を集めます。

ところが、そのまま使うとデータ量が膨大になりすぎて、学習に時間がかかったりと非効率。

そこで、環境の状態をあらかじめ学習しておくことで、学習効率を高めようとしたのが「状態表現学習」。

すると環境の状態データが少なくなり、計算が早くなるといった感じですね。

報酬成形

報酬成形とは、その名の通り報酬を形作って定義すること。

ロボットに実際に強化学習を実装するとなると、「報酬」が問題になります。

まだゲームなどであれば、点数をつけるなどして学習できたので簡単でした。

これがロボットへの実装となると、適切な行動をさせるのが非常に難しいんですね。

最終目標の途中の状態や行動に、今まで通りの価値を付与すると局所的に最適な方策を学習してしまいます。

もちろん、最終目標を解けたかどうかのみに着目しては、途中の学習ができません。

そこで通常の報酬値に、追加の値を加えることで学習速度を向上させることを報酬成形といいます。

マルチエージェント強化学習

マルチエージェント強化学習とは、複数のエージェントが協調/競合するような状況における強化学習のこと。

普通の強化学習では、エージェントが一つであることが前提でした。

つまり学習して行動する対象が一つだったんですね。

これは迷路やゲームなどを行うときには、行う対象が一つなので十分だったんです。

しかし、工場の生産ラインのロボットやサッカーを行うロボットがあった場合はどうでしょうか。

複数のロボット(エージェント)が協力しないと製品は生産できないし、ゲームに勝てませんよね。

サッカーの場合、敵チームとは敵対した行動をしないと勝てません。

このように現実世界になると「エージェントが一つ」ということが少なくなります。

そこでマルチエージェント学習を行うと、うまく学習できるよというものですね。

他のエージェントが報酬を得たときに、他のエージェントにも間接的に報酬を与えることで学習を進めるようです。

オフライン強化学習

オフライン強化学習とは、過去に集めたデータのみを使ってオフラインで強化学習を行うこと。

今まで説明してきた強化学習は、オンライン強化学習と呼ばれることもあります。

環境中でエージェントが行動しながら、逐次方策を検討していくような形だからですね。

しかし医療・自動運転・ロボティクスなどでは安全面でのリスクや、経済的なコストの観点からオンライン強化学習が難しい場合があります。

自動運転や医療現場で、ロボットがその場で逐次学習しながら行動を決めてたら危ないと思いませんか?

学習途中のロボットの間違った判断が、事故や人命を落とすことにつながりかねません。

なので、あらかじめ実環境から得られた過去のデータのみを使って強化学習しておこう、ということで現れたようですね。

sim2real

sim2realとは、シミュレーションで方策を学習してから実環境に適用すること。

強化学習は基本的に、実環境でエージェントを動かしながら方策を学習しますよね。

しかし毎回エージェント(ロボット)を実際に作成して、実際の環境で動かして、を繰り返すと時間も費用もかかってしまいます。

そこでシミュレーション環境から方策を学習すれば、コストを抑えることができ、使いやすくなるよねというのがsim2realです。

しかし、問題点があります。

それは、シミュレーションでは実世界のすべての側面を正確に把握することはできないということ。

つまり、シミュレーションで学習したモデルが実世界ではうまく機能しないことがよく起こるようです。

この問題を解決するために、いくつかの手法が提案されました。

System Identification

System Identificationとは、物理システムの数学的モデル(シミュレータ)を構築すること。

少し難しく書いてしまいましたが、シミュレーションをきちんとやろうね、ということです。

シミュレーションの際には、様々な値(位置、温度、速度、密度など)を入力します。

この値を正確にすれば現実に近づくのでは、という発想ですね。

しかし、そもそもシミュレーションで現実世界を完璧に表現するのが難しいからこそ、sim2realの問題が生じているのでした。

なので、シミュレーションの入力値をより詳細に考えるというのは得策ではありませんね。

ドメインアダプション

ドメインアダプションとは、sim2real問題を解決する転移学習のような手法のこと。

シミュレーションで得られる結果データの分布を、実際のデータ分布と一致するように更新されるようです。

ただ、この手法は実際のデータ分布がないと適用できません。

そして実際のデータを集めるのは、往々にして大変だったり、コストがかかったりします。

そこで、ドメインランダマイゼーションが注目されているようです。

ドメインランダマイゼーション

ドメインランダマイゼーションとは、シミュレーションで様々な値をランダム化することでsim2real問題を解決する手法。

ランダム化した値で、何回もシミュレーションを行います。

すると様々な条件でシミュレーション環境を構築できますよね。

これらすべての条件で機能できるように方策を学習します。

これによって、様々な環境上でも適用できるモデルが学習できたことになりますよね。

すると、実環境もランダム化したパラメータ環境の中の一種類ととらえることができ、うまく動作することが期待できるようです。

残差強化学習

残差強化学習とは、最初に初期方策を用意し、最適な方策との差を強化学習によって学習する手法のこと。

ここで、初期方策は経験則、計算など人間の裁量によって決めるようですね。

最適な方策と初期方策との差を「残差」と呼ぶことから、残差強化学習というようです。

通常の強化学習では、初期方策はランダムだったり、方策の探索は完全な0からのスタートでした。

そこで「最初にある程度正しい方策(動き)があれば、最適な方策までの時間が短くなるのでは?」という考えのもと、考案されたのが残差強化学習。

例えば、歩くロボットを考えましょう。

通常の強化学習では、「手足をランダムに動かす」という初期方策から始まるので「立って一歩踏み出す」までの時間が長いです。

残差強化学習では、経験や計算で「立てる」「一歩踏み出せる」方策を初期方策とします。

そうすることで、最も時間がかかる部分を短縮でき、効率的に強化学習が進むようですね。

2019年にはプリンストン大学や Google 等のチームが、TossingBot という研究を発表したようです。

まとめ

今回は大項目「ディープラーニングの手法」の中の一つ「深層強化学習」についての解説第二弾でした。

本記事をまとめると以下の3つ。

状態表現学習
報酬成形
マルチエージェント強化学習
オフライン強化学習
sim2real

ドメインランダマイゼーション
残差強化学習

以上が大項目「ディープラーニングの概要」の中の一つ「深層強化学習」の内容第二弾。

ディープラーニングに関しても、細かく学習しようとするとキリがありませんし、専門的過ぎて難しくなってきます。

そこで、強化学習と同じように「そこそこ」で理解し、あとは「そういうのもあるのね」くらいで理解するのがいいでしょう。

そこで以下のようなことが重要になってくるのではないかと。

・ディープラーニングの特徴(それぞれの手法はどんな特徴があるのか)
・それぞれの手法のアルゴリズム(数式を覚えるのではなく、何が行われているか)
・何に使用されているのか(有名なもののみ)

ディープラーニングは様々な手法があるので、この三つだけでも非常に大変です。

しかし、学習を進めていると有名なものは、何度も出てくるので覚えられるようになります。

後は、新しい技術を知っているかどうかになりますが、シラバスに載っているものを押さえておけば問題ないかと。

次回は同じく「ディープラーニングの手法」の「深層強化学習」第三弾。

覚える内容が多いですが、りけーこっとんも頑張ります!

ではまた~

続きは以下のページからどうぞ!

コメント

タイトルとURLをコピーしました