SlideShare uma empresa Scribd logo
1 de 25
Baixar para ler offline
畳込みNN(CNN)
と
画像解析
NNの基礎から
1
第一部
NN基礎
Neural Network
2
データの表記
𝒙 𝟏 𝒙 𝟐 … 𝒙𝒊 … 𝒙 𝑫
𝑥 𝑛𝑖
D
N
𝒕
𝐭 𝟏 𝐭 𝟐
1 0
0 1
0 1
1 0
𝐭 𝟏 𝐭 𝟐 … 𝐭 𝐤 … 𝐭 𝐊
1 0 0
0 0 1
𝑡 𝑛𝑘
0 1 0
𝒕
0
1
1
0
or
𝒕
0
K
1
or
説明変数、Features 目的変数、Target
連続値
(ガウシアン)
2クラス判別
(ベルヌーイ, 二項)
多クラス判別
(多項)
K
𝑥 𝑛
𝑇
3
ネットワーク図
・
・
・
𝑥 𝐷
𝑥1
𝑥0 = 1
(バイアス) 𝑧0 = 1
(バイアス)
𝑧1
𝑧 𝑀
𝑤 𝑀𝐷
(1)
𝑤10
(1)
𝑤 𝐾𝑀
(2)
𝑦1
𝑦 𝐾
𝑤10
(2)
.
𝑥𝑖
.
.
𝑧𝑗
.
.
𝑦 𝑘
.
𝑧𝑗 = ℎ ෍
𝑖=1
𝐷
𝑤𝑗𝑖
(1)
𝑥𝑖 + 𝑤𝑗𝑜
(1)
入力層
出力層
隠れ層
𝑦 𝑘 = 𝜎 ෍
𝑗=1
𝑀
𝑤 𝑘𝑗
(2)
𝑧𝑗 + 𝑤 𝑘𝑜
(2)
𝑦 𝑘: 𝑡 𝑘の予測値
ℎ ∙ : 活性化関数
ロジスティックシグモイド関数やtanh関数が良く使われるが、
ディープラーニングの場合、最適化計算の効率が良いReLu関数
やMaxOut関数が良く使われる
𝜎 ∙ : 出力層活性化関数
連続値: 恒等関数
2クラス: ロジスティックシグモイド関数
多クラス判別: ソフトマックス関数
”1隠れ層ニューラルネットワーク”の例
.
𝑤𝑗𝑖
(1)
.
.
𝑤kj
(2)
.
4
ノード
ネットワーク訓練 - 誤差関数
𝐸 𝑤 =
1
𝑁
෍
𝑛=1
𝑁
𝑦𝑛 − 𝑡 𝑛
2
𝑦𝑛 = 𝑦 𝑥 𝑛, 𝑤
𝑥 𝑛 = 𝑥𝑖 𝑛 すべての 𝑖
𝑤 = 𝑤𝑗𝑖
(1)
, 𝑤 𝑘𝑗
(2)
すべての 𝑖, 𝑗, 𝑘
𝑖 = 1,2, ⋯ , 𝐷. 𝑗 = 1,2, ⋯ , 𝑀. 𝑘 = 1,2, ⋯ , 𝐾.
𝐸 𝑤 = − ෍
𝑛=1
𝑁
𝑡 𝑛 𝑙𝑛(𝑦 𝑛) + 1 − 𝑡 𝑛 𝑙𝑛(1 − 𝑦 𝑛)
連続値
2乗和誤差関数
2クラス判別
交差エントロピー誤差関数
/Cross-entropy error function
多クラス判別
交差エントロピー誤差関数
/Cross-entropy error function
𝐸 𝑤 = − ෍
𝑛=1
𝑁
෍
𝑘=1
𝐾
𝑡 𝑛𝑘 𝑙𝑛(𝑦 𝑛𝑘)
誤差関数(𝐸(∙))を最小にする重みパラメータ(𝑤)を推定する
(次ページ参照)
5
正規化指数関数/ソフトマックス関数
正規化指数関数/ソフトマックス関数
𝐸 𝑤 = − ෍
𝑛=1
𝑁
෍
𝑘=1
𝐾
𝑡 𝑛𝑘 𝑙𝑛(𝑦 𝑛𝑘)
ロジスティックシグモイド関数の多クラスへの一般化
𝑝 𝐶 𝑘|𝑥 =
exp 𝑤 𝑘
′
𝑥
exp 𝑤1
′ 𝑥 + exp 𝑤2
′ 𝑥 + ⋯ + exp 𝑤 𝐾
′ 𝑥
𝑝 𝐶 𝑘|𝑥 :
オブザベーション𝑥が与えられたときの
クラスk (𝐶 𝑘)に分類される確率
尤度
𝑝 𝑇|𝑤1, 𝑤2, ⋯ , 𝑤 𝐾 = ෑ
𝑛=1
𝑁
ෑ
𝑘=1
𝐾
𝑝 𝐶 𝑘|𝑥 𝑛
𝑡 𝑛𝑘
= ෑ
𝑛=1
𝑁
ෑ
𝑘=1
𝐾
𝑦 𝑛𝑘
𝑡 𝑛𝑘
𝑇 = 𝑡 𝑛𝑘 N×Kの行列
σ 𝑘 𝑡 𝑛𝑘 = 1
n = 1,2, ⋯ , 𝑁. 𝑘 = 1,2, ⋯ , 𝐾.
誤差関数(尤度の負の対数)
6
ネットワーク訓練 - 勾配情報を用いたアプローチ (1)
𝐸(𝑤)
𝑤
𝒘解
• 𝐸 𝑤 is min
• 𝛻𝐸 𝑤 = 0
𝛻𝐸 𝑤 : 勾配(誤差関数の変化率が最大となる方向)
ニューラルネットワークの誤差関数( 𝐸(∙) )は強い非線型。
𝛻𝐸(𝑤) ≅ 0となる𝑤が多数存在する
𝐸 𝑤 is minではないが𝛻𝐸 𝑤 = 0となる
局所解が存在するため、初期値を変えて何度か最適計算を
実行し、𝒘解を計算する必要がある
誤差関数(𝐸(∙))を最小にする重みパラメータ(𝑤)を推定する
7
ネットワーク訓練 - 勾配情報を用いたアプローチ (2)
𝐸(𝑤)
𝑤
𝑤(0)
重みパラメータ(𝑤)を勾配情報(𝛻𝐸 𝑤 )と学習率(η )に従って繰り返し
更新する
𝑤(0)
---> 𝑤(𝑡)
-> 𝑤(𝑡+1)
---> 𝑤解
𝑤(𝑡)
𝑤(𝑡+1)
->- - ->
𝛻𝐸 𝑤(𝑡)
: 勾配(誤差関数の変化率が最大となる方向)
𝑤(𝑡+1) = 𝑤(𝑡) − η𝛻𝐸 𝑤(𝑡)
学習率/Learning Ratio
8
ネットワーク訓練 - 勾配情報を用いたアプローチ (3)
𝐸 𝑤 = ෍
𝑛=1
𝑁
𝐸 𝑛 𝑤
各更新において、
毎回すべてのデータを使用
各更新において、
データの部分集合を使用
各更新において、
一つのデータのみを使用
𝐸 𝑤(𝑡)
= ෍
𝑛=1
𝑁
𝐸 𝑛(𝑤(𝑡)
)
𝐸 𝑤(𝑡)
= ෍
𝑛=𝑙
𝑙+𝑏
𝐸 𝑛(𝑤(𝑡)
)
𝑏 : バッチサイズ
𝐸 𝑤(𝑡)
= ෍
𝑛=𝑙
𝑙+1
𝐸 𝑛(𝑤(𝑡)
)
バッチ訓練
ミニバッチ訓練
オンライン訓練
更新における誤差関数の計算(データ使用量)に関して
勾配降下法,
最急降下法,
共役勾配法,
準ニュートン法
逐次的勾配降下法,
確率的勾配降下法
精度が悪い
PRML参照
9
ネットワーク訓練 - 誤差逆伝播/Backpropagation
𝛻𝐸 𝑤 を求める方法
・
𝑥 𝐷
𝑥1
𝑥0
𝑧0
𝑧1
𝑧 𝑀
𝑦1
𝑦 𝐾.
𝑥𝑖
.
.
.
𝑦 𝑘
.
入力層
出力層
隠れ層
𝑤𝑗𝑖
(1)
𝑤kj
(2)
𝑡1
𝑡 𝐾
.
𝑡 𝑘
.𝛿 𝑘
誤差より計算
𝑧𝑗
.・
𝛿𝑗
ⅆ𝐸
ⅆ𝑤𝑗𝑖
(1)
= 𝛿𝑗 𝑥𝑖
ⅆ𝐸
ⅆ𝑤 𝑘𝑗
(2)
= 𝛿 𝑘 𝑍𝑗
𝛿𝑗 = 𝑧𝑗
′
෍
𝑘=1
𝐾
𝑤 𝑘𝑗 𝛿 𝑘
𝛿 𝑘 , 𝛿𝑗 : 誤差と呼ばれる
① 𝛿 𝑘 を計算 ② 𝛿𝑗 を計算 ③
ⅆ𝐸
ⅆ𝑤 𝑘𝑗
(2) と
ⅆ𝐸
ⅆ𝑤 𝑗𝑖
(1) を計算
実測値
10
𝑧𝑗は直前の層の出力の活性化
関数を通した出力. 微分
(𝑧𝑗
′
)計算の効率の良い関
数を選ぶ必要がある
過学習を防ぐ
過学習の制御方法
 ユニット数(M)の数を調整(= 重みパラメータ(𝒘)の数を調整)
