chainerでサクッとアイドル画像分類


勉強がてらトミーさんのブログを見ながら画像分類を試しました。
最適化関数とファインチューニングで一番精度のいいのを探しました。

分類する画像は秋元真夏、白石麻衣、西野七瀬、生田絵梨花、の画像です。
まずは名前の勉強から。顔と名前が一致するようにする。

ソース
https://github.com/miyamotok0105/imagenet_nogizaka

#秋元真夏
<img width="354" alt="スクリーンショット 2017-06-09 19.41.41.png" src="https://qiita-image-store.s3.amazonaws.com/0/64334/635c2696-0e13-13b7-c373-16db96313c34.png">

#白石麻衣
![mig.jpeg](https://qiita-image-store.s3.amazonaws.com/0/64334/5dfe9c43-59f6-8a2b-bd55-7891b4e62117.jpeg)

#西野七瀬
<img width="363" alt="スクリーンショット 2017-06-09 19.44.50.png" src="https://qiita-image-store.s3.amazonaws.com/0/64334/27a1595e-df91-a4b2-31d2-9025620ce71a.png">

#生田絵梨花
<img width="245" alt="スクリーンショット 2017-06-09 19.47.15.png" src="https://qiita-image-store.s3.amazonaws.com/0/64334/d3bd10f1-70b8-e897-7bf9-f4d3ec2ab8c8.png">


#データセットを取ってくる

https://www.dropbox.com/sh/3i3r68f63nzis9k/AAAeAI1W3FeyXWZWGe2PcRTQa?dl=0
参考：http://toxweblog.toxbe.com/2016/10/01/chainer-%E3%83%A1%E3%83%A2%EF%BC%88%E3%81%9D%E3%81%AE%EF%BC%93%EF%BC%89%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%A7%E4%B9%83%E6%9C%A8%E5%9D%82%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%81%AE%E9%A1%94/


#コーディングについて
これまでの分類のコードを使ってサクッと学習して推定。

chainerのexampleに推定処理を追加する「imagenet編」
http://qiita.com/miyamotok0105/items/d7cbf32667d831153cd2
chainerのexampleをcaffeモデルでファインチューニング「imagenet編」
http://qiita.com/miyamotok0105/private/5e31dc2d960dba71f85c


#学習結果
参考までにグラフを添付。
##normal or alexnet fine tunning
<img width="702" alt="スクリーンショット 2017-06-09 21.59.52.png" src="https://qiita-image-store.s3.amazonaws.com/0/64334/a17b938f-4c49-13e0-1a1d-e34ea7738dfa.png">

##normal or alexnet fine tunning　平均画像引いたバージョン
<img width="726" alt="スクリーンショット 2017-06-09 22.05.19.png" src="https://qiita-image-store.s3.amazonaws.com/0/64334/04f8a799-8a58-87fa-299f-d882b9b13da1.png">

##normal or alexnet fine tunning：SGD
<img width="713" alt="スクリーンショット 2017-06-09 22.09.23.png" src="https://qiita-image-store.s3.amazonaws.com/0/64334/12e472cf-7f3a-41e4-9cdc-a033aafd034a.png">

##normal or alexnet fine tunning：MomentumSGD
<img width="714" alt="スクリーンショット 2017-06-09 22.11.50.png" src="https://qiita-image-store.s3.amazonaws.com/0/64334/7f5d585d-a603-a0aa-8514-8788f7bda134.png">


http://proceedings.mlr.press/v28/sutskever13.pdf

##normal or alexnet fine tunning：AdaGrad
<img width="727" alt="スクリーンショット 2017-06-09 22.15.17.png" src="https://qiita-image-store.s3.amazonaws.com/0/64334/4bd43420-d2b6-b13e-b106-79df6a08d461.png">

##normal or alexnet fine tunning：RMSprop
<img width="721" alt="スクリーンショット 2017-06-09 22.19.04.png" src="https://qiita-image-store.s3.amazonaws.com/0/64334/12dc3198-df79-3743-234a-f0065d1afb80.png">


#最適化アルゴリズム
validation accuracyで８割程うまくいってるアルゴリズムが何個かあります。

<img width="783" alt="スクリーンショット 2017-06-09 22.29.49.png" src="https://qiita-image-store.s3.amazonaws.com/0/64334/d7d45d76-9c4d-bc48-e95d-be49fe0a99e2.png">
<img width="798" alt="スクリーンショット 2017-06-09 22.29.57.png" src="https://qiita-image-store.s3.amazonaws.com/0/64334/484cc129-42f5-fa8b-0605-95723ec5cfcc.png">

#精度が出ない場合
今回は8割の精度が出ているが、全く精度が出ない場合もある。
例えば顔の感情分類は試してみていただけるとわかるのですが、精度が出にくいです。

普通に学習してもダメなのでLBPで画像を加工してから学習すると5割を超えたという報告。
色々やっても５割の精度なんです。
http://qiita.com/miyamotok0105/private/8d348996b38c9fe5c9f9

実際やってみた結果
<img width="950" alt="スクリーンショット 2017-06-10 13.06.51.png" src="https://qiita-image-store.s3.amazonaws.com/0/64334/57179bf5-ed4d-1008-9700-356c2e5642a8.png">


<img width="1017" alt="スクリーンショット 2017-06-10 13.06.58.png" src="https://qiita-image-store.s3.amazonaws.com/0/64334/9653197b-8e77-91fc-cb17-1a96710fa680.png">

学習する画像をエッジ検出後データに変更したが全然良くない

![loss.png](https://qiita-image-store.s3.amazonaws.com/0/64334/3fd98868-c017-7855-c6c3-bbc7cd2f377a.png)
![accuracy.png](https://qiita-image-store.s3.amazonaws.com/0/64334/979d3443-d219-4839-cf1e-6a1070dd153e.png)


#参考
cnn
http://toxweblog.toxbe.com/2016/10/01/chainer-%E3%83%A1%E3%83%A2%EF%BC%88%E3%81%9D%E3%81%AE%EF%BC%93%EF%BC%89%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%81%A7%E4%B9%83%E6%9C%A8%E5%9D%82%E3%83%A1%E3%83%B3%E3%83%90%E3%83%BC%E3%81%AE%E9%A1%94/
fine-tuning
http://toxweblog.toxbe.com/2016/12/22/chainer%E3%81%A7fine-tuning/
http://seiya-kumada.blogspot.jp/2016/02/chainer.html
network
http://www.topbots.com/a-brief-history-of-neural-network-architectures/?utm_medium=article&utm_source=facebook&utm_campaign=history-nn-architecture&utm_content=groups