SlideShare una empresa de Scribd logo
1 de 41
Descargar para leer sin conexión
ニューラルネットワーク
勉強会
第2回
柳本 豪一
本日の予定
3層ニューラルネットワークでXOR問題を解きます。
• ニューラルネットワークの基礎を知る
• Chainerによるネットワークの実装を知る
本日の予定
• 3層ニューラルネットワークによるXOR問題を解き
ます。
• ニューラルネットワークの基礎を知る
• Chainerによるネットワークの実装を知る
簡単なニューラルネットワークを
Chainer上で実装できるようになる!
フィードフォワード
ニューラルネットワーク
複数のニューロンを層状に配置した構造
フィードフォワード
ニューラルネットワーク
複数のニューロンを層状に配置した構造
入力層
フィードフォワード
ニューラルネットワーク
複数のニューロンを層状に配置した構造
隠れ層
フィードフォワード
ニューラルネットワーク
複数のニューロンを層状に配置した構造
出力層
フィードフォワード
ニューラルネットワーク
複数のニューロンを層状に配置した構造
結合荷重
(可調整パラメータ)
バックプロパゲーション
フィードフォワードニューラルネットワークの出力を
用いて誤差を定義し、その誤差を用いて結合荷重を調
整する
y
1 2 3 k k+1 N-1 N
バックプロパゲーション
出力誤差:f(y, t)
y
1 2 3 k k+1 N-1 N
バックプロパゲーション
出力誤差:f(y, t)
y
1 2 3 k k+1 N-1 N
df(y, t)
dy
バックプロパゲーション
出力誤差:     活性化関数:f(y, t)
y
1 2 3 k k+1 N-1 N
df(y, t)
dy
g1
N (x1
N )
g2
N (x2
N )
g3
N (x3
N )
WN 1
WN = E
gk(xk)
出力誤差:     活性化関数:
バックプロパゲーション
f(y, t)
y
1 2 3 k k+1 N-1 N
df(y, t)
dy
g1
N (x1
N )
g2
N (x2
N )
g3
N (x3
N )
WN 1
WN = E
df(y, t)
dxN
df(y, t)
dWN 1
= yT
N 1
⇢
WT
N
✓
df(y, t)
dxF
⌦
dgN (xN )
dxN
◆
df(y, t)
dxFgk(xk)
gk(xk)出力誤差:     活性化関数:
バックプロパゲーション
f(y, t)
y
1 2 3 k k+1 N-1 N
df(y, t)
dy
g1
N (x1
N )
g2
N (x2
N )
g3
N (x3
N )
WN 1
WN = E
df(y, t)
dxN
df(y, t)
dWN 1
= yT
N 1
⇢
WT
N
✓
df(y, t)
dxF
⌦
dgN (xN )
dxN
◆
df(y, t)
dxF
一般的には誤差を逆向きに伝搬していると言われているが、
勾配を逆向きに伝搬しているとも言える!
バックプロパゲーション
一般的には誤差を逆向きに伝搬していると言われているが、
勾配を逆向きに伝搬しているとも言える!
バックプロパゲーション
なので、
Chainerでは勾配を意識している
一般的には誤差を逆向きに伝搬していると言われているが、
勾配を逆向きに伝搬しているとも言える!
バックプロパゲーション
なので、
Chainerでは勾配を意識している
のかも?
一般的には誤差を逆向きに伝搬していると言われているが、
勾配を逆向きに伝搬しているとも言える!
バックプロパゲーション
なので、
Chainerでは勾配を意識している
のかも?
あと、
2乗誤差で評価するなら誤差だけど、
クロスエントロピーだと誤差なのかな。。。
一般的には誤差を逆向きに伝搬していると言われているが、
勾配を逆向きに伝搬しているとも言える!
中間まとめ
ニューラルネットワークは
• ニューロン間の結合で構造を定義
結合荷重のみが可調整パラメータ
活性化関数に可調整パラメータなし
• 勾配を出力層から入力層へ伝搬
伝搬すべき勾配
活性化関数の微分
順伝搬時の結合荷重
を考慮すれば学習が可能
XOR問題
• 3層ニューラルネットワークでXOR回路を作る
入力1 入力2 出力
0 0 0
0 1 1
1 0 1
1 1 0
真理値表
XOR問題
• 3層ニューラルネットワークでXOR回路を作る
入力1 入力2 出力
0 0 0
0 1 1
1 0 1
1 1 0
真理値表
左の3層ニューラルネットワークで
XOR回路を実現する
中間まとめ(簡略版)
• ニューロン間の結合で構造を定義
結合荷重のみが可調整パラメータ
活性化関数に可調整パラメータなし
• 勾配を出力層から入力層へ伝搬
伝搬すべき勾配
活性化関数の微分
順伝搬時の結合荷重
中間まとめ(簡略版)
• ニューロン間の結合で構造を定義
結合荷重のみが可調整パラメータ
活性化関数に可調整パラメータなし
• 勾配を出力層から入力層へ伝搬
伝搬すべき勾配
活性化関数の微分
順伝搬時の結合荷重
中間まとめ(簡略版)
• ニューロン間の結合で構造を定義
結合荷重のみが可調整パラメータ
活性化関数に可調整パラメータなし
ニューラルネットワークの構造定義
+
可調整パラメータの切り分け
• 勾配を出力層から入力層へ伝搬
伝搬すべき勾配
活性化関数の微分
順伝搬時の結合荷重
勾配を意識した学習の定義
中間まとめ(簡略版)
• ニューロン間の結合で構造を定義
結合荷重のみが可調整パラメータ
活性化関数に可調整パラメータなし
ニューラルネットワークの構造定義
+
可調整パラメータの切り分け
• 勾配を出力層から入力層へ伝搬
伝搬すべき勾配
活性化関数の微分
順伝搬時の結合荷重
勾配を意識した学習の定義
FunctionSetの利用
勾配の初期化
Chainerを使うために
先頭で以下の文を必ず書いてください
import numpy as np
import chainer from cuda, Function, FunctionSet, 
gradient_check, Variable, optimizers, utils
import chainer.functions as F
ニューラルネットワークの定義
FunctionSetを使ってニューロン間の接続を定義
model = FunctionSet(
l1 = F.Linear(2, 2), #入力層-隠れ層間の結合
l2 = F.Linear(2, 1), #隠れ層-出力層間の結合
)
順伝搬
FunctionSetで定義した結合荷重とchainer.functions
で定義された活性化関数を用いて定義
h = F.sigmoid(model.l1(x))
y = F.sog,pod(model.l2(h))
損失
順伝搬の結果と教師信号を用いてchainer.functions
で定義された損失関数から計算
loss = F.mean_squared_error(y, t)
逆伝搬
optimizersで定義された最適化手法を用いて、lossを
最小化するように可調整パラメータを修正
#最適化手法とニューラルネットワークの設定
optimizer = optimizers.Adam()
optimizer.setup(model)
#パラメータ更新
optimizer.zero_grads()
optimizer.update()
Chainerによる実験手順
データ読み込み
前処理
学習
後処理
Chainerによる実験手順
データ読み込み
前処理
学習
後処理
Python
NumPy
Chainer
NumPy
+
Python
Chainerによる実験手順
Python list
NumPy numpy.ndarray
Chainer Variables
NumPy numpy.ndarray
+
Python list
データ読み込み
前処理
学習
後処理
Chainerによる実験手順
Chainerによる実験手順
Python list
NumPy numpy.ndarray
Chainer Variables
NumPy numpy.ndarray
+
Python list
データ読み込み
前処理
学習
後処理
Chainerによる実験手順
Chainerによる実験手順
Python list
NumPy numpy.ndarray
Chainer Variable
NumPy numpy.ndarray
+
Python list
データ読み込み
前処理
学習
後処理
Chainerによる実験手順
データをVariableに変換
Variableから値を取り出す
トレーニングデータ
入力データはリストで管理
Numpyを使うのでデータは行列をイメージ
train = [[0, 0], [0, 1], [1, 0], [1,1]]
label = [[0], [1], [1], [0]]
numpy.ndarrayへの変換
Chainerを使うためにnumpy.ndarrayに変換
ここでは、ランダムにデータを選ぶバッチ学習
Chainerではnp.float32を基本的に利用
#実装例
x = np.array(train, dtype=np.float32)
y = np.array(label, dtype=np.float32)
indexes = np.random.permutation(len(train))
for i in range(0, len(train), batchsize):
x_batch = np.asarray(x[indexes[i:i+batchsize]])
y_batch = np.asarray(y[indexes[i:i+batchsize]])
Variableへの変換
numpy.ndarrayからVariableに変換
Chainerが用意した関数はVariableのみを受付
np.ndarrayをラッピングしているイメージ
x = Variable(x_batch)
t = Variable(y_batch)
Variableからnumpy.ndarrayへの変換
Variable.dataでデータを取得
誤差やパープレキシティの計算で利用
XOR問題の実装
https://github.com/KDA-lab

