Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Neural Network と Universality について

Neural Network の Universality についてまとめました。
Michael Nielsen 著「Neural Network and Deep Learning」
の内容をまとめたものです。

Universality とは「一般性」、「普遍性」という意味です。
今回は、特に、Neural Network の「論理関数としての Universality」 と、
「連続関数としての Universality」 についてまとめました。




  • Be the first to comment

Neural Network と Universality について

  1. 1. Neural Network の Universality について
  2. 2. 本資料の内容は、 「Neural Network and Deep Learning」 Michel Nielsen著 http://neuralnetworksanddeeplearning.com/ に基づいています。
  3. 3. 本資料の内容は、 Rigorous(厳密)さよりも、 Roughly(ざっくり)でも 直観的な理解のしやすさ、 に焦点を当ててまとめました。
  4. 4. アウトライン 1.本資料について(スキップ可) 2.Neural Network とは? 3.論理関数としてのUniversality 4.連続関数としてのUniversality
  5. 5. アウトライン 1.本資料について(スキップ可) 2.Neural Network とは? 3.論理関数としてのUniversality 4.連続関数としてのUniversality
  6. 6. 1.本資料について 「Neural Network and Deep Learning」 の著者Michael Nielsen とは? 1-1.Michael Nielsen 過去:量子情報処理分野の研究者 現在:科学者、作家、プログラマーとして、 科学のオープン化など、複数の活動を遂行中。 http://michaelnielsen.org/ Michael Nielsen 著書: 量子情報処理入門 (和訳あり) オープンサイエンス (和訳あり) Neural network And Deep Learning 本資料の内容はこれ
  7. 7. 1.本資料について Neural Network と Deep Learningについて、 Principle(原理)に焦点をおいてまとめたオンラインブック。 本資料は、特に Neural Network の直観的理解につながる Universality について、1章と4章の内容についてまとめました。 1-2.Neural Network and Deep Learning
  8. 8. アウトライン 1.本資料について(スキップ可) 2.Neural Network とは? 3.論理関数としてのUniversality 4.連続関数としてのUniversality
  9. 9. 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 学習用データ
  10. 10. つまり・・・
  11. 11. 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である 可能性が高い。 0 ※手書き数字画像の各ピクセルを並べたベク トルを X 、出力数字を y として、(X, y)の入出力 関係データを大量に用いる。 未知データ を入力 正解を 出力 0 9 4 6 1 0
  12. 12. 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 未知データ を入力 正解を 出力 0 9 4 6 1 0 Neural Network ※手書き数字画像の各ピクセルを並べたベク トルを X 、出力数字を y として、(X, y)の入出力 関係データを大量に用いる。
  13. 13. 具体的に、 どうやって学習をするのか?
  14. 14. 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 。 つまり、天気が良く、恋人がついて これば、近くで祭りがなくても、 買い物に行く。
  15. 15. 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モデルで表す。 このモデルは、人間の意思決定モデルとも解釈できる。
  16. 16. 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
  17. 17. 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
  18. 18. 2. Neural Networkとは? 2-3.Sigmoid ニューロン ただし実際には、非連続関数は扱いにくいため、 Perceptron を Sigmoid ニューロンで近似する場合が多い。 Perceptron Sigmoidニューロン
  19. 19. なお、はじめに (生物模式的な) と書いたのは、 「Neural Networkは、 脳機能のモデル化である」 という研究の源泉があるからです。 ただ、専門家の意見としては、 厳密には違うらしいです。 参照:http://spectrum.ieee.org/robotics/artificial-intelligence/machinelearning-maestro- michael-jordan-on-the-delusions-of-big-data-and-other-huge-engineering-efforts
  20. 20. あくまで、Neural Network を 「大量のデータから コンピュータに学習させるための、 (生物模式的な)理論的枠組み」 くらいで捉えるのがよさそうです。
  21. 21. アウトライン 1.本資料について(スキップ可) 2.Neural Network とは? 3.論理関数としてのUniversality 4.連続関数としてのUniversality
  22. 22. Universality とは、 「一般性」や「普遍性」 という意味です。
  23. 23. 「~のUniversality」 とは、 「任意の~」 という意味を持ちます。
  24. 24. Neural Network の 「論理関数としてのUniversality」 とは、 Neural Network によって、 「任意の論理計算を実現できる」 ことを意味します。
  25. 25. 本章では、 どうやって、Neural Networkによって、 任意の論理計算を実現できるのか? についてまとめました。
  26. 26. 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ゲート
  27. 27. 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 Bitwise Sum 0 0 00 0 1 01 1 0 01 1 1 10 X1 X2 X1 NAND X2 NANDゲート ※任意の論理計算の実現性につ いて、証明の記載まではなかった ので、例の記載のみにとどめてお きます。 NANDゲートを基本素子として、 複数の基本素子を組み合わせれば、 任意の論理計算を実現できる。
  28. 28. つまり、 Neural Network の基本素子である 「ニューロン」によって「NANDゲート」 を実現できれば、 Neural Networkは 任意の論理計算を実現できる、 ということになります。
  29. 29. 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ゲートニューロン
  30. 30. 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 Bitwise Sum 0 0 00 0 1 01 1 0 01 1 1 10 ※任意の論理計算の実現性につ いて、証明の記載まではなかった ので、例の記載のみにとどめてお きます。
  31. 31. Neural Network によって、 任意の論理計算を実現できる ことが分かりました。
  32. 32. これは、 Neural Network が、 他の計算デバイスと 同等の計算能力を持つ ことを意味します。
  33. 33. これに加えて、 Neural Network は、 他の計算デバイスによって 実現が容易でない計算能力 を持っています。
  34. 34. それが、先に紹介した 「大量データから コンピュータに学習させる」 という計算能力です。
  35. 35. そして、 その計算能力を保証するのが、 「連続関数としてのUniversality」 です。次章では、 このことについてまとめました。
  36. 36. アウトライン 1.本資料について 2.Neural Network とは? 3.論理関数としてのUniversality 4.連続関数としてのUniversality
  37. 37. 前章同様に、 Neural Network の 「連続関数としてのUniversality」 とは、 Neural Network によって、 「任意の連続関数を実現できる」 ことを意味します。
  38. 38. より具体的には、 「Neural Network によって、 十分に正確な近似のもとで、 任意の多入力多出力連続関数 Fm(X1,X2,X3,…,Xn) (n=1,2,3, …; m=1,2,3, …;) を実現できる」 ことを意味します。
  39. 39. 図で表すと、以下のような感じです。 (n=3,m=2)
  40. 40. 本章では、 どうやって、Neural Networkによって、 任意の連続関数を実現できるのか? についてまとめました。
  41. 41. まずは、 1入力1出力の場合 を考えます。 S1 S2
  42. 42. ※1.パーセプトロンの不等式において、(右辺)=0と するため、 として(左辺)に移項して いる。 4.連続関数としてのUniversality 4-1.1入力1出力関数 Sigmoid ニューロンによって、任意のステップ関数を再現できる。 ※2.隠れ層(中間層)に2つのニューロンがあるが、 右図グラフが表すのは、上のニューロンの出力結果。 パーセプトロンの不等式 隠れ層
  43. 43. 4.連続関数としてのUniversality 4-1.1入力1出力関数 Sigmoid ニューロンによって、任意のステップ関数を再現できる。 パーセプトロンの不等式 (b,w) が 十分に大きい も自由に変化可能 ※2.隠れ層(中間層)に2つのニューロンがあるが、 右図グラフが表すのは、上のニューロンの出力結果。 ※1.パーセプトロンの不等式において、(右辺)=0と するため、 として(左辺)に移項して いる。
  44. 44. 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.右図グラフは、隠れ層(中間層)の出力の重み付き和の結果。
  45. 45. 4.連続関数としてのUniversality 4-1.1入力1出力関数 Sigmoid ニューロンによって、複数の”bump”関数を実現できる。 2. h は、各 “bump” の高さを表す。 1.ニューロン内の数値は、各 ”bump” の変化点を表す。 0.4 0.6 0.9 0.7
  46. 46. 4.連続関数としてのUniversality 4-1.1入力1出力関数 無数の”bump”関数によって、任意の連続関数を近似できる。
  47. 47. このように、 無数の隠れ層を用意し、無数の ”bump” 関数を細かく用意すれば、 十分に正確な近似のもとで、 隠れ層の出力の重み付き和によって、 任意の連続関数を実現できる。
  48. 48. 問題は、 Neural Network 全体の出力によって、 任意の連続関数を実現すること。
  49. 49. これは、 隠れ層の出力の重み付き和を、 にすることによって達成できる。
  50. 50. 以上で、 1入力1出力の場合に、 Neural Networkによって、 任意の連続関数を実現できる ことが分かりました。
  51. 51. 次に、 2入力1出力の場合 を考えます。
  52. 52. 4.連続関数としてのUniversality 4-2.2入力1出力関数 Sigmoid ニューロンによって、任意のステップ関数を実現できる。 ( y の重みが0で、x に関して) 1.出力ニューロン内の数値は、ステップ関数の変化点を表す。 2.出力ニューロン内の変数は、変化する変数を表す。
  53. 53. 4.連続関数としてのUniversality 4-2.2入力1出力関数 Sigmoid ニューロンによって、任意のステップ関数を実現できる。 ( x の重みが0で、y に関して) 1.出力ニューロン内の数値は、ステップ関数の変化点を表す。 2.出力ニューロン内の変数は、変化する変数を表す。
  54. 54. 4.連続関数としてのUniversality 4-2.2入力1出力関数 Sigmoid ニューロンによって、”bump” 関数を実現できる。 ( y の重みが0で、x に関して) 1.右図グラフは、隠れ層の出力の重み付き和を表す。 2.出力ニューロン内の数値は、”bump” の変化点を表す。 3.h は、“bump” の高さを表す。
  55. 55. 4.連続関数としてのUniversality 4-2.2入力1出力関数 1.右図グラフは、隠れ層の出力の重み付き和を表す。 3.h は、“bump” の高さを表す。 Sigmoid ニューロンによって、”bump” 関数を実現できる。 ( x の重みが0で、y に関して) 2.出力ニューロン内の数値は、”bump” の変化点を表す。
  56. 56. 4.連続関数としてのUniversality 4-2.2入力1出力関数 1.右図グラフは、隠れ層の出力の重み付き和を表す。 2.出力ニューロン内の変数は、変化する変数を表す。 3.h は、“bump” 関数の高さを表す。 ”bump” 関数を重ねあわせると、 グラフのような関数となる。
  57. 57. ここ(3h/2)で、 Sigmoid 関数によって 区切ると、
  58. 58. 図のような “tower” のような関数となる。
  59. 59. 4.連続関数としてのUniversality 4-2.2入力1出力関数 1.右図グラフは、Neural Network 全体の出力を表す。(b= -3h/2) 2.”tower” 関数とは、右図グラフのような、”bump” 関数の2次元版。 3.ニューロン内の数字は、各変数の変化点の位置を表す。 ”bump” 関数を重ねあわせることで、 “tower” 関数を実現できる。
  60. 60. 4.連続関数としてのUniversality 4-2.2入力1出力関数 Sigmoid ニューロンによって、複数の”tower”関数を実現できる。 1.右図グラフは、2層目の隠れ層の出力の重み付き和を表す。
  61. 61. 4.連続関数としてのUniversality 4-2.2入力1出力関数 無数の”tower” 関数によって、任意の連続関数を実現できる。
  62. 62. このように 無数の“tower”関数を 細かく用意すれば、 十分に正確な近似のもとで、 隠れ層の出力の重み付き和によって、 任意の連続関数を実現できる。
  63. 63. 前節同様に、 隠れ層の出力の重み付き和を、 にすることによって、 2入力1出力の場合でも、 任意の連続関数を実現できる。
  64. 64. n 入力1出力の場合でも同様に、 任意の連続関数を実現できる。 ・Snとtnは、各変数の “bump” 関数の変化 点を表す。 ・n入力の場合、 出力ニューロンにおいて、 b = - (n + 1/2) h となる。
  65. 65. 1出力をm出力にするには、 1出力のNeural Network を m 個用意すればよいだけ。
  66. 66. 以上の議論から、 Neural Network によって、 十分に正確な近似のもとで、 任意の多入力多出力連続関数 Fm(X1,X2,X3,…,Xn) (n=1,2,3, …; m=1,2,3, …;) を実現できる ことがわかりました。
  67. 67. つまり、 Neural Network によって、 任意の連続関数を実現できる ことが分かりました。
  68. 68. しかし、任意の計算を “理論”的に実現できることと、 “実用”的に実現すること には、大きな差があります。
  69. 69. Neural network の中でも、 Deep Learning は、 所望の計算を “実用”的に実現する方法 として、経験則的に 良い方法と言われています。
  70. 70. 本自体がまだアップロード されていませんが、 Deep Learning についても、機会があれば まとめてみたいと思います。

×