neural network と universality について

70
Neural Network Universality について

Upload: kato-yuzuru

Post on 08-Aug-2015

430 views

Category:

Engineering


6 download

TRANSCRIPT

Page 1: Neural Network と Universality について

Neural Network の

Universalityについて

Page 2: Neural Network と Universality について

本資料の内容は、

「Neural Network and Deep Learning」Michel Nielsen著

http://neuralnetworksanddeeplearning.com/

に基づいています。

Page 3: Neural Network と Universality について

本資料の内容は、

Rigorous(厳密)さよりも、Roughly(ざっくり)でも

直観的な理解のしやすさ、

に焦点を当ててまとめました。

Page 4: Neural Network と Universality について

アウトライン

1.本資料について(スキップ可)

2.Neural Network とは?

3.論理関数としてのUniversality

4.連続関数としてのUniversality

Page 5: Neural Network と Universality について

アウトライン

1.本資料について(スキップ可)

2.Neural Network とは?

3.論理関数としてのUniversality

4.連続関数としてのUniversality

Page 6: Neural Network と Universality について

1.本資料について

「Neural Network and Deep Learning」の著者Michael Nielsen とは?

1-1.Michael Nielsen

過去:量子情報処理分野の研究者現在:科学者、作家、プログラマーとして、

科学のオープン化など、複数の活動を遂行中。http://michaelnielsen.org/

Michael Nielsen

著書:

量子情報処理入門(和訳あり)

オープンサイエンス(和訳あり)

Neural networkAnd

Deep Learning

本資料の内容はこれ

Page 7: Neural Network と Universality について

1.本資料について

Neural Network と Deep Learningについて、Principle(原理)に焦点をおいてまとめたオンラインブック。本資料は、特に Neural Network の直観的理解につながる

Universalityについて、1章と4章の内容についてまとめました。

1-2.Neural Network and Deep Learning

Page 8: Neural Network と Universality について

アウトライン

1.本資料について(スキップ可)

2.Neural Network とは?

3.論理関数としてのUniversality

4.連続関数としてのUniversality

Page 9: Neural Network と Universality について

2. Neural Networkとは? 2-1. Neural Network

大量のデータからコンピュータに学習させるための、(生物模式的な)理論的枠組み。

学習用データ

未知データを入力

1 3 1

2 8 6

4 3 2

6 0 4

8 5 9

0 9 4

6 1 0

2 1 1

3 9 0

Neural Network正解を出力

0 9 4

6 1 0

学習用データ

Page 10: Neural Network と Universality について

つまり・・・

Page 11: Neural Network と Universality について

2. Neural Networkとは? 2-1. Neural Network

入力:手書き数字画像

学習用データ

1 3 1

2 8 6

4 3 2

6 0 4

8 5 9

0 9 4

6 1 0

2 1 1

3 9 0

Neural Network

学習用データ

入出力関係からルールを学習

例:

出力:表された数字

上の4画像に近いパーツがあれば、その画像に表された数字は、0である可能性が高い。

※手書き数字画像の各ピクセルを並べたベクトルを X 、出力数字を y として、(X, y)の入出力関係データを大量に用いる。

未知データを入力

正解を出力

0 9 4

6 1 0

Page 12: Neural Network と Universality について

2. Neural Networkとは? 2-1. Neural Network

入力:手書き数字画像

学習用データ

1 3 1

2 8 6

4 3 2

6 0 4

8 5 9

0 9 4

6 1 0

2 1 1

3 9 0

学習用データ

学習したルールをもとに正解を出力(正解率は95%以上)

例:

出力:表された数字

上の4画像に近いパーツがあれば、その画像に表された数字は、0である可能性が高い。

未知データを入力

正解を出力

0 9 4

6 1 0

Neural Network

※手書き数字画像の各ピクセルを並べたベクトルを X 、出力数字を y として、(X, y)の入出力関係データを大量に用いる。

Page 13: Neural Network と Universality について

具体的に、どうやって学習をするのか?

