1. はじめに
1.1 Neural Network Console(NNC)ってなんぞや?
Neural Network Consoleとは、皆さんご存じSonyが発表したディープラーニングの統合開発ソフトウェアです。
コーディング一切なし!Scratchのような直感的なブロック配置で簡単にニューラルネットワークを構築できる、最高のソフトウェアとなっています。ちなみに無料です。
と、いうことは......
Pythonなどのプログラミング言語を学んでいない人でも気軽にディープラーニングを実装できるんです!
凄くないですか......
今回はそんな神ソフト「Neural Network Console」について簡単に触れていこうと思います。
2. とりあえず使ってみる
2.1 セットアップ
早速使ってみましょう。実はこのNNC、クラウド版とWindows版(2022年8月時点)の2つが選べますが、クラウド版は10時間のみ無料で、その後は有料となってしまうのでWindows版をオススメします。
こちらからダウンロードしましょう。
下図のような表示があるので、ご自分のOSに合わせてダウンロードを押してください。
少し待つと、neural_network_console_○○○.exeというファイルがダウンロードされます。
これは圧縮ファイルになっているので、実行すると解凍ウィンドウが出てくると思います。好きな場所に解凍(Extract)しましょう。
僕はCドライブ直下に解凍しました。
解凍が終わると、指定したディレクトリに下図のようなファイル群ができているはずです。
ここまででNNCのインストールは終わりです。
2.2 アクティベート
解凍したファイル群の中にある、neural_network_console.exeをダブルクリックして実行します。
下図のような警告(warning)ウィンドウが立ち上がると思いますが、OKを押してください。
その後、アカウント作成とログインを行います。SonyかGoogleのお好きなアカウントでどうぞ。
ここまでうまくできていれば契約条件の画面が表示されると思うので、確認後、同意を選択してください。
同意する/同意しないの下にあるチェック項目はどちらでも問題ありません。利用状況の収集と送信に同意するのであれば、チェックして(デフォルトのまま)適用を押しましょう。
また、お使いのコンピュータでNVIDIA製、Keplerアーキテクチャ以降のCUDA対応GPUをお使いの場合は、インストール時に解凍後にできたファイル群の中のmanualを参考にセットアップしてみましょう。学習速度が向上します。(僕のPCでは使っていないのでスキップしました)
これでNNCが使えるようになりました。
3. チュートリアル
NNCには、既にサンプルプロジェクトが用意されています。
今回はそのサンプルプロジェクトを使って、手書き数字MNISTを使ったチュートリアルを行います。
3.1 NNCを起動する
neural_network_console.exeをダブルクリックして実行します。
3.2 サンプルプロジェクトを開く
起動後、プロジェクト画面が表示されると思います。
そのプロジェクト一覧から、01_logistic_regression.sdcprojを選択して開きましょう。
開けたら、編集タブで、下図のような画面になっていることを確認します。
ちなみにこのブロック図は、MNISTのモノクロ手書き文字画像(4と9)を、9かどうかの2値判別を行うための1層ネットワークを表しています。
次に、データセットタブで、学習用・評価用の画像データが読み込まれているか確認します。
3.3 学習
編集タブに戻り、右上の青い"実行"ボタンをクリック(F5でも実行可)し、学習を開始します。
学習タブに行くと、学習の進捗状況を学習曲線と共に見ることができます。何気にこれが一番楽しいかも。
3.4 評価
学習タブにて、右上の"実行"ボタンをクリック(F6でも実行可)し、評価を開始します。
評価タブで、評価の進捗状況と評価結果を見ることができます。
ここでは評価結果として、評価用データセットに、学習したニューラルネットワークによる推定結果が追加された表が表示されます。
このチュートリアルにおけるy'は、yが1である(入力画像が9である)確率を示します。
混同行列をクリックして、精度評価結果を表示しましょう。
"Accuracy"が分類精度を示します。今回は評価データセットの"4"と"9"を95.2%の精度で分類できています。
4. まとめ
今回は、NNCのセットアップと1層ニューラルネットワークでのMNISTの認識のやり方をまとめてみました。
2層以上で試したい方は、manualを参考に進めてみてください。
NNCを使うことで、膨大な量のデータを短時間で学習・評価できることがわかりました。
コーディングなしでここまでできるという優れものですが、知識の乏しい僕にとっては、各層の計算方法が記載されていないので、M5Stackやラズパイなどのマイコンで実装するのは難しそうです。勉強あるのみ!
ちなみに今更ですが、この記事にまとめてあることはほとんどmanualにも載っているので、くれぐれもmanualは大切に。