ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである....

29
ニューラルネットワーク

Transcript of ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである....

Page 1: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

ニューラルネットワーク

Page 2: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

応用

• パターン認識– 音声,画像,図形,文字などをパターン,これらの認識を「パターン認識」と呼ぶ.

– 音声認識や画像認識,文字認識などがある.

• 文字認識– 手書き文字や印刷文字の識別.

• 音声認識– 人が喋った言葉を機械が理解する.

• 画像認識– 画像が何の画像であるかを理解する.– 画像が物か人か,人であればその表情はどうかを判断する.

Page 3: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

ニューロンモデル

• 出力

𝑦 = 𝑔( 𝑖=1

𝑛

𝑤𝑖𝑥𝑖 𝑡 − 𝜃)

– 入力 𝒙 = 𝑥1, 𝑥2, ⋯𝑇

– シナプスの強さ(重み)𝒘 = 𝑤1, 𝑤2, ⋯ , 𝑇

– 伝達関数𝑔

• 伝達関数– 線形関数– ステップ関数– シグモイド関数

Page 4: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

McCulloch-Pitts モデル

• ステップ関数

𝑔 𝑢 = 1 𝑢 > 00 Otherwise

• AND,OR,NOTなどの論理素子を構成できることを示した.

Page 5: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

発火頻度モデル

• ニューロンの発火間隔は,刺激電流を増やしていくと短くなる.発火頻度を変数としたモデル.

• シグモイド関数

𝑔 𝑢 =1

1 + 𝑒−𝑢+𝜃

• 対称型関数𝑔 𝑢 = tanh(𝑢 − 𝜃)

• 線形関数𝑔 𝑢 = 𝑢

Page 6: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

コネクショニストモデル

• 階層型ニューラルネットワーク

• シグモイド関数

𝑔 𝑢 =1

1 + 𝑒−(𝑢−𝜃)

Page 7: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

McCulloch-Pitts モデルの例題1

• AND回路

𝑤1 =? ? ?, 𝑤2 =? ? ?, 𝜃 =? ? ?

𝑦 = 𝑔(𝑤1𝑥1 +𝑤2𝑥2 − 𝜃)

X1 X2 Y

1 1 1

1 0 0

0 1 0

0 0 0

Page 8: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

McCulloch-Pitts モデルの例題1解答例

• AND回路

𝑤1 = 2.0 , 𝑤2 = 2.0 , 𝜃 = 3.0𝑦 = 𝑔(𝑤1𝑥1 +𝑤2𝑥2 − 𝜃)

X1 X2 Y

1 1 1

1 0 0

0 1 0

0 0 0

Page 9: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

McCulloch-Pitts モデルの例題2

• OR回路

𝑤1 =? ? ? , 𝑤2 =? ? ? , 𝜃 =? ? ?

𝑦 = 𝑔(𝑤1𝑥1 +𝑤2𝑥2 − 𝜃)

X1 X2 Y

1 1 1

1 0 1

0 1 1

0 0 0

Page 10: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

McCulloch-Pitts モデルの例題2解析例

• OR回路

𝑤1 =? ? ? , 𝑤2 =? ? ? , 𝜃 =? ? ?

𝑦 = 𝑔(𝑤1𝑥1 +𝑤2𝑥2 − 𝜃)

X1 X2 Y

1 1 1

1 0 1

0 1 1

0 0 0

Page 11: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

McCulloch-Pitts モデルの例題3

• XOR回路

𝑤1 =? ? ? , 𝑤2 =? ? ? , 𝜃 =? ? ?

𝑦 = 𝑔(𝑤1𝑥1 +𝑤2𝑥2 − 𝜃)

X1 X2 Y

1 1 0

1 0 1

0 1 1

0 0 0

Page 12: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

McCulloch-Pitts モデルの例題3解析例

• XOR回路

𝑤1 =? ? ? , 𝑤2 =? ? ? , 𝜃 =? ? ?

𝑦 = 𝑔(𝑤1𝑥1 +𝑤2𝑥2 − 𝜃)

X1 X2 Y

1 1 0

1 0 1

0 1 1

0 0 0

Page 13: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

線形分離可能

Page 14: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

MLP

𝑦𝑘 = 𝑔

𝑖

𝑣𝑘𝑗𝑢𝑗 − Θ𝑘 = 𝑔(𝒗𝑇𝒖 − Θ𝑘)

𝑢𝑗 = 𝑔(

𝑖

𝑤𝑖𝑗𝑥𝑖 − 𝜃𝑗) = 𝑔(𝒘𝑇𝒙 − 𝜃𝑗)

𝑥𝑖𝑦𝑘

𝑢𝑗

Page 15: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

伝達関数

• 線形関数

• ステップ関数

• シグモイド関数

Page 16: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

誤差逆伝搬法

• 学習データが与えられたときに,そのデータに一致するように重みや閾値を修正する.

1. 入力𝒙と出力𝒚のセット(教師信号)を多数用意する.

2. 重み𝒘と閾値𝜽をランダムに与える.

3. 入力𝒙を与えて出力𝒚′を得る.

4. 得られた出力𝒚′と教師信号𝒚の差を最小にするようにパラメータを更新する.(最急降下法を用いる)

5. 3,4を繰り返す.

Page 17: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

パラメータ更新

𝑦𝑘

予測値

真値