Page 14: Neural Network と Universality について

2. Neural Networkとは? 2-2.Perceptron

Neural Network の基本単位である各ニューロンをPerceptronモデルで表す。

このモデルは、人間の意思決定モデルとも解釈できる。

Perceptronモデル 意思決定モデル

Output:0: 買い物に行かない1: 買い物に行くInput:X1: 天気が良いかどうかX2: 恋人がついてくるかどうかX3: 近くで祭りがあるかどうか

(w1,w2,w3,thershold) = (0.7, 0.5, 0.1, 1) とすれば、(x1,x2,x3) = (1,1,0) でOutputは 1 。つまり、天気が良く、恋人がついてこれば、近くで祭りがなくても、買い物に行く。

Page 15: Neural Network と Universality について

2. Neural Networkとは? 2-2.Perceptron

Perceptronモデル 意思決定モデル

Output:0: 買い物に行かない1: 買い物に行くInput:X1: 天気が良いかどうかX2: 恋人がついてくるかどうかX3: 近くで祭りがあるかどうか

(w1,w2,w3,threshold) = (0.7, 0.5, 0.1, 1) とすれば、(x1,x2,x3) = (1,1,0) でOutputは 1 。つまり、天気が良く、恋人がついてこれば、近くで祭りがなくても、買い物に行く。

(w1,w2,w3,…,threshold) が変わると

Output が変わる。

つまり(w1,w2,w3,…,threshold) が

ルールを決める

Neural Network の基本単位である各ニューロンをPerceptronモデルで表す。

このモデルは、人間の意思決定モデルとも解釈できる。

Page 16: Neural Network と Universality について

2. Neural Networkとは?

学習用データ

1 3 1

2 8 6

4 3 2

6 0 4

8 5 9

0 9 4

6 1 0

2 1 1

3 9 0

Neural Network

学習用データ

未知データを入力

正解を出力

0 9 4

6 1 0

大量データから、多数パーセプトロンの (w1,w2,w3,…,threshold) を調整し、複雑なルールを学習する。

2-2.Perceptron

Page 17: Neural Network と Universality について

2. Neural Networkとは?

学習用データ

1 3 1

2 8 6

4 3 2

6 0 4

8 5 9

0 9 4

6 1 0

2 1 1

3 9 0

学習用データ

入出力関係から(w1,w2,w3…, threshold)を調整し、ルールを学習

例:

上の4画像に近いパーツがあれば、その画像に表された数字は、0である可能性が高い。

未知データを入力

正解を出力

0 9 4

6 1 0

大量データから、多数パーセプトロンの (w1,w2,w3,…,threshold) を調整し、複雑なルールを学習する。

Neural Network

2-2.Perceptron

Page 18: Neural Network と Universality について

2. Neural Networkとは? 2-3.Sigmoidニューロン

ただし実際には、非連続関数は扱いにくいため、Perceptronを Sigmoid ニューロンで近似する場合が多い。

Perceptron Sigmoidニューロン

Page 19: Neural Network と Universality について

なお、はじめに (生物模式的な)と書いたのは、

「Neural Networkは、脳機能のモデル化である」

という研究の源泉があるからです。ただ、専門家の意見としては、厳密には違うらしいです。

参照:http://spectrum.ieee.org/robotics/artificial-intelligence/machinelearning-maestro-michael-jordan-on-the-delusions-of-big-data-and-other-huge-engineering-efforts

Page 20: Neural Network と Universality について

あくまで、Neural Network を

「大量のデータからコンピュータに学習させるための、(生物模式的な)理論的枠組み」

くらいで捉えるのがよさそうです。

Page 21: Neural Network と Universality について

アウトライン

1.本資料について(スキップ可)

2.Neural Network とは?

3.論理関数としてのUniversality

4.連続関数としてのUniversality

Page 22: Neural Network と Universality について

Universality とは、

「一般性」や「普遍性」

という意味です。

Page 23: Neural Network と Universality について

「~のUniversality」 とは、

「任意の~」という意味を持ちます。

