狠狠撸

狠狠撸Share a Scribd company logo
「内積」を知っていればわかる(?):
深层学习の非常に简単な説明
九州大学システム情報科学研究院 情報知能工学部門 内田誠一
uchida@ait.kyushu-u.ac.jp
1
はじめに:ビギナーの方へ (1/2)
?深層学習の基本を極力平易に説明したつもりです
?ちょっと普通の入門書とは違った角度から攻めてます
? (Back Propagationなどの)「学習法」は説明していません
? (学習後に)「どういう風に動作するものなのか」を中心にしています
? (学習後の)動作がわかった後に,学習原理を学ぶとよいと思います
?前半は,深層学習以前の(30年ぐらいまえの)多層ニュー
ラルネットワークの解説です
?それを踏まえたほうが,多層化の意味も分かりやすいんじゃないかと
2
はじめに:ビギナーの方へ (2/2)
?例に使っているニューラルネットは,画像認識用の「畳み込
み深層ニューラルネットワーク」とは,ほんのちょっと違います
?ただし,慣れてくると,本質的には同じものだとお分かりいただける
と思います(畳み込みも結局は内積だから)
?学部低年次の皆さん,高校生の皆さん
?皆さんが習っている「ベクトル」とか「内積」とかが,実は昨今のAIの
基本になっているんです
?高々,足し算と掛け算ぐらいの話ですので,恐れず行きましょう!
3
はじめに:専門家の方へ
?本資料は学部低年次程度の知識でも理解できることを
目指しています.
?なので,専門家には「?」なところもあるかもしれません
?イロイロご容赦ください
4
じゃぁ,はじめましょう!
まずは「パターン認識」の基本
パターン認識をよく知っている人は
「ところで,特徴もイロイロある」のスライドへジャンプしてOK
5
計算機に「これは何か」を
答えさせる技術
計算機による「パターン認識」の基本原理
入力パターン
みかん!
「豚肉」「牛肉」
「みかん」
「すいか」
「パイン」 「鯛」
計算機が覚えていること
単に,「自分が覚えているものの中で
入力に最も似てるもの」を答えるだけ!
こんな単純なのに,業界では「最近傍
識別」というイカツイ名前で呼ぶ...
この基本原理を座標空間で見ると...(1/8)
色特徴
テクスチャ
(模様)特徴
豚肉=(色,形,模様)
=(10, 2.5, 4.3)
※これらの数字はテキトーです
こんな感じで,それぞれは何かしらの
数字の組で表されているとします
この基本原理を座標空間で見ると...(2/8)
色特徴
テクスチャ
(模様)特徴
豚肉=(色,形,模様)
=(10, 2.5, 4.3)
※これらの数字はテキトーです
こんな感じで,それぞれは何かしらの
数字の組で表されているとします
各数字のことを「特徴」と呼びます
この基本原理を座標空間で見ると...(3/8)
色特徴
テクスチャ
(模様)特徴
豚肉=(色,形,模様)
=(10, 2.5, 4.3)
※これらの数字はテキトーです
こんな感じで,それぞれは何かしらの
数字の組で表されているとします
数字の組=ベクトル,ですよね(次ページ→※)
この基本原理を座標空間で見ると...(4/8)
色特徴
テクスチャ
(模様)特徴
豚肉=(色,形,模様,..., なんちゃら)
=(10, 2.5, 4.3,..., 5.9)
※これらの数字はテキトーです
3つ以上の特徴で表されると,その分だけ
座標軸が要りますが,まぁ気にしない
なんちゃら
特徴
※高校だと3数字の組=3次元ベクトルまでしか習わないでしょうね.でもd(>3)個の数字の組にしたってOK. d次元ベクトル.
この基本原理を座標空間で見ると...(5/8)
色特徴
テクスチャ
(模様)特徴
牛肉=(色,形,模様,..., なんちゃら)
=(8, 2.6, 0.9,..., 7.2)
※これらの数字はテキトーです
違うものは,違う値を持つから
この座標空間の中でも違う位置
豚肉=(色,形,模様,..., なんちゃら)
=(10, 2.5, 4.3,..., 5.9)
※これらの数字はテキトーです
なんちゃら
特徴
この基本原理を座標空間で見ると...(6/8)
色特徴
テクスチャ
(模様)特徴
計算機が覚えているものは
こんな感じで分布
この基本原理を座標空間で見ると...(7/8)
色特徴
テクスチャ
(模様)特徴
これが何であるかを知りたい!
なんちゃら
特徴
入力パターン x
この基本原理を座標空間で見ると...(8/8)
最近傍パターン
入力パターン x
色特徴
テクスチャ
(模様)特徴
これが一番近いので,
「入力パターン=みかん」と答える
なんちゃら
特徴
ところで,特徴もイロイロある
(ここ,ちょっと重要)
パターン自身の性質
? オレンジの画素数→多い
? 青の画素数→小
? 円形度→高い
? 線対称度→高い
? 模様→細かい
….
他のパターンとの関係
? 「車」との類似度→低
? 「リンゴ」との類似度→高
? 「猿」との類似度→低
? 「柿」との類似度→高
…
他者との類似度も
特徴になる!
ところで,特徴もイロイロある
(ここ,ちょっと重要)
パターン自身の性質
? オレンジの画素数→多い
? 青の画素数→小
? 円形度→高い
? 線対称度→高い
? 模様→細かい
….
他のパターンとの関係
? 「車」との類似度→低
? 「リンゴ」との類似度→高
? 「猿」との類似度→低
? 「柿」との類似度→高
…
僕って,
身長が170cm,
体重が62km,
100m走が12.4秒,
ラーメン替玉が3杯...
自分自身に
関する量で
自分を特徴づけ
僕って,
俳優Aに「やや似」,
俳優Bに「激似」
俳優Cに「全然似てない」,
俳優Dも「全然似てない」...
他者との
関係で
自分を特徴づけ
どっちがイイとか悪いとかじゃなく,
単に特徴づけには色々あるってこと
従って,他のパターンとの関係(類似度)でも
最近傍識別は可能
柿との
類似度
車との類似度
先程の状況
難しく言えば,
一種の「空間変換」となっているわけです
1w
元のd次元空間
新たなK次元空間
入力パターン
'x
(Dis)similarity
space embedding
とも呼ばれる
1w
2w
Kw
との類似度
との類似度
さて,ニューロンが
「内積」と関係あるという話
専門家の皆さん,色々言いたいことはあると思いますが...
19
神経細胞(ニューロン)
https://commons.wikimedia.org/
樹状突起
軸索
軸索末端
出力
次のニューロンへ
刺激
(入力)
何らかの
処理
ちょっとした余談:脳に関する素朴な疑問
?脳はニューロンの集合体
?どこのニューロンを見ても機能は(ほぼ)同じ
?なんで同じものを寄せ集めているだけなのに,
脳はこれだけ多様な機能を実現できるのか?
?認識機能の実現だけでも,特徴抽出と識別が必要なのに…
ニューロンの計算モデル
https://commons.wikimedia.org/
入力 g ? ?xgx 出力
1x
jx
dx
1w
jw
dw
g
? ?xg
重み
関数
ニューロンの計算モデル:
もうちょっとキチッと
Σ ? ?xg
1x
jx
dx
1
……
b
? ?bf
bxwfg
T
d
j
jj
??
?
?
?
?
?
?
?
?
?? ??
xw
x
   