𝐸 = 𝑦’𝑘 − 𝑦𝑘2 → 0

𝑥𝑖𝑦𝑘

𝑢𝑗𝑦′𝑘

Page 18: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

• 誤差を最小化するように,最急降下法によってパラメータを更新する.

更新規則

𝐸 = 𝑦’𝑘 − 𝑦𝑘2 → 0

𝑤𝑖𝑗 ← 𝑤𝑖𝑗 − 𝛼𝜕𝐸

𝜕𝑤𝑖𝑗

𝑣𝑘𝑗 ← 𝑣𝑘𝑗 − 𝛼𝜕𝐸

𝜕𝑣𝑘𝑗

𝜃𝑗 ← 𝜃𝑗 − 𝛼𝜕𝐸

𝜕𝜃𝑗

Θ𝑘 = Θ𝑘 − 𝛼𝜕𝐸

𝜕Θ𝑘

Page 19: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

ニューラルネットワークによる判別分析

Page 20: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

練習問題1

• AND回路を構成するニューロンを定義する.

X1 X2 Y

1 1 1

1 0 0

0 1 0

0 0 0

𝑥1

𝑦

𝑢1

𝑥2𝑢2

𝑢3

Page 21: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

練習問題1(1)

*ニューラルネットワークの学習データを用意する.> x1<-c(1,1,0,0)> x2<-c(1,0,1,0)> y <- c(1,0,0,0)[1] 1 0 0 0> nn.data1<-data.frame(x1,x2,y)> nn.data1

x1 x2 y1 1 1 12 1 0 03 0 1 04 0 0 0

Page 22: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

練習問題1(2)

ニューラルネットワークのライブラリーを利用する.> library(nnet)

ニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである.> nn.res1<-nnet(y~.,data=nn.data1,size=3)# weights: 13initial value 1.237177 iter 10 value 0.529587final value 0.000064 converged

学習結果を表示する.> nn.res1a 2-3-1 network with 13 weightsinputs: x1 x2 output(s): y options were -

Page 23: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

練習問題1(3)

重みや閾値の結果を表示する.> summary(nn.res1)a 2-3-1 network with 13 weightsoptions were -b->h1 i1->h1 i2->h1 16.97 -43.93 -41.36 b->h2 i1->h2 i2->h2 -9.51 8.16 7.70 b->h3 i1->h3 i2->h3 6.65 -10.90 -11.01 b->o h1->o h2->o h3->o

-19.40 -23.14 24.27 -22.01

> str(nn.res1)

Page 24: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

練習問題1(4)

判別するデータを用意する.> x1<-c(0.5,0.5,1.5,1.5)> x2<-c(0.5,1.5,0.5,1.5)> nn.pred1<-data.frame(1,x2)> nn.pred1<-data.frame(x1,x2)> nn.pred1

x1 x21 0.5 0.52 0.5 1.53 1.5 0.54 1.5 1.5

Page 25: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

練習問題1(5)

判別データを判別する.

> nn.pred1.res<-predict(nn.res1,nn.pred1)

> nn.pred1.res

[,1]

1 0.0000000

2 0.9919413

3 0.9920982

4 0.9923575

Page 26: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

練習問題1(6)

学習データを表示する.

> plot(nn.data1$x1,nn.data1$x2, col=ifelse(nn.data1$y>0.5, "blue", "red"),xlim=c(0,2),ylim=c(0,2))

グラフを重ねることを定義する.

> par(new=T)

判別結果を表示する

> plot(nn.pred1$x1, nn.pred1$x2, col=ifelse(nn.pred1.res[,1]>0.5, "green", "yellow"),xlim=c(0,2),ylim=c(0,2),axes=F)

Page 27: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

演習問題1

• OR回路を構成するニューロンを定義しなさい.

• 学習データに対する予測値,(2,0),(-1,-1)に対する予測値を求め、plotしなさい.

X1 X2 Y

1 1 1

1 0 1

0 1 1

0 0 0

𝑥1𝑦

𝑢1

𝑥2𝑢2

Page 28: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

演習問題2

• XOR回路を構成するニューロンを定義しなさい.

• 学習データに対する予測値,(2,0),(-1,-1)に対する予測値を求め、plotしなさい.

X1 X2 Y

1 1 0

1 0 1

0 1 1

0 0 0

𝑥1𝑦

𝑢1

𝑥2𝑢2

Page 29: ニューラルネットワークニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1

演習問題3

• 過去3日間の株価データから次の日の株価を予想するニューラルネットワークを決定しなさい.

𝑥1𝑦

𝑢1

𝑥2𝑢2

𝑢3𝑥3

出力 入力1 入力2 入力30.995259 0.970086 0.982512 0.997984

1 0.995259 0.970086 0.9825120.955139 1 0.995259 0.9700860.967533 0.955139 1 0.9952590.996595 0.967533 0.955139 10.975021 0.996595 0.967533 0.9551390.957785 0.975021 0.996595 0.9675330.932713 0.957785 0.975021 0.9965950.916515 0.932713 0.957785 0.9750210.938545 0.916515 0.932713 0.9577850.948293 0.938545 0.916515 0.9327130.924696 0.948293 0.938545 0.916515

0.89519 0.924696 0.948293 0.9385450.901835 0.89519 0.924696 0.9482930.881792 0.901835 0.89519 0.924696