⇒ 複数のMを試し、検証用データの誤差が最小になるものを採用
 正則化
⇒ 誤差関数を以下のように定義する。
𝐸 𝑤 +
λ
2
𝑤′
𝑤 , λ: 正則化係数
 早期終了
⇒ 検証用データの誤差が最小になる時点の重みパラメータ(𝑤)を採用
11
第二部
CNN
Convolutional Neural Network
12
画像データ
13
カラー画像
100
100
100
100
3
RGB表現
3チャンネル
Red: 8bit, [0, 255]
Green: 8bit, [0, 255]
Blue: 8bit, [0, 255]
濃淡(モノクロ)画像
1チャンネル
8bit, [0, 255]
100
100
100
100
不変性
14
画像データの判別によくある問題
「入力の位置やサイズにかかわらず、同じ出力結果を得たい」
4つのアプローチ:
① 学習データのパターンを人工的に作成し、様々なパターンのデータを増やす
② 接線伝播法(モデルに不変性を持たせる方法)
⇒ PRML 5.5.4 参照
③ 入力データが不変性を持つように前処理を行う
⇒ パターンを認識し、どの特徴をどう処理するか分からないことが多いのでは?
④ ニューラルネットワーク(NN)の構造に不変性を持たせる
⇒ 畳込みニューラルネットワーク(Convolutional NN)
ネットワーク図 ”畳込みニューラルネットワーク(CNN)”の例
15
𝑥𝑖𝑗
𝑆
𝑆
入力画像
𝑦 𝑘𝑙
𝐾
𝐾
𝑦 𝑘𝑙
𝑦 𝑘𝑙
𝑦 𝑘𝑙
𝐾′
プーリング畳込み
𝑧ⅆ𝑓
M
M
𝑧ⅆ𝑓
𝑧ⅆ𝑓
𝑧ⅆ𝑓
𝐾′
.
.
.
.
出力
𝑀×𝑀×𝐾′
畳込み層 プーリング層 全結合層
普通の多層NN
• 様々なパターンで入力の特徴抽出を行う
• 1入力に対して𝐾′
種のフィルタを掛け合
わせ(畳込み)、𝐾′
チャネルの特徴マッ
プを作成(N入力の場合、フィルタは
𝐾′
× 𝑁種になる)
.
.
• 一部の情報を捨て、不変性を持たせる
• 各𝐾′
チャネルの特徴マップにおいて、
重要でない情報を削除する
• 少なくとも2回は畳込み層、
プーリング層を繰り返す
畳込み層
16
入力画像の特定の範囲を集約(特徴抽出)し、特徴マップを作成
𝑥𝑖𝑗
入力がチャネル数1(グレースケール画像)の例
𝑤𝑖′ 𝑗′ 𝑢 𝑘𝑙⊛
𝑆
𝑆
𝐿
𝐿
𝑦 𝑘𝑙 = ℎ(𝑢 𝑘𝑙)
𝑥𝑖𝑗
𝑖, 𝑗 ∈ [0, 𝑆 − 1] × [0, 𝑆 − 1]
𝑢 𝑘𝑙 = ෍
(𝑝,𝑞)∈𝑃 𝑘𝑙
𝑥 𝑝𝑞 𝑤 𝑝−𝑘 𝑞−𝑙 + 𝑏
𝑃𝑘𝑙 = { 𝑘 + 𝑖′
, 𝑙 + 𝑗′
|𝑖′
= 0, . . , 𝐿 − 1, 𝑗′
= 0, . . , 𝐿 − 1}
0 ≤ 𝑘 ≤ 𝑆 − (𝐿 − 1)
0 ≤ 𝑙 ≤ 𝑆 − (𝐿 − 1)
𝑏:バイアス
𝐾
𝐾 = 𝑆 − (𝐿 − 1)
 𝑤𝑖′ 𝑗′, 𝑏 が学習で推定される
