Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
シリーズAI入門:12b 深層学習 後編
Search
FSCjJh3NeB
February 03, 2021
Education
0
120
シリーズAI入門:12b 深層学習 後編
深層学習の後編,RNNやVAE,GAN,それらの応用について眺めます。
FSCjJh3NeB
February 03, 2021
Tweet
Share
More Decks by FSCjJh3NeB
See All by FSCjJh3NeB
シリーズAI入門:13b 生成AI
2hz9qeedd
1
140
Stats of bioRxiv (2021)
2hz9qeedd
0
75
シリーズAI入門:1. ガイダンス・AIの概要
2hz9qeedd
0
180
シリーズAI入門:2. AI研究の歴史
2hz9qeedd
0
230
シリーズAI入門:3. 計算機の仕組み
2hz9qeedd
0
100
シリーズAI入門:4. 人間の情報処理の仕組み
2hz9qeedd
0
220
シリーズAI入門:5. 第1次AIブーム 探索
2hz9qeedd
0
150
シリーズAI入門:6. 第2次AIブーム 知識ベース
2hz9qeedd
0
150
シリーズAI入門:7. 第3次AIブーム パタン認識
2hz9qeedd
0
240
Other Decks in Education
See All in Education
Evaluation Methods - Lecture 6 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
700
Beispiel einer Fortbildung für "Soziales Lernen"
gsgoethe
0
120
1030
cbtlibrary
0
300
Medicare 101 for 2025
robinlee
PRO
0
240
Design Guidelines and Models - Lecture 5 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
690
Kaggle 班ができるまで
abap34
1
190
Kindleストアで本を探すことの善悪 #Izumo Developers' Guild 第1回 LT大会
totodo713
0
130
"数学" をプログラミングしてもらう際に気をつけていること / Key Considerations When Programming "Mathematics"
guvalif
0
570
Requirements Analysis and Prototyping - Lecture 3 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
810
Introduction - Lecture 1 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
1.7k
1106
cbtlibrary
0
420
Chapitre_1_-__L_atmosphère_et_la_vie_-_Partie_1.pdf
bernhardsvt
0
220
Featured
See All Featured
A better future with KSS
kneath
238
17k
Site-Speed That Sticks
csswizardry
0
41
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
How GitHub (no longer) Works
holman
310
140k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
140
Measuring & Analyzing Core Web Vitals
bluesmoon
4
140
KATA
mclloyd
29
14k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Building Adaptive Systems
keathley
38
2.3k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
The Invisible Side of Design
smashingmag
298
50k
Transcript
ディープラーニング シリーズAI入門 深層学習 後編:RNNとその他の話題 © FSCjJh3NeB 2021 (※ 但し画像を除く)
RNN Recurrent NN テキストなど時系列データ処理に長けたNN 2
順列計算 n 世の中,順番が大事なものとそうでないものがある u 仲良くなって,何度かデートしてから,その後 告白 p その他,お料理 や 化学実験
なども,全部 順番が大事。 • 全部の食材を煮込んでから,ニンジンを取り出して泥を落とし, みじん切りにして,その後皮をむく…みたいなことはできない u ネコ の画像を学習させるなら,順番はどうでも良い p 1万枚のネコ画像があったとして,どの順番で与えても良い 3
時系列データ n 順序が大事になるデータ u 文章や,動画,販売数の推移,なにかの手続き,など n ひとつ前で見た CNN では順序はどうでもよかった u
というか,単純パーセプトロン からはじまってここまで 順序に関することは全然出てこなかった n NN で 順序 をうまく扱うにはどうしたらいいのか? 4
n 再帰型ニューラルネットワーク とも u テキスト処理などによく使われるNN p これまで見てきた NN がどれも 順伝搬型
だったのに対し, 名前の通り 再帰型 のネットワークを用いる点に特徴 • 順番を扱わないデータを 順伝搬 で扱う… ? • “順”という言葉に惑わされないように。 • 順伝搬 の 順 は データの形式ではなくネットの形式 5 RNN: Recurrent NN
RNNでできること n 例えば… u 朝,ごはん, と来たら続く単語はどれ? p 洗う,戦う,笑う,食べる,踊る,すべる u あり得そうなのはどっち?
p イヌ が ヒト を 噛む p ヒト が イヌ を 噛む 6 このレベルだと, RNNでなくても解ける 与える単語のセットは全く同じ! 順番が違うだけ 朝,ごはん,と 一緒によく出てくる単語を探すという方法でも解ける このパタンは順番が非常に大事!!
順伝搬と再帰 n 順伝搬 u 処理されたデータは,順番に次の層へ渡る n 再帰 u 処理されたデータが,再び次の入力に用いられることも 7
なぜ再帰型で順序を扱えるか n 前の入力のデータを,次の入力に生かすから u 1回目は,当然前のデータがないので何もないが… u 2回目は,2回目+1回目のデータ u 3回目は,3回目+2回目+1回目のデータ …のように前の結果も使いながら学習できる
n 基本はこれでおしまい。 u ちょっと線のつなぎ方を変えてあげるだけで, 時系列を扱えるようになった! p CNN に比べると,話がすっきりしていて簡単 8
RNNにおけるデータフロー 9 x1 xi xI … … … y1 yk
yK … … … … … この基本形を… このように表現 … t=1 t=2 t=3 t=N
RNNの課題 n データフローを見ると単純な形 n だが,ちょっと待って…!!! n RNNには様々な課題が… u 実際には,t=N から
t=1 までのかなり深いネット p t の進展に応じて,古いデータも全部,逆誤差伝搬のため 計算量も多いし,勾配消失もするし,面倒… u 普通は関係なさそうな情報は重みをゼロにして良いが, 時系列だと後で関係する可能性があり,ゼロにできない (入力衝突問題) 10
n もう1回待って…! n 勾配消失?終わった問題では? u そう思ったヒトは正解です。 p 活性化関数に ReLU などを用いれば回避可能
u ただ,系列が長くなるにつれ, ものすごく深いネットワークを計算しないといけない, と言う問題は残るし,入力衝突問題も 11 ҟٞ͋Γʂ
入力衝突問題 n 重み の調整がうまくいかない問題 u 一般的な NN における 重み の調整では…
p 過去と同じパターンが来た • → このパターンに適合するよう,重み(W1 )を大きく p 新しいパターンが来た • → このパターンに適合するよう,別パタンの重み(W1 )を小さく u RNN では 前の情報も覚えているので… p AGCCCG… という入力があったとき… • 初回の A は初めて なのでOK • G が来ると,Gは初めてなのでAの時の重みを下げて… でもひとつ前の A も入ってくるので重みを上げて… • おや?? 結局,上げるの?下げるの? …という問題が発生 • 次に AGC が来ても同様 12 ※ 上げる・下げる で,打ち消し合い学習が進まない
LSTM:Long-Short Term Memory n 長期記憶,短期記憶,忘却 の機能を組み合わせ, 入力衝突などの問題に対処した RNN u 入力系列を全部保存しようとするので,
計算が爆発したり,衝突が起きたり問題が生じた u 覚えておくべきものと,忘れて良いものがある p 全部覚えなければ,その分計算料を節約できるほか, 必要なものは長く記憶しておく…と言うことも可能になる 13 いらないものは捨て, 必要なものは保存
LSTMにおけるデータフロー 14 … t=1 t=2 t=3 t=N どこかで見たような??? 隠れ層 を工夫しているだけで基本形はそのまま
LSTMにおける隠れ層の中身 15 LSTMブロック セル 入力ゲート 忘却ゲート 出力ゲート …まぁ,こんなの急に見せられても分かりませんよね。 なんか,長期・短期記憶とか,忘却とかをなんやかんやしてるんだなぁ と,おもって,ぼーっと眺めるくらいで大丈夫です。
LSTM と 認知科学 n 長期記憶,短期記憶,忘却…どこかでみたような? u ヒトの情報処理(認知科学)の回で見た u LSTM は
ヒトの認知モデルを参考にして 構成されている…といっても良いかもしれない 16
その他 深層強化学習,深層生成モデル 17
深層強化学習…の前置き n そもそも 強化学習 とは? u このシリーズでは,機械学習の回で軽く説明しただけの 謎の技術 u ゲームの中で,最適なルート・戦略を学習する…
などが典型的な 強化学習 のケース p 行動を学習する仕組み • 何かをするたびに何らかの報酬を得る(負の報酬もあり得る) • 報酬を最大化するように「こういうときはこうする」を学ぶ p 代表的な手法には,Q学習,モンテカルロ法など 18 基本は適当に色々やってみて,成功したときの行動を徐々に覚えていく… という,力押しのアプローチ。 なんかよくわかんねーから,とりあえずやってみようぜ!の精神。
強化学習の例:多腕バンディット n 良い感じのスロットマシンを見つけよう! u 問題設定 p 目の前にスロットマシン※が複数台 p マシンごとに当たりがでる確率が異なる p
当然,よく当たるスロットマシンで遊びたい u 基本戦略 p 最初はよく分からないので,全部のマシンで何回か遊ぶ p 比較的,当たりがよく出たマシンに絞り込んでいって… p 最終的に一番よく当たるマシンを見つける 19 ※ 宝くじ の発券機だと思ってください
多腕バンディット 20 そこそこ よい J わるい L 1回目 100円 20円
20円 10円 50円 120円 30円 100円 80円 2回目 N回目 … … … 1台あたり何回引くか? 探索と集中にどのくらい配分すれば, ベストなマシンを選べるか? 強化学習を使うと上手く解ける 確率なので,偶然良い感じの 結果を得られることもある この “当たりの確率” は 隠されていて分からない (正規分布とも限らない)
何が難しいのか? n そんなに考えるところある…? u 5回くらいやって平均とって,高いやつ上位X件… とかを繰り返せば良いんじゃないの? u 確率分布の形状が未知の場合,何回が適切? u どのくらい探索して,どのくらい集中するのがベスト?
p 集中しすぎると,途中で確率変わったらバースト(破産) p 探索ばかりだと,全部のマシンの平均値くらいしか稼げない 21 スロットマシンを選ぶ…というだけでも意外と面倒 問題が複雑になると,各選択肢ごとに探索・集中して戦略を学習
ちょっと変わった探索問題とも言える n 探索はこのシリーズ初期でも取り上げた u いろんな遷移を探索木,グラフで表現して探った u 状態遷移をすべて書き下していたが,フレーム問題も n 強化学習はこの探索と似た面もある u
オープンではない探索木について,色々やってみて, エッジごとの重みや,良さそうなルートを探索 22
深層強化学習 n DNNを用いた強化学習 u どこに DNN を使う要素があったのか? u 強化学習の動き p
XXXという行動をしたとき,どのくらい上手くいったか? • 上手くいったかどうか = 報酬 • この世界の裏側に何かの規則があるとすると,報酬 = f(行動) この f(x) を評価関数/価値関数 という。 • 上手くいったかどうかの学習 とは 隠された 評価関数 の学習 23 関数の学習は,まさに DNN が 得意とするところ (NNはフーリエ級数のようにニューロンの重ね合わせで関数を模倣するものだった)
深層強化学習 n 評価関数の学習にDNNを用いた強化学習 u 具体的な例 p AlphaGo : 2016年に囲碁の世界チャンピオンに勝利したAI •
深層強化学習を用いて手の評価をする…その他の工夫で, 計算爆発を防ぎつつ,人間では思いつかなかった良い手なども開拓 24
深層強化学習:その他の例 25 https://www.youtube.com/watch?v=hx_bgoTF7bs 効率の良い走り方を学習 実際のゲームを攻略 https://www.youtube.com/watch?v=qv6UVOQ0F44
深層生成モデル n これまでは,与えられたデータについて, 何らかの判断を行うものばかり見てきた n 学習したデータから,新しくデータを作る という方向性の作業を行わせることはできないか? 26 深層生成モデル
2つの方向性 n 識別の延長として捉える(識別モデル) u すでに見た,“朝,ご飯”ときたら? のような問題 n 学習結果から作成する(生成モデル) u 例えば…“朝,ご飯”のような単語が生成される
トピック(単語集合)の確率分布があったとして, そこから,確率的に単語を抽出して文を構築 27 いろいろ見てきたので,イメージできる …多分 急に出てきた,謎の方式!!! こちらが 生成モデル この生成モデルにDNNを使うと 深層生成モデル
確率モデル n この世界で起きることは,0/1では分かちがたい u いろいろな物事は確率的に起きる…こともある u 色々な物事を確率で表すこともできる p 今日,雨が降る確率 80%
p 宝くじに当たる確率 0.00001% p コーヒーをひっくり返す確率 0.0002% n もっと過激な感じの設定にして… u 本当は世界はいろんな確率密度関数の重なりと考える p あらゆる物事の生起確率について,それぞれ確率密度関数が… 28
確率モデル n 実は 機械学習などの手法で, 物事の確率分布を算出することもできる u 何をしたら何が起きたか? のデータが沢山あると, その物事が,どんな確率分布から生じそうか分かる p
例えば,サッカーについて話しているときの単語の生起確率 • ボール 80%,ゴール 80%,…・,うどん 0%,お寿司 0% u 確率が分かっているなら,データが作れる p 適当に(確率分布に従って目の出る)サイコロを転がして, 単語を抽出すれば,それっぽいサッカーの話題ができるはず 29 こんな感じで,確率分布からデータを作る
深層生成モデル n メジャーな2つの手法 u 変分オートエンコーダ p VAE : Variational Auto
Encoder u 敵対的生成ネットワーク p GAN : Generative Adversarial Network 30
変分オートエンコーダ:VAE n 名前の通り,ちょっと変わった自己符号化器 u 隠れ層の部分を 確率分布 で捉えられるようにする p ざっくり言うと,0から1 の範囲で出力するようにする
p そのために,平均μ と分散σ を学習 31 x1 xi xI … … … … … … … y1 yk yK … … = x1 = xi = xI … … … … … μ σ Z Encoder Decoder
敵対的学習:GAN n 単に画像を作る…と言うのでは良い悪いが不明 n 2種類のAIに競わせることで,より良いモデルを! u 例えば精巧な偽札を作りたいとして… p 偽札を作る犯罪者AI と
偽札を見破る警察官AI を用意 • 犯罪者は偽物を見破られたら,よりよくするよう工夫 • 警察官は偽物を見破れなかったら,見分けられるよう学習 32 ジェネレータ ディスクリミネータ
敵対的学習のモデル 33 ジェネレータ 偽物データ ディスクリミ ネータ 本物データ 真/偽? ジェネレータ と
ディスクリミネータ に DNN(CNN) を用いる
深層生成モデルの例 34 https://thispersondoesnotexist.com/ ThisPersonDoesNotExist.com 左の人物は自動生成された 実際には存在しない人の顔 GAN で 訓練されたモデルで 生成されている
アクセスするたびに, 非実在人物の顔を作成
深層生成モデルの例 35 https://www.openai.com/blog/dall-e/ OpenAI: Dall・E チュチュを着た大根の赤ちゃんが 犬の散歩をしている 絵 …という,お題のみを与え, AIに作画させた結果
内部で使われている GPT-3 は 画像の他,文章の自動生成も可能
深層学習を用いたその他の例 36 https://deepmind.com/blog/article/alphafold-a-solution-to-a -50-year-old-grand-challenge-in-biology AlphaFold2 タンパク質の立体構造を予測 タンパク質の折り畳まれ方は 予想することが極めて困難だった
DNN と ハードウェア CPU と GPGPU 37
DNN の 普及にはハードの観点も n 今まで見てきたとおり DNN は高性能 n 一方,計算量は膨大… u
そもそもデータを沢山読み込ませるし, 層が増えると誤差逆伝搬の回数も増えていく p 入力から出力まで,各層10ノード,隠れ層8層だと… 10^10 = 1,000,000,000 (10億) 38 実はハードウェアの能力向上も DNN の 発展普及に大きく貢献
DNN と ハードウェア n DNN 周りでは GPU/GPGPU と言う単語が… 39 メモリ
現代のコンピュータの基礎構成要素 I/O バス レジスタ CPU 28 以前の回で出てきた “基本構成要素” には見当たらない…
GPU n GPU の前に CPU 再確認 u Central Processing Unit
: 中央演算装置 p 実際にいろいろな計算を行うコンピュータの頭脳,そろばん n GPU u Graphics Processing Unit : 図学処理装置 p 画像出力専用の そろばん だと思えば良い p そろばん なら CPU があるわけで,なんでわざわざ??? 40
GPU の 必要性 n すでに見た画像処理の方法を思い出すと… u 画面の1セルごとに,RGBの濃度や明るさ を制御 p 4Kディスプレイだと
800万 セルくらいを処理する必要 u 3Dのゲームなどでは,その計算も必要 しかも 高速に n 1セルごとの計算自体は比較的単純&独立だが とにかく,ものすごい数をどんどんさばく必要 u CPU は複雑な順列計算が得意なので,これらの処理を わざわざ CPU で行うのはもったいない 41
CPU vs. GPU n CPU u 複雑な計算OK u 基本は順列計算 p
精々 4〜8並列程度 n GPU u 単純計算のみ u 基本は並列計算 p 数千並列 42 G PU
ニューラルネットとGPU n NN,特に DNN は計算が大量 u 各層の単位では,エッジごとに計算は独立かつ単純 p つまり,並列計算 が
可能な,大量計算が必要な問題 u DNN の 問題は GPU で扱いやすいタイプ!! p さらに,2010年代位からは特にゲーム用途でGPUが高性能化 43 DNN で 画像を扱うから,GPU…と言うわけではない J
GPU から GPGPU へ n GPGPU u General Purpose Computing
on GPU u これまで見てきたとおり,GPU は 画像用 u しかし,画像処理以外にも便利に使える u というわけで,GPU を 画像処理以外のことにも使う 44
DNNを巡る課題 n 現状ではDNNの活用は物量勝負 u 精度向上のためにも大量のデータが必要 u 精度を上げるには大量のGPUも必要 p 層を深くすれば精度はどんどん上がるが,計算量も増大 45
Google や Amazon など, 計算リソースとデータがある企業が勝つ