32
ゼゼゼゼゼゼ Deep Learning ゼゼゼ AND ゼゼゼ ゼゼゼゼゼゼゼゼ ゼゼゼ @miyamotol0105 2016/12/7

17ゼロから作るディープラーニング2章パーセプトロン

Embed Size (px)

Citation preview

Page 1: 17ゼロから作るディープラーニング2章パーセプトロン

ゼロから作る Deep Learning輪読会 AND 勉強会

          第2章パーセプトロン

宮本圭一郎@miyamotol0105

2016/12/7

Page 2: 17ゼロから作るディープラーニング2章パーセプトロン

もくじ

1 章  Python 入門

2 章 パーセプトロン: 12/6 火

3 章 ニューラルネットワーク: 12/13,20 火

4 章 ニューラルネットワークの学習: 12/27,1/10 火

5 章 誤差逆伝播法: 12/17,1/24 火

6 章 学習に関するテクニック: 1/31,2/7 火

7 章 畳み込みニューラルネットワーク: 2/14,2/21 火

8 章 ディープラーニング: 2/28 火

Page 3: 17ゼロから作るディープラーニング2章パーセプトロン

人工知能分野の全体像

コンピュータサイエンス

AI 、人工知能

自然言語処理

ML 、機械学習 データマイニング統計学

パターン認識

ディープラーニングニューラルネット

なぜ動いてるのかわからない分野

Page 4: 17ゼロから作るディープラーニング2章パーセプトロン

人間脳を少しずつ真似している

・大脳新皮質:教師なし学習・大脳基底核:強化学習・小脳:教師あり学習

Page 5: 17ゼロから作るディープラーニング2章パーセプトロン

脳の機能の例

海馬:記憶を作ったり取り出したり扁桃体:感情の記憶に関係

海馬

扁桃体

Page 6: 17ゼロから作るディープラーニング2章パーセプトロン

ニューロンとシナプス

ニューロン

シナプス

Page 7: 17ゼロから作るディープラーニング2章パーセプトロン

活動電位の伝達

活動電位が伝わってくる

Page 8: 17ゼロから作るディープラーニング2章パーセプトロン

活動電位の伝達

膜電位が上昇。閾値を超えると発火。

Page 9: 17ゼロから作るディープラーニング2章パーセプトロン

活動電位の伝達

神経伝達物質を送る

Page 10: 17ゼロから作るディープラーニング2章パーセプトロン

活動電位の伝達

レセプターとイオンチャネルで受け取る

Page 11: 17ゼロから作るディープラーニング2章パーセプトロン

活動電位の伝達

次のニューロンに信号を送る

Page 12: 17ゼロから作るディープラーニング2章パーセプトロン

フランク・ローゼンブラット( Frank Rosenblatt , 1928 年 7 月 11 日 - 1971 年 7 月 11

日)

アメリカの心理学者。ニューラルネット研究の開拓者のひとり。ローゼンブラットと人工知能研究者マービン・ミンスキーはブロンクス高等学校の同級生であった。コーネル大学に勤務

神経生理学者・外科医であるウォーレン・マカロックと論理学者・数学者であるウォルター・ピッツによって、形式ニューロンというモデルが考えられた。ローゼンブラットはこの形式ニューロンの考え方を基にして

 パーセプトロンを開発した。

Page 13: 17ゼロから作るディープラーニング2章パーセプトロン

パーセプトロンとは

丸はニューロンやノードやユニット

X1

X2

Y

w1

w2

2 つの入力のパーセプトロン

0 非発火

1 発火 閾値

y=w1x1+ w2x2≤θy=w1x1+ w2x2> θ重み

Page 14: 17ゼロから作るディープラーニング2章パーセプトロン

パーセプトロンとは

丸はニューロンやノードやユニット

X1

X2

Y

w1

w2

2 つの入力のパーセプトロン

0 非発火

1 発火閾値

y=w1x1+ w2x2≤θy=w1x1+ w2x2> θ

重み

Page 15: 17ゼロから作るディープラーニング2章パーセプトロン

AND ゲート

X1 X2 Y

0 0 0

1 0 0

0 1 0

1 1 1

パーセプトロンを使って論理回路の AND ゲートを表現してみる

y=w1x1+ w2x2≤θy=w1x1+ w2x2> θ

0 非発火

1 発火

Page 16: 17ゼロから作るディープラーニング2章パーセプトロン

AND ゲート

X1 X2 Y

0 0 0

1 0 0

0 1 0

1 1 1

パーセプトロンを使って論理回路の AND ゲートを表現してみる

y=w1x1+ w2x2≤θy=w1x1+ w2x2> θ

0 非発火

1 発火

w1 と w2 は??θ は??

Page 17: 17ゼロから作るディープラーニング2章パーセプトロン

AND ゲート

X1 X2 Y

0 0 0

1 0 0

0 1 0

1 1 1

パーセプトロンを使って論理回路の AND ゲートを表現してみる

(w1 ,w2 ,θ )=(0.5,0 .5,0 .7) y=w1x1+ w2x2≤θy=w1x1+ w2x2> θ