Page 24: Neural Network と Universality について

Neural Network の「論理関数としてのUniversality」

とは、

Neural Network によって、「任意の論理計算を実現できる」

ことを意味します。

Page 25: Neural Network と Universality について

本章では、

どうやって、Neural Networkによって、任意の論理計算を実現できるのか?

についてまとめました。

Page 26: Neural Network と Universality について

3.論理関数としてのUniversality 3-1.NANDゲート

NANDゲートを基本素子として、複数の基本素子を組み合わせれば、任意の論理計算を実現できる。

X1 X2 X1 NAND X2

0 0 1

0 1 1

1 0 1

1 1 0

X1

X2

X1 NAND X2

NANDゲート

Page 27: Neural Network と Universality について

3.論理関数としてのUniversality 3-1.NANDゲート

X1 X2 X1 NAND

X2

0 0 1

0 1 1

1 0 1

1 1 0

例:Bitwise Sum X1 X2 BitwiseSum

0 0 00

0 1 01

1 0 01

1 1 10

X1

X2

X1 NAND X2

NANDゲート※任意の論理計算の実現性について、証明の記載まではなかったので、例の記載のみにとどめておきます。

NANDゲートを基本素子として、複数の基本素子を組み合わせれば、任意の論理計算を実現できる。

Page 28: Neural Network と Universality について

つまり、

Neural Network の基本素子である「ニューロン」によって「NANDゲート」

を実現できれば、

Neural Networkは任意の論理計算を実現できる、

ということになります。

Page 29: Neural Network と Universality について

3.論理関数としてのUniversality 3-2.NANDゲートニューロン

ニューロン(パーセプトロン)によってNANDゲートを実現できる。

X1 X2 X1 NAND X2

0 0 (-2)*0+(-2)*0 > -3 | 1

0 1 (-2)*0+(-2)*1 > -3 | 1

1 0 (-2)*1+(-2)*0 > -3 | 1

1 1 (-2)*1+(-2)*1 > -3 | 0(w1,w2,thershold) = (-2, -2, -3)

NANDゲートニューロン

Page 30: Neural Network と Universality について

3.論理関数としてのUniversality 3-2.NANDゲートニューロン

ニューロン(パーセプトロン)によってNANDゲートを実現できる。つまり、Neural Network によって、任意の論理計算を実現できる。

X1 X2 X1 NAND X2

0 0 (-2)*0+(-2)*0 > -3 | 1

0 1 (-2)*0+(-2)*1 > -3 | 1

1 0 (-2)*1+(-2)*0 > -3 | 1

1 1 (-2)*1+(-2)*1 > -3 | 0

(w1,w2,thershold) = (-2, -2, -3)

NANDゲートニューロン

例:Bitwise Sum

X1 X2 BitwiseSum

0 0 00

0 1 01

1 0 01

1 1 10

※任意の論理計算の実現性について、証明の記載まではなかったので、例の記載のみにとどめておきます。

Page 31: Neural Network と Universality について

Neural Network によって、任意の論理計算を実現できる

ことが分かりました。

Page 32: Neural Network と Universality について

これは、

Neural Network が、他の計算デバイスと同等の計算能力を持つ

ことを意味します。

Page 33: Neural Network と Universality について

これに加えて、

Neural Network は、他の計算デバイスによって実現が容易でない計算能力

を持っています。

Page 34: Neural Network と Universality について

それが、先に紹介した

「大量データからコンピュータに学習させる」

という計算能力です。

Page 35: Neural Network と Universality について

そして、その計算能力を保証するのが、

「連続関数としてのUniversality」

です。次章では、このことについてまとめました。

Page 36: Neural Network と Universality について

アウトライン

1.本資料について

2.Neural Network とは?

3.論理関数としてのUniversality

4.連続関数としてのUniversality

Page 37: Neural Network と Universality について

前章同様に、Neural Network の

「連続関数としてのUniversality」とは、

Neural Network によって、「任意の連続関数を実現できる」

ことを意味します。

