WEBVTT

00:00.550 --> 00:02.770
こんにちは､ AIに関する講座にようこそ｡ 

00:03.040 --> 00:06.910
前編では､ ディープラーニングのキラー直感についてお話しました｡ 

00:06.910 --> 00:17.980
そこから始まり､ 実際にこの部分まで来て､ 学習の話をし､ これから実際の演技の部分に移っていくわけです｡

00:18.160 --> 00:22.180
このように､ 私たちが覚えておかなければならないのは､ 2つの部分､ 2つの異なる部分なのです｡ 

00:22.180 --> 00:23.440
それが学びの部分なんですね｡ 

00:23.440 --> 00:25.420
しかし､ 今､ 彼は実際にこのすべてをやり遂げたのです｡ 

00:25.420 --> 00:26.230
それは美しいですね｡ 

00:26.230 --> 00:27.820
今､ 彼は実際に行動を起こさなければならないのです｡ 

00:27.820 --> 00:31.570
アクション1､ 2､ 3､ 4のどれをやるかを決めなければならないのです｡ 

00:31.570 --> 00:32.770
では､ その方法は？

00:32.770 --> 00:37.090
まあ､ 彼のやり方は､ 今､ その同じキュー値を与えられているのですが｡ 

00:37.090 --> 00:41.080
つまり､ キュー値は､ キュー値と損失計算を比較し､ 誤差を伝播させ､

00:41.080 --> 00:45.670
重みを更新しても､ そのプロセス全体では変化しないのです｡

00:45.670 --> 00:49.270
つまり､ キュー値が確定すれば､ それが何であるかがわかるわけです｡ 

00:49.270 --> 00:53.710
このように､ ネットワークが更新され､ 今までと同じキーバリューが使われるようになりました｡ 

00:53.710 --> 00:58.390
これから行うのは､ ソフトマックス関数を通すことです｡ 

00:58.390 --> 01:01.900
また､ ソフトマックスは付属書2に記載されていると思います｡ 

01:01.900 --> 01:09.160
また､ ソフトマックスについては､ この後の章でもう少し詳しく説明しますし､ このアクション選択ポリシーについては､

01:09.160 --> 01:12.010
この後の章でさらに詳しく説明します｡

01:12.010 --> 01:17.140
いくつかのチュートリアルでは､ ソフトマックス関数に渡すと説明しています｡

01:17.140 --> 01:22.060
そして基本的には､ 最適なものを選択できるようにし､ 可能な限り最適なアクションを選択するのです｡ 

01:22.060 --> 01:23.590
そして､ それにはちょっとした注意点があります｡ 

01:23.590 --> 01:25.750
それは､ 最高の1枚を作るためだけではありません｡ 

01:25.990 --> 01:28.870
それについては､ アクション選択ポリシーのチュートリアルで説明します｡ 

01:28.870 --> 01:31.720
でも､ とりあえず､ ここから最適なアクションを選択するということにしておきましょう｡ 

01:31.720 --> 01:32.500
と書いてあるので､ なるほど､ そうなのか｡ 

01:32.500 --> 01:37.540
Q1､ 尤度は基本的にQ値がわかっています｡ 

01:37.600 --> 01:38.770
だから､ Q値を予測したのです｡ 

01:38.770 --> 01:43.840
つまり､ 単純なQ学習アルゴリズムでやったように､ これらの中から最もQ値の高いものを選んで､

01:43.840 --> 01:48.880
これらすべてを調べて､ 例えば､ 最もQ値の高いものはこれだと言うことができます｡

01:48.880 --> 01:50.080
そして､ そのアクションを選択するのです｡ 

01:50.080 --> 01:50.770
それをいただく｡ 

01:50.770 --> 01:51.970
といったところでしょうか｡ 

01:51.970 --> 01:53.800
そうやって､ 取るべき行動を選択していくのです｡ 

01:54.070 --> 01:55.150
アクションを起こすのです｡ 

01:55.150 --> 02:02.050
そして､ このプロセスは､ 追加されたエージェントが次の状態（この例では迷路の次のマス目）になったときにも繰り返されるのです｡

02:02.050 --> 02:04.240
しかし､ 一般的には次の状態です｡ 

02:04.330 --> 02:05.350
そうそう､ そうなんです｡ 

02:05.350 --> 02:15.880
このように､ 強化学習の問題を､ 今いる状態を表すベクトルを通してニューラルネットワークに送り込んでいくのです｡

02:15.880 --> 02:20.050
そして､ それを投入すると､ 2つのパートが発生するのです｡ 

02:20.470 --> 02:22.210
第一部は学習です｡ 

02:22.240 --> 02:26.770
Q値をターゲットと比較し､ 損失をネットワークに逆伝播して重みを更新することで､

02:26.770 --> 02:34.720
迷路や環境を進むにつれてネットワークが学習していく､ という部分を覚えておいてください｡

02:34.990 --> 02:40.750
Q値をソフトマックス関数に渡したり､

02:40.750 --> 02:48.220
基本的に行動選択ポリシーを作成します｡

02:48.220 --> 02:52.780
そして､ 行いたいアクションを選択し､ そのアクションを実行するだけです｡ 

02:52.780 --> 02:57.130
そして､ この一連のプロセスが再び始まり､ そして､ エージェントがゲームにパスすることもあれば､

