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

Post on 24-Jan-2021

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ニューラルネットワーク

応用

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

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

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

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

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

ニューロンモデル

• 出力

𝑦 = 𝑔( 𝑖=1

𝑛

𝑤𝑖𝑥𝑖 𝑡 − 𝜃)

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

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

– 伝達関数𝑔

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

McCulloch-Pitts モデル

• ステップ関数

𝑔 𝑢 = 1 𝑢 > 00 Otherwise

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

発火頻度モデル

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

• シグモイド関数

𝑔 𝑢 =1

1 + 𝑒−𝑢+𝜃

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

• 線形関数𝑔 𝑢 = 𝑢

コネクショニストモデル

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

• シグモイド関数

𝑔 𝑢 =1

1 + 𝑒−(𝑢−𝜃)

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

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

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

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

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

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

線形分離可能

MLP

𝑦𝑘 = 𝑔

𝑖

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

𝑢𝑗 = 𝑔(

𝑖

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

𝑥𝑖𝑦𝑘

𝑢𝑗

伝達関数

• 線形関数

• ステップ関数

• シグモイド関数

誤差逆伝搬法

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

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

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

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

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

5. 3,4を繰り返す.

パラメータ更新

𝑦𝑘

予測値

真値

𝐸 = 𝑦’𝑘 − 𝑦𝑘2 → 0

𝑥𝑖𝑦𝑘

𝑢𝑗𝑦′𝑘

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

更新規則

𝐸 = 𝑦’𝑘 − 𝑦𝑘2 → 0

𝑤𝑖𝑗 ← 𝑤𝑖𝑗 − 𝛼𝜕𝐸

𝜕𝑤𝑖𝑗

𝑣𝑘𝑗 ← 𝑣𝑘𝑗 − 𝛼𝜕𝐸

𝜕𝑣𝑘𝑗

𝜃𝑗 ← 𝜃𝑗 − 𝛼𝜕𝐸

𝜕𝜃𝑗

Θ𝑘 = Θ𝑘 − 𝛼𝜕𝐸

𝜕Θ𝑘

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

練習問題1

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

X1 X2 Y

1 1 1

1 0 0

0 1 0

0 0 0

𝑥1

𝑦

𝑢1

𝑥2𝑢2

𝑢3

練習問題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

練習問題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 -

練習問題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)

練習問題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

練習問題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

練習問題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)

演習問題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

演習問題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

演習問題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

top related