1前回までのあらすじ
Neural Network Console Challengeに参加し、PIXTAより提供された写真にうつる人物像について、その部位ごとに分類というテーマを選択。教師データ作成のため3000枚の分類を実施し、Neural Network Consoleを使った学習を開始。CNN+ImageAugmentationでAccuracy 0.55が超えるものが出たので、このまま構造自動探索機能を使って放置したのが前回までのあらすじ。
2構造自動探索機能の結果を見てみる。
前回までの作業は夜に行い、寝る前に自動探索を開始し、翌日帰宅後確認で約20時間の探索。EPOCHは200で実施し、30ほどのネットワークが出来ていた。その中でErrorが最も少ないネットワークで結果を見てみる。
3改善方法を考える その1
推論を行い、まずはConfusion Matrixを見てみる。Accuracyは0.61でそこそこ改善。
まず気がつくのが、カテゴリごとの総数が大きくばらついていること。設定した分類では複数人がうつっているものは部位による判定の判断外としたが、3000枚の写真を7つに分類したが、複数人が映り込むものは約2000枚、3分の2がこの分類になっている。一方で顔がうつっていないという分類の写真は数が少なく、100枚程度しかない。分類ごとの正解率も枚数の多い複数人は高く、枚数の少ないものは正解率も低い。枚数に大きなばらつきがあると学習時に偏りが出てしまうのでは?などと思う。
次に不正解となったものの特徴を見てみると、これは分類が厳しいだろうなと思えるものは意外に少なく、教師データの分類間違いが多い。3000枚を三日に分けて行うと判定基準が曖昧になってくること、操作ミスをしてしまうことで間違いが出ているようだ。
二つの気づきより、次の方針で教師データを調整することにした。まずは分類間の偏りをなくすために複数人が映り込んでいるものを減らす。他の分類を増やす方法もあるのだが、この時点では気力がわかず楽な方に流れた。次は教師データの間違いの是正。同じ分類するのなら間違いを減らす方が効果的と思う節もあった。
4改善を実施する その1
教師データを再作成し同じネットワークで学習~推論を行う。Accuracyは0.63でわずかに改善。この日はここで時間切れとなり、自動探索機能を仕込んで就寝。こののち数日間は分類間違いの修正、自動探索機能を仕込んで就寝を繰り返した。
5締め切りが延びた
そうこうしているうちに締め切りも間近となりとりまとめの資料を作りかけていたところに、締め切りが延びたとのメールが事務局より入る。3月27日締め切りが、3月31日締め切りになったのだ。ちょっとやる気が出てきたので、枚数の少ない分類の追加作業を行うことにした。これまでランダムに行っていた分類作業を、これまでの分類で少ない写真を選び追加する方法に切り替えた。本来なら締め切りの過ぎていた3月28,29日の両日で2000枚を追加分類した。先日に除外した複数人うつりこむ画像も再度教師データとして使用して、合計5000枚の教師データが完成した。ネットワークも数日間の自動探索機能の動作でもともとのCNNとは似ても似つかぬ魔改造されたネットワークが出来てきた。
6締め切り当日
提出用のネットワークではAccuracyは0.725までもってこれた。
とりまとめ資料を完成させ、19時頃に事務局に提出し完了。晩ご飯に行く前、少し気になってNeural Network Consoleにサンプルとして含まれるResNet-50を使ってみようと思い立つ。画像サイズとImageAugmentationの部分を修正して動かしてみる。食事から自室に戻る。雑用を行って寝るかと、先ほどのResNet-50を忘れていることに気がついて、推論をしてみる。はたしてAccuracyは魔改造ネットワークを軽々と超える0.74である。しかも、ImageAugmentationの設定を間違えており、これでまだ少し上がるはずと気づき、修正の上再度学習させる。現在23時。締め切りは23時59分、学習の残り時間は50分。間に合うのか?資料を修正し、待ち構え、学習終了は予定通り23時50分、推論を行い、Accuracyは0.758でさらに改善、結果を張り替え提出。23時57分のことであった。
7反省会
提出後ExecutorのNumber of evaluationsの設定が16回Lastになっていることに気づき、後2,3%は稼げたのではとがっかりする。