Slide 1

Slide 1 text

ディープラーニング シリーズAI入門 深層学習 後編:RNNとその他の話題 © FSCjJh3NeB 2021 (※ 但し画像を除く)

Slide 2

Slide 2 text

RNN Recurrent NN テキストなど時系列データ処理に長けたNN 2

Slide 3

Slide 3 text

順列計算 n 世の中,順番が大事なものとそうでないものがある u 仲良くなって,何度かデートしてから,その後 告白 p その他,お料理 や 化学実験 なども,全部 順番が大事。 • 全部の食材を煮込んでから,ニンジンを取り出して泥を落とし, みじん切りにして,その後皮をむく…みたいなことはできない u ネコ の画像を学習させるなら,順番はどうでも良い p 1万枚のネコ画像があったとして,どの順番で与えても良い 3

Slide 4

Slide 4 text

時系列データ n 順序が大事になるデータ u 文章や,動画,販売数の推移,なにかの手続き,など n ひとつ前で見た CNN では順序はどうでもよかった u というか,単純パーセプトロン からはじまってここまで 順序に関することは全然出てこなかった n NN で 順序 をうまく扱うにはどうしたらいいのか? 4

Slide 5

Slide 5 text

n 再帰型ニューラルネットワーク とも u テキスト処理などによく使われるNN p これまで見てきた NN がどれも 順伝搬型 だったのに対し, 名前の通り 再帰型 のネットワークを用いる点に特徴 • 順番を扱わないデータを 順伝搬 で扱う… ? • “順”という言葉に惑わされないように。 • 順伝搬 の 順 は データの形式ではなくネットの形式 5 RNN: Recurrent NN

Slide 6

Slide 6 text

RNNでできること n 例えば… u 朝,ごはん, と来たら続く単語はどれ? p 洗う,戦う,笑う,食べる,踊る,すべる u あり得そうなのはどっち? p イヌ が ヒト を 噛む p ヒト が イヌ を 噛む 6 このレベルだと, RNNでなくても解ける 与える単語のセットは全く同じ! 順番が違うだけ 朝,ごはん,と 一緒によく出てくる単語を探すという方法でも解ける このパタンは順番が非常に大事!!

Slide 7

Slide 7 text

順伝搬と再帰 n 順伝搬 u 処理されたデータは,順番に次の層へ渡る n 再帰 u 処理されたデータが,再び次の入力に用いられることも 7

Slide 8

Slide 8 text

なぜ再帰型で順序を扱えるか n 前の入力のデータを,次の入力に生かすから u 1回目は,当然前のデータがないので何もないが… u 2回目は,2回目+1回目のデータ u 3回目は,3回目+2回目+1回目のデータ …のように前の結果も使いながら学習できる n 基本はこれでおしまい。 u ちょっと線のつなぎ方を変えてあげるだけで, 時系列を扱えるようになった! p CNN に比べると,話がすっきりしていて簡単 8

Slide 9

Slide 9 text

RNNにおけるデータフロー 9 x1 xi xI … … … y1 yk yK … … … … … この基本形を… このように表現 … t=1 t=2 t=3 t=N

Slide 10

Slide 10 text

RNNの課題 n データフローを見ると単純な形 n だが,ちょっと待って…!!! n RNNには様々な課題が… u 実際には,t=N から t=1 までのかなり深いネット p t の進展に応じて,古いデータも全部,逆誤差伝搬のため 計算量も多いし,勾配消失もするし,面倒… u 普通は関係なさそうな情報は重みをゼロにして良いが, 時系列だと後で関係する可能性があり,ゼロにできない (入力衝突問題) 10

Slide 11

Slide 11 text

n もう1回待って…! n 勾配消失?終わった問題では? u そう思ったヒトは正解です。 p 活性化関数に ReLU などを用いれば回避可能 u ただ,系列が長くなるにつれ, ものすごく深いネットワークを計算しないといけない, と言う問題は残るし,入力衝突問題も 11 ҟٞ͋Γʂ

Slide 12

Slide 12 text

入力衝突問題 n 重み の調整がうまくいかない問題 u 一般的な NN における 重み の調整では… p 過去と同じパターンが来た • → このパターンに適合するよう,重み(W1 )を大きく p 新しいパターンが来た • → このパターンに適合するよう,別パタンの重み(W1 )を小さく u RNN では 前の情報も覚えているので… p AGCCCG… という入力があったとき… • 初回の A は初めて なのでOK • G が来ると,Gは初めてなのでAの時の重みを下げて… でもひとつ前の A も入ってくるので重みを上げて… • おや?? 結局,上げるの?下げるの? …という問題が発生 • 次に AGC が来ても同様 12 ※ 上げる・下げる で,打ち消し合い学習が進まない

