Neural Network Consoleで最強の画像認識モデルのResNetを使う方法

こんにちはー。管理人のピヨ猫でーす。

SONY Neural Network Consoleでディープラーニングの画像認識にチャレンジしているんだけど、精度が全然でないんだよねーー。
何とかならないかなー。

疑問

画像認識には正解率95%以上を誇るResNetというモデルがあるよ。SONY Neural Network Consoleでもテンプレートが用意されているよ。SONY Neural Network ConsoleのResNetのテンプレートを使って画像認識を行う方法を解説するね。

f:id:shibayu2002:20190310112521j:plain

 

1.ResNet(Residual Network)とは

ResNet(Residual Network)とは

ResNetは、Microsoft Research(現Facebook AI Research)のKaiming He氏が2015年に考案したニューラルネットワークのモデルである。
画像認識の分野でトップを争うImageNetコンペティションにおいて、2014年に驚異の正解率96.43%(エラー率3.57%)で1位を獲得しています。
https://arxiv.org/abs/1409.1556

画像認識のモデルは沢山ありますが、現在、精度の面ではResNetが最強です。
https://syuuai.hatenablog.com/entry/2019/04/20/010415?_ga=2.190165160.2072421623.1555594467-372201809.1555422389

ResNet(Residual Network)と従来の画像認識モデルの違い

ResNet(Residual Network)は従来のディープラーニングの画像認識の手法であるCNNの問題点を解消し、画像認識の精度を飛躍的に上げたモデルです。
具体的には、残差関数を用いることで勾配消失問題を改善し、隠れ層を増やせる様にすることで画像認識の精度を上げています。

CNN(Convolutional Neural Network)とは何か?

CNN(Convolutional Neural Network)は画像認識に用いられるディープラーニングのモデルで、畳み込み層を用いることで高い画像精度の画像認識を行います。

CNNモデルのイメージ

CNN

CNNモデルを分かり易く喩えると『間違い探し』

CNNの仕組みを難しい専門用語を使わずに解説すると『全体を隅々まで見渡しつつ、細かいポイントを観察して画像を見分ける仕組み』です。
例えば間違い探しを考えてみます。
CNNの分かり易いたとえ

どうでしたか?間違いは見つかりましたか?間違いを見つける際に、全体の隅々までを細かく見て、更に細かく見ませんでしたか?
CNNの分かり易いたとえ
これがCNNです。CNNは全体を隅々までズームしてズームして特長を見つけます。

CNNの仕組みの詳細

CNNの詳しい仕組みについてはこちらの記事を参照ください。
https://postd.cc/how-do-convolutional-neural-networks-work/

CNN(Convolutional Neural Network)の問題点

CNNの問題点は簡単に言うと層を増やせないことです。
層を増やせないということは、前述の間違い探しの喩えで言うと、数段階しかズームが出来ない(特徴抽出が出来ない)ので間違えを見つけることが出来ません。
CNNの分かり易いたとえ

層を増やせない原因は、ディープラーニングの学習の仕組みから生じる勾配消失問題にあります。
勾配消失問題について詳しくは以下の記事を参照ください。
http://nnadl-ja.github.io/nnadl_site_ja/chap5.html

ResNet(Residual Network)の仕組み

ResNet(Residual Network)は簡単に言うと、CNNより層を深く出来ます。
そのため、画像の特長を細かく見ることが出来るので、画像認識の精度が向上します。

何故、層を深く出来るかというと、Shortcut Connectionという残差ブロックをCNNに加えることで勾配消失問題を防いでいるからです。
残差ブロックの詳しい仕組みは以下の記事を参照ください。
https://deepage.net/deep_learning/2016/11/30/resnet.html#residual-networkresnet%E3%81%A8%E3%81%AF

2.SONY Neural Network Consoleとは

SONY Neural Network Consoleは、SONY製の機械学習オープンソースNNabla(Neural Network Libraries)の統合開発環境です。機械学習の開発環境としてはGoogleのTensorFlowが有名どころですが、NNabla/NNCはTnesorFlowと比べ開発環境が視覚的で初心者には分かり易いところに一日の長があります。2017年11月にβ版が公開され、2018年5月に正式サービス化されました。
詳しくはこちらの記事を参照ください。
https://syuuai.hatenablog.com/entry/2018/12/16/104743

3.SONY Neural Network ConsoleでResNetを行う方法

SONY Neural Network Consoleには多数のディープラーニングモデルのテンプレートが用意されており、用意されているモデルの中にResNetもあります。
SONY Neural Network Consoleに用意されているテンプレートのResNetを使うことで、用意にResNetによる画像認識が可能です。これからやり方を解説します。

ResNetのテンプレートモデルを検索する

① PROJECTの検索フィルタに「resnet」と入力します

NNCのResNet

② 「ResNet」のテンプレートプロジェクトが検索されます

NNCのResNet

ResNetのテンプレートモデルを選択しテンプレートのプロジェクトを開く

ResNetのテンプレートプロジェクトが開きます。
御覧の通り、ものすごく深い階層のニューラルネットワークです。通常のCNNにShortcut Connectionが加えられています。
NNCのResNet

名前を変えて保存する

テンプレートは変えない様に、別名でプロジェクトを保存します。
NNCのResNet

データセットを設定する

学習するデータセットを設定します。学習用の画像データの作成とデータセットの登録方法は以下の記事を参照ください。
https://syuuai.hatenablog.com/entry/2019/03/23/084458

入力層のサイズを画像サイズに合わせて変更する

入力層のサイズを画像サイズに合わせて変更します。
注意点としてResNetのテンプレートはネットワークが1つでは無くオプティマイザ用などのため4つネットワークが用意されていますので、それぞれのネットワークのINPUT層のサイズを変更する必要があります。
NNCのResNet

(補足)ImageAugmentationを削除しても良い

テンプレートでは入力層の最初でImageAugmentationを実施しています。これは画像が少ない場合のためのデータの水増し処理です。画像データが十分であれば実施する必要は無いので、不要であれば削除します。

出来上がり

出来上がりはこんな感じです。後は学習を実行するだけです。
NNCのResNet

4.SONY Neural Network ConsoleのResNetを使った感想

学習の精度

評価中です(-_-;)
何故なら学習が終わらないから・・・。結果が出たらご報告します。
ResNetは画像認識精度が高いことで非常に有名なので良い結果を期待しています。

ResNetの注意点

ResNetは精度が高い反面、非常に遅いです。
GPUが無いととても時間がかかります。
私はGPUを入れていないので現在進行形で全然終わりません・・・(;^_^A
他にも試したいこと沢山あるのに困ったな・・・。1エポックで1時間以上ってなんだ( ;∀;)
そろそろGPUを買うことを考えるか・・・。
NNCのResNet

お世話になったサイト

この記事を書くのに以下のサイトの記事を参考にしました。
勉強になりました。ありがとうございましたー。
https://deepage.net/deep_learning/2016/11/30/resnet.html#residual-networkresnet%E3%81%A8%E3%81%AF
http://cedro3.com/ai/mini-resnet/

【送料無料】 ソニー開発のNeural Network Console入門 増補改訂・クラウド対応版--数式なし、コーディングなしのディープラーニング / 足立悠 【本】

価格:2,592円
(2019/6/26 22:40時点)
感想(0件)

それでは結果が出るのをお楽しいにー。

f:id:shibayu2002:20190310112521j:plain


広告




スポンサーリンク
広告




広告




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
広告