• 検索結果がありません。

cifar10-11pct

ドキュメント内 i iv vi (ページ 35-38)

3.2.4 3.2.3 項の負例から正例に含まれない対象地物を除外した教師デー タ

3.3 提案する地物認識手法の CNN モデル

3.3.1 cifar10-11pct

2.2.4項に示した,文献[15]で CIFAR-10の実験に用いられ, 誤認識率が11%であった CNN モデルを地物認識に合わせて変更したモデルであり,以降 cifar10-11pct と呼ぶ.

CIFAR-10のモデルを基にした理由は,CIFAR-10 に含まれる画像のサイズが 32×32ピ クセルであり,今回の地物認識で対象とするセルと近いサイズであるためである.

ネットワーク構造

表3.2 および図3.6 にこのCNNモデルのネットワーク構造を示す.入力する画像サイ ズはこのネットワーク構造を用いる実験の多くの場合 14×14×3であるが,それ以外の サイズを入力する場合は,入力層(表3.2中のdata)のサイズを変更する.その際は,表 3.2のdata以降の層の出力マップサイズとパラメータ数も変わることに注意する.図3.6

において, local と表記している層は畳込み層の一種であり, 通常の畳込み層と違って重み

を共有しない層である.

表 3.3: cifar10-11pctの重みの更新式のパラメータ 層番号 ε α λ

conv1 0.001 0.9 0.00 conv2 0.001 0.9 0.00 local3 0.001 0.9 0.04 local4 0.001 0.9 0.04 fc5 0.001 0.9 0.01 前処理

CNN の学習を行う際に, 元々画素数 16×16 である学習画像からランダムに画素数 14×14 のパッチを切り出して学習に用いている.切り出したパッチに対して50% の確 率で左右反転を行っている.また,学習画像全体の平均画像の画素値を各学習画像の画素 値から引いてCNN に入力している.

テスト画像を認識する際, テスト画像から画素数 14×14 のパッチを 10 枚切り出し て使用し, それらのクラス確率の平均を取っている.ここで, 10枚のパッチとは, 元の 画像の 4 つの角のパッチと中心のパッチ, そして, それらを左右反転したパッチである.

cuda-convnet2 では,標準のテスト時のパッチの切り出しの方法が異なっており, テス

ト画像から画素数14×14のパッチを9枚切り出して使用し,それらのクラス確率の平均 を取っている.ここで,9枚のパッチとは,4つの角のパッチと,それらの4つのパッチ から任意の2つのパッチを選択したときのその中間となる5つのパッチである.

学習規則

本実験における CNNの学習では確率的勾配降下法を用いており, 各層の重みは以下の 更新式で計算される.バイアスについても同様の更新式で計算される.ただし,バイアス の計算では正則化項を含まない.cifar10-11pctにおける更新式の各パラメータについ ては表3.3,3.4に示す.

∆wij(t) =α∆wij(t1)−ϵλw(tij1)−ϵ ∂C

∂wij(t). (3.1)

wij(t) =w(tij1)+ ∆w(t)ij . (3.2)

表 3.4: cifar10-11pctのバイアスの更新式のパラメータ 層番号 ε α

conv1 0.002 0.9 conv2 0.002 0.9 local3 0.002 0.9 local4 0.002 0.9 fc5 0.002 0.9 学習手順

まず,学習用データセットDtrain,検証用データセットDval,評価用データセットDtest の3つのデータセットを用意する.そして,これらを用いて以下のように学習を行う.

1. CNN の重みの初期値として, 平均0, 分散σ2 の正規分布に従う乱数を与える

W0 = (wki,j), wi,jk ∼ N(0, σ2). (3.3)

2. Dtrain を使用して 1 回目にN1 epochs の学習を行う.

W1 = train(W0, ε, Dtrain). (3.4)

3. Dtrain, Dval を使用して 2 回目にN2 epochs の学習を行う.

W2 = train(W1, ε, Dtrain, Dval). (3.5)

4. 学習係数 ε を0.1倍して3 回目に N3 epochs の学習を行う.

W3 = train(W2,0.1ε, Dtrain, Dval). (3.6)

5. 学習係数 ε を更に0.1 倍して4 回目に N4 epochs の学習を行う.

W4 = train(W3,0.01ε, Dtrain, Dval). (3.7) 6. W4 の重みの CNN の認識精度を Dtest を用いてテストをする.

ここで, W0, ..., W4 はそれぞれ CNN 全体の重みを表し, 関数 train は誤差逆伝播法によ

る学習を表す.また, “epoch”は学習における重みの更新回数のことである.なお, CNN

1st layer

入力 𝑥 : 𝟏𝟒 × 𝟏𝟒

の画像

softmax:2

2nd layer 4thlayer

出力 𝑦 : クラス

確率 平均との

差分 𝑥 − 𝜇

conv3 pool3 fc4

conv1 norm1pool1 conv2 norm2pool2

3rd layer

図 3.7: cifar10-fullのネットワーク構造.conv は畳込み層,pool はプーリング層,norm は正規化層を表し,fc は全結合層を表す.

の学習はこれらをすべて行ったうえで 1回の学習とする.具体的なepoch数は実験ごと に設定し,N1 −N2 −N3 −N4 と表す.N1 = 500, N2 = 250, N3 = 10, N4 = 10の場 合は5002501010と表記する.また,実験によっては,1 回目の学習を行わず,

W1 =W0として,Dvalを用いずにDtrainだけを用いて学習を行う.その際のepoch数は,

N2−N3−N4 と表す.一般的に DvalDtrain を用いた学習の終了判定のみに用いるが,

cifar10-11pctの学習では cuda-convnet (付録A.1.1項) の学習方法に倣って Dval も 学習に用いている.

ドキュメント内 i iv vi (ページ 35-38)