Page 38: Neural Network と Universality について

より具体的には、

「Neural Network によって、十分に正確な近似のもとで、

任意の多入力多出力連続関数Fm(X1,X2,X3,…,Xn)

(n=1,2,3, …; m=1,2,3, …;)を実現できる」

ことを意味します。

Page 39: Neural Network と Universality について

図で表すと、以下のような感じです。(n=3,m=2)

Page 40: Neural Network と Universality について

本章では、

どうやって、Neural Networkによって、任意の連続関数を実現できるのか?

についてまとめました。

Page 41: Neural Network と Universality について

まずは、1入力1出力の場合を考えます。

S1 S2

Page 42: Neural Network と Universality について

※1.パーセプトロンの不等式において、(右辺)=0と

するため、 として(左辺)に移項している。

4.連続関数としてのUniversality 4-1.1入力1出力関数

Sigmoidニューロンによって、任意のステップ関数を再現できる。

※2.隠れ層(中間層)に2つのニューロンがあるが、右図グラフが表すのは、上のニューロンの出力結果。 パーセプトロンの不等式

隠れ層

Page 43: Neural Network と Universality について

4.連続関数としてのUniversality 4-1.1入力1出力関数

Sigmoidニューロンによって、任意のステップ関数を再現できる。

パーセプトロンの不等式

(b,w)が十分に大きい

も自由に変化可能

※2.隠れ層(中間層)に2つのニューロンがあるが、右図グラフが表すのは、上のニューロンの出力結果。

※1.パーセプトロンの不等式において、(右辺)=0と

するため、 として(左辺)に移項している。

Page 44: Neural Network と Universality について

4.連続関数としてのUniversality 4-1.1入力1出力関数

Sigmoidニューロンによって、”bump”関数を実現できる。

3. ここでいう ”bump” 関数とは、右図グラフのような、S1で 0→ h となり、 S2で h→0 となる関数。 h = w1 = -w2 = 0.8 で”bump”の高さを表す。

1.S1 = - b1 / w1, S2 = - b2 / w2 とする。

S1 S2

2.右図グラフは、隠れ層(中間層)の出力の重み付き和の結果。

Page 45: Neural Network と Universality について

4.連続関数としてのUniversality 4-1.1入力1出力関数

Sigmoidニューロンによって、複数の”bump”関数を実現できる。

2. hは、各 “bump”の高さを表す。

1.ニューロン内の数値は、各 ”bump” の変化点を表す。

0.4 0.6

0.9

0.7

Page 46: Neural Network と Universality について

4.連続関数としてのUniversality 4-1.1入力1出力関数

無数の”bump”関数によって、任意の連続関数を近似できる。

Page 47: Neural Network と Universality について

このように、

無数の隠れ層を用意し、無数の”bump” 関数を細かく用意すれば、十分に正確な近似のもとで、

隠れ層の出力の重み付き和によって、任意の連続関数を実現できる。

Page 48: Neural Network と Universality について

問題は、Neural Network全体の出力によって、任意の連続関数を実現すること。

Page 49: Neural Network と Universality について

これは、隠れ層の出力の重み付き和を、にすることによって達成できる。

Page 50: Neural Network と Universality について

以上で、1入力1出力の場合に、

Neural Networkによって、任意の連続関数を実現できる

ことが分かりました。

Page 51: Neural Network と Universality について

次に、2入力1出力の場合を考えます。

Page 52: Neural Network と Universality について

4.連続関数としてのUniversality 4-2.2入力1出力関数

Sigmoidニューロンによって、任意のステップ関数を実現できる。( y の重みが0で、x に関して)

1.出力ニューロン内の数値は、ステップ関数の変化点を表す。

2.出力ニューロン内の変数は、変化する変数を表す。

Page 53: Neural Network と Universality について

4.連続関数としてのUniversality 4-2.2入力1出力関数

Sigmoidニューロンによって、任意のステップ関数を実現できる。( xの重みが0で、yに関して)

1.出力ニューロン内の数値は、ステップ関数の変化点を表す。

