こんにちは､ 人工知能の講座にようこそ｡
今日は時間差の話です｡
さて､ このチュートリアルは非常に重要です｡ なぜなら､ 時間差はQ学習アルゴリズムの心臓部であり､ 魂なのです｡
実はこのように､ これまで学んできたことが､ 学習内部で活かされているのです｡
では､ 見てみましょう｡
決定論的探索と非決定論的探索について話したとき､ この場合､ エージェントが上に行きたいと思えば､
間違いなく上に行く､ と言ったことを思い出してください｡
そして､ この場合､ 彼が上に行きたいと思ったとき､ 10％の確率で行くことになるのです｡
彼が右に行く確率は10％､ 右に行く確率は80％と残されている｡
直進する｡
まあ､ この数字はもちろん恣意的なもので､ 違うこともあり得ますが｡
そして､ この全体のコンセプトは､ 異なる問題で異なる可能性があります｡
つまり､ エージェントがどの方向に動くかは関係なく､ この環境の中で､ エージェントのコントロールが及ばないランダムなことが起こっているのです｡
その結果､ どんな効果があったかというと､ 覚えていらっしゃるように､ 決定論的な例では､ 値を計算するのが非常に簡単だったのです｡
まあ､ 必ずしもいつもすごく簡単というわけではありませんが｡
しかし､ 私たちの場合は､ ベルマン方程式を使って単純に計算すればいいのです｡
そして､ 私たちは正確な数値を持っていました｡
それから､ 覚えていらっしゃると思いますが､ 非決定論的探索の例でのこれらの値は､ 私の頭の中にあるものであることを非常に慎重に述べました｡
計算されないのです｡
その時､ 私は「非常に複雑なので､ 計算するのはやめよう」と言いました｡
でも､ コンピュータはできるんだから､ この価値観は私が作ったものでいいじゃないか､ ということで進んでいったんです｡
しかし､ 彼らは仕事をやり遂げた｡
コンセプトをよく理解させてくれたので､ 今度はそれに少し戻って､ 具体的に何が起こっているのかを理解したいと思います｡
非決定論的な例や､ 一般的に言えば､ このような問題､ 環境､ それを通過するエージェントにおいて､ これらの値を計算することがなぜそんなに難しいのでしょうか？
なぜ､ このような値を算出するのが難しいのでしょうか？
考えてみると､ 例えばエージェントがここから右に移動するとき､ 必ずしもいつもその方向に移動するとは限りませんからね｡
時には直進せずにto oneに行く可能性もある｡
そこで､ これを北東､ 南西､ ソなどと呼ぶことにしよう｡ 西へ行くのではなく､ 南へ行くこともある｡
そして､ たとえばここから､ 北へ行くのではなく､ 東へ行くこともある｡
とても残念です｡
だから､ ここでは東に行くのではなく､ 南に行くこともある｡
そして､ ここでは北に行くのではなく､ 時には東や西に行くこともある｡
そしてここでは､ 北へ行くのではなく､ 時には東へ､ 西へ行くこともある｡
だから､ だから､ そうなんだ｡
この値を計算するためには､ この値が何であるかを知る必要がある｡
しかし､ 面白いのは､ この値を計算するためには､ この値が何であるかを知る必要があることです｡
つまり､ ここでは多くの再帰的な処理が行われているため､ これらの値が何であるかを定義することはできません｡
そのうえ､ この再帰は決定論的なものではありません｡
このようになることもあるのです｡
上に行くのではなく､ 右に行くこともある｡
上に行くのではなく､ 左に行くこともある｡
本人が上がりたいと思ったときに上がることもある｡
だから､ 偶然に左右されるのです｡
そして､ おそらく何度も捜査官はこの道を通り､ 上へ､ 上へ､ 上へ､ 上へと進んでいくでしょう｡
そして､ ここから先は常に上昇するものだと考えているはずです｡
そうすると､ 国家の価値が上がる､ 良くなる､ そして突然落とし穴に落ちて､
この価値が下がってしまうのです｡
したがって､ これらの値の計算全体には､ 確率的またはランダム性があることがおわかりいただけると思います｡
さらに､ この環境にはランダム性が内在しており､ これは意思決定プロセスの印となるからです｡
そこで､ これらの値を計算できるようにするために､
時間差の概念を導入することになります｡
そして､ ここではV値を扱っていましたが､ それ以降､ すでにQ値へと移行しています｡
というわけで､ これからが本番です｡
見ていくことになるのです｡
Q 価値観について｡
思い起こせば､ これがQ値のベルモント式です｡
つまり､ AQ値､ つまりある行動Aを行うことの状態での価値は､ その行動を行った後に得られる報酬に等しいのです｡
だから､ そのアクションを実行した直後に､ プラスアルファで最大値を得て､ 可能な限りの総和のガンマを得ることができる｡
つまり､ 最終的に到達する状態の期待値を得るようなものです｡
思い起こせば､ それが私たちのビルドの方程式だったわけです｡
ここでは､ わかりやすくするために､ 昔ながらの方法で書き直します｡ ストキャスティック・シティを知る前に､
ベルモント方程式について話していた方法で書き直します｡
これは､ 決定論的探索の例でいうところのベルモント方程式で､ 期待値やすべての確率の総和がないわけです｡
それがあたかもどこで決まったかのように持っているだけなんですね｡
どんな状態で終わるんですか？
そして､ その1つの状態で最大値を取っているのです｡
そして､ 書き直す理由は､ 単純に書きやすいからというだけで､ 公式に沿って書き直せば､
私たちも楽になります｡
だから､ この部分をこの部分に置き換えたということだけ覚えておけばいいし､ また､ この表記は多くの文献で見られるので､
他の資料を勉強している人はそちらを参考にすると楽でしょう｡
しかし､ 実は､ ここでいう確率論的アプローチとは､ このようなものであることを忘れないでください｡
このような表記をする代わりに､ 私たちはこれを操作して何が起こっているのかを理解し､ 数式を見るような感じで､
あまりごちゃごちゃしないようにするのが簡単なのです｡
しかし､ もう一度言っておきますが､ 実は､ 私たちが言いたいのは､ ここにある確率的なアプローチなのです｡
それで､ 実はもうすぐ終わるんです｡
では､ その様子をご覧いただきましょう｡
そこで､ 迷路の空白の状態をご紹介します｡
キューバリューがないんです｡
見てみよう｡
あるいは､ そうするかもしれませんが､ 今は空白にしておきましょう｡
ある州だけを見てみましょう｡
だから､ 細胞の1つ､ 具体的にはこの1つです｡
そして､ ここでは､ 例えば､ 上がるという動作に対して､ Q値を計算したものがあります｡
だから､ まだQ値がないわけではないんです｡
私たちは､ そうなんですが､ 何もイラストを描いていないだけなんです｡
シンプルにするために､ 空白にしているだけです｡
でも､ いつの間にか歩いてる年代がいるんですよ｡
そして､ 仮に､ 何らかの方法で､ この状態､ この特定のセルから上または北に行くというQ値を計算し､
その値がQ AsとAであるとします｡
諜報員はこの独房に座っていて､ これからどこに行くのか選択を迫られているのです｡
そして彼はこの､ 北へ向かう行動の価値を知っています｡ それがQ､ S､ Aで､ ここで私は「前」と言っていますが､
その理由は彼が行動を起こす前だからです｡
まだアクションを起こしていないのです｡
だから､ 彼はまだ独房の中にいるんだ｡
そして､ 彼が行動を起こす前に､ ここでの値はQとSであり､ そして今､ 彼は実際に行動を起こしています｡
だから､ 彼がこれがベストだと判断したとしよう｡
彼がアクションを起こすと､ このセルに移動するんです｡
さて､ 次に何が起こるかというと､ 彼が行動を起こした後に､ この値は何なのかを測定することができるのです｡
この値､ つまりその行動をとったことによる報酬の値と､ 今入ったばかりの新しい状態の最大値であるガンマ倍を素数として計算しましょう｡
そして､ se primeで可能なすべてのアクションの中で最大となるように｡
このように､ ここにあるのはアクションを起こす前の値で､
その後でこの指標を計算しました｡ しかし､
前の計算式を思い出してください｡
SNRのQはこうして算出されます｡
この右の部分は､ 別々に計算したものですが､ アクションを起こした後に､ もう一度､ Sと値のQがわかるように､
以前から繰り返し計算していたものなのです｡
だから､ 何か......記憶に残るような価値観ですね｡
だから､ ちょうど私たちが知っている数字のようなものです｡
そして今､ 実行されたアクションの後､ 彼が実際に得た報酬､ エージェントが実際に得た報酬を知り､
この新しい値を計算することができるのです｡
要するに､ この値を再計算しているようなものですね｡
しかし､ 今は新しい情報が入っています｡ 新しい情報とは､ 私たちが得た報酬と､ 最終的にどの状態になったか､
その状態での最大値､ つまり､ 私たちが見ている特定の状態での新しい値なのです｡
では､ その状態であることの価値は何かというと｡
つまり､ 基本的にはSとAのQだが､ 新しい情報が与えられ､ 今度はAのTDとこれら2つの差のTDとして定義される｡
つまり､ ここでは最初の要素がアフターバリューになります｡
つまり､ SとAのQのようなものですが､ それを後から計算し､ 記憶していた前のエッセイとAのQを計算するのです｡
それで､ 問題は､ 両者が異なるかどうかです｡
だから､ 理想は同じであること｡
理想的には､ これは単にこの計算式と同じであるべきです｡
しかし､ これは我々が計算したものではないということです｡
これは､ 経験則からくるもので､ ただ何度も迷路をくぐって計算することで得られるものです｡
そこで､ これまでに思いついたのが､ このようなものです｡
現在のイテレーションとは関係ない｡
これは､ 昔､ 昔ではなく､ 以前､ 迷路の中で繰り返した時に思いついたもので､
一方､ これは今､ 計算したもので､ 同じになる保証はありません｡
迷路に存在するランダム性から､ ある特定のランダムな事象が発生し､ これを計算することができたからです｡
さまざまなランダムイベントが発生しました｡
で､ 今度はそれをこっちで書き換えてみましょう｡
そのまま上に移動させましょう｡
では､ これをどう使うか｡
問題は､ そうか､ この時間的な差があるのか､ ということです｡
これをどう使うか､ なぜ時間差と呼ぶのか｡
まあ､ 時間差というのは､ 基本的に同じことを計算してるからなんだけどね｡
SのQを計算しているわけですから､ その行動のQ値､ ここで計算して､ ここで計算するわけです｡
しかし､ その差は時間です｡
以前､ SNAのQです｡
これがあなたの「Q of S」と「Q of A」であり､ 今､ あなたの新しい「Q of A」です｡
時間軸がずれているのでしょうか？
そして､ もし本当に時間の移動があったのなら､ それをどのように利用すればいいのでしょうか｡
まあ､ 一つ言えることは､ そうですね､ 私たちのQ of Aは､ この新しい値は古い値と等しくないということです｡
そこで､ 古いものを処分し､ 古いものは忘れて､ これを新しい値として使うことにします｡
しかし､ それではスマートではない｡
そして､ その理由は､ 私たちの環境では､ 時にランダムな出来事が起こりうるからです｡
そして､ 私たちの昔のQ＆Aは､ 一貫して80％の時間で起こるようなことが表現されていたとしたらどうでしょう｡
そして､ 今回の新作は､ まさに偶然が重なって起きたものです｡
その場合､ その大部分を担っているものを捨てることになる｡
そして､ 10％や20％の確率でしか起こらないことに置き換えるのです｡
それは最善の方法ではないでしょう｡
だからこそ､ それこそQの価値観を完全に変えたくはないのです｡
少しずつ､ 少しずつ変化していくような使い方をしたい｡
そして､ この時間差を具体的に利用するわけです｡
そこで､ 私たちは､ ここに私たちのQ ofとAを取り､ このような方法で更新する式があると言います｡
クルスナの古い値を､ 時間差のα倍を足していくのです｡
だから､ アルファは私たちの学習率になるのです｡
これは､ 今回新たに導入するパラメータです｡
それだけ､ アルゴリズムの学習が早いということです｡
つまり､ 基本的にはこの差額を､ それが何であれ､ 前回のQ Wednesdayに上乗せしているのです｡
さて､ この式はおそらく何の意味もなさないでしょうし､ 見ただけでは､ ここに水曜日のQ､ ここにSとAのQがあるので､
何の意味もなさないのです｡
同じものだから､ たぶんお互いに否定し合うはずなんです｡
でも､ これをちょっと違う形で書き換えてみるんです｡
だから､ もう一度だけお見せします｡
だから､ これらの数式に時間を足しているだけなんです｡
つまり､ 前のQ Tマイナス1､ 前のQ､ Tマイナス1､ 新しいのがここにある｡
ここにも丸があるはず､ ここにも丸があるはず｡
でも､ 気にしないでください｡
そして､ ここにはアルファ時間差､ 新しい時間差､ 現在の時間差があります｡
だから､ 私たちが何をしているのかがわかるんです｡
つまり､ 現在のQは以前のQに時間的な差を加えたものに等しいとします｡
こうしてQ値が更新されていくのですが､ Q値とは何か､ ガンマとは何か､ Rとは何か､ このようなことはすでに学習済みなので良いのですが｡
あとは､ 以前のQ値を持っていることが確認できればよいのです｡
そう､ それがいいんです｡
そして､ 実際に行動を起こしたときに何が起こるかというと､ エージェントが行動を起こすと､
報酬を得られることがわかり､ ある状態に行き着くということです｡
そして､ それをもとに計算することができるのです｡
嗚呼｡
では､ 私が行ったあの技のQ値は何なのか､ 何であったろうか､ 何であるべきか｡
そして今､ この部分です｡
古いQ値を引くと時間差になり､ 今度はα倍の時間差を取る必要があります｡
それでQ値を調整するんですね｡
それでQ値を調整するのです｡
最後に､ これは何が起こっているかを理解するのに十分なのですが､
さらに物事を明確にするために､ あるいはさらに物事を混乱させるために､ この時間差､
あるいはこの時間差をここに取り込みます｡
この式に差し込むのです｡
そこで､ この部分を全部､ この式に突っ込んでいくと､ 巨大な式ができあがります｡
それでは､ どうぞ｡
そこに我々の方程式がある｡
つまり､ これは時間差を完全に書き出した方程式なのです｡
で､ なんでこんなことを書き出したかというと､ まず､ これは他の文献を勉強すれば出てくると思うんです｡
そして2つ目は､ あるものを少し複雑にしてしまうということです｡
彼は数式を長くしているだけでなく､ いくつかのことを少し明確にしています｡
例えば､ ここにアルファの果たす役割があるわけです｡
これを見ると､ よくわかると思います｡
Q Tマイナス1｡
そして､ これです｡
Q Tマイナス1にマイナスの符号をつけた｡
つまり､ アルファが1に等しいとすると､ ここに1を入れれば､ これとマイナスになるわけです｡
だから､ お互いに潰し合う｡
そして､ この部分しか残らない｡
それが何を意味するかというと､ まさに､ 「よし､ 新しい値が出たぞ」という､ 本来あるべき状況です｡
Qの値を新しい値に更新して､ それまで持っていたものは忘れてしまいましょう｡
というのも､ ここにはランダムな事象があり､ 段階的に更新していきたいからです｡
一方､ αを0にすると､ この部分を完全に忘れてしまい､ 新しいqや現在のqは常に前のqと等しくなってしまいます｡
だから､ 何も学べないんです｡
つまり､ 迷路の中で何が起ころうとも､ 自分の価値はずっと前に決まっていて､ それを守るだけだから問題ないのです｡
だから､ アルファはゼロであってはならないし､ 1であってはならないのです｡
その中間であることが望ましい｡
そして､ ゆっくり､ 一歩一歩学んでいくことで､ あなたやエージェントが迷路を進むにつれて､
この時間的な差異を獲得していくことができるのです｡
そして､ ゆっくりと､ しかし確実に､ この価値は更新されていくことでしょう｡
更新しました｡
そして､ 最終的に何が起こるかというと､ ある時点で､ うまくいけば､ アルゴリズムが収束するのです｡
つまり､ この時間差はどんどんゼロに近づいていき､ 最終的にはゼロに非常に近いか､
あるいは0000にさえなってしまうということなのです｡
つまり､ 毎回､ 新しい値､ あるいは新しく計算された値､ つまり今回ではなく､ ステップを踏んだ後に仮にそうなっていたはずの値が､
以前の値とちょうど等しくなるのです｡
そして､ 1になって､ ゼロになる｡
つまり､ 時間的な差がゼロになったら､ アルゴリズムが収束したことを意味し､
必ずしもQ値を更新し続ける必要はなく､ 何が起こっているのかを更新し続けることができるのです｡
ここで注意しなければならないのは､ キュー値の更新を継続的に行いたいのは､
環境が常に変化している場合だけだということです｡ つまり､ ランダムな確率的事象があるだけではなく､
環境自体が変化し､ モーフィングし､ 時間と共に変化している場合です｡
つまり､ すべてを学習して最適なポリシーを導き出すことは不可能で､ 最適なポリシーも環境に応じて常に変化しているため､
常に学習が必要なのです｡
その場合､ 時間差の計算とQ値の計算を続ける必要があります｡
でも､ それ以外は､ 余計にややこしいという感じですね｡
その他､ Q値の更新方法はこのようになっています｡
これがQ学習アルゴリズムの主要な式で､ これはその拡大版のようなものですね｡
これで､ なぜベルマン方程式があるのか､ それが表すQ値だけでなく､ エージェントがどのようにQ値を更新し､
その環境で何が起こっているかを正確に把握し､ 最適なポリシーを導き出すのか､ すべてが理解できるようになったはずです｡
今日のチュートリアルを楽しんでいただき､ コア・バリューの背後にある基本的な概念と直感を持ち帰っていただければと思います｡
また､ 時間的差異とはどのような概念なのか､ なぜそれが重要なのか､ なぜエージェントをゆっくりと訓練し､
彼らが活動する環境を理解させるのに役立つのか､ について説明します｡
また､ 時間差についてもう少し学びたいということであれば､ 時間差の手法による予測の学習が非常に人気のある論文です｡
1988年のリチャード・サットンによるもの｡
すでにリチャード・サットン氏にも参考にしていただいていますが､ これもその一つです｡
そして､ 実は彼は本を持っている｡
もし､ あなたが彼の文体やコミュニケーションのスタイルに興味を持たれたなら､
彼の本もチェックしてみてください｡
読んでないけど､ そんなイメージです｡
同時に､ これは論文へのリンクで､ そこでは時間的な違いについてもう少し､ いや､ おそらくもっと多くのことを学ぶことができます｡
そして､ 今日のチュートリアルを楽しんでいただき､ 次回お会いするのを楽しみにしています｡
それまでは､ Iをお楽しみください｡