間隔をあけてスライドする、Strideする方法もある
特徴マップのサイズを入力のサイズから変更しない、
Paddingする方法もある
フィルタ 特徴マップ
プーリング層
入力
𝑤𝑖′ 𝑗′
𝑖′
, 𝑗′
∈ [0, 𝐿 − 1] × [0, 𝐿 − 1]
畳込み式
ℎ ∙ :活性化関数
「入力の(𝑳 × 𝑳)の範囲の情報をフィルタを掛け合わせる(畳込む)ことによりスカラーに集約する」
「 (𝑳 × 𝑳)の範囲を順にスライドして行く」
𝑦 𝑘𝑙𝐾
例では𝐾′
= 1としているが、通常は𝐾′
> 1
𝐾′
種のフィルタを畳込み、複数チャネル(𝐾′
)の特徴マップを作成
畳込み層
17
𝑥𝑖𝑗𝑘
𝑤𝑖′ 𝑗′ 𝑘′
𝑢 𝑘𝑙⊛
𝑆
𝑆
𝐿
𝐿
𝑦 𝑘𝑙 = ℎ(𝑢 𝑘𝑙)
𝑥𝑖𝑗𝑐
𝑖, 𝑗, 𝑐 ∈ [0, 𝑆 − 1] × [0, 𝑆 − 1] × [1, 𝑁]
𝑢 𝑘𝑙 = ෍
𝑐=1
𝑁
෍
(𝑝,𝑞)∈𝑃 𝑘𝑙
𝑥 𝑝𝑞𝑐 𝑤 𝑝−𝑘 𝑞−𝑙 𝑐 + 𝑏 𝑐
𝑃𝑘𝑙 = { 𝑘 + 𝑖′
, 𝑙 + 𝑗′
|𝑖′
= 0, . . , 𝐿 − 1, 𝑗′
= 0, . . , 𝐿 − 1}
0 ≤ 𝑘 ≤ 𝑆 − (𝐿 − 1)
0 ≤ 𝑙 ≤ 𝑆 − (𝐿 − 1)
𝑏 𝑐:バイアス
𝐾
𝐾 = 𝑆 − (𝐿 − 1)
フィルタ 特徴マップ
プーリング層
入力
𝑤𝑖′ 𝑗′ 𝑐
𝑖′
, 𝑗′
, 𝑐 ∈ [0, 𝐿 − 1] × [0, 𝐿 − 1] × [1, 𝑁]
畳込み式
ℎ ∙ :活性化関数
𝑦 𝑘𝑙𝐾
入力が複数チャネル(RGB画像、プーリング層からの出力)の例
𝑥𝑖𝑗𝑘
𝑥𝑖𝑗𝑘
𝑥𝑖𝑗𝑐
𝑤𝑖′ 𝑗′ 𝑘′
𝑤𝑖′ 𝑗′ 𝑘′
𝑤𝑖′ 𝑗′ 𝑐
𝑁
𝑁
「入力の(𝑳 × 𝑳)の範囲の情報をフィルタを掛け合わせ(畳込む)、
さらにこれをN枚分足し合わせることによりスカラーに集約する」
例では𝐾′
= 1としているが、通常は𝐾′
> 1
𝐾′
種のフィルタを畳込み、複数チャネル(𝐾′
)の特徴マップを作成
プーリング層
18
特徴マップの情報を一部捨て、不変性を持たせる
𝑦 𝑘𝑙
𝐾
𝐾 = 𝑆 − (𝐿 − 1)
特徴マップ
𝐾 𝑧ⅆ𝑓
𝑀
𝑀
畳込み層
(再び畳込み層への入力となる)
or
全結合層
プーリング
𝑧ⅆ𝑓 =
1
|𝑄ⅆ𝑓|
෍
(𝑘,𝑙)∈𝑄 𝑑𝑓
𝑦 𝑘𝑙 𝑄ⅆ𝑓 = ⅆ, 𝑓 ⅆ = 2, . . , 𝑓 = 2, . . }:Pooling Window
|𝑄ⅆ𝑓|:Pooling Windowの面積
𝑧ⅆ𝑓 = max
(𝑘,𝑙)∈𝑄 𝑑𝑓
𝑦 𝑘𝑙
𝑀 = ൗ𝐾
𝑃𝑜𝑜𝑙𝑖𝑛𝑔 𝑊𝑖𝑛ⅆ𝑜𝑤の辺の長さ
平均プーリング
/Average Pooling
最大プーリング
/Max Pooling
「Pooling Windowの中から、代表値を取り出す」
「特徴マップ上を、Pooling Windowを重なりなくスライドさせる」
例
19
畳込み層、プーリング層での処理の例
………
………
100
21
80
20
畳込み プーリング
フィルタリングの範囲 Pooling Window
21×21  スカラー 4×4  スカラー
21×21
4×4
• フィルタを入力
へ畳込む
入力
100×100
特徴マップ
80×80
• 特徴マップから代
表値を取り出す
プーリング後の出力
20×20
学習精度/効率向上のための方法 (1)
20
過学習の制御 入力画像の正規化
正規化
• CNNにおいては、特徴マップに正規化を実施(明るさ
をそろえる)してからプーリングする
• 正規化すると精度や学習効率が向上するらしい…。
Dropout
• 全結合層で利用
• パラメータ学習において、毎回ランダムに一定割
合の入力層、隠れ層のノードを消す
• 消されたノードのパラメータは更新されな
い
学習精度/効率向上のための方法 (2)
21
計算効率の良い活性化関数の選択 確率的勾配降下法の効率向上
(パラメータ(𝑤)の推定の効率向上)
Adam
• 今回の更新で使われる勾配(𝛻𝐸 𝑛 𝑤(𝑡)
)だけでなく、
前の更新で使われた勾配(𝛻𝐸 𝑛 𝑤(𝑡−1)
等)も(平均と
分散として)考慮にいれて次のパラメータ(𝑤(𝑡+1)
)を
更新
ReLU 関数
𝑧 = max(0, 𝑥)
• 微分計算が容易(0 or 1)
• 0の場合、パラメータは更新されない
• 深いネットワークにも強い
𝑧
𝑥
CNNにおけるハイパーパラメータ
22
 モデル