Slide 13

Slide 13 text

LSTM:Long-Short Term Memory n 長期記憶,短期記憶,忘却 の機能を組み合わせ, 入力衝突などの問題に対処した RNN u 入力系列を全部保存しようとするので, 計算が爆発したり,衝突が起きたり問題が生じた u 覚えておくべきものと,忘れて良いものがある p 全部覚えなければ,その分計算料を節約できるほか, 必要なものは長く記憶しておく…と言うことも可能になる 13 いらないものは捨て, 必要なものは保存

Slide 14

Slide 14 text

LSTMにおけるデータフロー 14 … t=1 t=2 t=3 t=N どこかで見たような??? 隠れ層 を工夫しているだけで基本形はそのまま

Slide 15

Slide 15 text

LSTMにおける隠れ層の中身 15 LSTMブロック セル 入力ゲート 忘却ゲート 出力ゲート …まぁ,こんなの急に見せられても分かりませんよね。 なんか,長期・短期記憶とか,忘却とかをなんやかんやしてるんだなぁ と,おもって,ぼーっと眺めるくらいで大丈夫です。

Slide 16

Slide 16 text

LSTM と 認知科学 n 長期記憶,短期記憶,忘却…どこかでみたような? u ヒトの情報処理(認知科学)の回で見た u LSTM は ヒトの認知モデルを参考にして 構成されている…といっても良いかもしれない 16

Slide 17

Slide 17 text

その他 深層強化学習,深層生成モデル 17

Slide 18

Slide 18 text

深層強化学習…の前置き n そもそも 強化学習 とは? u このシリーズでは,機械学習の回で軽く説明しただけの 謎の技術 u ゲームの中で,最適なルート・戦略を学習する… などが典型的な 強化学習 のケース p 行動を学習する仕組み • 何かをするたびに何らかの報酬を得る(負の報酬もあり得る) • 報酬を最大化するように「こういうときはこうする」を学ぶ p 代表的な手法には,Q学習,モンテカルロ法など 18 基本は適当に色々やってみて,成功したときの行動を徐々に覚えていく… という,力押しのアプローチ。 なんかよくわかんねーから,とりあえずやってみようぜ!の精神。

Slide 19

Slide 19 text

強化学習の例:多腕バンディット n 良い感じのスロットマシンを見つけよう! u 問題設定 p 目の前にスロットマシン※が複数台 p マシンごとに当たりがでる確率が異なる p 当然,よく当たるスロットマシンで遊びたい u 基本戦略 p 最初はよく分からないので,全部のマシンで何回か遊ぶ p 比較的,当たりがよく出たマシンに絞り込んでいって… p 最終的に一番よく当たるマシンを見つける 19 ※ 宝くじ の発券機だと思ってください

Slide 20

Slide 20 text

多腕バンディット 20 そこそこ よい J わるい L 1回目 100円 20円 20円 10円 50円 120円 30円 100円 80円 2回目 N回目 … … … 1台あたり何回引くか? 探索と集中にどのくらい配分すれば, ベストなマシンを選べるか? 強化学習を使うと上手く解ける 確率なので,偶然良い感じの 結果を得られることもある この “当たりの確率” は 隠されていて分からない (正規分布とも限らない)

Slide 21

Slide 21 text

何が難しいのか? n そんなに考えるところある…? u 5回くらいやって平均とって,高いやつ上位X件… とかを繰り返せば良いんじゃないの? u 確率分布の形状が未知の場合,何回が適切? u どのくらい探索して,どのくらい集中するのがベスト? p 集中しすぎると,途中で確率変わったらバースト(破産) p 探索ばかりだと,全部のマシンの平均値くらいしか稼げない 21 スロットマシンを選ぶ…というだけでも意外と面倒 問題が複雑になると,各選択肢ごとに探索・集中して戦略を学習

Slide 22

Slide 22 text

ちょっと変わった探索問題とも言える n 探索はこのシリーズ初期でも取り上げた u いろんな遷移を探索木,グラフで表現して探った u 状態遷移をすべて書き下していたが,フレーム問題も n 強化学習はこの探索と似た面もある u オープンではない探索木について,色々やってみて, エッジごとの重みや,良さそうなルートを探索 22

