こんにちは。とりりんです。
今回はソースコードを書かなくても機械学習ができるNNCというGUIを紹介したいと思います。
こんなことが知りたい方向けです。
- 機械学習をやってみたい方
- NNCについて知りたい方
- データサイエンスに興味がある方
- AIをとりあえずやってみたい方
NNCとは
NNCとは、Neural Network Consoleの略で、プログラムを書かなくても機械学習ができるツールです。
みなさんがよく聞くSonyが開発しています。
非常に使いやすく、クラウドを使わなければ基本無料で使えるのが良いところですね。
元々機械学習はプログラミング的要素が薄く、お決まり文句が多かったりするので、いいツールが出てきたな!と私は思いました。
このGUI自体はPythonで動いてるみたいです。
使い方は公式が分かりやすく書いてくれていました。
公式ではダウンロード時に入っているデータを使っているので、自分で作ったバージョンをブログでは紹介していきます。
事前準備
まず、この3点を事前に用意する必要があります。
- 学習データ
- 検証データ
- 学習データと検証データの保管情報
ここでいう学習データと検証データとは、入力データと正解データのペアの塊のことです。
正解データは教師データや正解ラベルとも言われますね。
手書き数字画像データであるMNISTを例にすると、これらは以下を指します。
- 入力データ:手書き数字が書かれた画像
- 正解データ:正解の数字(厳密には0~9を示す要素10の配列のうち、正解の要素を1、他を0にした配列)
また、学習用と検証用に分ける理由は、学習で使われていない全く知らないものでも正解を導き出せるかを確認するためです。
そのため、学習データと検証データは異なるものを用意した方が望ましいです。
また、保管情報は、データがある画像のパスや正解ラベルを書いたCSVファイル(未確認だけどテキストでも良さそう)です。
CSVファイルとはカンマ区切りのファイルのことです。
サンプルにあったMNISTのCSVファイルはこのような形でした。
x:image,y:9 ./validation/4/4.png,0 ./validation/4/6.png,0 ./validation/9/7.png,1 ./validation/9/9.png,1 ...
入力データ・正解データともに画像の場合は、x, yどちらとも画像のパスを入力します。
データの詳細については、サンプルをみたらわかると思います。
このCSVファイルは、学習データと検証データの2種類作ってくださいね。
実装
こちらで作成したデータを例として、実際に実装してみましょう。
このデータは32*32のグレースケール画像に描かれた丸を白に塗りつぶすタスクを想定したデータです。
モデル作成
ここがノーコードユーザが最も苦労するところになります。
左上の「編集」タブから作成可能です。
モデルの作成方法については、私自身あまり詳しくないので今回は割愛します。
今回はこんな形にしました。

上部にモデル構造、最下部に損失関数を定義する必要があります。
今回は画像関連のタスクでよく使われる畳み込み層を用いて、画像の特徴を学習させています。
この構造は一般的にはしょぼい構造で、より深い構造にすれば複雑なタスクをこなすことが可能です。
その分計算量が多いので、時間がかかってしまいますが。
データ登録
次に、事前準備で作成したデータを登録します。
データ登録は、右上の「データセット」タブから編集可能です。
学習データと検証データに対応するCSVファイルを登録します。
正常に登録できれば、以下のように画像や正解ラベルが表示されます。

今回は画像を入力して画像を出力するので、yも画像になっています。
スポンサーリンク
設定確認
右上の「コンフィグ」タブから編集可能です。
色々ありますが、基本的に確認すべきところは、「Global Config」にある学習反復世代数とバッチサイズだと思います。
学習反復世代数はエポック数にあたるものです。
最適化手法もコンフィグから可能です。
学習
学習は「編集」タブ→右上にある「実行」ボタン押下で可能です。
モデルの形状やCPUかGPU化などで処理時間が変わってきます。
そこそこちゃんとしたタスクだと、時間がかかりますが待ってあげてください。
徐々にグラフに損失などの結果が出力されます。
学習が終了したら、以下のようにグラフが完成します。

スポンサーリンク

検証(評価)
学習が終了したら、「学習」タブ→右上の「実行」ボタンから、検証データを使って評価していきます。
「評価」タブから出力結果を確認できます。
精度はイマイチですが、ちゃんとできてますね。

まとめ
今回はプログラミングをせずに機械学習で使えるNNCを紹介しました!
使い方もわかりやすく、初心者が始めるのにちょうど良いと思います。
興味が湧いた方は是非使ってみてください。
最後までご覧いただき、ありがとうございました!
Python
GitHub
Qiita
↓とりりんを応援して頂けると嬉しいです!↓
にほんブログ村
コメント