無限不可能性ドライブ

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

【VBA編】ニューラルネットワーク(メイン画面)

メイン画面

f:id:celaeno42:20181115232506p:plain

celaeno42.hatenablog.com

メイン画面の数式

f:id:celaeno42:20190927195410p:plain

数式はこのように入っています。
C列の値はとりあえずこんな感じで。

モジュールとシート

必要な標準モジュール、クラスモジュールは以下の通りです。

【標準モジュール】

オブジェクト名 用途
G 定数やグローバル変数の宣言用
mdlReadData データの読み込みに使用
mdlSupervisor 全体の制御に使用
ML マシンラーニングの演算に使用


【クラスモジュール】

オブジェクト名 用途など
classInputLayer 入力層の管理に使用
classHiddenLayer 隠れ層の管理に使用
classOutputLayer 出力層の管理に使用
classInputUnit 入力用ユニット
classUnit 隠れ層、出力層用ユニット


必要なシートは以下の通りです。
【シート】

オブジェクト名 シート名 用途
ws_Main main メインのシート
ws_Test_Data テストデータ 読み込んだテストデータの格納に使用
ws_Test_Data_Input テストデータ(入力) 入力用テストデータの格納に使用
ws_Test_Result テスト結果 テスト結果の出力に使用
ws_Train_Data 訓練データ 読み込んだ訓練データの格納に使用
ws_Train_Data_Input 訓練データ(入力) 入力用訓練データの格納に使用
ws_Train_Result 訓練結果 訓練結果の出力に使用
ws_W_H1 w_h1 隠れ層1層めの重みの出力に使用
ws_W_H2 w_h2 隠れ層2層めの重みの出力に使用
ws_W_Out w_out 出力層の重みの出力に使用
ws_WI_H1 wi_h1 隠れ層1層めの重みの初期値の出力に使用
ws_WI_H2 wi_h2 隠れ層2層めの重みの初期値の出力に使用
ws_WI_Out wi_out 出力層の重みの初期値の出力に使用


すべて追加するとこのようになります。
f:id:celaeno42:20181205214831p:plain

f:id:celaeno42:20181212233850p:plain