y = x ^ 2を推定するニューラルネットワークを作成しようとしました。そこで、フィッティングニューラルネットワークを作成し、入力と出力のサンプルをいくつか提供しました。このネットワークをC++で構築しようとしました。しかし、結果は私が予想したものとは異なります。
次の入力を使用します。
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71
および次の出力:
0 1 4 9 16 25 36 49 64 81100121144169196225256289324361400441484529576625676729 784 841 9009611024 1089 1156 1225 1296 1369 1444 1521 1600 1681 1764 1849 1936 2025 2116 2209 2304 2401 2500 2601 2704 2809 2916 3025 3136 3249 3364 3481 3600 3721 3844 3969 4096 4225 4356 4489 4624 4761 4900 5041 1 4 9 16 25 36 49 64 81100121144169196225256289324361400441484529576625676729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521 1600 1681 1764 1849 1936 2025 2116 2209 2304 2401 2500 2601 2704 2809 2916 3025 3136 3249 3364 3481 3600 3721 3844 3969 4096 4225 4356 4489 4624 4761 4900 5041
フィッティングツールネットワークを使用しました。行列行を使用します。トレーニングは70%、検証は15%、テストも15%です。隠れニューロンの数は2つです。次に、コマンドラインで次のように記述しました。
purelin(net.LW{2}*tansig(net.IW{1}*inputTest+net.b{1})+net.b{2})
その他の情報 :
私のnet.b[1]は次のとおりです:-1.16610230053776 1.16667147712026
私のnet.b[2]は51.3266249426358です。
そしてnet.IW(1)は次のとおりです:0.344272596370387 0.344111217766824
net.LW(2)は:31.7635369693519 -31.8082184881063
inputTestが3の場合、このコマンドの結果は16ですが、約9になるはずです。どこかでエラーが発生しましたか?
私の問題のような問題を含むMATLABのStackOverflowpost Neural networkを見つけましたが、少し違いがあり、その問題では入力と出力の範囲が同じですが、私の問題ではありません。その解決策は、結果をスケールアウトする必要があると言っていますが、どうすれば結果をスケールアウトできますか?