• 隠れ層の数
• ユニット数
• 活性化関数
• フィルタ数、サイズ
• プーリング関数
• Pooling Windowサイズ
 訓練(最適化計算)
• 学習率/Learning Ratio
• バッチサイズ
• 訓練回数、epoch数
• パラメータ初期値
ランダム探索やグリッド探索を行い、最適なハイパーパラメータの組み合わせを推測する
Chainer実装例
23
class CNN1(Chain):
def __init__(self):
super(CNN1, self).__init__(
conv1 = L.Convolution2D(1, 10, 21), # 畳込みにおける(入力のチャネル数, フィルタの枚数, フィルタのサイズ)
conv2 = L.Convolution2D(10, 15, 21),
l1 = L.Linear(1500, 100), # 全結合層における(入力数, 隠れ層の数)
l2 = L.Linear(100, 2), # 全結合層における(隠れ層の数, 出力数)
)
def __call__(self, x):
h = F.max_pooling_2d( F.relu( F.local_response_normalization(self.conv1(x)) ), (2,2), stride=2) # F.max_pooling_2d( 畳込み層からの入力, Pooling Windowサイズ )
h = F.max_pooling_2d( F.relu( F.local_response_normalization(self.conv2(h)) ), (2,2), stride=2) # F.local_response_normalization : 正規化
h = F.dropout( F.relu(self.l1(h)), train=True ) # F.dropout : Dropout
y = F.softmax(self.l2(h))
return y
100
入力画像
プーリング
畳込み
.
.
.
.
出力
.
.
10
⊛100
21
21
10
80
80
10
40
40
10×15
⊛
21
畳込み
21
15
20
20
プーリング
15
10
10
フィルタ フィルタ
10×10×15
=1500
100
2
特徴マップ
特徴マップ
参考文献
24
25
Chainerマニュアル
http://docs.chainer.org/en/stable/#

Mais conteúdo relacionado

Mais procurados

FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape AnalysisFeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysisyukihiro domae
 
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)Yukara Ikemiya
 
Learning Depthwise Separable Graph Convolution from Data Manifold
Learning Depthwise Separable Graph Convolution from Data ManifoldLearning Depthwise Separable Graph Convolution from Data Manifold
Learning Depthwise Separable Graph Convolution from Data Manifoldyukihiro domae
 
線形識別モデル
線形識別モデル線形識別モデル
線形識別モデル貴之 八木
 
2値分類・多クラス分類
2値分類・多クラス分類2値分類・多クラス分類
2値分類・多クラス分類t dev
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化Miyoshi Yuya
 
SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来Hidekazu Oiwa
 
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜Tomoki Yoshida
 
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布パターン認識 04 混合正規分布
パターン認識 04 混合正規分布sleipnir002
 
