system: [SYSTEM]

user: 3. 构造逼近多元函数的前馈神经网络 3.1. 一元函数 对于一元函数的逼近网络，我们选择“1-n-1”类型的前馈神经网络，即该网络含有一个输入层、一个输出层和一个隐含层，其中输入层和输出层各有一个神经元，隐含层有n个神经元。通过试验发现不同函数的最适隐含层神经元数目不同，所以要具体函数具体分析。 以函数 F ( x ) = { | x | ∗ cos ( x ) ， x < 0 e x − 1 ， x ≥ 0 为例，定义 x → = ( x ) ，选取 x ∈ [ − 2 π ， 2 π ] 时、间距为0.1的 ( x → ， F ( x → ) ) 数据组作为输入数据，构建的前馈神经网络参数设定为训练迭代次数为10 5 次，训练目标误差函数值小于1 × 10 −10 ，当隐含层节点数目为27~31个时，网络对该一元函数逼近的绝对值误差( | F ( x → ) − y w ， b ( x → ) | )如表1所示： Table 1 Absolute value error ( | F ( x → ) − y w ， b ( x → ) | ) of F ( x ) = { | x | ∗ cos ( x ) ， x < 0 e x − 1 ， x ≥ 0 neurons in different hidden layer 隐含层节点数目/个 训练次数/次 绝对值误差 | F ( x → ) − y w ， b ( x → ) | 27 262 9.97998e−06 28 229 9.96494e−06 29 137 9.87421e−06 30 217 9.94987e−06 31 914 0.00001 表1. F ( x ) = { | x | ∗ cos ( x ) ， x < 0 e x − 1 ， x ≥ 0 函数不同隐含层神经元的绝对值误差( | F ( x → ) − y w ， b ( x → ) | ) 表1结合不同隐含层节点数目的网络逼近函数图观察得，节点数目在27~29时，网络的误差逐渐变小，节点数目在30及以上时，网络的误差变大。综上可得，隐含层节点数目为29个时，对应前馈神经网络对函数 F ( x ) = { | x | ∗ cos ( x ) ， x < 0 e x − 1 ， x ≥ 0 逼近效果最好。 加入以上最适隐含层神经元数目后，创建训练该网络，然后输出训练后网络的权值矩阵和阈值矩阵如下： i w 1 = [ − 17.5017 17.7843 − 17.2097 − 18.1494 18.0743 − 17.8794 17.5053 − 18.3826 17.9985 17.9110 − 18.3157 19.1000 − 17.8663 17.9186 − 18.9242 − 17.9863 18.4468 − 17.6651 19.0108 22.9044 − 22.9604 − 23.1927 − 20.8928 − 18.8652 − 13.8623 − 24.4628 29.8524 − 25.2123 − 24.2074 22.9180 16.4425 ] ， b 1 = [ 17.7830 − 16.3904 15.7378 14.5076 − 13.1672 11.5042 − 10.6494 9.6780 − 8.2057 − 6.6430 5.7357 − 4.6570 2.9741 − 1.9774 0.2439 − 0.1555 0.6655 − 1.8936 4.1492 6.3582 − 7.6563 − 10.9059 − 11.0087 − 7.5742 − 9.8597 − 18.5480 23.8604 − 21.3395 − 21.9026 22.2410 18.7242 ] l w 2 = [ − 0.2707 0.4543 0.4056 0.1569 − 0.1736 0.1094 0.1429 − 0.1671 0.1526 0.0017 0.1467 − 0.1536 0.1332 0.1195 − 0.5946 0.7799 0.4650 − 0.0359 − 0.1729 − 0.1301 0.1556 0.0987 0.1081 0.4143 − 1.2026 − 0.1712 0.1004 − 0.3410 − 0.3413 0.2856 − 0.9539 ] b 2 = 0.3253 由上面计算得到的数值，可得如下神经网络函数： y w ， b ( x ) = p u r e l i n e ( i w 2 ∗ l o g s i g ( i w 1 ∗ x + b 1 ) + b 2 ) (8) 从图2中(右)图可以看出逼近该一元函数的前馈神经网络的误差绝对值在 ( 0 ， 8 × 10 − 5 ) 之间，结合其中网络输出结果与输入样本对比图分析可知，该网络逼近效果较好。 图2. (左) 该网络输出结果与输入样本的对比图，(右) 该网络逼近的绝对值误差( | F ( x ) − y w ， b ( x ) | )图 3.2. 二元函数 对于二元函数的逼近网络，我们选择“1-n-m-1”类型的前馈神经网络，即该网络含有一个输入层、一个输出层和两个隐含层，其中输入层和输出层各有一个神经元，两个隐含层分别有n个和m个神经元。 以函数 F ( x 1 ， x 2 ) = e x 1 ∗ cos ( x 2 ) + 2 为例，定义 x → = ( x 1 ， x 2 ) ，选取 ( x 1 ， x 2 ) ∈ [ − 10 ， 10 ] 2 时、间距为0.1的 ( x → ， F ( x → ) ) 数据组作为输入数据，构建的前馈神经网络参数设定为训练迭代次数为10 5 次，训练目标误差函数值小于1 × 10 −10 ，当隐含层节点数目分别为15~19个时，网络对1 × 10 −10 该函数逼近误差如表2所示： Table 2 Absolute value error ( | F ( x → ) − y w ， b ( x → ) | ) of neurons in different hidden layers of this binary functio 第1层隐含层节点数目/个 绝对值误差 | F ( x → ) − y w ， b ( x → ) | 第2层隐含层节点数目/个 15 16 17 18 19 15 1.76e−04 1.11e−05 5.28e−05 1.04e−05 1.14e−04 16 1.71e−05 9.95e−04 9.95e−06 9.99e−06 1.05e−05 17 1.03e−05 3.60e−05 1.13e−05 1.38e−05 9.98e−06 18 1.40e−05 1.76e−05 9.98e−06 9.98e−06 9.98e−04 19 1.24e−05 1.67e−05 0.000013 9.97e−06 0.00001 表2. 该二元函数不同隐含层神经元的绝对值误差( | F ( x → ) − y w ， b ( x → ) | ) 分析表2数据，结合不同隐含层节点数目的网络逼近函数图观察得，第1层隐含层神经元数目为17且第2层隐含层神经元数目为16时，该网络的精度最高。 加入以上最适隐含层神经元数目后，创建训练该网络，然后输出训练后网络的权值矩阵和阈值如下： i w 1 = [ − 4.5422 0.5258 − 0.7558 2.5546 1.2497 − 1.0693 − 2.1801 − 1.3271 0.9576 2.4907 0.5849 0.9661 − 1.2717 1.8328 − 0.9540 − 2.2704 − 0.4145 − 1.9829 − 1.5737 − 1.2474 1.3511 1.5302 − 2.7319 0.4415 − 1.5054 2.3729 − 1.8429 2.4382 − 1.9307 0.1799 − 0.5447 2.5053 − 0.5863 2.9935 ] ， b 1 = [ 6.5451 − 2.5071 − 1.1402 2.9001 − 3.5693 − 2.3158 0.9891 − 2.1784 − 0.3553 0.3076 − 0.0247 3.1840 − 0.4508 − 1.8328 1.0981 2.5750 − 4.1249 ] ， b 2 = [ 0.3778 0.2395 − 0.8920 − 0.9407 − 0.4885 0.2707 0.0726 − 0.5127 − 0.6129 0.3651 0.8171 0.1503 − 0.2486 − 0.9560 − 0.4690 0.4579 ] b 3 = 1 .8061 由上面计算得到的数值，可得如下神经网络函数： y w ， b ( x → ) = p u r e l i n e ( l o g s i g ( i w 2 ∗ l o g s i g ( i w 1 * x → + b 1 ) + b 2 ) + b 3 ) (9) 从图3中(右)图可以看出逼近该二元函数的前馈神经网络的误差绝对值在 ( 0 ， 1 × 10 − 4 ) 之间，结合其中网络原函数图像与网络输出结果图对比分析可知，该网络逼近效果较好。 图3. (左) 原函数图像，(中) 该网络输出结果图，(右) 该网络逼近的绝对值误差( | F ( x → ) − y w ， b ( x → ) | )图 3.3. 三元函数 对于三元函数的逼近网络，我们选择“1-n-m-k-1”类型的前馈神经网络，即该网络含有一个输入层、一个输出层和三个隐含层，其中输入层和输出层各有一个神经元，三个隐含层分别有n个、m个和k个神经元。 以函数 F ( x → ) = x 1 2 + x 2 2 + x 3 2 − 1 为例，定义 x → = ( x 1 ， x 2 ， x 3 ) ，选取 x 1 ， x 2 ， x 3 ∈ [ − 3 ， 3 ] 3 时、间距为0.3的 ( x → ， F ( x → ) ) 数据组作为输入数据，构建的前馈神经网络参数设定为训练迭代次数为10 5 次，训练目标的误差小于1 × 10 −10 ，当隐含层节点数目分别为8~12个时，网络对该函数逼近误差如表3~表5所示： Table 3 When the number of neurons in the first layer is 8， the absolute value error ( | F ( x → ) − y w ， b ( x → ) | ) of the network approximation to the ternary functio 第1层隐含层节点数目/个 绝对值误差 | F ( x → ) − y w ， b ( x → ) | 第2层隐含层节点数目/个 8 9 10 11 12 8 0.00011 2.35e−05 1.80e−05 1.13e−05 1.86e−05 9 4.33e−05 1.76e−05 1.86e−05 2.38e−05 2.45e−05 10 3.82e−05 2.33e−05 3.96e−05 2.65e−05 1.22e−05 11 3.74e−05 3.66e−05 2.56e−05 2.05e−05 3.06e−05 12 6.67e−05 1.74e−05 7.26e−05 3.89e−05 3.70e−05 表3. 第1层隐含层神经元数目为8个时，网络对该三元函数逼近的绝对值误差( | F ( x → ) − y w ， b ( x → ) | ) Table 4 When the number of neurons in the first layer is 9， the absolute value error ( | F ( x → ) − y w ， b ( x → ) | ) of the network approximation to the ternary functio 第1层隐含层节点数目/个 绝对值误差 | F ( x → ) − y w ， b ( x → ) | 第2层隐含层节点数目/个 8 9 10 11 12 8 3.09e−05 1.94e−05 1.03e−05 3.42e−05 2.44e−05 9 1.55e−05 4.19e−05 2.37e−05 9.67e−05 9.99e−06 10 1.98e−05 1.72e−05 2.26e−05 0.000014 1.45e−05 11 0.00001 3.91e−05 2.45e−05 3.16e−05 2.08e−05 12 2.42e−05 1.90e−05 3.17e−05 1.47e−05 5.82e−05 表4. 第1层隐含层神经元数目为9个时，网络对该三元函数逼近的绝对值误差( | F ( x → ) − y w ， b ( x → ) | ) Table 5 When the number of neurons in the first layer is 10， the absolute value error ( | F ( x → ) − y w ， b ( x → ) | ) of the network approximation to the ternary functio 第1层隐含层节点数目/个 绝对值误差 | F ( x → ) − y w ， b ( x → ) | 第2层隐含层节点数目/个 8 9 10 11 12 8 1.49e−05 1.51e−05 1.51e−05 3.17e−05 2.60e−05 9 1.30e−05 0.000021 2.22e−05 1.46e−05 4.86e−05 10 1.87e−05 3.00e−05 9.98e−06 1，22e−05 1.84e−05 11 2.04e−05 3.15e−05 1.07e−05 1.06e−05 3.54e−05 12 5.74e−05 5.63e−05 1.29e−05 3.12e−05 1.8e−05 表5. 第1层隐含层神经元数目为10个时，网络对该三元函数逼近的绝对值误差( | F ( x → ) − y w ， b ( x → ) | ) 分析以表3、表4和表5的数据，结合不同隐含层节点数目的网络逼近函数图观察得，三层隐含层神经元数目均为10时，网络的精度最高。 加入以上最适隐含层神经元数目后，创建训练该网络，然后输出训练后网络的权值矩阵和阈值矩阵如下： i w 1 = [ 0 .0836 − 0 .0225 1 .4970 0 .3326 − 0 .3347 0 .0401 0 .0282 − 0 .0558 − 0 .5615 0 .0282 − 0 .2551 0 .0003 0 .0282 − 0 .4149 0 .0363 − 0 .3693 0 .3385 − 0 .0704 − 0 .3166 − 0 .1202 0 .0061 − 0 .0017 − 0 .0395 − 0 .5043 1 .0237 0 .9184 0 .8995 0 .1001 0 .5558 − 0 .0516 ] ， b 1 = [ 5 .7915 − 2 .3379 − 1 .9746 2 .9009 0 .3804 0 .2849 − 1 .3349 2 .4243 5 .6608 − 2 .5790 ] ， b 2 = [ 0 .1991 5 .7050 1 .0819 3 .5540 0 .4308 3 .9779 3 .7134 5 .0181 0 .0286 − 0 .2320 ] ， b 3 = [ − 2 .4620 5 .0485 − 4 .7870 3 .4847 3 .4674 − 0 .5793 2 .5626 − 2 .5435 2 .6451 1 .1902 ] l w 2 = [ 0.1489 − 1 .2592 − 0 .6252 0 .6565 − 1 .9817 2 .3197 0 .6367 − 1 .4759 1 .0787 − 2 .2479 − 0 .5982 4 .6431 2 .8179 − 1 .9800 − 2 .4183 − 0 .9405 6 .5865 − 3 .4205 − 0 .7129 2 .1821 3 .0404 0 .3904 1 .1372 − 0 .5190 − 0 .5646 − 2 .8891 2 .3506 0 .0118 − 0 .7921 − 0 .4121 0 .1027 0 .8304 − 1 .4192 − 1 .6764 − 1 .1641 − 0 .5833 − 2 .4755 − 2 .2549 2 .5575 − 0 .9718 1 .6900 3 .1445 0 .6508 3 .0838 − 2 .2925 0 .4650 0 .4518 − 4 .4013 − 0 .7923 0 .0261 1 .1173 − 1 .3508 − 1 .7383 − 2 .5259 − 0 .2260 − 0 .7103 − 2 .7721 3 .4172 − 3 .6923 − 1 .5190 0 .5790 − 3 .4405 2 .6726 0 .4454 1 .7916 − 0 .6335 − 4 .6042 − 3 .6064 0 .0606 − 1 .8064 0 .4809 − 1 .0025 − 3 .2142 0 .8175 − 0 .5893 0 .2096 2 .6041 − 3 .4490 − 1 .3181 − 2 .4099 − 1 .6148 0 .4207 0 .7285 − 2 .5659 − 2 .1103 − 2 .4858 1 .2063 − 0 .9127 3 .5801 1 .9192 1 .6121 − 2 .7586 0 .0855 1 .7616 4 .2070 1 .3123 0 .6139 − 2 .6655 − 1 .9198 0 .3693 ] b 4 = 2 .5851 由上面计算得到的数值，可得如下神经网络函数： y w ， b ( x → ) = p u r e l i n e ( l o g s i g ( l o g s i g ( i w 2 ∗ l o g s i g ( i w 1 ∗ x → + b 1 ) + b 2 ) + b 3 ) + b 4 ) (10) 从图4中(右)图可以看出逼近该三元函数的前馈神经网络的误差绝对值在 ( 0 ， 10 × 10 − 5 ) 之间，结合其中原函数图像和网络输出结果对比分析可知，该网络逼近效果较好。 图4. (左) 原函数图像，(中) 该网络输出结果图，(右) 该网络逼近的绝对值误差( | F ( x → ) − y w ， b ( x → ) | )图