Upgrade to Pro — share decks privately, control downloads, hide ads and more …

シリーズAI入門:12b 深層学習 後編

FSCjJh3NeB
February 03, 2021

シリーズAI入門:12b 深層学習 後編

深層学習の後編,RNNやVAE,GAN,それらの応用について眺めます。

FSCjJh3NeB

February 03, 2021
Tweet

More Decks by FSCjJh3NeB

Other Decks in Education

Transcript

  1. 順列計算 n 世の中,順番が大事なものとそうでないものがある u 仲良くなって,何度かデートしてから,その後 告白 p その他,お料理 や 化学実験

    なども,全部 順番が大事。 • 全部の食材を煮込んでから,ニンジンを取り出して泥を落とし, みじん切りにして,その後皮をむく…みたいなことはできない u ネコ の画像を学習させるなら,順番はどうでも良い p 1万枚のネコ画像があったとして,どの順番で与えても良い 3
  2. 時系列データ n 順序が大事になるデータ u 文章や,動画,販売数の推移,なにかの手続き,など n ひとつ前で見た CNN では順序はどうでもよかった u

    というか,単純パーセプトロン からはじまってここまで 順序に関することは全然出てこなかった n NN で 順序 をうまく扱うにはどうしたらいいのか? 4
  3. n 再帰型ニューラルネットワーク とも u テキスト処理などによく使われるNN p これまで見てきた NN がどれも 順伝搬型

    だったのに対し, 名前の通り 再帰型 のネットワークを用いる点に特徴 • 順番を扱わないデータを 順伝搬 で扱う… ? • “順”という言葉に惑わされないように。 • 順伝搬 の 順 は データの形式ではなくネットの形式 5 RNN: Recurrent NN
  4. RNNでできること n 例えば… u 朝,ごはん, と来たら続く単語はどれ? p 洗う,戦う,笑う,食べる,踊る,すべる u あり得そうなのはどっち?

    p イヌ が ヒト を 噛む p ヒト が イヌ を 噛む 6 このレベルだと, RNNでなくても解ける 与える単語のセットは全く同じ! 順番が違うだけ 朝,ごはん,と 一緒によく出てくる単語を探すという方法でも解ける このパタンは順番が非常に大事!!
  5. RNNにおけるデータフロー 9 x1 xi xI … … … y1 yk

    yK … … … … … この基本形を… このように表現 … t=1 t=2 t=3 t=N
  6. RNNの課題 n データフローを見ると単純な形 n だが,ちょっと待って…!!! n RNNには様々な課題が… u 実際には,t=N から

    t=1 までのかなり深いネット p t の進展に応じて,古いデータも全部,逆誤差伝搬のため 計算量も多いし,勾配消失もするし,面倒… u 普通は関係なさそうな情報は重みをゼロにして良いが, 時系列だと後で関係する可能性があり,ゼロにできない (入力衝突問題) 10
  7. n もう1回待って…! n 勾配消失?終わった問題では? u そう思ったヒトは正解です。 p 活性化関数に ReLU などを用いれば回避可能

    u ただ,系列が長くなるにつれ, ものすごく深いネットワークを計算しないといけない, と言う問題は残るし,入力衝突問題も 11 ҟٞ͋Γʂ
  8. 入力衝突問題 n 重み の調整がうまくいかない問題 u 一般的な NN における 重み の調整では…

    p 過去と同じパターンが来た • → このパターンに適合するよう,重み(W1 )を大きく p 新しいパターンが来た • → このパターンに適合するよう,別パタンの重み(W1 )を小さく u RNN では 前の情報も覚えているので… p AGCCCG… という入力があったとき… • 初回の A は初めて なのでOK • G が来ると,Gは初めてなのでAの時の重みを下げて… でもひとつ前の A も入ってくるので重みを上げて… • おや?? 結局,上げるの?下げるの? …という問題が発生 • 次に AGC が来ても同様 12 ※ 上げる・下げる で,打ち消し合い学習が進まない
  9. LSTM:Long-Short Term Memory n 長期記憶,短期記憶,忘却 の機能を組み合わせ, 入力衝突などの問題に対処した RNN u 入力系列を全部保存しようとするので,

    計算が爆発したり,衝突が起きたり問題が生じた u 覚えておくべきものと,忘れて良いものがある p 全部覚えなければ,その分計算料を節約できるほか, 必要なものは長く記憶しておく…と言うことも可能になる 13 いらないものは捨て, 必要なものは保存
  10. LSTM と 認知科学 n 長期記憶,短期記憶,忘却…どこかでみたような? u ヒトの情報処理(認知科学)の回で見た u LSTM は

    ヒトの認知モデルを参考にして 構成されている…といっても良いかもしれない 16
  11. 深層強化学習…の前置き n そもそも 強化学習 とは? u このシリーズでは,機械学習の回で軽く説明しただけの 謎の技術 u ゲームの中で,最適なルート・戦略を学習する…

    などが典型的な 強化学習 のケース p 行動を学習する仕組み • 何かをするたびに何らかの報酬を得る(負の報酬もあり得る) • 報酬を最大化するように「こういうときはこうする」を学ぶ p 代表的な手法には,Q学習,モンテカルロ法など 18 基本は適当に色々やってみて,成功したときの行動を徐々に覚えていく… という,力押しのアプローチ。 なんかよくわかんねーから,とりあえずやってみようぜ!の精神。
  12. 強化学習の例:多腕バンディット n 良い感じのスロットマシンを見つけよう! u 問題設定 p 目の前にスロットマシン※が複数台 p マシンごとに当たりがでる確率が異なる p

    当然,よく当たるスロットマシンで遊びたい u 基本戦略 p 最初はよく分からないので,全部のマシンで何回か遊ぶ p 比較的,当たりがよく出たマシンに絞り込んでいって… p 最終的に一番よく当たるマシンを見つける 19 ※ 宝くじ の発券機だと思ってください
  13. 多腕バンディット 20 そこそこ よい J わるい L 1回目 100円 20円

    20円 10円 50円 120円 30円 100円 80円 2回目 N回目 … … … 1台あたり何回引くか? 探索と集中にどのくらい配分すれば, ベストなマシンを選べるか? 強化学習を使うと上手く解ける 確率なので,偶然良い感じの 結果を得られることもある この “当たりの確率” は 隠されていて分からない (正規分布とも限らない)
  14. 何が難しいのか? n そんなに考えるところある…? u 5回くらいやって平均とって,高いやつ上位X件… とかを繰り返せば良いんじゃないの? u 確率分布の形状が未知の場合,何回が適切? u どのくらい探索して,どのくらい集中するのがベスト?

    p 集中しすぎると,途中で確率変わったらバースト(破産) p 探索ばかりだと,全部のマシンの平均値くらいしか稼げない 21 スロットマシンを選ぶ…というだけでも意外と面倒 問題が複雑になると,各選択肢ごとに探索・集中して戦略を学習
  15. 深層強化学習 n DNNを用いた強化学習 u どこに DNN を使う要素があったのか? u 強化学習の動き p

    XXXという行動をしたとき,どのくらい上手くいったか? • 上手くいったかどうか = 報酬 • この世界の裏側に何かの規則があるとすると,報酬 = f(行動) この f(x) を評価関数/価値関数 という。 • 上手くいったかどうかの学習 とは 隠された 評価関数 の学習 23 関数の学習は,まさに DNN が 得意とするところ (NNはフーリエ級数のようにニューロンの重ね合わせで関数を模倣するものだった)
  16. 深層強化学習 n 評価関数の学習にDNNを用いた強化学習 u 具体的な例 p AlphaGo : 2016年に囲碁の世界チャンピオンに勝利したAI •

    深層強化学習を用いて手の評価をする…その他の工夫で, 計算爆発を防ぎつつ,人間では思いつかなかった良い手なども開拓 24
  17. 2つの方向性 n 識別の延長として捉える(識別モデル) u すでに見た,“朝,ご飯”ときたら? のような問題 n 学習結果から作成する(生成モデル) u 例えば…“朝,ご飯”のような単語が生成される

    トピック(単語集合)の確率分布があったとして, そこから,確率的に単語を抽出して文を構築 27 いろいろ見てきたので,イメージできる …多分 急に出てきた,謎の方式!!! こちらが 生成モデル この生成モデルにDNNを使うと 深層生成モデル
  18. 確率モデル n この世界で起きることは,0/1では分かちがたい u いろいろな物事は確率的に起きる…こともある u 色々な物事を確率で表すこともできる p 今日,雨が降る確率 80%

    p 宝くじに当たる確率 0.00001% p コーヒーをひっくり返す確率 0.0002% n もっと過激な感じの設定にして… u 本当は世界はいろんな確率密度関数の重なりと考える p あらゆる物事の生起確率について,それぞれ確率密度関数が… 28
  19. 確率モデル n 実は 機械学習などの手法で, 物事の確率分布を算出することもできる u 何をしたら何が起きたか? のデータが沢山あると, その物事が,どんな確率分布から生じそうか分かる p

    例えば,サッカーについて話しているときの単語の生起確率 • ボール 80%,ゴール 80%,…・,うどん 0%,お寿司 0% u 確率が分かっているなら,データが作れる p 適当に(確率分布に従って目の出る)サイコロを転がして, 単語を抽出すれば,それっぽいサッカーの話題ができるはず 29 こんな感じで,確率分布からデータを作る
  20. 深層生成モデル n メジャーな2つの手法 u 変分オートエンコーダ p VAE : Variational Auto

    Encoder u 敵対的生成ネットワーク p GAN : Generative Adversarial Network 30
  21. 変分オートエンコーダ:VAE n 名前の通り,ちょっと変わった自己符号化器 u 隠れ層の部分を 確率分布 で捉えられるようにする p ざっくり言うと,0から1 の範囲で出力するようにする

    p そのために,平均μ と分散σ を学習 31 x1 xi xI … … … … … … … y1 yk yK … … = x1 = xi = xI … … … … … μ σ Z Encoder Decoder
  22. 敵対的学習:GAN n 単に画像を作る…と言うのでは良い悪いが不明 n 2種類のAIに競わせることで,より良いモデルを! u 例えば精巧な偽札を作りたいとして… p 偽札を作る犯罪者AI と

    偽札を見破る警察官AI を用意 • 犯罪者は偽物を見破られたら,よりよくするよう工夫 • 警察官は偽物を見破れなかったら,見分けられるよう学習 32 ジェネレータ ディスクリミネータ
  23. DNN の 普及にはハードの観点も n 今まで見てきたとおり DNN は高性能 n 一方,計算量は膨大… u

    そもそもデータを沢山読み込ませるし, 層が増えると誤差逆伝搬の回数も増えていく p 入力から出力まで,各層10ノード,隠れ層8層だと… 10^10 = 1,000,000,000 (10億) 38 実はハードウェアの能力向上も DNN の 発展普及に大きく貢献
  24. DNN と ハードウェア n DNN 周りでは GPU/GPGPU と言う単語が… 39 メモリ

    現代のコンピュータの基礎構成要素 I/O バス レジスタ CPU 28 以前の回で出てきた “基本構成要素” には見当たらない…
  25. GPU n GPU の前に CPU 再確認 u Central Processing Unit

    : 中央演算装置 p 実際にいろいろな計算を行うコンピュータの頭脳,そろばん n GPU u Graphics Processing Unit : 図学処理装置 p 画像出力専用の そろばん だと思えば良い p そろばん なら CPU があるわけで,なんでわざわざ??? 40
  26. GPU の 必要性 n すでに見た画像処理の方法を思い出すと… u 画面の1セルごとに,RGBの濃度や明るさ を制御 p 4Kディスプレイだと

    800万 セルくらいを処理する必要 u 3Dのゲームなどでは,その計算も必要 しかも 高速に n 1セルごとの計算自体は比較的単純&独立だが とにかく,ものすごい数をどんどんさばく必要 u CPU は複雑な順列計算が得意なので,これらの処理を わざわざ CPU で行うのはもったいない 41
  27. CPU vs. GPU n CPU u 複雑な計算OK u 基本は順列計算 p

    精々 4〜8並列程度 n GPU u 単純計算のみ u 基本は並列計算 p 数千並列 42 G PU
  28. ニューラルネットとGPU n NN,特に DNN は計算が大量 u 各層の単位では,エッジごとに計算は独立かつ単純 p つまり,並列計算 が

    可能な,大量計算が必要な問題 u DNN の 問題は GPU で扱いやすいタイプ!! p さらに,2010年代位からは特にゲーム用途でGPUが高性能化 43 DNN で 画像を扱うから,GPU…と言うわけではない J
  29. GPU から GPGPU へ n GPGPU u General Purpose Computing

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