SlideShare uma empresa Scribd logo
1 de 27
深層学習入門
@swamptk
深層学習とはなんだ?
・人工ニューラルネット
→ 高度な情報処理の実現を目指して、生物の神経回路網を模倣したもの
・深層学習(Deep Learning)とは
→ 人工ニューラルネットを多層にして構築したもの
Deep Learning
→ そのまま訳すと「深い 学習」
→ 人工ニューラルネットを用いた機械学習ということ
深層学習と機械学習
機械学習
→あるタスクTを解き、そのパフォーマンス測定をPで行うことを考える
機械学習とは、経験EによってPを高めていく手法である。(参考文献2)
深層学習
機械学習
順伝播型ネットワーク
順伝播型ネットワーク(多層パーセプトロン)
→ 層状に並べたユニットが隣接層間でのみ結合した構造を持ち
情報が入力方向から出力方向に一方向にのみ伝播するニューラルネット
記号の定義
w:重み b:バイアス → ネットワークのパラメータ
u:ユニットが受け取る総入力
z:活性化関数f(u)の出力
x:データ
X1
x2
x3
x4
u1,z1
u2z2
u3 z3
z1
z2
z3
入力
𝑢1 = 𝑤11 𝑥1 + 𝑤12 𝑥2 + 𝑤13 𝑥3 + 𝑤14 𝑥4 + 𝑏1
𝑢2 = 𝑤21 𝑥1 + 𝑤22 𝑥2 + 𝑤23 𝑥3 + 𝑤24 𝑥4 + 𝑏2
𝑢3 = 𝑤31 𝑥1 + 𝑤32 𝑥2 + 𝑤33 𝑥3 + 𝑤34 𝑥4 + 𝑏3
𝑢4 = 𝑤41 𝑥1 + 𝑤42 𝑥2 + 𝑤43 𝑥3 + 𝑤44 𝑥4 + 𝑏4
↓
𝑢𝑗 = 𝑖=1
𝐼
𝑤𝑗𝑖 𝑥𝑖 + 𝑏𝑗
出力 𝑧𝑗 = 𝑓(𝑢𝑗)
→ ベクトルと行列を用いて 𝑢 = 𝑊𝑥 + 𝑏
𝑧 = 𝑓(𝑢)
# coding:Shift-JIS
import numpy as np
# 重みWを設定する(出力素子が3つの場合)
W = np.array([[0.5,0.3,0.6,0.7],[0.9,0.2,0.8,0.4],[0.1,0.2,0.9,0.4]])
# 与えるデータxを設定する
x = np.array([0.2,0.6,0.8,0.7])
# バイアスbを設定する
b = np.array([1,2,3])
# ユニットが受け取る総入力uを定義
# メモ np.dotで、行列の掛け算の計算ができる!
u = np.dot(W,x) + b
print(u)
> [ 2.25 3.22 4.14]
活性化関数
活性化関数でどんな結果が出るのか決まる
・シグモイド関数
ロジスティック関数 𝑓 𝑢 =
1
1+𝑒−𝑢 双曲線正接関数 𝑓 𝑢 = tanh(𝑢)
http://mathwords.net/logitkansu
正規化線形関数 線形写像(恒等写像)
𝑓 𝑢 = max 𝑢, 0 𝑓 𝑢 = 𝑢
−1 (𝑢 < −1)
𝑓 𝑢 = 𝑢 −1 ≤ 𝑢 < 1
1 (𝑢 ≥ 1)
http://mathtrain.jp/rampfunction
# さっきの続き
# 活性化関数を定義(ロジスティックシグモイド関数)
def sigmoid(u):
return 1 / (1 + np.exp(-1 * u))
# vfをロジスティックシグモイド関数でベクトル的に定義
vf = np.vectorize(sigmoid)
# vf(u)を出力
print("ロジスティックシグモイド関数")
print(vf(u))
# 双曲線正接関数はnumpyに定義されているからそのまま使う
# 双曲線正接関数の結果を出力
print("双曲線正接関数")
print(np.tanh(u))
# 活性化関数を定義(正規化線形関数)
def rectified(u):
return max(u,0)
# vfを正規化線形関数でベクトル的に定義
vf = np.vectorize(rectified)
# vf(u)を出力
print("正規化線形関数")
print(vf(u))
>ロジスティックシグモイド関数
[ 0.90465054 0.96158001 0.98432671]
双曲線正接関数
[ 0.97802611 0.99681228 0.99949305]
正規化線形関数
[ 2.25 3.22 4.14]
多層ネットワーク
入力層(𝑙 = 1) データxを入力
中間層 𝑙 = 2
𝑢(2)
= 𝑊(2)
𝑥 + 𝑏(2)
, 𝑧(2)
= 𝑓(𝑢 2
)
出力層 𝑙 = 3
𝑢(3) = 𝑊(3) 𝑥(2) + 𝑏(3) , 𝑧(3) = 𝑓(𝑢 3 )
一般化すると・・・
𝑢(𝑙+1)
= 𝑊(𝑙+1)
𝑥(𝑙)
+ 𝑏(𝑙+1)
, 𝑧(𝑙+1)
= 𝑓 𝑢 𝐿+1
最終的な出力
𝑦 ≡ 𝑧(𝑙)
x
𝑙 = 1 𝑙 = 2 𝑙 = 3
𝑧(1)
𝑧(2)
𝑧(3)
𝑦 = 𝑧(3)
出力層の設計と誤差関数
入力xと望ましい出力dとすると、
{ 𝑥1, 𝑑1 , 𝑥2, 𝑑2 , ⋯ ⋯ , 𝑥 𝑁, 𝑑 𝑁 }
訓練サンプル それらの集合 訓練データ
wを調節して、この訓練データに近づくように設定する。これが、学習なのだ!
ここで大切なことが、𝑦 𝑥 𝑛; 𝑤 ≈ 𝑑 𝑛をどう測るか→尺度が大事
→ 誤差関数を考えよう!
回帰
主に出力値に連続値をとる関数を対象に訓練データをよく再現するような関数を定
めること
https://stocks.finance.yahoo.co.jp/stocks/chart/?code=998407.O&ct=w
回帰の例
https://ja.wikipedia.org/wiki/%E5%9B%9E%E5%B8%B0%E5%88%86%E6%9E%90
目的 ネットワークの出力𝑦(𝑥𝑖)を目標出力𝑑𝑖に可能な限り近くする
① 目的とする出力の値域にあわせて、活性化関数を選ぶ必要がある
② 「近さ」の尺度を決める ∥ 𝑑 − 𝑦(𝑥; 𝑤) ∥2
③ 二乗誤差を訓練した全サンプルについて加算し、×1/2
𝐸 𝑤 =
1
2 𝑛=1
𝑁
∥ 𝑑 − 𝑦(𝑥; 𝑤) ∥2
二値分類の誤差関数
多クラス分類の誤差関数
確率的勾配降下法
サンプルの一部だけを使って勾配を計算し、パラメータの更新を行う
𝛻𝐸 ≡
𝜕𝐸
𝜕𝑤
= [
𝜕𝐸
𝜕𝑤1
⋯
𝜕𝐸
𝜕𝑤 𝑀
] 𝑇
𝑤(𝑡+1) = 𝑤(𝑡) − 𝜖𝛻𝐸 𝑛
→ 勾配降下法を計算するには、𝛻𝐸を計算しなければならない。
→ 偏微分の計算は、面倒だし、活性化関数wが入れ子になる。
→ この計算を高速化する方法を考えないと!
誤差逆伝播法の導入
+1をいつも出力する特別な0番ユニットを各層に導入し、各ユニットjとの結合重み
を𝑤0𝑗
(𝑙)
= 𝑏𝑗
(𝑙)
と考えると、
𝑢𝑗
(𝑙)
= 𝑖=1
𝑛
𝑤𝑗𝑖
(𝑙)
𝑧𝑖
(𝑙−1)
+ 𝑏𝑗 = 𝑖=0
𝑛
𝑤𝑗𝑖
(𝑙)
𝑧𝑖
(𝑙−1)
http://nzw0301.github.io/2015/11/blueDeepLearningChapter42
2層のネットワークでの計算
入力 x =
𝑥1
𝑥2
𝑥3
𝑥4
入力層の出力 𝑧𝑖
(1)
= 𝑥𝑖 とすると、
中間層の出力 𝑧𝑗
(2)
= 𝑓 𝑢𝑗
2
= f( 𝑖 𝑤𝑗𝑖
(2)
𝑧𝑖
(1)
)
出力層の出力 𝑦𝑗 𝑥 = 𝑧𝑗
(3)
= 𝑢𝑗
2
= 𝑖 𝑤𝑗𝑖
(3)
𝑧𝑖
(2)
誤差関数に二乗誤差
𝐸 𝑤 =
1
2 𝑗(𝑦𝑗 𝑥 − 𝑑𝑗) をとるとすると
重みでの微分
𝜕𝐸 𝑁
𝜕𝑤 𝑗𝑖
(3) と
𝜕𝐸 𝑁
𝜕𝑤 𝑗𝑖
(2) を計算しよう!
前提として、
これらは、 𝜕𝑤𝑗𝑖
(3)
には関係しない
打ち消す
線形性より
jを含まない項は、すべて0になる。(ただの数を微分しても0)
確率的勾配降下法を使うよりはるかに簡単!
中間層の重みの微分(計算したいけど時間と体力の都合で省略)
多層ネットワークへの一般化
多層ネットワークにおいて一般化できる!
誤差逆伝播法のプログラム
ごめんなさい。書けませんでした
勾配消失問題
多層ネットワークにおいて、重みが大きすぎたり小さすぎたりしたときに、重みの更
新がうまくいかずに学習が困難になること
→ 事前学習で解決する。
まとめ
・深層学習とは
・順伝播型ネットワーク
・(確率的)勾配降下法
・誤差逆伝播法
参考文献
[1] 岡谷 貴之:深層学習 (機械学習プロフェッショナルシリーズ)
[2] 堅田洋資他:フリーライブラリで学ぶ機械学習入門
他多数のWebページ

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
 
