神经网络迭代次数的数学构成
每个神经网络对应每个收敛标准δ都有一个特征的迭代次数n,因此可以用迭代次数曲线n(δ)来评价网络性能。
在《神经网络的迭代次数是一个线性的变量吗?》中得到表达式
一个二分类网络分类两个对象A和B,B中有K张图片,B的第i张图片被取样的概率为pi,B中第i张图片相对A的迭代次数为ni最终的迭代次数nt等于pi*ni的累加和。
由此可以构造两个矩阵一个是随机矩阵PJ
PJ表明图片集B中第i张图片被抽样到的概率
和矩阵NJ
NJ表明图片集B中第i张图片相对A的迭代次数
总的迭代次数nt等于矩阵PJ和NJ的点积
为了验证这个关系构造了等式
制作一个二分类网络区分数据集mnist0和数据集B,其中B中只有两张图片两张图片被抽样到的概率比是7:3.
本文验算这个表达式是否正确
实验过程
制作一个带一个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 ; 70% x=1, 30%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的比例是7:3.
具体进样顺序 |
|
|||
进样顺序 |
迭代次数 |
|
||
δ=0.5 |
|
|||
mnist 0-1 |
1 |
判断是否达到收敛 |
||
70% x=1,30% x=0.1 |
2 |
判断是否达到收敛 |
||
梯度下降 |
|
|||
mnist 0-2 |
3 |
判断是否达到收敛 |
||
70% x=1,30% x=0.1 |
4 |
判断是否达到收敛 |
||
梯度下降 |
|
|||
…… |
|
|||
mnist 0-4999 |
9997 |
判断是否达到收敛 |
||
70% x=1,30% x=0.1 |
9998 |
判断是否达到收敛 |
||
梯度下降 |
|
|||
…… |
|
|||
如果4999图片内没有达到收敛标准再次从头循环 |
|
|||
mnist 0-1 |
9999 |
判断是否达到收敛 |
||
70% x=1,30% x=0.1 |
10000 |
判断是否达到收敛 |
||
…… |
|
|||
达到收敛标准记录迭代次数,将这个过程重复199次,取平均 |
|
|||
δ=0.4 |
|
|||
…… |
|
相当于分类两个图片集,一个图片集是mnist的0另一个图片集只有两张图片,两张图片被取样的概率是7:3
得到的数据
用0和x二分类 |
||||||||
1:0.1=7:3 |
||||||||
f2[0] |
f2[1] |
迭代次数n |
平均准确率p-ave |
δ |
耗时ms/次 |
耗时ms/199次 |
耗时min/199次 |
最大准确率p-max |
0.502766167 |
0.498438788 |
16.89447236 |
0.500913551 |
0.5 |
713.4773869 |
141997 |
2.366616667 |
0.926713948 |
0.608346966 |
0.391795164 |
1069.512563 |
0.477824109 |
0.4 |
889.9497487 |
177116 |
2.951933333 |
0.946099291 |
0.713220097 |
0.286685412 |
1283.241206 |
0.550461527 |
0.3 |
918.8994975 |
182877 |
3.04795 |
0.994799054 |
0.81561914 |
0.184037021 |
1421.693467 |
0.592434988 |
0.2 |
946.2060302 |
188295 |
3.13825 |
0.996690307 |
0.912185353 |
0.087938344 |
1701.321608 |
0.638827708 |
0.1 |
991.1859296 |
197262 |
3.2877 |
0.996690307 |
0.991788205 |
0.008210193 |
2598.407035 |
0.605723654 |
0.01 |
676.4773869 |
134619 |
2.24365 |
0.996690307 |
0.999231196 |
7.69E-04 |
4168.899497 |
0.55280421 |
0.001 |
1414.160804 |
281418 |
4.6903 |
0.996690307 |
0.999924902 |
7.51E-05 |
8854.396985 |
0.515128836 |
1.00E-04 |
2244.592965 |
446674 |
7.444566667 |
0.998108747 |
0.999928081 |
7.19E-05 |
9283.763819 |
0.530389536 |
9.00E-05 |
2297.58794 |
457220 |
7.620333333 |
0.994326241 |
0.999935669 |
6.43E-05 |
9880.266332 |
0.520472338 |
8.00E-05 |
2392.567839 |
476122 |
7.935366667 |
0.986761229 |
0.999944152 |
5.58E-05 |
10601.24121 |
0.532264158 |
7.00E-05 |
2505.40201 |
498591 |
8.30985 |
0.997163121 |
0.999952671 |
4.73E-05 |
10848.90955 |
0.53355192 |
6.00E-05 |
2547.145729 |
506914 |
8.448566667 |
0.997635934 |
0.99995988 |
4.01E-05 |
11631.47236 |
0.535542963 |
5.00E-05 |
2689.668342 |
535245 |
8.92075 |
0.993380615 |
0.999968882 |
3.11E-05 |
12720.22613 |
0.55244069 |
4.00E-05 |
2134.442211 |
424754 |
7.079233333 |
0.998108747 |
0.999976519 |
2.35E-05 |
13737.0201 |
0.544514535 |
3.00E-05 |
3031.844221 |
603338 |
10.05563333 |
0.991962175 |
0.999984538 |
1.55E-05 |
17248.18593 |
0.52698243 |
2.00E-05 |
3657.703518 |
727887 |
12.13145 |
0.994799054 |
0.999992179 |
7.83E-06 |
22052.75879 |
0.528897442 |
1.00E-05 |
4364.21608 |
868495 |
14.47491667 |
0.995271868 |
0.99999317 |
6.83E-06 |
24384.80905 |
0.511448495 |
9.00E-06 |
4749.442211 |
945139 |
15.75231667 |
0.996690307 |
0.999993717 |
6.28E-06 |
26705.69347 |
0.521218385 |
8.00E-06 |
4640.160804 |
923393 |
15.38988333 |
0.998108747 |
0.999994442 |
5.55E-06 |
27993.34171 |
0.527341198 |
7.00E-06 |
5443.035176 |
1083165 |
18.05275 |
0.995271868 |
0.999995217 |
4.78E-06 |
28507.85427 |
0.513510816 |
6.00E-06 |
5401.894472 |
1074977 |
17.91628333 |
0.99858156 |
0.99999597 |
4.03E-06 |
32254.60804 |
0.531187854 |
5.00E-06 |
5895.522613 |
1173209 |
19.55348333 |
0.991016548 |
0.999996785 |
3.22E-06 |
33503.83417 |
0.52082873 |
4.00E-06 |
6474.693467 |
1288464 |
21.4744 |
0.997635934 |
0.99999755 |
2.45E-06 |
40578.65829 |
0.532316428 |
3.00E-06 |
7652.869347 |
1522922 |
25.38203333 |
0.997163121 |
0.999998323 |
1.68E-06 |
52578.50754 |
0.510424463 |
2.00E-06 |
9643.909548 |
1919170 |
31.98616667 |
0.988652482 |
0.99999916 |
8.40E-07 |
74879.58291 |
0.515432957 |
1.00E-06 |
14311.54271 |
2847998 |
47.46663333 |
0.992907801 |
所以现在有了3个迭代次数分别是
x=1 |
n1 |
x=0.1 |
n0.1 |
0.7x=1||0.3x=0.1 |
n1-0.1 |
验算n1-0.1与n1和n0.1之间的关系
7:3 |
1 |
0.1 |
理论值 |
实测值 |
||
δ |
|
迭代次数n1 |
迭代次数n0.1 |
0.7*n1+0.3*n0.1 |
|
理论值/实测值 |
0.5 |
16.89447236 |
17.40201005 |
17.87437186 |
17.54371859 |
16.89447236 |
1.038429506 |
0.4 |
1069.512563 |
951.2110553 |
1408.577889 |
1088.421106 |
1069.512563 |
1.017679589 |
0.3 |
1283.241206 |
1144.577889 |
1720.517588 |
1317.359799 |
1283.241206 |
1.026587825 |
0.2 |
1421.693467 |
1313.633166 |
1995.110553 |
1518.076382 |
1421.693467 |
1.067794441 |
0.1 |
1701.321608 |
1505.824121 |
2243.834171 |
1727.227136 |
1701.321608 |
1.015226708 |
0.01 |
2598.407035 |
2362.115578 |
3001.552764 |
2553.946734 |
2598.407035 |
0.982889401 |
0.001 |
4168.899497 |
4129.020101 |
4007.532663 |
4092.573869 |
4168.899497 |
0.98169166 |
1.00E-04 |
8854.396985 |
10353.37186 |
5532.668342 |
8907.160804 |
8854.396985 |
1.005959053 |
9.00E-05 |
9283.763819 |
10653.93467 |
5683.753769 |
9162.880402 |
9283.763819 |
0.986979051 |
8.00E-05 |
9880.266332 |
11292.43719 |
6131.934673 |
9744.286432 |
9880.266332 |
0.986237223 |
7.00E-05 |
10601.24121 |
11761.11055 |
6106.919598 |
10064.85327 |
10601.24121 |
0.949403289 |
6.00E-05 |
10848.90955 |
12657.69347 |
6014.688442 |
10664.79196 |
10848.90955 |
0.983028931 |
5.00E-05 |
11631.47236 |
13305.44221 |
6455.321608 |
11250.40603 |
11631.47236 |
0.967238341 |
4.00E-05 |
12720.22613 |
15844.29648 |
6724.738693 |
13108.42915 |
12720.22613 |
1.030518562 |
3.00E-05 |
13737.0201 |
17291.77387 |
7055.80402 |
14220.98291 |
13737.0201 |
1.035230553 |
2.00E-05 |
17248.18593 |
20753.56281 |
7763.41206 |
16856.51759 |
17248.18593 |
0.977292201 |
1.00E-05 |
22052.75879 |
27708.19598 |
8749.050251 |
22020.45226 |
22052.75879 |
0.998535034 |
9.00E-06 |
24384.80905 |
29358.8593 |
8879.41206 |
23215.02513 |
24384.80905 |
0.95202817 |
8.00E-06 |
26705.69347 |
30689.87437 |
9387.150754 |
24299.05729 |
26705.69347 |
0.90988303 |
7.00E-06 |
27993.34171 |
33437.22111 |
9532.648241 |
26265.84925 |
27993.34171 |
0.938289166 |
6.00E-06 |
28507.85427 |
36960.63819 |
9957.683417 |
28859.75176 |
28507.85427 |
1.012343878 |
5.00E-06 |
32254.60804 |
40669.92462 |
10661.56281 |
31667.41608 |
32254.60804 |
0.981795099 |
4.00E-06 |
33503.83417 |
44594.04523 |
11025.0402 |
34523.34372 |
33503.83417 |
1.030429638 |
3.00E-06 |
40578.65829 |
51522.10553 |
11653.63317 |
39561.56382 |
40578.65829 |
0.974935237 |
2.00E-06 |
52578.50754 |
67583.53266 |
13076.9196 |
51231.54874 |
52578.50754 |
0.974381951 |
1.00E-06 |
74879.58291 |
107224.5276 |
15184.58794 |
79612.54573 |
74879.58291 |
1.063207655 |
从数值看
这个公式还是符合的很好的。
表明这个表达式是有价值的。
实验参数
学习率 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 |