NNC(Neural Network Console)を使用したアヤメの分類の実装
SonyのNNC(Neural Network Console)はプログラミングなしでディープランニングを実装できるツールであり、ソニーのグループ会社のソニーネットワークコミュニケーションズ社からリリースされています。
このNNCを用いて機械学習で有名なアヤメの分類の実装を行っていきます。
前回、NNCでアヤメの分類を行う準備をしているので、まだ準備が出来ていない方はそちらを始めに参照してください。
Configの変更
今回のアヤメの分類を行うために、Configの変更が必要です。Defaultのepoch数が大きいためです。
アヤメの分類の訓練用データは120個ありますが、それに対してDefaultのBatch Size数は100となっているためここままでは実行できません。そのため、Batch Size数を訓練用データよりはるかに小さい5に修正を行います。
画面上部のWindowで「Config」を設定します。
以下のようなConfig画面が出力されます。
Batch Sizeの箇所を選択し、100⇒5に変更してください。
これでConfigの変更は終了です。
Max Epoch数宇とBatch Size数の意味について
この章では簡単にMax Epoch数宇とBatch Size数の意味について説明をします。特に動作には影響がないために、説明をSKIPしていただいても問題ないです。
ニューラルネットワークでは入力データを大量に投入しコンピュータ自らがその「特徴」を学習していきます。
今回のアヤメの分類では、がく片の長さ(Sepal length)/がく片の幅(Sepal width)/花びらの長さ(Petal lengt)/花びらの幅(Petal width)の4の4種類の属性が格納されているデータ120個を入力データとしています。
この120個のデータをコンピュータに投入させ、コンピュータ自らが学習した「特徴」を元に、正解データ(setosa(ヒオウギアヤメ)/Versicolour(ブルーフラッグ)/Virginica)と比較していきます。
しかしながら、学習の始めの段階では「特徴」の精度が低く、間違うことが多いです。そのため、何度も何度も学習しその「特徴」を修正していき、精度を高めることが必要です。
ここでいう、何度も何度も学習というのが「Max Epoch」に該当します。そして「特徴」を修正していくタイミングが「Batch Size」に該当します。
今回のアヤメの分類では120個のデータが存在し、「Max Epoch」は100、「Batch Size」は5となっています。これは120個のデータのうち、5回目、10回目、15回目のタイミングで「特徴」を修正していくことを示しています。
また、120個学習し終わったら、それを1Epochとし、再度120個同じように学習します。つまり100Epochということは 120個のデータを100回学習するということになります。
このようにEpoch数とBach Sizeを組み合わせることで学習の精度が変わっていきます。
Trainingの実行
いよいよ準備が完了したので、次にTrainingの実行を行っていきます。
画面上部のあるWindowの「TRAINING」をクリックしてください。
その後画面右部にあるWindowの「TRAINING」の下の△ボタンをクリックします。
TRAININGが開始されます。少し待つとリアルタイムでグラフが表示されEpoch数が100になった段階で完了します。
右下がりのグラフが表示されたかと思います。
右下がりのグラフは回数を重ねて学習していくことで精度が高くなり、間違った回数が少なくなっていることを意味しています。つまりいい学習が出来たということを示しています。
続いて、この学習結果を元に評価を行ってみます。
Evaluationの実行
画面上部のあるWindowの「EVALUATION」をクリックしてください。
その後画面右部にあるWindowの「EVALUATION」の下の△ボタンをクリックします。
EVALUATION(評価)が実行されます。
以下のような画面が出力されます。
一見して分かりにくいので、Confusion Matrixを見てみます。
ここのAccucacyに注目してください。
1と表示されています。これは100%を示しています。
つまり全ての期待通りの結果を得ることを表しています。
今回は評価データが30種類と少ないのでたまたま成功したケースもあったかもしれませんが、効果が高いニューラルネットワークを作成していることが分かります。
今後はアヤメ以外のデータについても試していこうと思います。