Slide 23

Slide 23 text

深層強化学習 n DNNを用いた強化学習 u どこに DNN を使う要素があったのか? u 強化学習の動き p XXXという行動をしたとき,どのくらい上手くいったか? • 上手くいったかどうか = 報酬 • この世界の裏側に何かの規則があるとすると,報酬 = f(行動) この f(x) を評価関数/価値関数 という。 • 上手くいったかどうかの学習 とは 隠された 評価関数 の学習 23 関数の学習は,まさに DNN が 得意とするところ (NNはフーリエ級数のようにニューロンの重ね合わせで関数を模倣するものだった)

Slide 24

Slide 24 text

深層強化学習 n 評価関数の学習にDNNを用いた強化学習 u 具体的な例 p AlphaGo : 2016年に囲碁の世界チャンピオンに勝利したAI • 深層強化学習を用いて手の評価をする…その他の工夫で, 計算爆発を防ぎつつ,人間では思いつかなかった良い手なども開拓 24

Slide 25

Slide 25 text

深層強化学習:その他の例 25 https://www.youtube.com/watch?v=hx_bgoTF7bs 効率の良い走り方を学習 実際のゲームを攻略 https://www.youtube.com/watch?v=qv6UVOQ0F44

Slide 26

Slide 26 text

深層生成モデル n これまでは,与えられたデータについて, 何らかの判断を行うものばかり見てきた n 学習したデータから,新しくデータを作る という方向性の作業を行わせることはできないか? 26 深層生成モデル

Slide 27

Slide 27 text

2つの方向性 n 識別の延長として捉える(識別モデル) u すでに見た,“朝,ご飯”ときたら? のような問題 n 学習結果から作成する(生成モデル) u 例えば…“朝,ご飯”のような単語が生成される トピック(単語集合)の確率分布があったとして, そこから,確率的に単語を抽出して文を構築 27 いろいろ見てきたので,イメージできる …多分 急に出てきた,謎の方式!!! こちらが 生成モデル この生成モデルにDNNを使うと 深層生成モデル

Slide 28

Slide 28 text

確率モデル n この世界で起きることは,0/1では分かちがたい u いろいろな物事は確率的に起きる…こともある u 色々な物事を確率で表すこともできる p 今日,雨が降る確率 80% p 宝くじに当たる確率 0.00001% p コーヒーをひっくり返す確率 0.0002% n もっと過激な感じの設定にして… u 本当は世界はいろんな確率密度関数の重なりと考える p あらゆる物事の生起確率について,それぞれ確率密度関数が… 28

Slide 29

Slide 29 text

確率モデル n 実は 機械学習などの手法で, 物事の確率分布を算出することもできる u 何をしたら何が起きたか? のデータが沢山あると, その物事が,どんな確率分布から生じそうか分かる p 例えば,サッカーについて話しているときの単語の生起確率 • ボール 80%,ゴール 80%,…・,うどん 0%,お寿司 0% u 確率が分かっているなら,データが作れる p 適当に(確率分布に従って目の出る)サイコロを転がして, 単語を抽出すれば,それっぽいサッカーの話題ができるはず 29 こんな感じで,確率分布からデータを作る

Slide 30

Slide 30 text

深層生成モデル n メジャーな2つの手法 u 変分オートエンコーダ p VAE : Variational Auto Encoder u 敵対的生成ネットワーク p GAN : Generative Adversarial Network 30

Slide 31

Slide 31 text

変分オートエンコーダ:VAE n 名前の通り,ちょっと変わった自己符号化器 u 隠れ層の部分を 確率分布 で捉えられるようにする p ざっくり言うと,0から1 の範囲で出力するようにする p そのために,平均μ と分散σ を学習 31 x1 xi xI … … … … … … … y1 yk yK … … = x1 = xi = xI … … … … … μ σ Z Encoder Decoder

Slide 32

Slide 32 text

敵対的学習:GAN n 単に画像を作る…と言うのでは良い悪いが不明 n 2種類のAIに競わせることで,より良いモデルを! u 例えば精巧な偽札を作りたいとして… p 偽札を作る犯罪者AI と 偽札を見破る警察官AI を用意 • 犯罪者は偽物を見破られたら,よりよくするよう工夫 • 警察官は偽物を見破れなかったら,見分けられるよう学習 32 ジェネレータ ディスクリミネータ