(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature Filter
(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature Filter(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature Filter
(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature FilterMorpho, Inc.
 
ICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelsICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelssleepy_yoshi
 
(文献紹介) 画像復元:Plug-and-Play ADMM
(文献紹介) 画像復元:Plug-and-Play ADMM(文献紹介) 画像復元:Plug-and-Play ADMM
(文献紹介) 画像復元:Plug-and-Play ADMMMorpho, Inc.
 
パターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムパターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムMiyoshi Yuya
 
PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現hagino 3000
 
パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成Prunus 1350
 
はじめてのパターン認識 第6章 後半
はじめてのパターン認識 第6章 後半はじめてのパターン認識 第6章 後半
はじめてのパターン認識 第6章 後半Prunus 1350
 
Image interpolation
Image interpolationImage interpolation
Image interpolationKokuiSai
 
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰sleipnir002
 
混合ガウスモデルとEMアルゴリスム
混合ガウスモデルとEMアルゴリスム混合ガウスモデルとEMアルゴリスム
混合ガウスモデルとEMアルゴリスム貴之 八木
 

Mais procurados (20)

FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape AnalysisFeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
FeaStNet: Feature-Steered Graph Convolutions for 3D Shape Analysis
 
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
 
Learning Depthwise Separable Graph Convolution from Data Manifold
Learning Depthwise Separable Graph Convolution from Data ManifoldLearning Depthwise Separable Graph Convolution from Data Manifold
Learning Depthwise Separable Graph Convolution from Data Manifold
 
線形識別モデル
線形識別モデル線形識別モデル
線形識別モデル
 
2値分類・多クラス分類
2値分類・多クラス分類2値分類・多クラス分類
2値分類・多クラス分類
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 
SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来
 
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
 
確率プロット
確率プロット確率プロット
確率プロット
 
パターン認識 04 混合正規分布
パターン認識 04 混合正規分布パターン認識 04 混合正規分布
パターン認識 04 混合正規分布
 
(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature Filter
(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature Filter(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature Filter
(文献紹介)エッジ保存フィルタ:Side Window Filter, Curvature Filter
 
ICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelsICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic models
 
(文献紹介) 画像復元:Plug-and-Play ADMM
(文献紹介) 画像復元:Plug-and-Play ADMM(文献紹介) 画像復元:Plug-and-Play ADMM
(文献紹介) 画像復元:Plug-and-Play ADMM
 
パターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムパターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズム
 
PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現
 
パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成
 
はじめてのパターン認識 第6章 後半
はじめてのパターン認識 第6章 後半はじめてのパターン認識 第6章 後半
はじめてのパターン認識 第6章 後半
 
Image interpolation
Image interpolationImage interpolation
Image interpolation
 
パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰パターン認識 05 ロジスティック回帰
パターン認識 05 ロジスティック回帰
 
混合ガウスモデルとEMアルゴリスム
混合ガウスモデルとEMアルゴリスム混合ガウスモデルとEMアルゴリスム
混合ガウスモデルとEMアルゴリスム
 

Semelhante a NN, CNN, and Image Analysis

東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1hirokazutanaka
 
スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元Shogo Muramatsu
 
RBMを応用した事前学習とDNN学習
RBMを応用した事前学習とDNN学習RBMを応用した事前学習とDNN学習
RBMを応用した事前学習とDNN学習Masayuki Tanaka
 
Quantum Support Vector Machine
Quantum Support Vector MachineQuantum Support Vector Machine
Quantum Support Vector MachineYuma Nakamura
 
Long short-term memory (LSTM)
Long short-term memory (LSTM)Long short-term memory (LSTM)
Long short-term memory (LSTM)Kenta Ishii
 
PRML 4.1 Discriminant Function
PRML 4.1 Discriminant FunctionPRML 4.1 Discriminant Function
PRML 4.1 Discriminant FunctionShintaro Takemura
 
A yet another brief introduction to neural networks
A yet another brief introduction to neural networksA yet another brief introduction to neural networks
A yet another brief introduction to neural networksYuta Kikuchi
 
機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理Ryo Nakamura
 
Deep Learningについて(改訂版)
Deep Learningについて(改訂版)Deep Learningについて(改訂版)
Deep Learningについて(改訂版)Brains Consulting, Inc.
 
ディープラーニング基礎.pptx
ディープラーニング基礎.pptxディープラーニング基礎.pptx
ディープラーニング基礎.pptxnorimatsu5
 
Hive/Pigを使ったKDD'12 track2の広告クリック率予測
Hive/Pigを使ったKDD'12 track2の広告クリック率予測Hive/Pigを使ったKDD'12 track2の広告クリック率予測
Hive/Pigを使ったKDD'12 track2の広告クリック率予測Makoto Yui
 
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)Morpho, Inc.
 
多次元信号処理の基礎と画像処理のための二次元変換技術
多次元信号処理の基礎と画像処理のための二次元変換技術多次元信号処理の基礎と画像処理のための二次元変換技術
多次元信号処理の基礎と画像処理のための二次元変換技術Shogo Muramatsu
 
パターン認識モデル初歩の初歩
パターン認識モデル初歩の初歩パターン認識モデル初歩の初歩
パターン認識モデル初歩の初歩t_ichioka_sg
 
Fisher Vectorによる画像認識
Fisher Vectorによる画像認識Fisher Vectorによる画像認識
Fisher Vectorによる画像認識Takao Yamanaka
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1sleepy_yoshi
 
これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法kenyanonaka
 

Semelhante a NN, CNN, and Image Analysis (20)

東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
 
スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元
 
RBMを応用した事前学習とDNN学習
RBMを応用した事前学習とDNN学習RBMを応用した事前学習とDNN学習
RBMを応用した事前学習とDNN学習
 
Quantum Support Vector Machine
Quantum Support Vector MachineQuantum Support Vector Machine
Quantum Support Vector Machine
 
Long short-term memory (LSTM)
Long short-term memory (LSTM)Long short-term memory (LSTM)
Long short-term memory (LSTM)
 
レポート1
レポート1レポート1
レポート1
 
PRML 4.1 Discriminant Function
PRML 4.1 Discriminant FunctionPRML 4.1 Discriminant Function
PRML 4.1 Discriminant Function
 
A yet another brief introduction to neural networks
A yet another brief introduction to neural networksA yet another brief introduction to neural networks
A yet another brief introduction to neural networks
 
Deep learning入門
Deep learning入門Deep learning入門
Deep learning入門
 
機械学習と深層学習の数理
機械学習と深層学習の数理機械学習と深層学習の数理
機械学習と深層学習の数理
 
Deep Learningについて(改訂版)
Deep Learningについて(改訂版)Deep Learningについて(改訂版)
Deep Learningについて(改訂版)
 
ディープラーニング基礎.pptx
ディープラーニング基礎.pptxディープラーニング基礎.pptx
ディープラーニング基礎.pptx
 
Hive/Pigを使ったKDD'12 track2の広告クリック率予測
Hive/Pigを使ったKDD'12 track2の広告クリック率予測Hive/Pigを使ったKDD'12 track2の広告クリック率予測
Hive/Pigを使ったKDD'12 track2の広告クリック率予測
 
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
(文献紹介)Deep Unrolling: Learned ISTA (LISTA)
 
多次元信号処理の基礎と画像処理のための二次元変換技術
多次元信号処理の基礎と画像処理のための二次元変換技術多次元信号処理の基礎と画像処理のための二次元変換技術
多次元信号処理の基礎と画像処理のための二次元変換技術
 
パターン認識モデル初歩の初歩
パターン認識モデル初歩の初歩パターン認識モデル初歩の初歩
パターン認識モデル初歩の初歩
 
Fisher Vectorによる画像認識
Fisher Vectorによる画像認識Fisher Vectorによる画像認識
Fisher Vectorによる画像認識
 
Fourier transform
Fourier transformFourier transform
Fourier transform
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1
 
これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法これならわかる最適化数学8章_動的計画法
これならわかる最適化数学8章_動的計画法
 

NN, CNN, and Image Analysis

  • 3. データの表記 𝒙 𝟏 𝒙 𝟐 … 𝒙𝒊 … 𝒙 𝑫 𝑥 𝑛𝑖 D N 𝒕 𝐭 𝟏 𝐭 𝟐 1 0 0 1 0 1 1 0 𝐭 𝟏 𝐭 𝟐 … 𝐭 𝐤 … 𝐭 𝐊 1 0 0 0 0 1 𝑡 𝑛𝑘 0 1 0 𝒕 0 1 1 0 or 𝒕 0 K 1 or 説明変数、Features 目的変数、Target 連続値 (ガウシアン) 2クラス判別 (ベルヌーイ, 二項) 多クラス判別 (多項) K 𝑥 𝑛 𝑇 3
  • 4. ネットワーク図 ・ ・ ・ 𝑥 𝐷 𝑥1 𝑥0 = 1 (バイアス) 𝑧0 = 1 (バイアス) 𝑧1 𝑧 𝑀 𝑤 𝑀𝐷 (1) 𝑤10 (1) 𝑤 𝐾𝑀 (2) 𝑦1 𝑦 𝐾 𝑤10 (2) . 𝑥𝑖 . . 𝑧𝑗 . . 𝑦 𝑘 . 𝑧𝑗 = ℎ ෍ 𝑖=1 𝐷 𝑤𝑗𝑖 (1) 𝑥𝑖 + 𝑤𝑗𝑜 (1) 入力層 出力層 隠れ層 𝑦 𝑘 = 𝜎 ෍ 𝑗=1 𝑀 𝑤 𝑘𝑗 (2) 𝑧𝑗 + 𝑤 𝑘𝑜 (2) 𝑦 𝑘: 𝑡 𝑘の予測値 ℎ ∙ : 活性化関数 ロジスティックシグモイド関数やtanh関数が良く使われるが、 ディープラーニングの場合、最適化計算の効率が良いReLu関数 やMaxOut関数が良く使われる 𝜎 ∙ : 出力層活性化関数 連続値: 恒等関数 2クラス: ロジスティックシグモイド関数 多クラス判別: ソフトマックス関数 ”1隠れ層ニューラルネットワーク”の例 . 𝑤𝑗𝑖 (1) . . 𝑤kj (2) . 4 ノード
  • 5. ネットワーク訓練 - 誤差関数 𝐸 𝑤 = 1 𝑁 ෍ 𝑛=1 𝑁 𝑦𝑛 − 𝑡 𝑛 2 𝑦𝑛 = 𝑦 𝑥 𝑛, 𝑤 𝑥 𝑛 = 𝑥𝑖 𝑛 すべての 𝑖 𝑤 = 𝑤𝑗𝑖 (1) , 𝑤 𝑘𝑗 (2) すべての 𝑖, 𝑗, 𝑘 𝑖 = 1,2, ⋯ , 𝐷. 𝑗 = 1,2, ⋯ , 𝑀. 𝑘 = 1,2, ⋯ , 𝐾. 𝐸 𝑤 = − ෍ 𝑛=1 𝑁 𝑡 𝑛 𝑙𝑛(𝑦 𝑛) + 1 − 𝑡 𝑛 𝑙𝑛(1 − 𝑦 𝑛) 連続値 2乗和誤差関数 2クラス判別 交差エントロピー誤差関数 /Cross-entropy error function 多クラス判別 交差エントロピー誤差関数 /Cross-entropy error function 𝐸 𝑤 = − ෍ 𝑛=1 𝑁 ෍ 𝑘=1 𝐾 𝑡 𝑛𝑘 𝑙𝑛(𝑦 𝑛𝑘) 誤差関数(𝐸(∙))を最小にする重みパラメータ(𝑤)を推定する (次ページ参照) 5
  • 6. 正規化指数関数/ソフトマックス関数 正規化指数関数/ソフトマックス関数 𝐸 𝑤 = − ෍ 𝑛=1 𝑁 ෍ 𝑘=1 𝐾 𝑡 𝑛𝑘 𝑙𝑛(𝑦 𝑛𝑘) ロジスティックシグモイド関数の多クラスへの一般化 𝑝 𝐶 𝑘|𝑥 = exp 𝑤 𝑘 ′ 𝑥 exp 𝑤1 ′ 𝑥 + exp 𝑤2 ′ 𝑥 + ⋯ + exp 𝑤 𝐾 ′ 𝑥 𝑝 𝐶 𝑘|𝑥 : オブザベーション𝑥が与えられたときの クラスk (𝐶 𝑘)に分類される確率 尤度 𝑝 𝑇|𝑤1, 𝑤2, ⋯ , 𝑤 𝐾 = ෑ 𝑛=1 𝑁 ෑ 𝑘=1 𝐾 𝑝 𝐶 𝑘|𝑥 𝑛 𝑡 𝑛𝑘 = ෑ 𝑛=1 𝑁 ෑ 𝑘=1 𝐾 𝑦 𝑛𝑘 𝑡 𝑛𝑘 𝑇 = 𝑡 𝑛𝑘 N×Kの行列 σ 𝑘 𝑡 𝑛𝑘 = 1 n = 1,2, ⋯ , 𝑁. 𝑘 = 1,2, ⋯ , 𝐾. 誤差関数(尤度の負の対数) 6
  • 7. ネットワーク訓練 - 勾配情報を用いたアプローチ (1) 𝐸(𝑤) 𝑤 𝒘解 • 𝐸 𝑤 is min • 𝛻𝐸 𝑤 = 0 𝛻𝐸 𝑤 : 勾配(誤差関数の変化率が最大となる方向) ニューラルネットワークの誤差関数( 𝐸(∙) )は強い非線型。 𝛻𝐸(𝑤) ≅ 0となる𝑤が多数存在する 𝐸 𝑤 is minではないが𝛻𝐸 𝑤 = 0となる 局所解が存在するため、初期値を変えて何度か最適計算を 実行し、𝒘解を計算する必要がある 誤差関数(𝐸(∙))を最小にする重みパラメータ(𝑤)を推定する 7
  • 8. ネットワーク訓練 - 勾配情報を用いたアプローチ (2) 𝐸(𝑤) 𝑤 𝑤(0) 重みパラメータ(𝑤)を勾配情報(𝛻𝐸 𝑤 )と学習率(η )に従って繰り返し 更新する 𝑤(0) ---> 𝑤(𝑡) -> 𝑤(𝑡+1) ---> 𝑤解 𝑤(𝑡) 𝑤(𝑡+1) ->- - -> 𝛻𝐸 𝑤(𝑡) : 勾配(誤差関数の変化率が最大となる方向) 𝑤(𝑡+1) = 𝑤(𝑡) − η𝛻𝐸 𝑤(𝑡) 学習率/Learning Ratio 8
  • 9. ネットワーク訓練 - 勾配情報を用いたアプローチ (3) 𝐸 𝑤 = ෍ 𝑛=1 𝑁 𝐸 𝑛 𝑤 各更新において、 毎回すべてのデータを使用 各更新において、 データの部分集合を使用 各更新において、 一つのデータのみを使用 𝐸 𝑤(𝑡) = ෍ 𝑛=1 𝑁 𝐸 𝑛(𝑤(𝑡) ) 𝐸 𝑤(𝑡) = ෍ 𝑛=𝑙 𝑙+𝑏 𝐸 𝑛(𝑤(𝑡) ) 𝑏 : バッチサイズ 𝐸 𝑤(𝑡) = ෍ 𝑛=𝑙 𝑙+1 𝐸 𝑛(𝑤(𝑡) ) バッチ訓練 ミニバッチ訓練 オンライン訓練 更新における誤差関数の計算(データ使用量)に関して 勾配降下法, 最急降下法, 共役勾配法, 準ニュートン法 逐次的勾配降下法, 確率的勾配降下法 精度が悪い PRML参照 9
  • 10. ネットワーク訓練 - 誤差逆伝播/Backpropagation 𝛻𝐸 𝑤 を求める方法 ・ 𝑥 𝐷 𝑥1 𝑥0 𝑧0 𝑧1 𝑧 𝑀 𝑦1 𝑦 𝐾. 𝑥𝑖 . . . 𝑦 𝑘 . 入力層 出力層 隠れ層 𝑤𝑗𝑖 (1) 𝑤kj (2) 𝑡1 𝑡 𝐾 . 𝑡 𝑘 .𝛿 𝑘 誤差より計算 𝑧𝑗 .・ 𝛿𝑗 ⅆ𝐸 ⅆ𝑤𝑗𝑖 (1) = 𝛿𝑗 𝑥𝑖 ⅆ𝐸 ⅆ𝑤 𝑘𝑗 (2) = 𝛿 𝑘 𝑍𝑗 𝛿𝑗 = 𝑧𝑗 ′ ෍ 𝑘=1 𝐾 𝑤 𝑘𝑗 𝛿 𝑘 𝛿 𝑘 , 𝛿𝑗 : 誤差と呼ばれる ① 𝛿 𝑘 を計算 ② 𝛿𝑗 を計算 ③ ⅆ𝐸 ⅆ𝑤 𝑘𝑗 (2) と ⅆ𝐸 ⅆ𝑤 𝑗𝑖 (1) を計算 実測値 10 𝑧𝑗は直前の層の出力の活性化 関数を通した出力. 微分 (𝑧𝑗 ′ )計算の効率の良い関 数を選ぶ必要がある
  • 11. 過学習を防ぐ 過学習の制御方法  ユニット数(M)の数を調整(= 重みパラメータ(𝒘)の数を調整) ⇒ 複数のMを試し、検証用データの誤差が最小になるものを採用  正則化 ⇒ 誤差関数を以下のように定義する。 𝐸 𝑤 + λ 2 𝑤′ 𝑤 , λ: 正則化係数  早期終了 ⇒ 検証用データの誤差が最小になる時点の重みパラメータ(𝑤)を採用 11
  • 13. 画像データ 13 カラー画像 100 100 100 100 3 RGB表現 3チャンネル Red: 8bit, [0, 255] Green: 8bit, [0, 255] Blue: 8bit, [0, 255] 濃淡(モノクロ)画像 1チャンネル 8bit, [0, 255] 100 100 100 100
  • 14. 不変性 14 画像データの判別によくある問題 「入力の位置やサイズにかかわらず、同じ出力結果を得たい」 4つのアプローチ: ① 学習データのパターンを人工的に作成し、様々なパターンのデータを増やす ② 接線伝播法(モデルに不変性を持たせる方法) ⇒ PRML 5.5.4 参照 ③ 入力データが不変性を持つように前処理を行う ⇒ パターンを認識し、どの特徴をどう処理するか分からないことが多いのでは? ④ ニューラルネットワーク(NN)の構造に不変性を持たせる ⇒ 畳込みニューラルネットワーク(Convolutional NN)
  • 15. ネットワーク図 ”畳込みニューラルネットワーク(CNN)”の例 15 𝑥𝑖𝑗 𝑆 𝑆 入力画像 𝑦 𝑘𝑙 𝐾 𝐾 𝑦 𝑘𝑙 𝑦 𝑘𝑙 𝑦 𝑘𝑙 𝐾′ プーリング畳込み 𝑧ⅆ𝑓 M M 𝑧ⅆ𝑓 𝑧ⅆ𝑓 𝑧ⅆ𝑓 𝐾′ . . . . 出力 𝑀×𝑀×𝐾′ 畳込み層 プーリング層 全結合層 普通の多層NN • 様々なパターンで入力の特徴抽出を行う • 1入力に対して𝐾′ 種のフィルタを掛け合 わせ(畳込み)、𝐾′ チャネルの特徴マッ プを作成(N入力の場合、フィルタは 𝐾′ × 𝑁種になる) . . • 一部の情報を捨て、不変性を持たせる • 各𝐾′ チャネルの特徴マップにおいて、 重要でない情報を削除する • 少なくとも2回は畳込み層、 プーリング層を繰り返す
  • 16. 畳込み層 16 入力画像の特定の範囲を集約(特徴抽出)し、特徴マップを作成 𝑥𝑖𝑗 入力がチャネル数1(グレースケール画像)の例 𝑤𝑖′ 𝑗′ 𝑢 𝑘𝑙⊛ 𝑆 𝑆 𝐿 𝐿 𝑦 𝑘𝑙 = ℎ(𝑢 𝑘𝑙) 𝑥𝑖𝑗 𝑖, 𝑗 ∈ [0, 𝑆 − 1] × [0, 𝑆 − 1] 𝑢 𝑘𝑙 = ෍ (𝑝,𝑞)∈𝑃 𝑘𝑙 𝑥 𝑝𝑞 𝑤 𝑝−𝑘 𝑞−𝑙 + 𝑏 𝑃𝑘𝑙 = { 𝑘 + 𝑖′ , 𝑙 + 𝑗′ |𝑖′ = 0, . . , 𝐿 − 1, 𝑗′ = 0, . . , 𝐿 − 1} 0 ≤ 𝑘 ≤ 𝑆 − (𝐿 − 1) 0 ≤ 𝑙 ≤ 𝑆 − (𝐿 − 1) 𝑏:バイアス 𝐾 𝐾 = 𝑆 − (𝐿 − 1)  𝑤𝑖′ 𝑗′, 𝑏 が学習で推定される 間隔をあけてスライドする、Strideする方法もある 特徴マップのサイズを入力のサイズから変更しない、 Paddingする方法もある フィルタ 特徴マップ プーリング層 入力 𝑤𝑖′ 𝑗′ 𝑖′ , 𝑗′ ∈ [0, 𝐿 − 1] × [0, 𝐿 − 1] 畳込み式 ℎ ∙ :活性化関数 「入力の(𝑳 × 𝑳)の範囲の情報をフィルタを掛け合わせる(畳込む)ことによりスカラーに集約する」 「 (𝑳 × 𝑳)の範囲を順にスライドして行く」 𝑦 𝑘𝑙𝐾 例では𝐾′ = 1としているが、通常は𝐾′ > 1 𝐾′ 種のフィルタを畳込み、複数チャネル(𝐾′ )の特徴マップを作成
  • 17. 畳込み層 17 𝑥𝑖𝑗𝑘 𝑤𝑖′ 𝑗′ 𝑘′ 𝑢 𝑘𝑙⊛ 𝑆 𝑆 𝐿 𝐿 𝑦 𝑘𝑙 = ℎ(𝑢 𝑘𝑙) 𝑥𝑖𝑗𝑐 𝑖, 𝑗, 𝑐 ∈ [0, 𝑆 − 1] × [0, 𝑆 − 1] × [1, 𝑁] 𝑢 𝑘𝑙 = ෍ 𝑐=1 𝑁 ෍ (𝑝,𝑞)∈𝑃 𝑘𝑙 𝑥 𝑝𝑞𝑐 𝑤 𝑝−𝑘 𝑞−𝑙 𝑐 + 𝑏 𝑐 𝑃𝑘𝑙 = { 𝑘 + 𝑖′ , 𝑙 + 𝑗′ |𝑖′ = 0, . . , 𝐿 − 1, 𝑗′ = 0, . . , 𝐿 − 1} 0 ≤ 𝑘 ≤ 𝑆 − (𝐿 − 1) 0 ≤ 𝑙 ≤ 𝑆 − (𝐿 − 1) 𝑏 𝑐:バイアス 𝐾 𝐾 = 𝑆 − (𝐿 − 1) フィルタ 特徴マップ プーリング層 入力 𝑤𝑖′ 𝑗′ 𝑐 𝑖′ , 𝑗′ , 𝑐 ∈ [0, 𝐿 − 1] × [0, 𝐿 − 1] × [1, 𝑁] 畳込み式 ℎ ∙ :活性化関数 𝑦 𝑘𝑙𝐾 入力が複数チャネル(RGB画像、プーリング層からの出力)の例 𝑥𝑖𝑗𝑘 𝑥𝑖𝑗𝑘 𝑥𝑖𝑗𝑐 𝑤𝑖′ 𝑗′ 𝑘′ 𝑤𝑖′ 𝑗′ 𝑘′ 𝑤𝑖′ 𝑗′ 𝑐 𝑁 𝑁 「入力の(𝑳 × 𝑳)の範囲の情報をフィルタを掛け合わせ(畳込む)、 さらにこれをN枚分足し合わせることによりスカラーに集約する」 例では𝐾′ = 1としているが、通常は𝐾′ > 1 𝐾′ 種のフィルタを畳込み、複数チャネル(𝐾′ )の特徴マップを作成
  • 18. プーリング層 18 特徴マップの情報を一部捨て、不変性を持たせる 𝑦 𝑘𝑙 𝐾 𝐾 = 𝑆 − (𝐿 − 1) 特徴マップ 𝐾 𝑧ⅆ𝑓 𝑀 𝑀 畳込み層 (再び畳込み層への入力となる) or 全結合層 プーリング 𝑧ⅆ𝑓 = 1 |𝑄ⅆ𝑓| ෍ (𝑘,𝑙)∈𝑄 𝑑𝑓 𝑦 𝑘𝑙 𝑄ⅆ𝑓 = ⅆ, 𝑓 ⅆ = 2, . . , 𝑓 = 2, . . }:Pooling Window |𝑄ⅆ𝑓|:Pooling Windowの面積 𝑧ⅆ𝑓 = max (𝑘,𝑙)∈𝑄 𝑑𝑓 𝑦 𝑘𝑙 𝑀 = ൗ𝐾 𝑃𝑜𝑜𝑙𝑖𝑛𝑔 𝑊𝑖𝑛ⅆ𝑜𝑤の辺の長さ 平均プーリング /Average Pooling 最大プーリング /Max Pooling 「Pooling Windowの中から、代表値を取り出す」 「特徴マップ上を、Pooling Windowを重なりなくスライドさせる」
  • 19. 例 19 畳込み層、プーリング層での処理の例 ……… ……… 100 21 80 20 畳込み プーリング フィルタリングの範囲 Pooling Window 21×21  スカラー 4×4  スカラー 21×21 4×4 • フィルタを入力 へ畳込む 入力 100×100 特徴マップ 80×80 • 特徴マップから代 表値を取り出す プーリング後の出力 20×20
  • 20. 学習精度/効率向上のための方法 (1) 20 過学習の制御 入力画像の正規化 正規化 • CNNにおいては、特徴マップに正規化を実施(明るさ をそろえる)してからプーリングする • 正規化すると精度や学習効率が向上するらしい…。 Dropout • 全結合層で利用 • パラメータ学習において、毎回ランダムに一定割 合の入力層、隠れ層のノードを消す • 消されたノードのパラメータは更新されな い
  • 21. 学習精度/効率向上のための方法 (2) 21 計算効率の良い活性化関数の選択 確率的勾配降下法の効率向上 (パラメータ(𝑤)の推定の効率向上) Adam • 今回の更新で使われる勾配(𝛻𝐸 𝑛 𝑤(𝑡) )だけでなく、 前の更新で使われた勾配(𝛻𝐸 𝑛 𝑤(𝑡−1) 等)も(平均と 分散として)考慮にいれて次のパラメータ(𝑤(𝑡+1) )を 更新 ReLU 関数 𝑧 = max(0, 𝑥) • 微分計算が容易(0 or 1) • 0の場合、パラメータは更新されない • 深いネットワークにも強い 𝑧 𝑥
  • 22. CNNにおけるハイパーパラメータ 22  モデル • 隠れ層の数 • ユニット数 • 活性化関数 • フィルタ数、サイズ • プーリング関数 • Pooling Windowサイズ  訓練(最適化計算) • 学習率/Learning Ratio • バッチサイズ • 訓練回数、epoch数 • パラメータ初期値 ランダム探索やグリッド探索を行い、最適なハイパーパラメータの組み合わせを推測する
  • 23. Chainer実装例 23 class CNN1(Chain): def __init__(self): super(CNN1, self).__init__( conv1 = L.Convolution2D(1, 10, 21), # 畳込みにおける(入力のチャネル数, フィルタの枚数, フィルタのサイズ) conv2 = L.Convolution2D(10, 15, 21), l1 = L.Linear(1500, 100), # 全結合層における(入力数, 隠れ層の数) l2 = L.Linear(100, 2), # 全結合層における(隠れ層の数, 出力数) ) def __call__(self, x): h = F.max_pooling_2d( F.relu( F.local_response_normalization(self.conv1(x)) ), (2,2), stride=2) # F.max_pooling_2d( 畳込み層からの入力, Pooling Windowサイズ ) h = F.max_pooling_2d( F.relu( F.local_response_normalization(self.conv2(h)) ), (2,2), stride=2) # F.local_response_normalization : 正規化 h = F.dropout( F.relu(self.l1(h)), train=True ) # F.dropout : Dropout y = F.softmax(self.l2(h)) return y 100 入力画像 プーリング 畳込み . . . . 出力 . . 10 ⊛100 21 21 10 80 80 10 40 40 10×15 ⊛ 21 畳込み 21 15 20 20 プーリング 15 10 10 フィルタ フィルタ 10×10×15 =1500 100 2 特徴マップ 特徴マップ