Page 18: 17ゼロから作るディープラーニング2章パーセプトロン

AND ゲート

X1 X2 Y

0 0 0

1 0 0

0 1 0

1 1 1

パーセプトロンを使って論理回路の AND ゲートを表現してみる

(w1 ,w2 ,θ )=(0.5,0 .5,0 .7) y=0.5×0+ 0.5×0≤0.7y=0.5×1+ 0.5×0≤0.7y=0.5×0+ 0.5×1≤0.7y=0.5×1+ 0.5×1> 0.7

Page 19: 17ゼロから作るディープラーニング2章パーセプトロン

NAND ゲート

X1 X2 Y

0 0 1

1 0 1

0 1 1

1 1 0

パーセプトロンを使って論理回路の NAND ゲートを表現してみる

表現できる

Page 20: 17ゼロから作るディープラーニング2章パーセプトロン

OR ゲート

X1 X2 Y

0 0 0

1 0 1

0 1 1

1 1 1

パーセプトロンを使って論理回路の OR ゲートを表現してみる

表現できる

Page 21: 17ゼロから作るディープラーニング2章パーセプトロン

パーセプトロンの実装

def AND(x1, x2): x = np.array([x1, x2]) w = np.array([0.5, 0.5]) b = -0.7 tmp = np.sum(w*x) + b if tmp <= 0: return 0 else: return 1

y=w1x1+ w2x2+ b≤0y=w1x1+ w2x2+ b> 0

0 非発火

1 発火

式がちょっと変わった

Page 22: 17ゼロから作るディープラーニング2章パーセプトロン

パーセプトロンの実装

def AND(x1, x2): x = np.array([x1, x2]) w = np.array([0.5, 0.5]) b = -0.7 tmp = np.sum(w*x) + b if tmp <= 0: return 0 else: return 1

y=w1x1+ w2x2+ b≤0y=w1x1+ w2x2+ b> 0

0 非発火

1 発火

重みとバイアス

Page 23: 17ゼロから作るディープラーニング2章パーセプトロン

パーセプトロンの実装

def AND(x1, x2): x = np.array([x1, x2]) w = np.array([0.5, 0.5]) b = -0.7 tmp = np.sum(w*x) + b if tmp <= 0: return 0 else: return 1

AND(0, 0) # 0 を出力AND(1, 0) # 0 を出力AND(0, 1) # 0 を出力AND(1, 1) # 1 を出力

y=w1x1+ w2x2+ b≤0y=w1x1+ w2x2+ b> 0

0 非発火

1 発火

Page 24: 17ゼロから作るディープラーニング2章パーセプトロン

XOR ゲート

X1 X2 Y

0 0 0

1 0 1

0 1 1

1 1 0

パーセプトロンを使って論理回路の XOR ゲートを表現してみる

表現できない

Page 25: 17ゼロから作るディープラーニング2章パーセプトロン

線形と非線形

1

01

x1

x2

線形で分けれる

0の領域

1の領域

1

Page 26: 17ゼロから作るディープラーニング2章パーセプトロン

線形と非線形

1

01

x1

x2

線形では分けれない

1の領域

0

0の領域

Page 27: 17ゼロから作るディープラーニング2章パーセプトロン

多層パーセプトロン

層を重ねると表現力が高ま

インプットセル

アウトプットセル

隠れ層のセル

x=入力

z=出力

w=重み

w=重み

0層目 1層目 2層目

Page 28: 17ゼロから作るディープラーニング2章パーセプトロン

XOR ゲートの実装

回路の組み合わせで XOR ゲートを実現可能

NAND

AND

x2

x1

y

s1

s2OR

Page 29: 17ゼロから作るディープラーニング2章パーセプトロン

XOR ゲートパーセプトロンを使って論理回路の XOR ゲートを表現してみる

X1 X2 S1 S2 Y

0 0 1 0 0

1 0 1 1 1

0 1 1 1 1

1 1 0 1 0

表現できる

Page 30: 17ゼロから作るディープラーニング2章パーセプトロン

XOR ゲートの実装

def XOR(x1, x2): s1 = NAND(x1, x2) s2 = OR(x1, x2) y = AND(s1, s2) return y

1層目

2層目

AND

NAND

OR

0層目 1層目 2層目

s1

s2

x1

x2

y

Page 31: 17ゼロから作るディープラーニング2章パーセプトロン

まとめ

・パーセプトロンでは重みとバイアスをパラメータとして設定

・パーセプトロンを使えば AND ゲートや ORゲートなどの論理回路を表現できる

・単層パーセプトロンでは XOR ゲートを表現できない

・多層にすれば XOR ゲートを表現できる・ソースコードリンクhttps://github.com/oreilly-japan/deep-learning-

from-scratch/

Page 32: 17ゼロから作るディープラーニング2章パーセプトロン

アルゴリズム解説動画紹介

計算のアルゴリズムがわかる今後論文からのコーディングの仕方も掲載されるかも

https://filmuy.com/deeplearning