402 ニューラル回帰予測プログラム
ニューラル回帰予測プログラムは、ニューラルネット(入力層、中間層、出力層)による回帰予測をするときに、
使用します。予測結果は予測データの最後の列から出力されます。
100行×20列の機能制限版は、こちら↓をクリックして下さい。
クリックの前に、扱うことができる行列の数を、もう一度ご確認下さい。
100行×20列の機能制限版のご購入は、こちらからどうぞ
400行×40列の機能制限版は、こちら↓をクリックして下さい。
クリックの前に、扱うことができる行列の数を、もう一度ご確認下さい。
400行×40列の機能拡張版のご購入は、こちらからどうぞ
↑クリックすると、インフォカートの決済画面に移ります。
操作画面とその解法は以下の通りです。
               
  青色 「学習パターン範囲」としてドラッグして範囲選択します。
  最大400行×40列まで有効です。  
   
  処理の種類  
  学習のみか、学習と予測を行うかを   
  クリックして選択します。  
   
  データの種類  
  データがダミー変数によるデータなのか、  
  実数データなのかをクリックして選択します。  
   
  緑色 「予測データ範囲」としてドラッグして範囲選択します。
  最大400行×40列まで有効です。  
   
  中間ニューロン数 1〜40の半角数字を入力します。  
       
  出力変数 0〜4の半角数字を入力します。  
       
  ゲイン値 1.0〜4.0の半角数字を入力します。  
       
  学習率 0〜100の半角数字を入力します。  
       
  収束誤差 0〜0.1の半角数字を入力します。  
       
  打切り回数 90000までの半角数字を入力します。  
       
  中間出力 解析途上の出力を表示させたい場合、
  クリックしてチェックを入れます。  
  任意のセル1か所をクリックして指定。  
   
  開始 設定が済んだら、「開始」をクリックします。  
               
【解説】
この処理のポイントは、誤差逆伝播法を使用し、伝播量の計算にシグモイド関数を使用して
いることです。
ウェイトの初期設定には乱数を使用します。
学習の完了は、2乗誤差が収束誤差より小さいときです。
学習完了後、完了時のウェイトを用いて、予測データについての予測計算を行います。
データの種類が2値の場合は、計算値が「0.5」より大きい場合は、予測値=1を、
小さいときは=0を出力します。
処理アルゴリズムは以下の通りです。
1.伝播量 hh(中間ニューロンの出力)、yy(出力)の計算 
iflg = ProcessY(xnum, hnum, gain, dx, hh, wghtx)
iflg = ProcessY(hnum, ynum, gain, hh, yy, wghth)
ここで、 dx:入力値、gain:ゲイン
ここで、 xnum:入力変数の個数、hnum:中間ニューロン数、ynum:出力変数の個数
ここで、wghtx:入力の重み係数、wghth:ニューロンの重み係数
2.2乗誤差 yr の計算
yb = (yy - dy)
yr = yb * yb
ここで、 yy:学習時の入力値、dy:学習時の出力値、yb:誤差
3.誤差逆伝播量の計算
wnet = wnet + wghth(i, j) * yb
hb = wnet * (1# - hh) * hh
4.wghtx、wghth の更新
wghtx(i, j) = wghtx(i, j) - a * dx * hb
wghth(i, j) = wghth(i, j) - a * hh * yb
ここで、 a:設定した学習率
5.伝播量の計算 hh、yy
iflg = ProcessY(xnum, hnum, gain, dx, hh, wghtx)
iflg = ProcessY(hnum, ynum, gain, hh, yy, wghth)
6.2乗誤差の計算
yb = (yy - dy)
yr = yb * yb
7.収束判定
e < yr 
収束していないとき再度計算ループ 
e >= yr 、又は, 再計算回数が打ち切り回数 n を超えたとき
収束し、学習終了へ 
ここで、 e:設定した収束誤差
8.収束の時、学習終了
終了時のwghtx、wghthを使用して、dxから出力 hh と 予測値 yy を計算
iflg = ProcessY(xnum, hnum, gain, dx, hh, wghtx)
iflg = ProcessY(hnum, ynum, gain, hh, yy, wghth)
ここで、 dx:入力値、gain:利得、
ここで、 xnum:入力数、hnum:中間ニューロン数)、ynum:出力数
ここで、 wghtx:入力の重み係数、wghth:ニューロンの重み係数
サンプルデータとその結果は次の通りです。
【サンプルデータA】
0・1データの場合の解析例:
学習データ 予測データ
x1 x2 x3 実績値1 実績値2 x1 x2 x3 予測値1 予測値2
0 0 0 0 0 0 0 0 0 0
0 0 1 1 0 0 0 1 1 0
0 1 0 1 0 0 1 0 1 0
0 1 1 1 1 0 1 1 1 1
1 0 0 0 0 1 0 0 0 0
1 0 1 0 1 1 0 1 0 1
1 1 0 0 1 1 1 0 0 1
1 1 1 1 1 1 1 1 1 1
Gain=2 学習率(%)=20 中間Neu=3 収束誤差=0.0001
学習値1 学習値2 2乗誤差1 2乗誤差2 回数 No.Wght Wghtx値 No.Wght Wghth値
0.008*0.008=0.000064 0.0080 0.0000 0.0001 0.0000 5165 wghx(0:0) -4.986 wghh(0:0) 8.594
1.0000 0.0020 0.0000 0.0000 5165 wghx(0:1) 0.079 wghh(0:1) -8.457
0.01*0.01=0.0001
  0.9940 0.0100 0.0000 0.0001 5165 wghx(0:2) 0.489 wghh(1:0) -0.639