Más contenido relacionado

Destacado

Deep Learningの基礎と応用
Deep Learningの基礎と応用Deep Learningの基礎と応用
Deep Learningの基礎と応用Seiya Tokui
 
ニューラルネットワーク入門
ニューラルネットワーク入門ニューラルネットワーク入門
ニューラルネットワーク入門naoto moriyama
 
Definitions of unit 2
Definitions of unit 2Definitions of unit 2
Definitions of unit 2quintomat
 
J431 Strategic Communications Campaign Plan
J431 Strategic Communications Campaign PlanJ431 Strategic Communications Campaign Plan
J431 Strategic Communications Campaign PlanSara Kate Nash
 
شركه بورتو البحر الميت للتنمية السياحية Powe point
شركه بورتو البحر الميت للتنمية السياحية Powe pointشركه بورتو البحر الميت للتنمية السياحية Powe point
شركه بورتو البحر الميت للتنمية السياحية Powe pointhadeel ameen
 
失われた技術(PDF版)
失われた技術(PDF版)失われた技術(PDF版)
失われた技術(PDF版)Tomoaki Akiyama
 
Magazine Genre Reseach
Magazine Genre ReseachMagazine Genre Reseach
Magazine Genre Reseachmaxwell33434
 
台北國際禮品暨文具展 攤位圈選會議簡報
台北國際禮品暨文具展 攤位圈選會議簡報台北國際禮品暨文具展 攤位圈選會議簡報
台北國際禮品暨文具展 攤位圈選會議簡報Jason334
 