2.出力ニューロン内の変数は、変化する変数を表す。

Page 54: Neural Network と Universality について

4.連続関数としてのUniversality 4-2.2入力1出力関数

Sigmoidニューロンによって、”bump”関数を実現できる。( y の重みが0で、x に関して)

1.右図グラフは、隠れ層の出力の重み付き和を表す。

2.出力ニューロン内の数値は、”bump” の変化点を表す。

3.h は、“bump” の高さを表す。

Page 55: Neural Network と Universality について

4.連続関数としてのUniversality 4-2.2入力1出力関数

1.右図グラフは、隠れ層の出力の重み付き和を表す。

3.h は、“bump” の高さを表す。

Sigmoidニューロンによって、”bump”関数を実現できる。( x の重みが0で、y に関して)

2.出力ニューロン内の数値は、”bump” の変化点を表す。

Page 56: Neural Network と Universality について

4.連続関数としてのUniversality 4-2.2入力1出力関数

1.右図グラフは、隠れ層の出力の重み付き和を表す。

2.出力ニューロン内の変数は、変化する変数を表す。

3.h は、“bump” 関数の高さを表す。

”bump”関数を重ねあわせると、グラフのような関数となる。

Page 57: Neural Network と Universality について

ここ(3h/2)で、Sigmoid 関数によって

区切ると、

Page 58: Neural Network と Universality について

図のような“tower”

のような関数となる。

Page 59: Neural Network と Universality について

4.連続関数としてのUniversality 4-2.2入力1出力関数

1.右図グラフは、Neural Network全体の出力を表す。(b= -3h/2)

2.”tower”関数とは、右図グラフのような、”bump” 関数の2次元版。

3.ニューロン内の数字は、各変数の変化点の位置を表す。

”bump”関数を重ねあわせることで、“tower” 関数を実現できる。

Page 60: Neural Network と Universality について

4.連続関数としてのUniversality 4-2.2入力1出力関数

Sigmoidニューロンによって、複数の”tower”関数を実現できる。

1.右図グラフは、2層目の隠れ層の出力の重み付き和を表す。

Page 61: Neural Network と Universality について

4.連続関数としてのUniversality 4-2.2入力1出力関数

無数の”tower” 関数によって、任意の連続関数を実現できる。

Page 62: Neural Network と Universality について

このように

無数の“tower”関数を細かく用意すれば、

十分に正確な近似のもとで、

隠れ層の出力の重み付き和によって、任意の連続関数を実現できる。

Page 63: Neural Network と Universality について

前節同様に、

隠れ層の出力の重み付き和を、にすることによって、

2入力1出力の場合でも、任意の連続関数を実現できる。

Page 64: Neural Network と Universality について

n入力1出力の場合でも同様に、任意の連続関数を実現できる。

・Snとtnは、各変数の“bump” 関数の変化点を表す。

・n入力の場合、出力ニューロンにおいて、b = - (n + 1/2) h となる。

Page 65: Neural Network と Universality について

1出力をm出力にするには、1出力のNeural Networkをm 個用意すればよいだけ。

Page 66: Neural Network と Universality について

以上の議論から、

Neural Network によって、十分に正確な近似のもとで、

任意の多入力多出力連続関数Fm(X1,X2,X3,…,Xn)

(n=1,2,3, …; m=1,2,3, …;)を実現できる

ことがわかりました。

Page 67: Neural Network と Universality について

つまり、

Neural Network によって、任意の連続関数を実現できる

ことが分かりました。

Page 68: Neural Network と Universality について

しかし、任意の計算を

“理論”的に実現できることと、“実用”的に実現すること

には、大きな差があります。

Page 69: Neural Network と Universality について

Neural network の中でも、Deep Learning は、

所望の計算を“実用”的に実現する方法

として、経験則的に良い方法と言われています。

Page 70: Neural Network と Universality について

本自体がまだアップロードされていませんが、

Deep Learning

についても、機会があればまとめてみたいと思います。