画像のパターン認識(2)...

25
画像処理工学 画像のパターン認識(2) -機械学習によるパターン認識-

Upload: others

Post on 04-Jan-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

画像処理工学

画像のパターン認識(2)

-機械学習によるパターン認識-

Page 2: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

機械学習とは

• 機械学習

– データから法則性(パターン)を抽出する統計的手法

– 訓練データ { x1 , x2 , … , xn } からモデル関数 f (x)(法則性)を求める

– モデルパラメータを,訓練データを用いて適応的に調節しながら求めることを「学習」という

• 機械学習の手法

– 線形回帰,ロジスティック回帰,サポートベクタマシン(SVM),ニューラルネットワーク(NN)

– k-means法,主成分分析

– Q学習 2

Page 3: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

機械学習とパターン認識

• 機械学習

– データ x を入力すると出力 y が得られるようなモデル関数 y = f (x) を求める

• パターン認識(クラス分類)

– 未知パターン ρ とし,これが属するクラス c を対応付ける写像 f : ρ → c を求める

機械学習 ≒ パターン認識

3

Page 4: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

機械学習のイメージ

• 機械学習の例 : 単回帰分析

– 2つのデータの組(x, y)が n 個与えられている

– これらのデータの散布図を描くと,x, y の間に

単調増加の関係があるように見える

x, y の関係を直線式で表せる?

4x

ix

iy

y

単調増加一方の値が増えると,他方の値も直線的に増える関係

1 1

2 2

i i

n n

x yx yx y

x y

x y

Page 5: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

機械学習のイメージ

• 単回帰分析

– 入力 x と出力 y の関係を,直線式 y = ax + b とし,得られているデータからパラメータ a, b を求める

5

xix

iy

y y = ax + b1 2

1 2

i n

i n

x x x x xy y y y y

, xy xxa S S b y a x= = − ×

xyS

xxS, x y

: x, y の偏差積和

: x の偏差平方和

: x, y の平均値

モデル

データからパラメータを計算

学習

Page 6: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

機械学習とは,入力 x と 出力 y について

が最小となるような f を求めることである

機械学習のイメージ

• 単回帰分析における学習

– パラメータ a, b は残差 ei が最小となるように求める

入力 xi に対して,出力が yi となるようにパラメータを設定する

6

( )i i ie y ax b= − +

x

y

xi

yi

iax b+

yi と,xi を直線式に代入したときの値 axi+b との差が最小となるように直線式の位置を調節する(直線パラメータを計算する)

( ) ( ){ }2 or f f− −∑ ∑y x y x

Page 7: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

機械学習の問題の分類

• 教師あり学習– 訓練データが入力データとそれらに対応する出力データ

で構成される問題

– 線形回帰,ロジスティック回帰,SVM,NNなど

• 教師なし学習– 訓練データが入力データのみで,それらに対応する出力

データが存在しない問題

– k-means法,主成分分析など

• 強化学習– ある与えられた状況下で,報酬を最大にするような適当

な行動を見つける問題

– Q学習など7

Page 8: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

ニューラルネットワーク

• ニューラルネットワーク(Neural Network;NN)

– 生物の神経細胞やそのネットワークの挙動にヒントを得た機械学習システム

• 神経細胞をモデル化したニューロン

1

n

i ii

y f w x h=

= − ∑

1w

・ 複数の入力 xi (i = 1, … , n) に対して,ひとつの値 y を出力

・ 入力 xi に結合重み wi を乗じ,それらの総和が閾値 h より大きいとき 1,小さいとき 0 を y として出力する

マカロック-ピッツの素子モデル

8

2w

3w

1x

2x

3x

y

y

h

1

Page 9: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

ニューラルネットワーク

• ニューロンの挙動の例

– AND回路

• 重み w1 = w2 = 1,閾値 h = 1.5 とする

( )1 2 1.5 y f x x= + −

1

9

1

1x

2x

y

入力 x1 入力 x2 出力

0 0 0 + 0 - 1.5 = -1.5 → 0

0 1 0 + 1 - 1.5 = -0.5 → 0

1 0 1 + 0 - 1.5 = -0.5 → 0

1 1 1 + 1 - 1.5 = 0.5 → 1

Page 10: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

ニューラルネットワーク

• パーセプトロン(多層パーセプトロン)

– 複数のニューロンを複数の階層に並べて構成されたネットワーク

– フィードフォワードネットワーク,順伝搬型ネットワークと呼ぶ

