行動して小さな成功や失敗を繰り返して学習していくのは王道
こんにちわ、こんばんわ。かえるのクーの助手の弟子の「井戸中 瑠璃」(いとなか るり)です。
今回は感想のみの記載です。(個人的には技術よりこちらが重要です)
強化学習は報酬を自分で考えて学習させるのは初めてでした。(いままでは出来合いのものの実行のみをしたことがありました)。また、ひとつの学習の過程をこれほど長時間(連休・週末もいれて5日程度)みていたのも初めてでした。
とても新鮮な驚きを感じました。なるほど、世間で騒がれているのがよくわかります。
学習の経過の感想
感想/第一印象はすぐに忘れるものなので、記憶が新鮮なうちに書いておきます。
今回のSpaceBallでの学習の過程では入門(学習はじめ)、初級(学習序盤)、中級(学習中盤)、上級(習熟)、熟練/洗練(際限なき極みへの挑戦:ECOで無駄がない)の5段階を感じました。瑠璃の認知能力によるものと思われますが、「上級~熟練」への変化以外は見た目にああ、なんか急にできるようになったな。というのが見て取れました。
こちらは模倣学習?
取得する報酬の平均はそれほどかわらなくても、安定してきたり、ちょっとしたところが改善されたり、節目ふしめで見た目にかなりかわった感じがしました。
今回報酬のしくみは途中で変えていませんが、それぞれの熟練度で報酬を変える必要性・有効性をとても感じました。このあたりはやってみたい実験案(妄想)が溢れでてくるので、ネタには尽きない感じです。
やってみたいこと
・報酬の与え方をかえて学習の進み方がどのようにかわるか
・途中で報酬の与え方を急に変えることは支障があるのかどうか。徐々にかえたほうがよいのか。
・観察する対象の次元を上げると、学習のしにくさはどのようにかわるのか。(今回2次元動作を3次元にしただけでもかなり学習の困難性は増したように感じました。Target対象にも学習をさせて「逃げる」ようにしたり、Agentの競争相手を複数準備して競わせたり。。。)
・AgentとTargetではなく、3種類の属性をもった別のエージェントがそれぞれ3すくみ(ぐーちょきぱー)の相性で鬼ごっこするとどのような学習になるのか。etc
・多数のエージェントが相互作用することにより、社会性などの群行動を発現することができるか?
いずれも今回のプログラムの報酬を少し変えるだけで実現できそうです。
・ML-Agentsのように、実行動作部分をC#で記載し、学習、その他をPythonで実現する方法にとても興味をもちました。進化計算部分をpythonで仕込んでC#から簡単なインターフェースで呼び出す方法ができないかも考えてみます。というか誰か汎用的にやっているはずなので、探してみます。またはML-Agentsをハッキングしてみるです?
12f = 奇跡が起きる密度です。
次の一歩を思案中です
一旦進化計算の入門をしてみるか、Unityをもう少し学習するか、ML-Agentsをもう少し理解するか迷っていいます。「じぇねさいど」プロジェクトをすすめるか。。。一度に全部は無理そうなので、もう少し迷ってみます。。。