Ipac 2014
Ipac 2014Ipac 2014
Ipac 2014cwhms
 
Presentation kalinka
Presentation kalinkaPresentation kalinka
Presentation kalinkamegikatq
 
Curriculum Vitae Jan.15 Mohamed Abou Bakr
Curriculum Vitae Jan.15 Mohamed Abou BakrCurriculum Vitae Jan.15 Mohamed Abou Bakr
Curriculum Vitae Jan.15 Mohamed Abou BakrMohamed Abou Bakr
 
Portfolio-PDF_v01-lowres
Portfolio-PDF_v01-lowresPortfolio-PDF_v01-lowres
Portfolio-PDF_v01-lowresCaitlin Bouey
 
Verbos y cuantificadores, rodriguez avila
Verbos y cuantificadores, rodriguez avilaVerbos y cuantificadores, rodriguez avila
Verbos y cuantificadores, rodriguez avilaJussely Rodríguez
 
Public Safety Hiring Tutorial
Public Safety Hiring TutorialPublic Safety Hiring Tutorial
Public Safety Hiring Tutorialcwhms
 

Destacado (15)

Deep Learningの基礎と応用
Deep Learningの基礎と応用Deep Learningの基礎と応用
Deep Learningの基礎と応用
 
ニューラルネットワーク入門
ニューラルネットワーク入門ニューラルネットワーク入門
ニューラルネットワーク入門
 
แรง
แรงแรง
แรง
 
Definitions of unit 2
Definitions of unit 2Definitions of unit 2
Definitions of unit 2
 
J431 Strategic Communications Campaign Plan
J431 Strategic Communications Campaign PlanJ431 Strategic Communications Campaign Plan
J431 Strategic Communications Campaign Plan
 
شركه بورتو البحر الميت للتنمية السياحية Powe point
شركه بورتو البحر الميت للتنمية السياحية Powe pointشركه بورتو البحر الميت للتنمية السياحية Powe point
شركه بورتو البحر الميت للتنمية السياحية Powe point
 
失われた技術(PDF版)
失われた技術(PDF版)失われた技術(PDF版)
失われた技術(PDF版)
 
Magazine Genre Reseach
Magazine Genre ReseachMagazine Genre Reseach
Magazine Genre Reseach
 
台北國際禮品暨文具展 攤位圈選會議簡報
台北國際禮品暨文具展 攤位圈選會議簡報台北國際禮品暨文具展 攤位圈選會議簡報
台北國際禮品暨文具展 攤位圈選會議簡報
 
Ipac 2014
Ipac 2014Ipac 2014
Ipac 2014
 
Presentation kalinka
Presentation kalinkaPresentation kalinka
Presentation kalinka
 
Curriculum Vitae Jan.15 Mohamed Abou Bakr
Curriculum Vitae Jan.15 Mohamed Abou BakrCurriculum Vitae Jan.15 Mohamed Abou Bakr
Curriculum Vitae Jan.15 Mohamed Abou Bakr
 
Portfolio-PDF_v01-lowres
Portfolio-PDF_v01-lowresPortfolio-PDF_v01-lowres
Portfolio-PDF_v01-lowres
 
Verbos y cuantificadores, rodriguez avila
Verbos y cuantificadores, rodriguez avilaVerbos y cuantificadores, rodriguez avila
Verbos y cuantificadores, rodriguez avila
 
Public Safety Hiring Tutorial
Public Safety Hiring TutorialPublic Safety Hiring Tutorial
Public Safety Hiring Tutorial
 

Último

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Último (9)

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

ニューラルネットワーク勉強会2