ヤメ記者SEの徒然なるままに…

アクセスカウンタ

zoom RSS [How To] Neural Network Consoleを動かすときのコツ

<<   作成日時 : 2018/07/14 16:50   >>

トラックバック 0 / コメント 0

約一か月ぶりのブログ更新です。

世間は3連休。
3日間とも快晴に恵まれた格好のレジャー日和ですが、私は仕事の対応当番にあたってしまったため外出もできず、自宅待機という状態なので、こうしてブログの更新など。

さて、昨年受験した際にこのブログでもご報告していました、JDLAのG検定
実はこの6月に第2回目(2018 #1)の試験があり、再度受験したところ、無事合格いたしました!
ということで、実は少し前にブログのヘッダデザインに、合格の証として配布された認定マークを掲載させてもらいました。
根を詰めて、というほどではありませんが、2か月間ほど勉強続けてきた成果をしっかり出せたので良かったです。

そんなわけで、今回はちょっとMachine Learningに関連した話題ということで、SONYが配布している、Neural Network Console(以下、NNC)についてご紹介と、ちょっとした利用のためのコツをお話しできればと思います。

といっても、私もE検定を受けられるほど、技術的なところをしっかり理解できているわけではないので、ツールとしてNNCを使うときに、私がちょっと詰まったところの説明ができればな、という程度のものです。

まずそもそもNNCとは何か、というところですが、ディープラーニングやニューラルネットワークといった、機械学習を実施するための一種で、SONYが開発・提供しているフリーソフトウェアです。
最大の特徴はGUIでネットワークを描くことができるというところで、(もちろん、しっかり使いこなそうと思えば、機械学習の原理などはしっかり理解しておく必要はあるのですが)Pythonなどのプログラミング言語をも利用しなくても簡単に機械学習を体感することができます。

ソフトウェアはWindows用とLinux用が用意されていますので、ほとんどの方の環境で実行できると思います。
Windows用だと、普通のアプリケーションのようにインストール作業を行うだけで機械学習を体験する環境が用意できますので、この分野に興味のある初学者の人にとって、学びの入り口としてはよくできていると思います。

一方で、マニュアルが結構な分量があって、自分がやるときもいくつかつまずいたポイントがあったので、自分が忘れないようにするためのメモもかねて、そのあたりを少しご説明できればと思います。

まず、ソフトウェア自体は https://dl.sony.com/ja/ こちらの公式サイトからダウンロードを行ってください。
「Windowsアプリではじめる」からリンクをたどっていただき、ユーザー登録すればzipファイルがダウンロードできます。
後は適当な場所に回答すればいいのですが、ここで一つ目のポイント!
回答したファイルを配置するパスは、途中に日本語など、2バイト文字が入らないパスに設定してください。
2バイト文字が入っていてもアプリケーションは起動できるのですが、その後、プロジェクトの読み込みなどで失敗します。
後からフォルダを移動した場合でもサンプルプロジェクトのパスが変更されることはなく、結構面倒なことになってしまいます。
(これはマニュアルにしっかりと記載されていたのですが、私は最初見落として、苦労しました…)

解凍したファイルを配置したら、フォルダ内にある neural_network_console をダブルクリックすると、アプリが起動されます。
画像


画像が初期起動画面です。
私がすでに操作した後のためプロジェクトの並びが若干異なるかと思いますが、見ていただければわかる通り、AlexNetやgoogLeNetなど、この手の勉強を始めた方なら聞いたことがあるであろう著名なネットワーク構造は初めからサンプルとして登録済みとなっています。
デフォルトで表示されていないプロジェクトも、中央部の「Open Project」ボタンをクリックし、
[解凍したrootフォルダ]\samples\sample_project\
配下に、用途の種類ごと(例えば、画像分類用のAlexNetだったらimage_recognitionフォルダの下)に格納されていますので、自分が試してみたいプロジェクトのファイル(*.sdcproj形式)を指定すれば読み込むことができます。
画像


プロジェクトを開くとこのような画面が表示されます。
画面中央にネットワーク構造が表示され、ネットワーク構造が大きく画面内に収まらない場合は右側のほうに全体像が表示されます。
左上のタブがEDITになっていれば、実際にネットワーク構成を操作して、ネットワーク構造を変更することができますが、それについては原理が理解できていないとなかなか難しいと思いますし、私もよくわかっていないのでここでは触れません。

これで今、画像分類用のネットワークを読み込んでいる状態になっていて、ここから実際に機械に画像データを読み込ませて学習させていきます。
大量の画像データを用意する必要があるのですが、その画像データを、フォルダごとに分けて、任意のフォルダに置いておきます。
例えば大量のペットボトルのお茶の写真を学習して、特定のブランドのお茶であるかどうかを判定したいような場合
\\dataset\0\
の下に、特定したいブランドのお茶の画像を
\\dataset\1\
の下に、それ以外のお茶の画像を準備します。
もし、1つのブランドを特定したいだけではなく、入力された画像がどのブランドのものかを当てたい、というものを作りたいのであれば、各ブランドの画像ごとに0,1,2,3,4,5という風にフォルダ分けして画像を格納する必要があります。ここは教師あり学習を行うために最初に必要な処理ということで、頑張って人の手で振り分けをしなければいけないところですね。

このデータを、学習するためには、トレーニング用とテスト用に分け、さらにすべての画像を同一サイズにそろえ、各画像を示すDATASET用のCSVファイルを作る必要があるのですが、NNCではその作業を自動で行ってくれる機能があります。

上部メニューの右側のほうにある「DATASET」ボタンをクリックすると、
画像

このような画面が表示されます。
この画面で、中央部右上にある@と記載したボタンをクリックすると、中央部にDATASETを選択する画面が表示されますので、ここで中央部左上に新しく表示される「Create Dataset」をクリックしていただくと、自動でデータセットを作るための設定画面が表示されます。

画像


設定する内容は上から順に

  • Source Dir = データセットのもとになるデータを格納しているフォルダ。先ほど用意した\\datasetを指定(配下の0,1フォルダではない)
  • Output Dir = サイズをそろえるなど、加工したデータを出力するフォルダ。ソースフォルダとは別フォルダを指定する必要あり。
  • Shaping Mode = サイズが違う画像をどのようにして大きさをそろえるか。左から切り抜き、0埋め、サイズ変更。
  • Output Color Ch = モノクロかカラーか。
  • Output Width = 出力する画像の横幅
  • Output Height = 出力する画像の高さ
  • Shuffle the order of the data = データの並びをシャッフルするかどうか
  • Output File 1 = トレーニング用データのCSVファイル
  • Output File 2 = テスト用データのCSVファイル


ここが2つ目のポイントになります。
データセットを作成する際にいくつかのコツがあります。
まず1つは、学習させたいネットワークによって対応している画像サイズが異なるということ。
各ネットワークのサイズは、最初に開いたEDIT画面の、InputXに記載されているサイズになりますので、ここで指定されているサイズにwidth と Heightで指定するサイズを合わせておきましょう。
それからもう一つが、多くのネットワークではトレーニング用のデータとテスト用のデータで求められる画像のサイズが異なります。
例えばgoogLeNetでは、TrainのInputXのサイズは480x480なのに対して、Top5ErrorやTop1Errorは320x320となっています。
このため、Create DATASETの画面で、Output File 1とOutput File 2の割合を指定してまとめて作成することができますが、例えば70:30という割合でデータを一度に作成しても、このデータをそれぞれの用途に指定した場合には途中でエラーになってしまいます。
ですので、集めたdataset内のデータをフォルダ構成などはそのままに2つ分け、トレーニング用とテスト用で、2回に分けてCreate DATASETを実行して、データを作成するのが良いようです。

そのうえで、出力されたtrain.csvとvalid.csvをそれぞれ適切に指定してもらえれば、うまく学習を実行することができると思います。

左上からTRAININGを選び、右側のRun Training(右向き三角)をクリックすれば、学習が始まります。
画像データ量やパソコンのスペックによって学習時間は大きく異なりますが、100または200 epoch繰り返すのが普通で、そのうち1が完了し、中央部分上段にグラフが描画され始めたら、正常に実行できているはずですので、あとはひたすら待ちましょう。
場合によっては数日間回しっぱなし、みたいなことにもなるかと思いますので、その時は、テストデータ量を減らすなどして調整すればよいと思います。

トレーニング用のデータ量を減らすと当然精度は落ちるはずなので、そのあたりは、ただのテストなのか、または実際の本番に向けた学習なのかによってかける時間とコストの兼ね合いを見ればよいのかな、と思います。

画像


ちなみに、こちらは私が仕事関連でちょっと学習をさせてみたときの実行結果。
うまく学習が進んだ場合には、本来、Learning Costと比例する形で、Validation Errorも下がらなければいけないはずなのですが、このトレーニングではほとんど下がっていません。
したがって、うまく学習ができていない、という判断で、途中でやめてしまいました…。

ということで、オリジナルのネットワークを作るようなことは私もまだまだできていませんので、ぼちぼち勉強しながら、なんかオリジナルのAIでも作れたらいいな〜と思います。
成果が出てきたらまたこちらのブログで報告するかもしれません。


ではでは〜〜〜〜。

====================================気になるニュース
AIから教育、クルマ、民泊まで──中国の知っておくべき「ユニコーン企業」10社:『WIRED』UK版選

小さくなったNature Remo miniは6月下旬発売。アプリもリニューアルで搭載センサーの活用が可能に

既存のSIMに貼るだけ。『貼るSIM』海外旅行者向けに発売。世界75地域で1日500円

デザイン思考の講義資料

Microsoft、Officeをメジャーアップデートへ――Fluentデザイン言語を全面的に採用

マイクロソフトがHoloLens 2を今年中に発表か。大幅値下げと視野角拡大、軽量化など全面改良のウワサ

ロビン・ウィリアムズの舞台と本当の顔に迫ったドキュメンタリー「Robin Williams: Come Inside My Mind」予告編が公開中

最先端のAIは、私たちの3D空間理解に近付いている

驚異の素材グラフェンの「新しい性質」は、光ファイバー通信に革新を起こすか

『WIRED』の守護聖人、マクルーハンとは何者だったのか? 『マクルーハンはメッセージ』を読み解く

スマホをかざすと麻雀の点数表示「麻雀カメラ」--KDDIの画像認識テクノロジを活用

ZOZO、完全オーダーメイドのスーツが2万1900円。ZOZOSUITの体型データ活用

日本ディープラーニング協会がG検定合格者の会を開催、コミュニティー設立へ

MRヘッドセットMagic Leap One、ついに今夏出荷。謎だったSoCも公開

国内初、ソラコムがダッシュボタンを開発できるデバイス!「AWS IoT 1-Click」対応、セルラーLPWAのLTE-M通信を使用





初めてのTensorFlow 数式なしのディープラーニング
リックテレコム
2017-10-28
足立 悠

amazon.co.jpで買う
Amazonアソシエイト by 初めてのTensorFlow 数式なしのディープラーニング の詳しい情報を見る / ウェブリブログ商品ポータル



ゼロから作るDeep Learning ? ―自然言語処理編
オライリージャパン
斎藤 康毅

amazon.co.jpで買う
Amazonアソシエイト by ゼロから作るDeep Learning ? ―自然言語処理編 の詳しい情報を見る / ウェブリブログ商品ポータル


テーマ

注目テーマ 一覧


月別リンク

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
[How To] Neural Network Consoleを動かすときのコツ ヤメ記者SEの徒然なるままに…/BIGLOBEウェブリブログ
文字サイズ:       閉じる