順列計算
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
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
いらないものは捨て,
必要なものは保存
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
※ 宝くじ の発券機だと思ってください
何が難しいのか?
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
深層生成モデル
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
ジェネレータ ディスクリミネータ
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 など,
計算リソースとデータがある企業が勝つ