PRML第6章「カーネル法」
PRML第6章「カーネル法」PRML第6章「カーネル法」
PRML第6章「カーネル法」
 
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
【論文読み会】Deep Clustering for Unsupervised Learning of Visual Features
 
方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用
 
リプシッツ連続性に基づく勾配法・ニュートン型手法の計算量解析
リプシッツ連続性に基づく勾配法・ニュートン型手法の計算量解析リプシッツ連続性に基づく勾配法・ニュートン型手法の計算量解析
リプシッツ連続性に基づく勾配法・ニュートン型手法の計算量解析
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 
渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法
渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法
渡辺澄夫著「ベイズ統計の理論と方法」5.1 マルコフ連鎖モンテカルロ法
 
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
PyData.Tokyo Meetup #21 講演資料「Optuna ハイパーパラメータ最適化フレームワーク」太田 健
 
スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元
 
深層学習の数理
深層学習の数理深層学習の数理
深層学習の数理
 
異常検知と変化検知 第4章 近傍法による異常検知
異常検知と変化検知 第4章 近傍法による異常検知異常検知と変化検知 第4章 近傍法による異常検知
異常検知と変化検知 第4章 近傍法による異常検知
 
ガウス過程入門
ガウス過程入門ガウス過程入門
ガウス過程入門
 
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
coordinate descent 法について
 
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
 