10

1x

1y2x

nx

2y

1ijw2 jqw

入力層 中間層 出力層

1z

2z

mz

11

n

j ij i ji

z f w x h=

= − ∑

21

m

q jq j qj

y f w z v=

= −

中間層の出力

出力層の出力

Page 11: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

ニューラルネットワーク

• パーセプトロンの学習

– 学習サンプル(入力値に対する出力値の組み合せ)から重み(さらに閾値)の値を自動的に決定することができる

– 誤り訂正学習

• 学習サンプルにおける出力値(教師データ)と,それに対応する入力値をネットワークに入力して得られる出力値との誤差をなるべく小さく(できればゼロ)にするよう重み係数を更新する

11

( ) i i iw w r y xα← + −ix iw

yr : 教師データの値α: 学習係数

Page 12: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

ニューラルネットワーク

• 誤差逆伝搬法

– 多層パーセプトロンのおける重み更新法

– 出力の誤差を,出力層から入力層に向かって逆伝搬させながら,全体の重みを調整していく

– 誤差関数 E を,重み wi について最小化する問題⇒ 勾配降下法により求める

12

E

iw0w1woptw

誤差 E と w0 に対する更新量を誤差関数の傾きから決定

w0 と得られた更新量から w1 を得る

誤差の算出と更新量の決定を繰り返し最終的な重み wopt を得る

Page 13: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

ニューラルネットワーク

• 1つの出力を持つ多層パーセプトロンにおける誤差逆伝搬

– 中間層,出力層における各ニューロンの出力関数をシグモイド関数とする

13

1x

y2x

nx

1ijw

2 1jw

入力層 中間層 出力層

1z

2z

mz

( )1

1 = , 1

n

i iui

f u u w xe−

=

=+ ∑

シグモイド関数

u

1( )f u

u

Page 14: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

ニューラルネットワーク

– 中間層-出力層の重みの更新

14

1x

y2x

nx

1ijw

2 1jw

入力層 中間層 出力層

1z

2z

mz

( ) ( )2 1 2 1 2 1j j j

f uE E y r yw y w w

∂∂ ∂ ∂= = − −

∂ ∂ ∂ ∂

重み w2j1 の更新量

( ) ( )

( ) ( ) ( )( )( ) ( )

2 1

1

1

j

j

j

f u ur yu w

r y f u f u z

r y y y z

∂ ∂= − −

∂ ∂

= − − −

= − − −

( ) ( ) ( )( ) ( )2 1

1 , , jj

f u uf u f u z y f uu w

∂ ∂∴ = − = =

∂ ∂

( ) ( )2 1 1j jw r y y y zα∆ = − −実際には学習係数 α を用いて

Page 15: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

ニューラルネットワーク

– 入力層-中間層の重みの更新

15

1x

y2x

nx

1ijw

2 1jw

入力層 中間層 出力層

1z

2z

mz

1 1ij ij

E E y uw y u w∂ ∂ ∂ ∂

=∂ ∂ ∂ ∂

重み w1ij の更新量

( ) ( )1

1ij

ur y y yw∂

= − − −∂

( ) 12 1

1 1

, 1 , j jj j j i

j j ij

z uu w z z xz u w

∂ ∂∂∴ = = − =

∂ ∂ ∂

12 1

1 1 1 1

j j jj

ij j ij j ij

z z uu u ww z w u w

∂ ∂ ∂∂ ∂= =

∂ ∂ ∂ ∂ ∂

( )2 1 1j j j iw z z x= −

( ) ( ) ( )2 11

1 1j j j iij

E r y y y w z z xw∂

= − − − −∂

上位層の微分 上位層の重み

( ) ( ) ( )1 2 11 1ij j j j iw r y y y w z z xα∆ = − − −

Page 16: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

ニューラルネットワーク

• 複数出力を持つ多層パーセプトロンにおける誤差逆伝搬

16

1x

qy

2x

nx

1ijw

入力層 中間層 出力層

1z

2z

mz

1y

2y

2 jqw重み w2jk (中間-出力)の更新量

( ) ( )2 1jk k k k k jw r y y y zα∆ = − −

重み w1ij (入力-中間)の更新量

( ) ( ) ( )1

21

1 1

ij

q

k k k k jk j j ik

w

r y y y w z z xα=

= − − −

Page 17: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

ニューラルネットワーク

• 誤差関数

