【VBA編】どんなものを作っていくか
今回作るニューラルネットワーク
- 入力:4
- 出力:3
- 隠れ層の活性化関数:ReLU
- 出力層の活性化関数:Softmax
- 損失関数:クロスエントロピー
- 学習方法:教師あり学習
- 教師データ:one-hot 表現
- 扱う問題:分類問題
- データセット:アイリス データセット
さんざん既出ですが、これを実装していきます。
完成のイメージはこんな感じです。(動画が再生されます)
https://1drv.ms/v/s!Akn_IZSOKLJ-1WwjfhdtoXOFKQv1
どう実装するか
ユニットクラスを作りそれで各層のユニットを作っていきます。
また、レイヤークラスを作り、各層のユニットを管理します。
基本的には、これまでで求めた計算式を実装していく形になります。
ニューラルネットワークの実装では、通常は行列計算を使った実装が行われると思いますが、
今回は行列計算は利用しません。
そのかわり、処理速度はあまり速くはありません。
アイリスデータセット
データセットはアイリスデータセットを使用し、アイリス(あやめ)の分類を行います。
実際のデータはこんな感じです。
がくの長さ、がくの幅、花弁の長さ、花弁の幅のデータから、それがどの種類のあやめかを推測します。
今回は、訓練用データとして129件、テストデータとして21件に分けたものを使用します。
訓練用データ:https://1drv.ms/u/s!Akn_IZSOKLJ-1lIFNhzFRmzawQF1
テストデータ:https://1drv.ms/u/s!Akn_IZSOKLJ-1lEDYSXiM_n2tniI
(webで表示すると1行目が文字化けしてますが、ダウンロードすると正常に表示されます(Shift-JIS))