Neural Network Consoleで学習モデルを自動最適化する方法|ハイパーパラメータ調整の自動化

Neural Network Consoleで学習モデルを自動最適化する方法|ハイパーパラメータ調整の自動化

SONYのNeural Network Console

こんにちは。

AI coordinatorの清水秀樹です。

以前から興味があったSONY製のNeural Network Consoleを使ってみたので、その内容の紹介です。

今回使おうと思ったのはニューラルネットワークの構築にGUIを使った分かりやすい設計の魅力もそうだけど、NVIDIA製のGPUを簡単にセットアップできそうだったからです。

自分でCUDAを使ってのセットアップは難易度が高そうだったので、いままでGPUを使ったDeepLearningにチャレンジしてきませんでしたが、さすがにCPUでのDeepLearningが辛くなってきたので、今回導入に踏み切りました。

 

しかも自動で学習モデルを最適化する機能が搭載されているとのこと。

これはすばらしい。

いつもどんな学習モデルが良いのか分からないまま手探りでCPUで実行しているため、非常に非効率でした。

 

また、GUIのおかげで誰でも簡単にDeepLearningを始められるツールにもなっています。

導入手順もあわせて紹介しますので、興味がある方や、気軽にDeepLearningを始めたい方は是非チャレンジしてみてください。

 

環境のセットアップ方法

Neural Network ConsoleはWindowsにしか対応していません。

mac osXには対応していないのが残念です。

筆者もこれが理由で中々導入に踏み切れませんでした。

 

でも学習モデルの最適化やGPUを手軽に使用できる機能は魅力的ですよね。

ということでNeural Network Consoleをインストールします。

 

インストール手順は簡単です。

公式サイトからメールアドレスを入力すると、ダウンロードリンク付きのメールが送られてきますので、そこからEXEファイルをダウンロードして起動する形になります。

 

以下、公式サイトのトップページです。

Neural Network Consoleで学習モデルを自動最適化す 画像1

 

Windowsアプリではじめるをクリックすると、以下のページまでスクロールされます。

このページでメールアドレスを入力して、上記に同意して送信をクリックします。

Neural Network Consoleで学習モデルを自動最適化す 画像2

 

しばらくするとメールが届きます。

Neural Network Consoleで学習モデルを自動最適化す 画像3

英語と日本語混ざったメールが届きます。

ダウンロードリンクをクリックして、ファイルをダウンロードしましょう。

 

メール内には以下の注意書きもあります。

Neural Network Consoleで学習モデルを自動最適化す 画像4

注意書き通り、Visual Studio 2015 のパッケージインストールと、NVIDIA製GPUのグラフィックドライバーの最新化を実施しておきます。

 

準備が整ったら、neural_network_console_100.zipファイルを解凍してNeural Network Consoleを起動しましょう。

ちなみに解凍には結構時間がかかります。

筆者の環境で20分ぐらいかかりました。

気長に待ちましょう。

 

解凍が終わったら、neural_network_console.exeファイルを起動します。

起動したら早速GPUを使えるようにセットアップしましょう。

とはいっても何も難しことはありません。

Setup画面のENGINEからラジオボタンでGPUを選択するだけです。

Neural Network Consoleで学習モデルを自動最適化す 画像5

Applyを押下して、はい出来上がり。

 

Setupが終わったらチュートリアルを試してみましょう。

解凍したフォルダ内のマニュアル通りに進めていけば問題ありません。

Neural Network Consoleで学習モデルを自動最適化す 画像6

初回はサンプルデータセットのダウンロードに数分時間がかかります。

気長に待ちましょう。

ダウンロードが完了すると、以下の画面になります。

Neural Network Consoleで学習モデルを自動最適化す 画像7

この画面はではMNIST数字の4と9を学習させるモデルのようです。

 

左上にあるDATASETをクリックするとデータの中身が確認できます。

Neural Network Consoleで学習モデルを自動最適化す 画像8

データの中身が確認できたら、トレーニングを実行してみましょう。

左上にあるTrainingボタンを押下すると学習が始まります。

Neural Network Consoleで学習モデルを自動最適化す 画像9

 

さすがGPUです。

epoch = 100が一瞬で完了しました。

学習が完了するとグラフで学習結果を確認できます。

Neural Network Consoleで学習モデルを自動最適化す 画像10

さすがSONY。

簡単に使うことができました。

 

学習評価を知るには左上の矢印ボタンを押下します。

Neural Network Consoleで学習モデルを自動最適化す 画像11

Neural Network Consoleで学習モデルを自動最適化す 画像12

Accuracyで評価を知ることができます。

この学習結果では95%の精度を出すことができたようです。

 

こんな感じでチュートリアル通りに実行していけば、使い方のイメージが付きやすいかと思います。

 

独自画像データで学習

それでは使い方が分かったところで、独自画像データの学習にチャレンジしたいと思います。

注意点として、Neural Network Consoleに画像を読み込ます際は、予め画像サイズをそろえておく必要があるところです。

 

まあ、順を追って手順を説明します。

 

画像データの準備

何はともあれ、画像がないと始まりません。

頑張って画像を集めましょう。

そして集めたファイルを一定のサイズにリサイズします。

窓の杜に「縮小専用」というフリーツールがあるので、今回はこれを使用します。

 

Neural Network Consoleで学習モデルを自動最適化す 画像13

画像サイズは、50X50でやります。

この辺はお好みで良いと思います。

サイズが大きくなれば学習精度の高いモデルが作成できると思いますが、学習時間もそれなりにかかります。

 

縮小専用画面の右下に「画像ファイルをここにドラッグ&ドロップしてください」とあるので、学習させたい画像データ全てをドラッグ&ドロップしましょう。

 

