無限不可能性ドライブ

『ニューラルネットワーク自作入門』に刺激されてExcelVBAでニューラルネットワークを作ってみたものの、やっぱり数学やらなきゃと思い少しずつやってきたのもあって、自分の知識の整理とかそういった感じです。

【VBA編】どんなものを作っていくか

今回作るニューラルネットワーク


さんざん既出ですが、これを実装していきます。
f:id:celaeno42:20180922233518p:plain


完成のイメージはこんな感じです。(動画が再生されます)
https://1drv.ms/v/s!Akn_IZSOKLJ-1WwjfhdtoXOFKQv1

どう実装するか

ユニットクラスを作りそれで各層のユニットを作っていきます。
また、レイヤークラスを作り、各層のユニットを管理します。
基本的には、これまでで求めた計算式を実装していく形になります。
ニューラルネットワークの実装では、通常は行列計算を使った実装が行われると思いますが、
今回は行列計算は利用しません。
そのかわり、処理速度はあまり速くはありません。

アイリスデータセット

データセットはアイリスデータセットを使用し、アイリス(あやめ)の分類を行います。
f:id:celaeno42:20181102222129p:plain

実際のデータはこんな感じです。
f:id:celaeno42:20181201104704p:plain

がくの長さ、がくの幅、花弁の長さ、花弁の幅のデータから、それがどの種類のあやめかを推測します。
今回は、訓練用データとして129件、テストデータとして21件に分けたものを使用します。

訓練用データ:https://1drv.ms/u/s!Akn_IZSOKLJ-1lIFNhzFRmzawQF1
テストデータ:https://1drv.ms/u/s!Akn_IZSOKLJ-1lEDYSXiM_n2tniI
(webで表示すると1行目が文字化けしてますが、ダウンロードすると正常に表示されます(Shift-JIS))