ニューラルネットワーク 応用 • パターン認識 – 音声,画像,図形,文字などをパターン,これらの認識を「パターン認 識」と呼ぶ. – 音声認識や画像認識,文字認識などがある. • 文字認識 – 手書き文字や印刷文字の識別. • 音声認識 – 人が喋った言葉を機械が理解する. • 画像認識 – 画像が何の画像であるかを理解する. – 画像が物か人か,人であればその表情はどうかを判断する. ニューロンモデル • 出力 𝑛 𝑦 = 𝑔( 𝑤𝑖 𝑥𝑖 𝑡 − 𝜃) 𝑖=1 – 入力 𝒙 = 𝑥1 , 𝑥2 , ⋯ 𝑇 – シナプスの強さ(重み) 𝒘 = 𝑤1 , 𝑤2 , ⋯ , 𝑇 – 伝達関数𝑔 • 伝達関数 – 線形関数 – ステップ関数 – シグモイド関数 McCulloch-Pitts モデル • ステップ関数 𝑔 𝑢 = 1 𝑢>0 0 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 𝑢𝑗 𝑦𝑘 𝑥𝑖 𝑤𝑖𝑗 𝑥𝑖 − 𝜃𝑗 ) = 𝑔(𝒘𝑇 𝒙 − 𝜃𝑗 ) 𝑢𝑗 = 𝑔( 𝑖 𝑣𝑘𝑗 𝑢𝑗 − Θ𝑘 = 𝑔(𝒗𝑇 𝒖 − Θ𝑘 ) 𝑦𝑘 = 𝑔 𝑖 伝達関数 • 線形関数 • ステップ関数 • シグモイド関数 誤差逆伝搬法 • 学習データが与えられたときに,そのデータに一致す るように重みや閾値を修正する. 入力𝒙と出力𝒚のセット(教師信号)を多数用意する. 重み𝒘と閾値𝜽をランダムに与える. 入力𝒙を与えて出力𝒚′を得る. 得られた出力𝒚′と教師信号𝒚の差を最小にするよう にパラメータを更新する.(最急降下法を用いる) 5. 3,4を繰り返す. 1. 2. 3. 4. パラメータ更新 𝑢𝑗 𝑦′𝑘 予測値 𝑦𝑘 真値 𝑦𝑘 𝑥𝑖 𝐸 = 𝑦’𝑘 − 𝑦𝑘 2 →0 更新規則 • 誤差を最小化するように,最急降下法によってパラメータを 更新する. 𝐸 = 𝑦’𝑘 − 𝑦𝑘 2 → 0 𝜕𝐸 𝑤𝑖𝑗 ← 𝑤𝑖𝑗 − 𝛼 𝜕𝑤𝑖𝑗 𝜕𝐸 𝑣𝑘𝑗 ← 𝑣𝑘𝑗 − 𝛼 𝜕𝑣𝑘𝑗 𝜕𝐸 𝜃𝑗 ← 𝜃𝑗 − 𝛼 𝜕𝜃𝑗 𝜕𝐸 Θ𝑘 = Θ𝑘 − 𝛼 𝜕Θ𝑘 ニューラルネットワーク による判別分析 練習問題1 • AND回路を構成するニューロンを定義する. X1 X2 Y 1 1 1 1 0 0 0 1 0 0 0 0 𝑥1 𝑥2 𝑢1 𝑢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 y 1 1 11 2 1 00 3 0 10 4 0 00 練習問題1(2) ニューラルネットワークのライブラリーを利用する. > library(nnet) ニューラルネットワークで判別式を学習する.3層構造のネットワークで中間層は3つである. > nn.res1<-nnet(y~.,data=nn.data1,size=3) # weights: 13 initial value 1.237177 iter 10 value 0.529587 final value 0.000064 converged 学習結果を表示する. > nn.res1 a 2-3-1 network with 13 weights inputs: x1 x2 output(s): y options were - 練習問題1(3) 重みや閾値の結果を表示する. > summary(nn.res1) a 2-3-1 network with 13 weights options 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 x2 1 0.5 0.5 2 0.5 1.5 3 1.5 0.5 4 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 入力2 0.995259 0.970086 1 0.995259 0.955139 1 0.967533 0.955139 0.996595 0.967533 0.975021 0.996595 0.957785 0.975021 0.932713 0.957785 0.916515 0.932713 0.938545 0.916515 0.948293 0.938545 0.924696 0.948293 0.89519 0.924696 0.901835 0.89519 0.881792 0.901835 入力3 0.982512 0.970086 0.995259 1 0.955139 0.967533 0.996595 0.975021 0.957785 0.932713 0.916515 0.938545 0.948293 0.924696 0.89519 0.997984 0.982512 0.970086 0.995259 1 0.955139 0.967533 0.996595 0.975021 0.957785 0.932713 0.916515 0.938545 0.948293 0.924696 𝑥1 𝑢1 𝑦 𝑥2 𝑥3 𝑢2 𝑢3
© Copyright 2025 ExpyDoc