リサイズ後の画像ファイルは「Resized」という新しいフォルダ内に作成されています。

 

こんな感じで学習データを準備します。

 

Neural Network Consoleを使って画像データをCSV化

画像データが準備できたら、画像をNeural Network Consoleに読み込ませて、CSV化します。

例として、ここでは男性の画像と女性の画像を集めたデータをCSV化します。

フォルダ構成は以下のようにしています。

input

|——man(リサイズ後の男性の画像)

|——woman(リサイズ後の女性の画像)

output(空フォルダ)

フォルダの準備はこれで完了です

 

続いてNeural Network Consoleのホームに戻り、左メニューのDATASETを選択し、Create Datasetを選択します。

Neural Network Consoleで学習モデルを自動最適化す 画像14

するとポップアップが表示されます。

Neural Network Consoleで学習モデルを自動最適化す 画像15

Source Dir:には先ほど作成したinputフォルダを指定します。

Output Dir:には先ほど作成した空のoutputフォルダを指定します。

Output Color Ch:はカラー画像を学習させるため3(RGB)を選択します。

Output Width及びOutput Heightにはリサイズした画像サイズをしてします。

今回は50x50にしているので、それぞれ50を指定します。

最後にRatio(%)では、画像データの中からトレーニング用データとテスト用データの割合を指定します。

この辺もお好みで。

今回は80%、20%にします。

Neural Network Consoleで学習モデルを自動最適化す 画像16

すべての入力が完了したら、Applyを押下して完了です。

しばらく画像の読み込み処理が走ります。

Neural Network Consoleで学習モデルを自動最適化す 画像17

以上で画像の読み込みは終了です。

 

学習モデルを作成する

ここでは一から学習モデルを作成するのは面倒なので、サンプルで準備されているモデルを流用します。

チュートリアルで使った「01_logistic_regression.sdcproj」をベースを使ってみます。

設定を数か所変更する必要があるので、順を追って説明します。

 

まず、学習させる画像サイズを指定します。

つまりInputのサイズを変更します。

Neural Network Consoleで学習モデルを自動最適化す 画像18

画像右のInputを選択すると、画像左下にInputのパラメータが表示されるので、赤枠で囲った部分を変更します。

ここではカラー画像の3と画像サイズ50x50を指定します。

 

続いて画像ファイルの読み込み設定です。

Neural Network Consoleで学習モデルを自動最適化す 画像19

画像左上のDATASETをクリックし、そのすぐ下の右上矢印マークを押すとTrainingデータをValidationデータそれぞれを指定できるので、先ほど読み込ませたデータを指定します。

 

これで学習モデルに使用する画像データの指定が完了しました。

 

学習方法を指定する

最後に学習方法を設定します。

Neural Network Consoleで学習モデルを自動最適化す 画像20

画像右上のCONFIGを選択すると、学習方法を指定できます。

Max Epochは学習回数を指定します。

Batch Sizeは一度に学習させる枚数を指定します。

 

そして筆者にとって、最もうれしい機能である自動で最適な学習モデルを探し出してくれる機能を指定する部分がEnableです。

これにレ点しておけば、勝手に学習モデルの最適化をしてくれます。

 

これで学習方法の設定は完了です。

 

学習開始

すべての設定が完了したので、いよいよ学習開始です。

Neural Network Consoleで学習モデルを自動最適化す 画像21

画像上の矢印ボタンを押下すると学習が始まります。

Neural Network Consoleで学習モデルを自動最適化す 画像22

学習モデルを最適化するように設定してトレーニングしているので、ストップボタンを押すまで永遠に学習を繰り返します。

眺めているだけでも楽しいですよ。

 

以上、Neural Network Consoleの使い方でした。

それではまた。

この記事の内容について、相談したい方へ

技術選定・実装の進め方・組織での導入など、AI/IoT全般のご相談を受け付けています。

無料相談会(30分・オンライン)

About The Author

Hideki
東京大学発AIスタートアップでロボット開発室室長・画像解析室室長・動画解析室室長を務め、画像認識関連のAI特許を在籍中に3件取得。その後、KDDIグループでプロダクトリーダーとして自然言語処理パッケージの自社開発を経て、現在はAGRIST株式会社の執行役員CTO 兼 VPoEとして、農業の人手不足解決に向けた収穫ロボットの開発組織を統括しています。AI・ハード・エレキ・通信・クラウド・IoTまでを一気通貫で設計できる視点を強みに、性能だけでなく「感動やワクワク体験」までデザインできるロボットの研究を進めています。並行して、AI coordinatorとして企業のAI導入・教育機関のAI授業・地域の技術相談を月額契約で継続伴走しています。

COMMENTS & TRACKBACKS

  • Comments ( 4 )
  • Trackbacks ( 0 )
  1. Neural Network Consoleでは、1枚の画像中に複数のラベリングされたバウンディングボックスなどの画像は使用できないのでしょうか?

  2. 上の方とは別人ですが、多分同じことをやりたいと思っております。
    この例でいうと男性と女性を学習させてそのあとに、1枚の大きな画像(学習例は50×50だとしても、その1枚は800×600とか)に男性が複数、女性が複数いるとそれぞれにラベリングされたバウンディングボックスで表示したいということだと思います。
    YOLOとかSSDとかの一般物体検出ですね。
    つまり学習画像サイズと関係なく、認識させたい画像があり、その画像内に複数の正解例があるという形式です。

    • 理解しました。
      要するにCNNからR-CNNをNeural Network Consoleを使用して実装したいということですね。

      しっかり研究していませんが、Neural Network ConsoleはただのCNNモデルを作成しているに過ぎず、
      Rの部分は何らかの技術で抽出し、作成したCNNモデルとぶつける感じで実装できるかと思います。

LEAVE A REPLY

*
*
* (公開されません)