Slide 33

Slide 33 text

敵対的学習のモデル 33 ジェネレータ 偽物データ ディスクリミ ネータ 本物データ 真/偽? ジェネレータ と ディスクリミネータ に DNN(CNN) を用いる

Slide 34

Slide 34 text

深層生成モデルの例 34 https://thispersondoesnotexist.com/ ThisPersonDoesNotExist.com 左の人物は自動生成された 実際には存在しない人の顔 GAN で 訓練されたモデルで 生成されている アクセスするたびに, 非実在人物の顔を作成

Slide 35

Slide 35 text

深層生成モデルの例 35 https://www.openai.com/blog/dall-e/ OpenAI: Dall・E チュチュを着た大根の赤ちゃんが 犬の散歩をしている 絵 …という,お題のみを与え, AIに作画させた結果 内部で使われている GPT-3 は 画像の他,文章の自動生成も可能

Slide 36

Slide 36 text

深層学習を用いたその他の例 36 https://deepmind.com/blog/article/alphafold-a-solution-to-a -50-year-old-grand-challenge-in-biology AlphaFold2 タンパク質の立体構造を予測 タンパク質の折り畳まれ方は 予想することが極めて困難だった

Slide 37

Slide 37 text

DNN と ハードウェア CPU と GPGPU 37

Slide 38

Slide 38 text

DNN の 普及にはハードの観点も n 今まで見てきたとおり DNN は高性能 n 一方,計算量は膨大… u そもそもデータを沢山読み込ませるし, 層が増えると誤差逆伝搬の回数も増えていく p 入力から出力まで,各層10ノード,隠れ層8層だと… 10^10 = 1,000,000,000 (10億) 38 実はハードウェアの能力向上も DNN の 発展普及に大きく貢献

Slide 39

Slide 39 text

DNN と ハードウェア n DNN 周りでは GPU/GPGPU と言う単語が… 39 メモリ 現代のコンピュータの基礎構成要素 I/O バス レジスタ CPU 28 以前の回で出てきた “基本構成要素” には見当たらない…

Slide 40

Slide 40 text

GPU n GPU の前に CPU 再確認 u Central Processing Unit : 中央演算装置 p 実際にいろいろな計算を行うコンピュータの頭脳,そろばん n GPU u Graphics Processing Unit : 図学処理装置 p 画像出力専用の そろばん だと思えば良い p そろばん なら CPU があるわけで,なんでわざわざ??? 40

Slide 41

Slide 41 text

GPU の 必要性 n すでに見た画像処理の方法を思い出すと… u 画面の1セルごとに,RGBの濃度や明るさ を制御 p 4Kディスプレイだと 800万 セルくらいを処理する必要 u 3Dのゲームなどでは,その計算も必要 しかも 高速に n 1セルごとの計算自体は比較的単純&独立だが とにかく,ものすごい数をどんどんさばく必要 u CPU は複雑な順列計算が得意なので,これらの処理を わざわざ CPU で行うのはもったいない 41

Slide 42

Slide 42 text

CPU vs. GPU n CPU u 複雑な計算OK u 基本は順列計算 p 精々 4〜8並列程度 n GPU u 単純計算のみ u 基本は並列計算 p 数千並列 42 G PU

Slide 43

Slide 43 text

ニューラルネットとGPU n NN,特に DNN は計算が大量 u 各層の単位では,エッジごとに計算は独立かつ単純 p つまり,並列計算 が 可能な,大量計算が必要な問題 u DNN の 問題は GPU で扱いやすいタイプ!! p さらに,2010年代位からは特にゲーム用途でGPUが高性能化 43 DNN で 画像を扱うから,GPU…と言うわけではない J

Slide 44

Slide 44 text

GPU から GPGPU へ n GPGPU u General Purpose Computing on GPU u これまで見てきたとおり,GPU は 画像用 u しかし,画像処理以外にも便利に使える u というわけで,GPU を 画像処理以外のことにも使う 44

Slide 45

Slide 45 text

DNNを巡る課題 n 現状ではDNNの活用は物量勝負 u 精度向上のためにも大量のデータが必要 u 精度を上げるには大量のGPUも必要 p 層を深くすれば精度はどんどん上がるが,計算量も増大 45 Google や Amazon など, 計算リソースとデータがある企業が勝つ