每个神经网络对应每个收敛标准δ都有一个特征的迭代次数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 |