こんにちは､ 人工知能の講座にようこそ｡
そして､ いよいよ楽しい企画に突入です｡
ディープラーニングに突入
わかりました｡
では､ 見てみましょう｡
前回は､ キー・ラーニングとその内容についてお話ししました｡
そして､ 年齢や環境､ エージェントがこちらの状態をどう見るか､ などを学びました｡
行動を起こす､ 報酬を得る､ 新しい状態に入る｡
そして､ そのフィードバックループに基づいて､ 彼らは行動を起こし続け､ そこから学び､
より良い行動が何かを理解するのです｡
そこで､ この迷路の基本的な例を見てみました｡
私たちは､ エージェントが環境を探索し､ 状態の価値が何であるかを理解することを理解しました｡
そして､ 状態の価値を扱うことから､ 行動の価値､ あるいはQ値の価値を扱うことに移行したのです｡
そして､ それをもとに､ 非確率的な環境における計画の仕組みと､ 確率的な環境における政策の仕組みを理解したのです｡
そして､ これはポリシーの一例です｡
以上､ 基礎学習で説明したことを簡単にまとめてみました｡
そして今度は､ これがディープラーニングによって､ ディープラーニングを加えることによって､ どのように次のレベルに進むことができるかを見てみましょう｡
これは私たちの環境です｡ これから行うのは､
今ある行列で基本的な計算を行うだけでなく､
軸を追加することです｡
そして､ ここに列の番号を付けます｡
1､ 2､ 3､ 4､ ここに列の番号を付けます｡
1､ 2､ 3
こうして､ すべての状態は､ 2つの値x1とx2の組で記述できるようになった｡
つまり､ エージェントが入る可能性のあるこれらの正方形のうち､ どれかはx1x2で記述することができる｡
例えば､ 今､ 彼はx1が1でx2が2の正方形にいるわけですが､ この正方形は､ x1が1､ x2が2です｡
つまり､ どのような状態でも表現できるのです｡
もちろん､ これは状態を記述する環境を非常に単純化したものですが､ それでも､ この場合はうまくいきます｡
そして､ この状態をニューラルネットワークに送り込むことができるようになったということです｡
ところで､ コースの最後に､ 附属書､ 附属書1と附属書2があることを申し添えておきます｡
このセクションをうまく進めるために､ 附属書の1番､ 人工ニューラルネットワークをチェックして､
その仕組みを理解しておくと､ ここで掘り下げなくてもよくなります｡
そして､ 人工ニューラルネットワークの仕組みの知識の恩恵を利用すればいいのです｡
そして､ この状態の情報をニューラルネットワークに送り込み､ その情報を処理するわけです｡
つまり､ X､ Y､ xの2つは､ ニューラルネットワークの構造によっては､ 隠れ層が複数あったりするわけです｡
そのあたりは､ 実践的なチュートリアルの中で考えてみてください｡
しかし､ 最後に4つの値を吐き出すように構成します｡ この4つの値が､ 実は私たちのキューの値になるのです｡
つまり､ どのような行動をとるべきかを決定する価値観です｡
さらにこのチュートリアルでは､ これらのQ値がどのようにアクションを決定するために使われるかを正確に見ていきます｡
しかし､ ここでのポイントは､ もはや学習という観点からこの迷路だけを見ているわけではない､ ということです｡
迷路の状態をディープニューラルネットワークに入力し､ 手がかりとなる値を得ているのです｡
そしてそして､ 最後はやはりアクションを考えます｡
やはり､ どのようなアクションが必要なのかを理解することですね｡
そして､ これらについては､ さらに詳しく説明します｡
しかし､ 今問題なのは､ なぜなのか？
なぜ､ こんなことをするのか？
なぜ遵守するのか？
その最初の学習方法がすでにうまくいっていたのに､ なぜこんなに複雑にしているのでしょうか｡
その理由は､ 学習がこの非常に単純化された環境で行われていたからで､ コンセプトをよりよく理解するために､
今のところこの非常に単純化された環境との取引を続けているのです｡
しかし同時に､ より複雑な環境では､ その単純な学習はもはや通用しない｡
そして､ 例えば､ 人工知能がドゥームを作ったり､ ブレイクアウトなどのアタリゲームをプレイしたりする自動運転車や､
ロボットが歩き回ってアクションを起こすなど､ より高度な強化学習的なものについても話しています｡
いずれも基礎学力が不足している､ 強くないということです｡
それらの課題をクリアできるほどのパワーはない｡
そして､ ディープラーニングのコースで見てきたように､ 私たちのデプロイメントコースに参加したり､
アネックスのセクション､ アネックス1号と2号をやったりすれば､ ディープラーニングが単純学習はもちろん､
どんな種類の機械学習よりも圧倒的に優れていることが本当によくわかると思います｡
そのため､ ここではディープラーニングの力を活用しています｡
つまり､ 環境に関する情報を値のベクトルとして送り込んでいるわけです｡
だから､ この場合は､ ただに｡
値をディープニューラルネットワークに
そして､ それを使って､ エージェントが取るべき行動を決定するためのアクションを実行しているのです｡
これが､ 私たちがなぜこのようなことをしているのか､ その概要のようなものです｡
では､ 単純な学習からディープラーニングに移行する際に､ キーとなる学習の概念がどうなるのか､
もう少し詳しく見てみましょう｡
そこで､ 前回の直感チュートリアルでご覧いただいたように､ 時間差学習の基礎となるこのようなスライドがありました｡
これが時間差の計算式で､ 基本的にそうなのでスルーしてしまいましょう｡
つまり､ 青い矢印で示した状態のエージェントがいて､ 例えば「上がる」というキュー値に対して､
時間差がどのように働くかを理解していたのです｡
そして､ ここで見たのは､ これがディープラーニングではなく､ シンプルラーニングにおけるものである前に､ です｡
これを簡単な学習で｡
私たちが見たのは､ エージェントがこの上がるというアクションを学習した､ ある色相の値を持つ前のものでした｡
そして､ このような行動を起こして､ 上を目指すことにしたわけです｡
そして､ この行動をとった直後に､ この状態でこの行動をとったことに対する報酬を得る､ それがその報酬です｡
さらに､ 今､ 彼は､ 新しい行動の､ すべてのキューの値の最大値である､ 現在の状態の値を評価することができます｡
彼は新しい状態の素数を素数とし､ 我々はそれにガンマの減衰係数を掛けることができる｡
つまり､ これは本質的に､ その行動をとるための新しい手がかり､ あるいは経験的な手がかりのようなものなのです｡
そして､ この2つは同じであることが理想です｡
つまり､ この状態でのこの行動に関する記憶の中の手がかりの値は､ 実際の報酬と､
ガンマ時間､ つまり最終的に置かれた状態の値と等しくなるはずなのです｡
したがって､ 時間差を計算するのもそのためです｡
彼が手に入れたもの､ 彼が考えていたもの､ 彼が期待していたものを差し引いて得たものを､ 私たちは手に入れます｡
片方を引くと､ 時間差になるんです｡
そして､ 学習率αを使って､ Q値､ 新しいキュー値を時間差で調整するのですが､ αの係数で調整します｡
それが､ シンプルなキュー学習の本質なんですね｡
では､ ディープラーニングでどう変わるのかを見てみましょう｡
スライドを見ながら､ 何が起こっているのかを確認することができます｡
つまり､ ディープラーニングでは､ 前のスライドで見たように､ ニューラルネットワークが4つの値を予測することになります｡
このチュートリアルの後半で説明するように､ ニューラルネットワークは4つの値を予測しますが､ 与えられた状態で可能なアクションが多ければもっと多くの値を予測するかもしれません｡
しかし､ この場合､ 動作は直立､ 左､ 下の4つしかないことが分かっています｡
そして､ ニューラルネットワークは､ このうち4つの値を予測することになるわけです｡
だから､ ディープラーニングの場面では､ インはないでしょう｡
大切なのは､ 「前も後もない」ということを理解することです｡
そして､ このことをもう少し詳しく知ることができるのです｡
つまり､ ニューラルネットワークはこれらの値のうち4つを予測し､ その後どうなるかではなく､ ニューラルネットワークはこの正確な値と比較するのです｡
しかし､ 前のステップで計算したのはこの値である｡
だから､ エージェントがこの正方形にいた前の時間では｡
例えば､ ある日､ エージェントが再びこの正方形の中にいて､ 以前この値を計算したとしましょう｡
つまり､ ずっと前の時間に､ エージェントがこの値を計算し､ 次にエージェントがこの値を未来のために保存し､
そして今､ 未来がやってきたのです｡
今､ 彼は再び広場にいて､ 今度は予測されるこれらのQ値を持っています｡ そのうちの1つは､
上に行く4つの値です｡
そこで今度は､ 予測されたQの値と､ 前回記録したこの値とを比較することになる｡
そして､ なぜそれが重要なのか､ 今すぐ正確に理解することができます｡
ここで重要なのは､ この特定の広場に警官が来る前ではなく､ この特定の時間に､
ニューラルネットワークを使って予測したQ値を取っている､ ということです｡
そして､ その値と､ 彼がこの広場ですべての状況を判断したときの値を比較しているのです｡
そして､ 前回と同じく実際にこのアクションを行ったというわけです｡
そうそう､ そうなんです｡
では､ これがニューラルネットワークでどのように機能するのか､ その理由を見てみましょう｡
なぜ､ そんなふうになるのでしょうか｡
今は少し複雑に聞こえますが､ 簡単に説明しましょう､ ね､ ちょっとだけ｡
このニューラルネットワークに環境の状態を入力し､ 隠れ層を経由しているわけです｡
そうすると､ こういう出力で出てくるんです｡
q1､ q2､ q3､ q4｡
その特定の状態において､ ニューラルネットワークが予測する可能性のある行動の手がかりとなる値である｡
それがQ値です｡
じゃあ､ 私たちは｡
ターゲットと比較すると､ このターゲットはまさにそうで､ ここに戻ると､ これがターゲットです｡
つまり､ これが予測された値なのです｡
それから､ でも､ 前回の広場での目標があることもわかっています｡
同じアクションでも､ 例えば上という目標があるんです｡
ここではターゲットを決めて､ 比較するわけです｡
つまり､ 第1四半期とその目標を比較しているわけです｡
Q Twoと以前の目標値との比較をしています｡
Q 3対目標｡
Q 4対目標｡
そして､ この部分は､ ニューラルネットワークやエージェントが､ ディープラーニングによって､ よりうまく空間を通過する方法を学習しているところなのです｡
そして､ ここで重要なのは､ 「まだ応募している」という点です｡
Q 学習といっても､ 単純な学習では､ 時間的差異を通じて学習するわけですが､ これは非常にわかりやすく､
すでに説明したとおりで､ もうかなりわかっていると思います｡
しかし同時に､ ディープラーニングにおいて､ ニューラルネットワークはどのように学習するのでしょうか｡
ニューラルネットワークは､ 重みを調整することで学習していきます｡
ですから､ 単純なキー学習の概念を強化する概念を､ ニューラルネットワークの実際の働き方に適応させなければならないのです｡
そしてそれは､ 体重をアップデートすることで実現します｡
そして､ ここで考えようとしているのは､ このことなのです｡
その時間差の概念をどのようにニューラルネットワークに適応させれば､ ニューラルネットワークの力をフルに発揮できるのか｡
そして､ 今のところ､ こんな感じになっています｡
ここで環境状態を入力し､ ベクトルをニューラルネットワークに通すと､ Q値の予測値が得られます｡
そして､ エージェントがその状態であった前回から､ これらがあります｡
Q ターゲットを教えてください｡
Q それぞれの行動に対して､ ターゲット1､ 2､ 3､ 4を設定します｡
ということで､ OKまで来ましたので､ それぞれを比較してみましょう｡
ここから先は､ ニューラルネットワークの知識があれば､ とても簡単に理解できるようになります｡
もう一度言いますが､ それはすべて別館での話です｡
その1､ ここでLとなる損失を計算し､ 私たちは
Q ターゲットこれ一本からQマイナスこれ一本｡
それを四角くするんです｡
つまり､ それぞれの二乗差で､ それらを合計するのです｡
そこで､ これらのQ値と目標値の二乗差の和をとり､ それを合計したものが損失となるわけです｡
理想的には､ 時間差学習のときと同じように､ ちょっと戻って､ 理想的にはこれがこれと等しくなるようにと言ったのを思い出して､
時間差はゼロになるようにしたいのです｡
つまり､ 基本的にエージェントは､ エージェントが予測するQ値を正確に予測しているということです｡
あるいは､ 記憶があるというのは､ まさに環境の描写です｡
そのため､ エージェントはかなり上手に環境をナビゲートすることができます｡
そうですね｡
サプライズがない｡
この時間的な差異が非常に正または非常に負である限り､ 驚きがあるのです｡
しかし､ もし時間的な差がゼロなら､ 彼は環境をよく知っているので､ 何が起こっているかを予測することができるし､
できる｡
それゆえ､ 彼の政策は非常に優れたものとなり､ それをナビゲートすることができるようになるのです｡
だから､ ここでも同じこと｡
だから､ このロスを限りなくゼロに近づけ､ しかも小さくしたいのです｡
だからこそ､ これからニューラルネットワークの本当の力を発揮していこうというところです｡
そこで､ この損失を取り､ 逆伝播または確率的勾配降下法を用いて､ ネットワークを通じて損失を受け渡し､
バックまたはバック､ ネットワークを通じて伝搬し､ 確率的勾配降下法を介して受け渡すことにします｡
ネットワーク内のこれらの概要の重みを更新して､ 次にこのネットワークを通過するときには､ 重みがすでに環境を少しよく説明するようになっている､
まさにそのような仕組みです｡
つまり､ このように計算され､ 損失が計算され､ それがネットワークに伝搬されるのです｡
ウェイトが更新される｡
そして､ 次にここに来たらまたこうなって､ ここに来たらまたこうなって､ ということが繰り返されるのです｡
そして､ このエージェントはそうやって学習していくのです｡
つまり､ エージェントの脳であるニューラルネットワークが学習することで､ 環境に対する説明力が高まり､
エージェントは環境をナビゲートできるようになるのです｡
記述的環境と言ったのは､ 基本的には､ エージェントがいる環境の状態を入れると､
実際のキュー値にどんどん近づいていく可能性が高いということです｡
それは､ 私たちが求める重要な価値観と､ 正しい行動を見出すためです｡
それは､ このQターゲットが実際に経験的に導き出されたものだからです｡
では､ 彼はどうやってこのかわいいターゲットを見つけているのでしょうか？
それは､ 実はこれなんです｡
だから､ 彼は実際に観察しているのだ｡
では､ この一歩を踏み出したら､ どんなご褒美があるのでしょうか？
それから､ この状態の価値は何なのか？
つまり､ 以前Qラーニングで見た単純な学習の直感と同じことです｡
それを試行錯誤しながら学習し､ 予測される手がかりの値がどんどん近くなるようにネットワークを構築したり､
重みのネットワークを更新していくわけです｡
ターゲットを近似する｡
Q値なので､ ここで説明した単純な学習アルゴリズムの時間差学習の概念と非常に似ています｡
そうそう､ そうなんです｡
それが､ エージェントの学習方法です｡
というわけで､ ここまで来ました｡
それが学びの部分です｡