神经网络迭代次数的线性累加现象
神经网络对应每个收敛标准δ都有一个特征的迭代次数n,因此可以用迭代次数曲线n(δ)来评价网络性能。
在《神经网络的迭代次数是一个线性的变量吗?》中得到表达式
一个二分类网络分类两个对象A和B,B中有K张图片,B的第K张图片被取样的概率为p,B中第K张图片相对A的迭代次数为n最终的迭代次数等于pn的累加和。
本文验算这个表达式是否正确
实验过程
制作一个带一个3*3卷积核的神经网络,测试集是mnist的0和一张图片x,将28*28的图片缩小成9*9,隐藏层30个节点所以网络的结构是
这个网络分成两个部分左边的是让mnist 0向1,0收敛,右边的是让x向 0,1收敛。但是让左右两边的权重实现同步更新,实现权重共享。前面大量实验表明这种效果相当于将两个弹性系数为k1,k2的弹簧并联成一个弹性系数为k的弹簧,并且让k1=k2=k/2的过程。
将上图简写成
S(mnist0)81-(con3*3)49-30-2-(1,0)
S(x)81-(con3*3)49-30-2-(0,1)
w=w,w1=w1,w2=w2
进一步简写成
d2(mnist0, x=1)81-con(3*3)49-30-2-(2*k) ,k∈{0,1}
这个网络的收敛标准是
if (Math.abs(f2[0]-y[0])< δ && Math.abs(f2[1]-y[1])< δ )
本文尝试了δ从0.5到1e-6在内的26个值,训练集是mnist0
图片x就是一张二维数组,让x=1.
具体进样顺序 |
||||
进样顺序 |
迭代次数 |
|||
δ=0.5 |
||||
mnist 0-1 |
1 |
判断是否达到收敛 |
||
X |
2 |
判断是否达到收敛 |
||
梯度下降 |
||||
mnist 0-2 |
3 |
判断是否达到收敛 |
||
X |
4 |
判断是否达到收敛 |
||
梯度下降 |
||||
…… |
||||
mnist 0-4999 |
9997 |
判断是否达到收敛 |
||
X |
9998 |
判断是否达到收敛 |
||
梯度下降 |
||||
…… |
||||
如果4999图片内没有达到收敛标准再次从头循环 |
||||
mnist 0-1 |
9999 |
判断是否达到收敛 |
||
X |
10000 |
判断是否达到收敛 |
||
…… |
||||
达到收敛标准记录迭代次数,将这个过程重复199次 |
||||
δ=0.4 |
||||
…… |
用这个方法可以得到网络
d2(mnist0, x=1)81-con(3*3)49-30-2-(2*k) ,k∈{0,1}
的迭代次数曲线n1。
用同样的办法制作另一个网络
d2(mnist0, x=0.1)81-con(3*3)49-30-2-(2*k) ,k∈{0,1}
让mnist 0向1,0收敛,右边的是让x向 0,1收敛。但让x=0.1.得到迭代次数曲线n0.1
实验数据
在《测量一组对角矩阵的频率和质量》中已经将这两个迭代次数都测出来了
1 |
0.1 |
|
δ |
迭代次数n1 |
迭代次数n0.1 |
0.5 |
17.40201005 |
17.87437186 |
0.4 |
951.2110553 |
1408.577889 |
0.3 |
1144.577889 |
1720.517588 |
0.2 |
1313.633166 |
1995.110553 |
0.1 |
1505.824121 |
2243.834171 |
0.01 |
2362.115578 |
3001.552764 |
0.001 |
4129.020101 |
4007.532663 |
1.00E-04 |
10353.37186 |
5532.668342 |
9.00E-05 |
10653.93467 |
5683.753769 |
8.00E-05 |
11292.43719 |
6131.934673 |
7.00E-05 |
11761.11055 |
6106.919598 |
6.00E-05 |
12657.69347 |
6014.688442 |
5.00E-05 |
13305.44221 |
6455.321608 |
4.00E-05 |
15844.29648 |
6724.738693 |
3.00E-05 |
17291.77387 |
7055.80402 |
2.00E-05 |
20753.56281 |
7763.41206 |
1.00E-05 |
27708.19598 |
8749.050251 |
9.00E-06 |
29358.8593 |
8879.41206 |
8.00E-06 |
30689.87437 |
9387.150754 |
7.00E-06 |
33437.22111 |
9532.648241 |
6.00E-06 |
36960.63819 |
9957.683417 |
5.00E-06 |
40669.92462 |
10661.56281 |
4.00E-06 |
44594.04523 |
11025.0402 |
3.00E-06 |
51522.10553 |
11653.63317 |
2.00E-06 |
67583.53266 |
13076.9196 |
1.00E-06 |
107224.5276 |
15184.58794 |
现在做第3个网络
d2(mnist0 ; 60% x=1, 40%x=0.1)81-con(3*3)49-30-2-(2*k) ,k∈{0,1}
让mnist 0向1,0收敛,右边的是让x向 0,1收敛。但让x在1和0.1之间随机。
让1与0.1的比例是6:4.
具体进样顺序 |
|
|||
进样顺序 |
迭代次数 |
|
||
δ=0.5 |
|
|||
mnist 0-1 |
1 |
判断是否达到收敛 |
||
60% x=1,40% x=0.1 |
2 |
判断是否达到收敛 |
||
梯度下降 |
|
|||
mnist 0-2 |
3 |
判断是否达到收敛 |
||
60% x=1,40% x=0.1 |
4 |
判断是否达到收敛 |
||
梯度下降 |
|
|||
…… |
|
|||
mnist 0-4999 |
9997 |
判断是否达到收敛 |
||
60% x=1,40% x=0.1 |
9998 |
判断是否达到收敛 |
||
梯度下降 |
|
|||
…… |
|
|||
如果4999图片内没有达到收敛标准再次从头循环 |
|
|||
mnist 0-1 |
9999 |
判断是否达到收敛 |
||
60% x=1,40% x=0.1 |
10000 |
判断是否达到收敛 |
||
…… |
|
|||
达到收敛标准记录迭代次数,将这个过程重复199次 |
|
|||
δ=0.4 |
|
|||
…… |
|
相当于分类两个图片集,一个图片集是mnist的0另一个图片集只有两张图片,两张图片被取样的概率是6:4
得到的数据
1:0.1=6:4 |
||||||||
f2[0] |
f2[1] |
迭代次数n |
平均准确率p-ave |
δ |
耗时ms/次 |
耗时ms/199次 |
耗时min/199次 |
最大准确率p-max |
0.499731669 |
0.498415314 |
15.4321608 |
0.502389014 |
0.5 |
829.9849246 |
165167 |
2.752783333 |
0.773049645 |
0.608582727 |
0.391220516 |
1106.678392 |
0.490625705 |
0.4 |
1032.306533 |
205430 |
3.423833333 |
0.976832151 |
0.712834918 |
0.28679338 |
1418.437186 |
0.576345082 |
0.3 |
1117.60804 |
222422 |
3.707033333 |
0.994799054 |
0.814122794 |
0.185951639 |
1466.688442 |
0.623818858 |
0.2 |
1118.422111 |
222661 |
3.711016667 |
0.997163121 |
0.912685745 |
0.087285272 |
1781.492462 |
0.646250163 |
0.1 |
1156.246231 |
230095 |
3.834916667 |
0.995271868 |
0.991973102 |
0.008021737 |
2625.341709 |
0.638720791 |
0.01 |
1313.492462 |
261385 |
4.356416667 |
0.996217494 |
0.99925116 |
7.48E-04 |
4167.311558 |
0.607593523 |
0.001 |
1618.939698 |
322169 |
5.369483333 |
0.998108747 |
0.999921571 |
7.86E-05 |
8358.19598 |
0.553640543 |
1.00E-04 |
2028.286432 |
403629 |
6.72715 |
0.995744681 |
0.999930909 |
6.92E-05 |
8459.060302 |
0.551466553 |
9.00E-05 |
2364.964824 |
470628 |
7.8438 |
0.997635934 |
0.999937007 |
6.29E-05 |
9290.869347 |
0.535559595 |
8.00E-05 |
2486.271357 |
494768 |
8.246133333 |
0.995744681 |
0.99994614 |
5.39E-05 |
9643.371859 |
0.547686423 |
7.00E-05 |
2552.115578 |
507879 |
8.46465 |
0.996690307 |
0.999954978 |
4.50E-05 |
10088.04523 |
0.546776435 |
6.00E-05 |
2647.643216 |
526881 |
8.78135 |
0.993853428 |
0.999961134 |
3.88E-05 |
11241.1809 |
0.529522316 |
5.00E-05 |
2855.462312 |
568237 |
9.470616667 |
0.995744681 |
0.999968124 |
3.18E-05 |
12429.0402 |
0.536198724 |
4.00E-05 |
3066.41206 |
610216 |
10.17026667 |
0.996217494 |
0.999976997 |
2.30E-05 |
13595.53266 |
0.547436948 |
3.00E-05 |
3072.015075 |
611347 |
10.18911667 |
0.993853428 |
0.999984209 |
1.58E-05 |
14639.11055 |
0.553756965 |
2.00E-05 |
3967.502513 |
789549 |
13.15915 |
0.995744681 |
0.99999235 |
7.65E-06 |
21105.31156 |
0.514109555 |
1.00E-05 |
5362.361809 |
1067111 |
17.78518333 |
0.986288416 |
0.999992956 |
7.04E-06 |
23825.72362 |
0.523351985 |
9.00E-06 |
5868.38191 |
1167816 |
19.4636 |
0.997635934 |
0.999993873 |
6.13E-06 |
22955.43216 |
0.5491999 |
8.00E-06 |
4949.914573 |
985034 |
16.41723333 |
0.993853428 |
0.999994449 |
5.56E-06 |
25968.22613 |
0.525471328 |
7.00E-06 |
6241.738693 |
1242135 |
20.70225 |
0.995744681 |
0.999995305 |
4.70E-06 |
26669.97487 |
0.516017439 |
6.00E-06 |
6459.59799 |
1285476 |
21.4246 |
0.991489362 |
0.999996124 |
3.87E-06 |
30357.0603 |
0.519445929 |
5.00E-06 |
6901.41206 |
1373382 |
22.8897 |
0.997163121 |
0.999996842 |
3.16E-06 |
32991.17085 |
0.532447106 |
4.00E-06 |
7681.236181 |
1528582 |
25.47636667 |
0.996217494 |
0.999997667 |
2.33E-06 |
37621.35176 |
0.52875251 |
3.00E-06 |
8458.40201 |
1683222 |
28.0537 |
0.994326241 |
0.99999837 |
1.63E-06 |
49854.86935 |
0.542544876 |
2.00E-06 |
11146.78392 |
2218227 |
36.97045 |
0.995744681 |
0.999999185 |
8.15E-07 |
74084.86935 |
0.528457892 |
1.00E-06 |
16062.72362 |
3196485 |
53.27475 |
0.995271868 |
所以现在有了3个迭代次数分别是
x=1 |
n1 |
x=0.1 |
n0.1 |
x=1||x=0.1 |
n1-0.1 |
验算n1-0.1与n1和n0.1之间的关系
1 |
0.1 |
理论值 |
实测值 |
理论值/实测值 |
|
δ |
迭代次数n1 |
迭代次数n0.1 |
0.6*n1+0.4*n0.1 |
|
|
0.5 |
17.40201005 |
17.87437186 |
17.59095477 |
15.4321608 |
1.139889287 |
0.4 |
951.2110553 |
1408.577889 |
1134.157789 |
1106.678392 |
1.024830517 |
0.3 |
1144.577889 |
1720.517588 |
1374.953769 |
1418.437186 |
0.969344136 |
0.2 |
1313.633166 |
1995.110553 |
1586.224121 |
1466.688442 |
1.081500389 |
0.1 |
1505.824121 |
2243.834171 |
1801.028141 |
1781.492462 |
1.010965906 |
0.01 |
2362.115578 |
3001.552764 |
2617.890452 |
2625.341709 |
0.997161796 |
0.001 |
4129.020101 |
4007.532663 |
4080.425126 |
4167.311558 |
0.979150483 |
1.00E-04 |
10353.37186 |
5532.668342 |
8425.090452 |
8358.19598 |
1.008003458 |
9.00E-05 |
10653.93467 |
5683.753769 |
8665.862312 |
8459.060302 |
1.024447398 |
8.00E-05 |
11292.43719 |
6131.934673 |
9228.236181 |
9290.869347 |
0.993258632 |
7.00E-05 |
11761.11055 |
6106.919598 |
9499.434171 |
9643.371859 |
0.985073925 |
6.00E-05 |
12657.69347 |
6014.688442 |
10000.49146 |
10088.04523 |
0.991321037 |
5.00E-05 |
13305.44221 |
6455.321608 |
10565.39397 |
11241.1809 |
0.939882923 |
4.00E-05 |
15844.29648 |
6724.738693 |
12196.47337 |
12429.0402 |
0.981288432 |
3.00E-05 |
17291.77387 |
7055.80402 |
13197.38593 |
13595.53266 |
0.970714885 |
2.00E-05 |
20753.56281 |
7763.41206 |
15557.50251 |
14639.11055 |
1.062735503 |
1.00E-05 |
27708.19598 |
8749.050251 |
20124.53769 |
21105.31156 |
0.953529524 |
9.00E-06 |
29358.8593 |
8879.41206 |
21167.0804 |
23825.72362 |
0.888412908 |
8.00E-06 |
30689.87437 |
9387.150754 |
22168.78492 |
22955.43216 |
0.965731543 |
7.00E-06 |
33437.22111 |
9532.648241 |
23875.39196 |
25968.22613 |
0.919407889 |
6.00E-06 |
36960.63819 |
9957.683417 |
26159.45628 |
26669.97487 |
0.980857927 |
5.00E-06 |
40669.92462 |
10661.56281 |
28666.5799 |
30357.0603 |
0.944313435 |
4.00E-06 |
44594.04523 |
11025.0402 |
31166.44322 |
32991.17085 |
0.944690425 |
3.00E-06 |
51522.10553 |
11653.63317 |
35574.71658 |
37621.35176 |
0.945599106 |
2.00E-06 |
67583.53266 |
13076.9196 |
45780.88744 |
49854.86935 |
0.918283169 |
1.00E-06 |
107224.5276 |
15184.58794 |
70408.55176 |
74084.86935 |
0.950376944 |
将理论值和实测值画成图
从数值看
这个公式还是符合的很好的。
表明这个关系是成立的。
实验参数
学习率 0.1 |
权重初始化方式 |
Random rand1 =new Random(); |
int ti1=rand1.nextInt(98)+1; |
int xx=1; |
if(ti1%2==0) |
{ xx=-1;} |
tw[a][b]=xx*((double)ti1/x); |
第一层第二层和卷积核的权重的初始化的x分别为1000,1000,200 |
本文原始数据比较多有感兴趣的朋友可以到我的资源里下载