AIプログラミング

SonnyのNNC(Neural Network Console)でのアヤメの分類の実装(準備編)

更新日:

NNC(Neural Network Console)とは

SonyのNNC(Neural Network Console)はプログラミングなしでディープランニングを実装できるツールであり、ソニーのグループ会社のソニーネットワークコミュニケーションズ社からリリースされています。

NNCはプログラミングが一切不要のGUIをベースにしたツールで、ドラッグ&ドロップによる簡単な編集で、ニューラルネットワークを設計することが出来ます。

Sonny_NNC

公式サイト

https://dl.sony.com/ja/

Windows版とクラウド版があり、Windows版は無料で使用することができます。

Windows版

  • Windows 8.1/10_64bit

クラウド版(無料利用枠)

  • 実行環境:CPU
  • 学習・評価実行時間:10時間
  • ワークスペース:10G
  • プロジェクト数:10個

無料利用枠に収まらない使用をする場合は従量制の月額料金も存在します。多少お金がかかりますが、無制限にプロジェクト数を増やしたい場合や、GPUを使用して高速演算を行いたい場合はとても便利です。

アヤメの分類とは

アヤメの分類とは機械学習によく使用される分類問題の一つです。がく片の長さや花びらの幅など、アヤメを構成する4つの属性からアヤメの種類を識別します。

機械学習やディープラーニングで非常によく使用されています。

アヤメ

 属性

  • がく片の長さ(Sepal length)
  • がく片の幅(Sepal width)
  • 花びらの長さ(Petal lengt
  • 花びらの幅(Petal width)

 識別

  • setosa(ヒオウギアヤメ)
  • Versicolour(ブルーフラッグ)
  • Virginica

NNCでのデータセットの中身

NNC(Neural Network Console)をインストールしたディレクトリ配下の下記ディレクトリにアヤメのデータセットが入っています。

neural_network_console_110\samples\sample_dataset\iris_flower_dataset

学習用データ 120個、評価用データ 30個のフルセット

  • iris_flower_dataset_all_delo.csv
  • iris_flower_dataset_all_sdeepy.csv

学習用データ 120個のデータセット

  • iris_flower_dataset_training_delo.csv
  • iris_flower_dataset_training_sdeepy.csv

評価用データ 30個のデータセット

  • iris_flower_dataset_validation_delo.csv
  • iris_flower_dataset_validation_sdeepy.csv

それぞれのデータセットは学習用/評価表全てのフルセットと、学習用、または評価用のデータセットを格納した3種類に分かれています。

さらにファイル名の末尾に付与されているdeloとsdeepyの2種類の合計6つのファイルが存在します。

deloとsdeepyの違いは以下の通りです。

delo・・・アヤメの識別を0~2の数値のカテゴリとして表したもの

  • Versicolour(ブルーフラッグ)(1)
  • setosa(ヒオウギアヤメ)(0)
  • Virginica(2)

sdeepy・・・アヤメの識別を0と1から成り立つone hot表現として表したもの

  • Versicolour(ブルーフラッグ)(1,0,0)
  • setosa(ヒオウギアヤメ)(0,1,0)
  • Virginica(0,0,1)

今回はアヤメの識別を0~2の数値のカテゴリとして行うため、ファイルの末尾にdeloが不要されたデータを使用します。

プロジェクトファイルの作成

プロジェクトファイルを新規で作成します。

ホームボタン(家のマーク)をクリックし、画面上部中央のWindowで「New Project」を選択します。

プロジェクトファイルの作成-1

以下の画面が立ち上がります。

プロジェクトファイルの作成-2

CTL+S または下記のSaveボタンをクリックしてプロジェクトに名前を付けて保存します。

プロジェクト名は任意の名前で問題ありませんが、nnc_iris_flowerのような分かりやすい名前を付けておきましょう。

データセット(TRAININGデータ)の読み込み

画面上部右側のWindowで「DATASET」をクリックします。

TRAININGデータの読み込み-1

画面左側のWindowで「Training」を選択します。

TRAININGデータの読み込み-2

画面上部の矢印マークのアイコンをクリックし、「Open Dataset」をクリックします。

TRAININGデータの読み込み-3

以下のファイルを選択してください。

neural_network_console_110\samples\sample_dataset\iris_flower_dataset

  • iris_flower_dataset_training_delo.csv

画面左側のWindowの「Training」に
Num Data = 120
Num Column = 5
となっていることを確認してください。

データセット(EVALUATIONデータ)の読み込み

データセット(TRAININGデータ)の読み込みとほぼ同様です。

画面左側のWindowで「validation」を選択し、Training同様の操作で以下のファイルを選択してください。

neural_network_console_110\samples\sample_dataset\iris_flower_dataset

  • iris_flower_dataset_validation_delo.csv

画面左側のWindowの「validation」に
Num Data = 30
Num Column = 5
となっていることを確認してください。

レイヤの作成

アヤメの分類を行うために以下のようなレイヤを作成します。

レイヤの作成-1

画面上部左側のWindowで「EDIT」をクリックします。

レイヤの作成-2

画面左側のWindowのComponentsで以下の順番でダブルクリックしてください

  • IO⇒Input
  • Basic⇒Affine
  • Activation⇒Sigmoid
  • Basic⇒Affine
  • Loss⇒SoftmaxCrossEntopy

以下の画面が出力されていれば成功です。

レイヤの作成-3

INPUT

defualtではInputのsizeに1,28,28が入力されています。
このsizeには入力するパラメータ数を設定するため4に修正します。

レイヤの作成-INPUT

がく片の長さ(Sepal length)/がく片の幅(Sepal width)/花びらの長さ(Petal length)/花びらの幅(Petal width)の4つがINPUTとなることを示しています。

Affine(1回目)

defualtではAffineのOutShapeに100が入力されています。
この値を20に入力します。

レイヤの作成-Affine-1

OutShapeは1つの層の深さを示しており、厳密にこの数字にしなければいけないというものはありません。経験や勘となります。ここのパラメータを調整することでいい結果が生まれたり、悪い結果となったりします。

Sigmoid

defualtの設定のままで問題ありません。
先ほど、AffineのOutShapeを20に変更しているため、SigmoidのInput/Outputともに20に変更されています。

レイヤの作成-Sigmoid

Affine(2回目)

AffineのOutShapeを3に変更します。
こちらのAffineは出力層となるため、最終的な出力の種類の数を入力します。

レイヤの作成-Affine-2

最終的な出力はVersicolou(ブルーフラッグ)/setosa(ヒオウギアヤメ)/Virginicaの3種類となるため、3を入力します。

SoftmaxCrossEntopy

defualtの設定のままで問題ありません。
Inputが3となっており、Outputが1となっていることに注目してください。

レイヤの作成-SoftmaxCrossEntopy

Inputの3は直前のAffineの出力が3となっているため、その数が引き継がれています。Outputについては、最終結果がアヤメの識別を0~2の数値のカテゴリとして表したものとなり、1桁で表示するため1となっています。

以上で試験の準備は完了です。次回は訓練・評価を実際に行っていきます。

SonnyのNNC(Neural Network Console)でのアヤメの分類の実装(評価/実行編)

 

-AIプログラミング
-, ,

Copyright© AI人工知能テクノロジー , 2019 All Rights Reserved.