0.01*0.01=0.0001   1.0000 0.9900 0.0000 0.0001 5165 wghx(1:0) 2.963 wghh(1:1) 11.64
0.0000 0.0020 0.0000 0.0000 5165 wghx(1:1) 2.286 wghh(2:0) -12.814
0.0040 1.0000 0.0000 0.0000 5165 wghx(1:2) -0.167 wghh(2:1) -12.848
0.0000 0.9970 0.0000 0.0000 5165 wghx(2:0) 2.328
0.9980 1.0000 0.0000 0.0000 5165 wghx(2:1) 0.098
wghx(2:2) -1.202
誤差ゴサ計算ケイサンレイ
2乗誤差は、収束状況をモニターするために、100回毎に表示し、収束した時に、最終計算しています。
(ご参考サンコウツギのホームページに誤差ゴサギャク伝播デンパンホウ解説カイセツがあります。
http://griffon.cs.ehime-u.ac.jp/column/neural/chapter6.html
【サンプルデータB】
実数データの場合の解析例:
Excelの分析ツール「回帰分析」による解析結果との比較を示します。
学習データ
x1 x2 x3 x4 y
7 10 5 6 13
6 8 4 3 11
6 7 6 8 10
5 6 4 8 9
8 10 7 9 13
5 6 8 6 9
4 5 3 3 7
予測データ
x1 x2 x3 x4 予測値1 ここに予測値が表示されます。
6 8 4 3 10.77
6 7 6 8 10.027
5 6 4 8 8.736
3 5 2 3 6.872
7 10 5 6 12.933
中間出力の指定部分(セル1か所を指定)
中間出力範囲
Gain=2 学習率(%)=20 中間Neu=4 収束誤差=0.0001
学習値1 2乗誤差1 回数 No.Wght Wghtx値 No.Wght Wghth値
12.933 0 8713 wghx(0:0) 0.629 wghh(0:0) 0.39
10.77 0.0001 8713 wghx(0:1) 0.787 wghh(1:0) 1.175
10.027 0 8713 wghx(0:2) -0.349 wghh(2:0) -2.608
8.736 0.0001 8713 wghx(0:3) 0.187 wghh(3:0) -1.186
13.161 0 8713 wghx(1:0) 0.71 wghh(4:0) -2.783
8.871 0 8713 wghx(1:1) 1.124
7.26 0.0001 8713 wghx(1:2) -1.18
wghx(1:3) -0.232
wghx(2:0) 0.601
wghx(2:1) 0.556
wghx(2:2) -0.038
wghx(2:3) 0.407
wghx(3:0) 0.585
wghx(3:1) 0.615
wghx(3:2) 0.005
wghx(3:3) 0.438
wghx(3:1) 0.635
wghx(3:2) 0.631
wghx(3:3) 0.61
wghx(3:4) 0.038
参考: 回帰分析の結果との比較
予測ヨソクデータ
x1 x2 x3 x4 予測値 回帰カイキ予測ヨソク 学習ガクシュウY
6 8 4 3 10.77 10.6437 11
6 7 6 8 10.027 9.93199 10
5 6 4 8 8.736 8.78389 9
3 5 2 3 6.872 7.48038
7 10 5 6 12.933 13.0607 13
エクセルでの回帰分析結果
回帰統計
重相関 R 0.99315
重決定 R2 0.98635
補正 R2 0.95905
標準誤差 0.44817
観測数 7
分散分析表
  自由度 変動 分散 観測された分散比 有意 F
回帰 4 29.0269 7.25671 36.1286 0.02711
残差 2 0.40172 0.20086
合計 6 29.4286      
  係数 標準誤差 P-値 下限 95% 上限 95% 下限 95.0% 上限 95.0%
切片 1.82139 0.90091 2.02173 0.18058 -2.0549 5.69769 -2.0549 5.69769
x1 -0.1489 0.84381 -0.1765 0.87619 -3.7795 3.48174 -3.7795 3.48174
x2 1.15652 0.51072 2.26451 0.15182 -1.0409 3.35396 -1.0409 3.35396
x3 0.07024 0.13329 0.52693 0.65085 -0.5033 0.64376 -0.5033 0.64376
x4 0.06086 0.12866 0.47302 0.6828 -0.4927 0.61446 -0.4927 0.61446
100行×20列の機能制限版は、こちら↓をクリックして下さい。
クリックの前に、扱うことができる行列の数を、もう一度ご確認下さい。
100行×20列の機能制限版のご購入は、こちらからどうぞ
400行×40列の機能制限版は、こちら↓をクリックして下さい。
クリックの前に、扱うことができる行列の数を、もう一度ご確認下さい。
400行×40列の機能拡張版のご購入は、こちらからどうぞ
↑クリックすると、インフォカートの決済画面に移ります。
●特定商取引法に基づく表記