【DL輪読会】AUTOGT: AUTOMATED GRAPH TRANSFORMER ARCHITECTURE SEARCH
【DL輪読会】AUTOGT: AUTOMATED GRAPH TRANSFORMER ARCHITECTURE SEARCH【DL輪読会】AUTOGT: AUTOMATED GRAPH TRANSFORMER ARCHITECTURE SEARCH
【DL輪読会】AUTOGT: AUTOMATED GRAPH TRANSFORMER ARCHITECTURE SEARCH
 
[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video Processing (NeRF...
[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video  Processing (NeRF...[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video  Processing (NeRF...
[DL輪読会]Neural Radiance Flow for 4D View Synthesis and Video Processing (NeRF...
 
Sparse estimation tutorial 2014
Sparse estimation tutorial 2014Sparse estimation tutorial 2014
Sparse estimation tutorial 2014
 
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
 

Semelhante a 深層学習入門 スライド

Semelhante a 深層学習入門 スライド (20)

TensorflowとKerasによる深層学習のプログラム実装実践講座
TensorflowとKerasによる深層学習のプログラム実装実践講座TensorflowとKerasによる深層学習のプログラム実装実践講座
TensorflowとKerasによる深層学習のプログラム実装実践講座
 
深層学習レポート Day1 (小川成)
深層学習レポート Day1 (小川成)深層学習レポート Day1 (小川成)
深層学習レポート Day1 (小川成)
 
MIRU2014 tutorial deeplearning
MIRU2014 tutorial deeplearningMIRU2014 tutorial deeplearning
MIRU2014 tutorial deeplearning
 
godo m
godo mgodo m
godo m
 
PRML5
PRML5PRML5
PRML5
 
Building High-level Features Using Large Scale Unsupervised Learning
Building High-level Features Using Large Scale Unsupervised LearningBuilding High-level Features Using Large Scale Unsupervised Learning
Building High-level Features Using Large Scale Unsupervised Learning
 
深層学習 Day1レポート
深層学習 Day1レポート深層学習 Day1レポート
深層学習 Day1レポート
 
mi-5. ディープラーニング
mi-5. ディープラーニングmi-5. ディープラーニング
mi-5. ディープラーニング
 
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しようC# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
 
深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開
 
点群深層学習 Meta-study
点群深層学習 Meta-study点群深層学習 Meta-study
点群深層学習 Meta-study
 
SeRanet
SeRanetSeRanet
SeRanet
 
Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!
 
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
 
Goudo m
Goudo mGoudo m
Goudo m
 
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装
 
Tutorial-DeepLearning-PCSJ-IMPS2016
Tutorial-DeepLearning-PCSJ-IMPS2016Tutorial-DeepLearning-PCSJ-IMPS2016
Tutorial-DeepLearning-PCSJ-IMPS2016
 
Semantic segmentation
Semantic segmentationSemantic segmentation
Semantic segmentation
 
[第2版]Python機械学習プログラミング 第15章
[第2版]Python機械学習プログラミング 第15章[第2版]Python機械学習プログラミング 第15章
[第2版]Python機械学習プログラミング 第15章
 
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計
深層学習 勉強会第1回 ディープラーニングの歴史とFFNNの設計
 

Último

Último (11)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

深層学習入門 スライド