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
Amazon Connectを利用したCloudWatch Alarm電話通知
junghyeonjae
0
260
2409_CompanyInfo_Hanji_published.pdf
yosukemurata
0
370
Chapitre_1_-__L_atmosphère_et_la_vie_-_Partie_1.pdf
bernhardsvt
0
220
小・中・高等学校における情報教育の体系的な学習を目指したカリキュラムモデル案/curriculum model
codeforeveryone
2
2.3k
Medidas en informática
irocho
0
290
Semantic Web and Web 3.0 - Lecture 9 - Web Technologies (1019888BNR)
signer
PRO
1
2.5k
Qualtricsで相互作用実験する「SMARTRIQS」実践編
kscscr
0
290
Epithelium Flashcards
ndevaul
0
1k
"数学" をプログラミングしてもらう際に気をつけていること / Key Considerations When Programming "Mathematics"
guvalif
0
560
Os pápeis do UX Design
wagnerbeethoven
0
360
Zoom-ohjeet
matleenalaakso
7
7.2k
CSS3 and Responsive Web Design - Lecture 5 - Web Technologies (1019888BNR)
signer
PRO
1
2.5k
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Teambox: Starting and Learning
jrom
133
8.8k
Agile that works and the tools we love
rasmusluckow
327
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
120
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Happy Clients
brianwarren
98
6.7k
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 など, 計算リソースとデータがある企業が勝つ