SONYのNeural Network Consoleで画像分類
Sony&レッジのAI開発コンテスト「Neural Network Console Challenge」
SONYのNeural Network Consoleを用いて、PIXTA提供の10,000枚の写真を素材にした画像分類をするコンテストです。
Neural Network Console Challenge 公式ページ
https://nnc-challenge.com/
画像分類のテーマ
リンク先4番目の「上記以外のチャレンジテーマを自由に設定しての応募も可」とあった為、
明治の文豪、森鴎外の短編小説「杯」からキーワードを拾って画像分類テーマを決めました。
小説のストーリーは、7人の少女が持ち寄った杯で泉の水を飲む良く解らない話です。
比喩表現が散りばめられいた抽象的な短編小説です。
著作権が切れているため、青空文庫で読めます。
青空文庫「杯」
https://www.aozora.gr.jp/cards/000129/files/688_23234.html
この小説には、
泉を繞めぐる木々の梢には、今まで立ち籠こめていた靄が、まだちぎれちぎれになって残っている。
のように、情景描写が彩り豊かに描かれています。
小説の本編と小説に寄せられた感想やレビューを元に形態素解析を行いました。
これらのキーワードに当てはまりそうなPIXTAの写真素材を探し、画像の分類項目を選定します。
###10種類の画像分類
#####光 Y0
タイプ:現象
自然光やライトなどの人工光が差し込んでいる画像
#####梢(こずえ)Y2
タイプ:自然
重なり合った木の画像
#####靄(もや)Y3
タイプ:自然
靄がかかった画像
#####藍染 Y4
タイプ:色
青色っぽい画像
#####紅の唇 Y7
タイプ:人
レッド系の口紅をつけた人の画像
#####清冽 Y8
タイプ:形容詞
本来の意味は、澄んで冷たいこと
言葉の雰囲気に近い印象を受ける画像
#####音 Y9
タイプ:現象
音が聞こえてきそうな賑やかな画像
#####杯 Y1
タイプ:抽象
この短編小説のイメージを具体化した画像
(正解(感じ方)は人によって違う)
###データセットの用意
工程1
ベースになる写真素材を学習用と評価用に分けます。
工程2
画像の縦横比が統一されていない為、トリミングで正方形に加工します。
トリミング位置の変更、左右反転、明度変更等の処理等で、各分類ごとに学習用の画像を2,000枚まで増やします。
工程3
解像度を128ピクセルにリサイズ
10個のフォルダーに分けた画像を機械学習出来るようにする為には、下記のようなNNC独自のフォーマットで記述されたCSVファイルが必要です。
x:image y:label
./training/5/0.png 5
./training/0/1.png 0
./training/4/2.png 4
このファイルは「データセットアップロードツール」を用いることで自動で生成されます。
##Neural Network Consoleで学習
10のカテゴリーに分類される多値分類なので、活性化関数として、複数値のベクトルから合計が1.0になる確率分布にするソフトマックス、学習指標として交差エントロピーを使って計算します。
最低限必要な設定箇所は、
Inputレイヤーをフルカラー(RGB)の128x128サイズなので、3,128,128に
Affineレイヤーを分類数である10にのみです。
###学習開始
CPUで学習
4時間経過・・・・・
収束する気配が無いので、中断
GPUで学習
選択したGPUは、Tesla K80 GBU x1 ですが、この速度の違いたるや
###学習結果の検証
Accuracy(正答率):0.9785
Avg.Precision:0.9786
Avg.Recall:0.9783
Avg.F-Measures:0.9784
Training 0.001333
Validation 0.148384
Best Validation 0.092844@30
CostMultiplyAdd 20,430,904
以上
* 学習用データ提供:PIXTA *