機械学習による 識別問題 - ryukoku universityiida/lecture/gr/gr17/...識別問題 •...

23
機械学習による 識別問題 2017 年度 卒業論⽂ T140013 岡林 遥平 指導教員 飯⽥ 晋司

Upload: others

Post on 15-Jan-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

機械学習による識別問題

2017 年度 卒業論⽂

T140013 岡林 遥平指導教員 飯⽥ 晋司

⽬次

1. はじめに

2.準備 3. 識別問題における基本的な⼿法

3.1 ニューラルネットワーク 3.2 サポートベクトルマシン 3.3 アンサンブル学習

4. 交通流モデルに対するニューラルネットワーク 5. おわりに

識別問題• 識別問題とはデータをいくつかのカテゴリに分類するタスクまたは、

機械学習によって⾃動化したい作業が、ある規則にのっとって対象物が「何であるか」を判断する場合のタスクのこと

• 例1. ⼿書き⽂字認識2. スパムメールの判定

• 識別問題は教師あり学習で取り扱うタスクの1つ

• さらに識別問題は、分類先が2つである「2クラス問題」分類先が3つ以上の「多クラス問題」に分けられる

• 今回紹介するNNの実験例は2クラス問題であるので、NNのの説明は2クラス問題についてのみ説明する

教師あり学習の問題

2クラス問題

多クラス問題

識別問題回帰問題

識別問題を解くときの基本的な⼿順

• 与えられたデータ をもとに、未知のデータのクラスを予測する式 ; を作る

識別器を構築

誤差関数を定義

• 識別器 ; がタスクをうまくこなせているかどうかを数値化する誤差関数 を⽴てる

学習

• 誤差関数 を最⼩にするようにパラメータ の最適化を⾏う

• テストデータを⽤いて識別率の認識率(=汎化性能)を求め構築した識別率を評価する

評価

識別器の評価⽅法

• 構築した識別器のタスクへの性能を評価する⽅法に汎化性能がある

• 汎化性能は学習で使ったデータを⽤いず、テスト⽤にとっておいたデータで測られる

汎化性能∶ のうち正解したデータ数∶テストデータ数

未知のデータを ; に代⼊しクラス識別を⾏う

学習終了後…

ニューラルネットワーク

( )( ; )

Tuz f uy z

b

x

x

w

w ( 1| )P t x表しているとみなす事後確率 を

[ ],n n n N

bf

t

w

x

: 重みパラメータ

: バイアスパラメータ

: 活性化関数(2クラス問題の場合はsigmoid関数)

: データ D次元ベクトル , ∈ 0, 1

が0.5より⼤きいかどうかで識別

( 1| )P t x識別規則

学習すべきパラメータ

多層パーセプトロン(Multi Layer Perceptron: MLP)

先ほどの構造で⼊⼒層と出⼒層の間に新たに層(隠れ層)を追加 [ ]

,n n n Nt

x : データセット

( 1) (( 1) ( )

( )

1

1 ( 1)

)l l

l l

l l

f

u z

z u

W b1~ 1について順に以下の式を実⾏(順伝播)

( ); Ly x w z

最終的な出⼒は以下で求められる

とする

( 1| )P t x表しているとみなす

事後確率 を

• 各層の活性化関数は様々な関数が採⽤される。しかし、出⼒層の活性化関数は2クラス問題の場合sigmoid関数が使われるのが⼀般的。

誤差逆伝播法

• ⾼速に誤差関数 の勾配を求めるアルゴリズム

1( ) log ( ; ) (1 ) log 1 ( ; )

N

n n n nn

E t y t y

w x w x w

• 2クラス問題の場合、誤差関数は以下の式であたえられる

• パラメータは最急降下法によって最適化され、パラメータの更新式は以下のとおり

• 誤差逆伝播法を⽤いれば、勾配 は以下の式で求められる

ただし、

NNの実験の⽬的• 現在、深層学習が⾮常に注⽬されている