02:57.130 --> 02:59.230
パスしないこともある｡

02:59.230 --> 03:05.470
いずれにせよ､ ゲームが終了し､ もう一度､ 全体の､ 全体のプロセスを繰り返し､ エージェントは再び全体のゲームをプレイし､

03:05.470 --> 03:08.200
そしてそれが停止するのです｡

03:08.200 --> 03:16.600
ですから､ 基本的には､ エージェントがゲームを終えるたびに､ 2月に好意的であろうとなかろうと､ それはひとつの時代の終わりを意味します｡

03:16.600 --> 03:20.350
そして､ また始める､ また始める､ また始めるの繰り返し｡ 

03:20.350 --> 03:21.520
そうなるんですね｡ 

03:21.520 --> 03:26.470
そしてこのプロセスは､ エージェントが新しい状態になるたびに発生します｡ 

03:26.470 --> 03:28.300
つまり､ ここに状態が符号化されているわけです｡ 

03:28.300 --> 03:29.290
だから､ それが大事なんです｡ 

03:29.290 --> 03:32.950
だから､ 彼が出場するすべての試合だけでなく､ すべての州に対して｡ 

03:32.950 --> 03:37.960
だから､ 彼はある状態になって､ このプロセスを経て､ アップデートなどが毎回行われるわけです｡ 

03:37.960 --> 03:41.200
そうして､ 学習が行われ､ さらに演技も行われるのです｡ 

03:41.560 --> 03:46.930
それがディープラーニングを支える直感のディープラーニングなんですね｡ 

03:46.940 --> 03:49.510
まだまだカバーできることはたくさんあります｡ 

03:49.510 --> 03:51.220
そして､ もちろん実用化も｡ 

03:51.220 --> 03:59.530
ついでに､ ディープラーニングについて追加で情報を得たい方は､ おすすめの読み物をご紹介しています｡

03:59.530 --> 04:05.020
ということで､ アーサー・ジュリアーニの一連のブログ記事については､ すでにお話ししたとおりです｡ 

04:05.020 --> 04:13.840
TensorFlowによるシンプルな強化学習 その4」を見ていただくと､ 今日お話したことに関連する部分がありますね｡

04:14.140 --> 04:18.130
なお､ ここではコンボリューションについて述べている｡ 

04:18.130 --> 04:20.860
このコーナーでは､ レボリューションは扱っていません｡ 

04:20.860 --> 04:23.500
次回の講座では､ それらについてご紹介します｡ 

04:23.500 --> 04:30.550
この違いは､ コンボリューションの部分をスキップして､ 次のパートで説明することです｡

04:30.550 --> 04:38.800
しかし､ 畳み込みの場合は､ エージェントが画像を見ているようなものなので､ 画像を処理しなければなりません｡

04:38.800 --> 04:40.630
だから､ 今のところ追加のこじつけ｡ 

04:40.630 --> 04:43.360
そのために､ 少しずつ､ 少しずつ積み上げているところです｡ 

04:43.360 --> 04:47.530
とりあえず､ 環境はスルーでエンコードしています｡ 

04:47.530 --> 04:53.170
このように､ 私たちは環境をエンコードしています｡ あるいは､ このように､

04:53.170 --> 04:58.630
おそらく環境をベクトルとしてエンコードしています｡

04:58.630 --> 04:59.920
ですから､ 私たちの場合は､ 非常にシンプルなものがあります｡ 

04:59.990 --> 05:05.390
2つの値の画像は､ その中にあっても､ その単純な可能性があります時々､ またはあなたがこのブログの記事から見るように､

05:05.390 --> 05:10.100
時には人々はその状態の1ホットとコード化されたバージョンを好む｡

05:10.100 --> 05:17.450
つまり､ 迷路の各ボックスには､ ベクトルとして12個の値を3×4で表現しているわけです｡

05:17.750 --> 05:22.820
つまり､ どの箱のどの要素にいるかによって､ 1か0かのような環境なのです｡ 

05:22.820 --> 05:30.380
ですから､ どのような方法で環境や状態をエンコードすることにしても､ それが私たちのエンコード方法なのです｡

05:30.380 --> 05:31.430
つまり､ 基本的にはベクトルなんですね｡ 

05:31.460 --> 05:36.350
ここで重要なのは､ 畳み込みではないので､ 画像とは違い､ ボルトの畳み込みがないことです｡

05:36.350 --> 05:38.090
だから､ この部分は私たちにとっては後回しなんです｡ 

05:38.090 --> 05:43.310
ここから始まって､ 徐々に理解を深めていくために､ プロセスを単純化しただけなのです｡ 

05:43.310 --> 05:49.760
そしてもちろん､ このブログ記事はTensorFlowで書かれており､ チュートリアルではPyTorchを使っていることをお忘れなく｡

05:49.880 --> 05:59.000
深層学習､ 畳み込み学習､ 深層学習､ 畳み込み学習でなく深層学習について簡単に紹介しましたが､ 楽しんでいただけたでしょうか？

05:59.000 --> 06:02.840
というわけで､ 次回もよろしくお願いします｡ 

06:02.840 --> 06:05.570
そして､ それまでは人工知能を楽しんでください｡ 