– クロスエントロピー関数

• 多クラス分類問題の場合に用いられる

• 2クラス分類問題の場合

– 二乗誤差関数

• 回帰問題の場合に用いられる

17

1 1 , 0 , 1

C N

cn cn cn cnc n

E r y r y= =

= − ≤ ≤∑∑

( ) ( ){ }1

ln 1 ln 1N

n n n nn

E r y r y=

= − + − −∑

2

1

N

n nn

E r y=

= −∑

Page 18: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

ニューラルネットワーク

• 活性化関数

– 入力信号を線形または非線形変換する関数

– tanh関数 : -1 から 1 までの値を出力

– ReLU関数(rectified linear unit関数)

• ディープラーニングで用いられる

18

( ) ( ) ( ) ( )( ) ( )

exp exptanh

exp expu u

f u uu u− −

= =+ − ( ) ( )1f u f u′ = −微分は

( ) ( )max , 0f u u= ( ) 1f u′ =微分は u > 0 のとき , それ以外は 0( )f u

0 u

ReLU関数のグラフ

Page 19: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

ニューラルネットワーク

• 尤度関数

– 多層パーセプトロンの出力は,尤度関数から求められる

– 恒等関数

• 回帰問題で用いられる

• 重み付き結合 uk の値をそのまま出力

– ソフトマックス関数

• 多クラスの分類問題で用いられる

19

出力層の各ユニットは 0 から 1 の値を取る( ) ( )

( )1

exp

exp

kk q

kk

up y

u=

=

Page 20: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

ニューラルネットワーク

• 重み更新処理の方法

– バッチ処理

• すべての学習サンプルを用いて更新量を求める

– オンライン学習

• 学習サンプルひとつずつから更新量を求める

– ミニバッチ処理

• 学習サンプルを何個かのグループに分けて,グループごとに更新量を求める

20

( )1

1 ,

tNtt t t

n tn

EE E α+

=

∂= = −

∂∑ w ww :t

nE 更新処理 t 回目におけるサンプル n の誤差

t tn

n GE E

= ∑ :G グループ集合

Page 21: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

畳み込みニューラルネットワーク

• 畳み込みニューラルネットワーク(Convolutional Neural Network ; CNN)

– 人間の視覚野にある受容野をモデル化

– 入力層,畳み込み層,プーリング層,全結合層,出力層から構成

21

入力層畳み込み層

特徴マッププーリング層

畳み込み層

プーリング層

全結合層

全結合層

出力層

複数回繰り返して.深い層を形成

複数回繰り返す

Page 22: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

畳み込みニューラルネットワーク

• 畳み込み層

– 入力と重みフィルタとの内積を計算(畳み込み処理)

– 入力層の画像の局所的な特徴を抽出(特徴マップ)

– 層が深くなるにつれて大域的な特徴が捉えられる

22

5 3 1

2 3 2

1 2 6

4

3

3

-1 -1

-1 -1

-1 -1

畳み込み

入力サイズ 10×10フィルタ

3×3活性化関数

特徴マップ 8×8

40

40

Page 23: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

畳み込みニューラルネットワーク

• プーリング層

– 特徴マップ上の着目領域を設定し,その領域の値から新たな特徴マップを得る(サイズが縮小される)

– 特徴の幾何学的変化(位置ずれなど)を吸収する働き

23

3 2 1 2

2 2 3 4

0 1 2 3

0 0 3 6

3 4

3 6

3 2 1 2

2 2 3 4

0 1 2 3

0 0 3 6

2 2

1 3

最大値プーリング 平均値プーリング

着目領域の最大値を取得 着目領域の平均値を取得

Page 24: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

畳み込みニューラルネットワーク

• 全結合層

– 最終的な特徴マップの各値を1次元に展開,それらをユニットとして,多層パーセプトロンを形成

24

プーリング層畳み込み層

全結合層

Page 25: 画像のパターン認識(2) -機械学習によるパターン認識-imgprolab.sys.fit.ac.jp/~yama/imgproc/lec/imgproc_machinelearn_2018.pdf · – 人間の視覚野にある受容野をモデル化

畳み込みニューラルネットワーク

• 出力層

– 分類問題の場合,尤度関数を用いて各クラス(出力層ユニットの値)の尤度を求める

25

全結合層

出力層

human

cat

dog

car

other

CNNに入力

0

1

0

0

0

5クラスの分類

このような出力結果になるようにCNNを学習させる