1
)(
x 1w
jw
dw
f
f: 非線形関数
入力
出力
重み
キチッとしたいけど,
面倒くさそうなものは考えたくない
Σ ? ?xg
1x
jx
dx
1
……
b
x 1w
jw
dw
f
f: 非線形関数
OK,
忘れよう
? ?bf
bxwfg
T
d
j
jj
??
?
?
?
?
?
?
?
?
?? ??
xw
x
   
1
)(
結構簡単になった.
でもまだ面倒そうなものが…
Σ ? ?xg
1x
jx
dx
1
……
b
x 1w
jw
dwOK,
忘れよう
??
??
d
j
jj bxwg
1
)(x
ずいぶん簡単になった.
あれ,これ見たことある?
Σ
1x
jx
dx
……
xwT
おお,これは2つの
ベクトルの内積じゃん
(d次元ベクトルwとxのd個の要素それぞれを
掛け合わせていき,最後に全部足す.
ちなみにそれを一気に表したものが ? ?
?)
x
1w
jw
dw
w
xw
x
T
d
j
jj xwg
?
? ??
   
1
)(
入力 重み
さて,この辺から
ニューラルネットワークの話に
まずは30年ぐらいのニューラルネットの話
27
なるほど,ニューロンは内積らしい.
ところで内積って何だっけ?
xwT
Σ
1x
jx
dx
……
1w
jw
dw
内積値0.9なら
似てる!
内積値0.02なら
似てない似たベクトルの内積値は大きくなる
→内積は入力x と重みwの類似度を表現
入力 重み
ということは,K個のニューロンが
あれば K個の類似度が…
29
x
1x
jx
dx
ということは,K個のニューロンが
あれば K個の類似度が…
30
x
1x
jx
dx
1w
2w
Kw ?
?
?
?
?
?
?
?
?
?
?
?
?
?
xw
xw
xw
T
K
T
T
?
2
1
?
?
?
?
?
?
?
?
?
?
?
?
?
?
xw
xw
xw
T
K
T
T
?
2
1
ということは,K個のニューロンが
あれば K個の類似度が…
31
x
1x
jx
dx
1w
2w
Kw
との類似度
0.9
との類似度
0.75
との類似度
0.05
そう,K個のニューロンがあれば
K次元の(類似度)特徴が出せる
1w
0.9
0.05
0.75
との類似度(内積)
入力
等価
Kw との
類似度
実は内積には別の機能も!
xvT
Σ
1x
jx
dx
……
1v
jv
dv
内積=類似度なので
最近傍識別のための類似度にも使える
v
x
ニューラルネットワーク,これで完成!
…
特徴抽出のための内積
1w
Kw
1x
jx
dx
……
2w
識別のための内積
AV
CV
BV
Aらしさ
Bらしさ
Cらしさ
最大値を
とれば
OK!
ニューラルネットワーク,これで完成!
…
特徴抽出のための内積
1w
Kw
1x
jx
dx
……
2w
識別のための内積
AV
CV
BV
Aらしさ
Bらしさ
Cらしさ
最大値を
とれば
OK!
内積だけで特徴抽出と識別の両方を実現!
→ニューロンだけで脳が多機能性を実現するのと似ている
いよいよディープに
なぜ「深層」である必要があるのか?
36
ディープニューラルネットワークへ!
ディープニューラルネットワーク,
簡単に言えば
1x
jx
dx
…
何度も特徴抽出しているだけ
識別
……
…
f
f
f
f
f
f
なぜ何度も特徴抽出?
「今使ってる特徴=類似度」を思い出そう
A
D
C
B
E
F
パターンの分布
(青と緑,なんかグチャグチャしてて分けにくい)
なぜ何度も特徴抽出?
「今使ってる特徴=類似度」を思い出そう
A
D
C
B
E
F
例えば,
みかんと柿の認識問題:
ゴチャゴチャ混ざっていて,
誤認識が起きそう
なぜ何度も特徴抽出?
「今使ってる特徴=類似度」を思い出そう
A
D
C
B
E
F
1w2w
なぜ何度も特徴抽出?
「今使ってる特徴=類似度」を思い出そう
A
D
C
B
E
F
1w2w
F
1w との類似度
2w
との
類似度
A
B
C
D
E
※ここにほんのちょっとゴマカシがあります.気づかない人は
気づかなくて全然OK. 一応白状しておくと,仕組みの理解を
容易にするために,上から下に空間変換する際との類似度と
して,厳密な内積値は使っていません.図上では,(距離
的に)近ければ類似度は大きい,という感じで空間変換してます.
このゴマカシは本質的理解を妨げるものではないと信じてます.
?1との類似度大
?2との類似度小
なぜ何度も特徴抽出?
「今使ってる特徴=類似度」を思い出そう
A
D
C
B
E
F
1w2w
F
1w との類似度
2w
との
類似度
A
B
C
D
E
上の状況より,
よりゴチャゴチャ度は減ったが
もうちょっとキレイに分けたい
(専門的には「まだ線形分離不能」)
なぜ何度も特徴抽出?
「今使ってる特徴=類似度」を思い出そう
A
D
C
B
E
F
1w2w
F
1w との類似度
2w
との
類似度
A
B
C
D
E3w
4w
なぜ何度も特徴抽出?
「今使ってる特徴=類似度」を思い出そう
A
D
C
B
E
F
1w2w
F
1w との類似度
2w
との
類似度
A
B
C
D
E3w
4w
3w
4w
A
D
E
B
C
F
との類似度
との
類似度
なぜ何度も特徴抽出?
「今使ってる特徴=類似度」を思い出そう
A
D
C
B
E
F
1w2w
F
1w との類似度
2w
との
類似度
A
B
C
D
E3w
4w
3w
4w
A
D
E
B
C
F
との類似度
との
類似度
簡単に識別できそう
なぜ何度も特徴抽出?
「今使ってる特徴=類似度」を思い出そう
A
D
C
B
E
F
1w2w
F
1w との類似度
2w
との
類似度
A
B
C
D
E3w
4w
3w
4w
A
D
E
B
C
F
との類似度
との
類似度
3w
4w
A
D
E
B
C
F
との類似度
との
類似度
実際,こんな風に?1, ?2を
置けば,完全に識別可能
2v
1v
なぜ何度も特徴抽出?
「今使ってる特徴=類似度」を思い出そう
?要するに,各層で空間変換(線形変換)をやって,なるべ
く分離識別しやすいようにしている
?それを何度も繰り返す(=多層を通す)ことで,どんどん
分離識別しやすくできると期待できる
?ただし,空間変換時に,ちょっとだけ非線形処理が入る
?必要ならば,以下のスライドを参照
おまけ:非線形関数の効果の
直感的理解
49
入力パターン
d次元空間
x
1w
2w
Kw
ある程度以上
遠くても
(負の)一定値
ある程度以上
近ければ一定値
ある程度以上
近ければ一定値
f: 非線形関数
関数前の
内積値
関数後の
内積値
一定値に
飽和させる
おまけ:非線形関数の効果の
直感的理解
?内積による「類似度」を特徴とした
空間で,効果を見ると...
f: 非線形関数
xwT
1
xwT
K
1
1
1
x
w
T
2
f
f
f
f
おまけ:非線形関数の効果の
直感的理解
?内積による「類似度」を特徴とした
空間で,効果を見ると...
f: ReLU
xwT
1
xwT
K
x
w
T
2
f
変わらず
変わらず
f
内積値がマイナスになったもの(=類似度が低くなったもの)を,
(見捨てずに)第一象限に戻してやっているだけ
関数前の
内積値
関数後の
内積値
内積値が正なら
関数前=関数後
(要は何もしない)
内積値が負なら
強制的にゼロにする

More Related Content

深层学习の非常に简単な説明