• 深層学習の基本であるニューラルネットワークには特徴抽出と呼ばれる特性がある

• 近年特徴抽出を利⽤した、相転移の点移転やオーダーパラメータを求める研究が数多くされている

• 本実験は酒井で扱われたASEPの交通流モデルにニューラルネットワークを適⽤し、相転移が起こる点(=転移点)を予測することができるのか?できるのであればどのような特徴を抽出し、何を識別の判断材料としているのかを求める実験である

交通流モデル

• : ⾞を表す

• ∶ホッピング確率

時空図

データ の説明

• データ は 0.75で固定し、を変化させて⽣成した時空図

データ 20 20

• ⾃由相か最⼤流量相かの2クラス問題

ここが予測したい転移点

実験に⽤いたニューラルネットワークの構造

隠れ層は1層のみに固定、ユニット数は1~3の3パターンで実験

の活性化関数はReLU, は sigmoid関数を使⽤

先ほどの時空図データ

( の画像データ)

最⼤流量相に属する確率

0 ∈ 最⼤流量相 1 ∈ ⾃由相

での実験結果

• ごとの事後確率の平均の推移を図⽰• ⻘線がテストデータが⾃由相に属する確率を、⾚線が最⼤流量相に属する確率を表す• テストデータは 0.75, 0.50 でサンプリングしたもの• 学習データ : 30000枚, テストデータ : 9000枚• ∈ , ∈ 0, 1

転移点とホッピング確率 の関係

• 転移点はホッピング確率 から以下の式で求められる

• つまり、 を変えることで⾃由に転移点 を指定できる

• ここで、転移点 を変化させて⽣成したデータをテストデータとし、学習済みのモデルに対して、転移点の変化についていけるかを検証

0.7での実験結果

0.3での実験結果

密度 と相の関係• 密度 と相には以下の密接な関係がある

. ⟹⾃由相 . ⟹最⼤流量相

0.5 ⟹ 渋滞相

• 密度は次の式で求めることができる

⾞が⼊っているセルの数

総セル数

• NNは密度 をみて⾃由相なのか最⼤流量相なのかを識別しているのではないか?

NNは相転移をどうやって識別しているか?

まず、密度 とユニットへの⼊⼒値 との関係を調べてみる

密度 ごとにユニットへの⼊⼒値 を調べる

• プロットしたデータは学習データ 3万枚のなかからランダムに1000枚取り出したもの

• ユニット数1の場合が最も との相関がある

このニューラルネットワークは の値によって出⼒値 1| を変化させている可能性がある!

• ユニット数1の相関関数を最⼩⼆乗法で求めてみる

ユニット数1の と⼊⼒値 との回帰直線を最⼩⼆乗法により求める

3.25820855

3.25820855

はユニットへの⼊⼒値であるので、最終的な出⼒ の値は以下の式で決まる

つまり、出⼒ は の関数である

先ほどの と の関係を図⽰

ニューラルネットワークが密度 の値でデータ が⾃由相か最⼤流量相なのかを判断していることが分かる

最⼤流量相に属する確率

結論

• 今回の研究での識別問題はデータ から を求めることで、相転移を判定することができる

• この密度 という概念をNNは学習を通じて獲得した

• ニューラルネットワークが確かに識別に有効な特徴量を抽出していることが分かった

おわりに• 今回の研究では単にNNを⽤いたためデータ のピクセルの位置情報という画像としての最⼤の特徴を捨ててしまっている

• 隠れ素⼦1つの場合よりもが3つの場合がより正確に転移点を予測することができている

• セル数 ,データ数を増やすことで、識別に有効な情報をより多くする

CNNだと画像の形を保ったまま学習、識別ができる

以外の特徴量を発⾒している可能性がある

TensorFlow や Keras, Chainer , PyTorchなどのフレームワークやGPGPUを使えばより⾼速に学習を⾏うことができる

ご清聴ありがとうございました