每个神经网络对应每个收敛标准δ都有一个特征的迭代次数n,因此可以用迭代次数曲线n(δ)来评价网络性能。
在《神经网络的迭代次数是一个线性的变量吗?》中得到表达式
一个二分类网络分类两个对象A和B,B中有K张图片,B的第i张图片被取样的概率为pi,B中第i张图片相对A的迭代次数为ni,最终的迭代次数nt等于pi*ni的累加和。
由此可以构造两个矩阵一个是随机矩阵PJ和迭代次数矩阵NJ
总的迭代次数nt等于矩阵PJ和NJ的点积
PJ表明图片集B中第i张图片被抽样到的概率为pi
NJ表明图片集B中第i张图片相对A的迭代次数为ni
由此总迭代次数nt可以通过构造矩阵PJ和矩阵NJ的方法精确的控制
本文分别制作两个矩阵让
本文验证这个乘法关系是否成立
制作一个二分类网络区分数据集mnist0和数据集B,其中B中只有两张图片,两张图片被抽样到的概率比是8:2.
本文验算这个表达式是否正确
实验过程
首先用实验的方法测量n1
制作一个带一个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。
第二步测量n0.1
用同样的办法制作另一个网络
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 ; 80% x=1, 20%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的比例是8:2.
具体进样顺序 |
| |||
进样顺序 | 迭代次数 |
| ||
δ=0.5 |
| |||
mnist 0-1 | 1 | 判断是否达到收敛 | ||
80% x=1,20% x=0.1 | 2 | 判断是否达到收敛 | ||
梯度下降 |
| |||
mnist 0-2 | 3 | 判断是否达到收敛 | ||
80% x=1,20% x=0.1 | 4 | 判断是否达到收敛 | ||
梯度下降 |
| |||
…… |
| |||
mnist 0-4999 | 9997 | 判断是否达到收敛 | ||
80% x=1,20% x=0.1 | 9998 | 判断是否达到收敛 | ||
梯度下降 |
| |||
…… |
| |||
如果4999图片内没有达到收敛标准再次从头循环 |
| |||
mnist 0-1 | 9999 | 判断是否达到收敛 | ||
80% x=1,20% x=0.1 | 10000 | 判断是否达到收敛 | ||
…… |
| |||
达到收敛标准记录迭代次数,将这个过程重复199次 |
| |||
δ=0.4 |
| |||
…… |
|
相当于分类两个图片集,一个图片集是mnist的0另一个图片集只有两张图片,两张图片被取样的概率是8:2
得到的数据
用0和x二分类 | ||||||||
1:0.1=8:2 | ||||||||
f2[0] | f2[1] | 迭代次数n | 平均准确率p-ave | δ | 耗时ms/次 | 耗时ms/199次 | 耗时min/199次 | 最大准确率p-max |
0.50566328 | 0.497763951 | 17.31155779 | 0.505501503 | 0.5 | 921.0653266 | 183323 | 3.055383333 | 0.861938534 |
0.606609999 | 0.393211865 | 977.2964824 | 0.477251506 | 0.4 | 1112.351759 | 221358 | 3.6893 | 0.963120567 |
0.713338671 | 0.286631874 | 1244.819095 | 0.545928223 | 0.3 | 1166.467337 | 232127 | 3.868783333 | 0.992434988 |
0.814994506 | 0.184507552 | 1367.894472 | 0.579702294 | 0.2 | 1188.100503 | 236432 | 3.940533333 | 0.997163121 |
0.909871883 | 0.090147713 | 1622.60804 | 0.594867957 | 0.1 | 1234.457286 | 245672 | 4.094533333 | 0.995744681 |
0.991991547 | 0.008022444 | 2451.462312 | 0.606966273 | 0.01 | 1401.79397 | 278973 | 4.64955 | 0.997163121 |
0.999243349 | 7.56E-04 | 4189.592965 | 0.54157549 | 0.001 | 1755.160804 | 349277 | 5.821283333 | 0.996690307 |
0.999918398 | 8.18E-05 | 9589.763819 | 0.513579719 | 1.00E-04 | 2860.809045 | 569301 | 9.48835 | 0.992907801 |
0.999927347 | 7.27E-05 | 9769.472362 | 0.528847547 | 9.00E-05 | 2575.964824 | 512617 | 8.543616667 | 0.995271868 |
0.999937071 | 6.28E-05 | 10447.81407 | 0.520938023 | 8.00E-05 | 3024.321608 | 601840 | 10.03066667 | 0.993853428 |
0.999943494 | 5.65E-05 | 11190.78894 | 0.520569752 | 7.00E-05 | 3179.547739 | 632730 | 10.5455 | 0.995744681 |
0.999951392 | 4.86E-05 | 11462.45729 | 0.526839873 | 6.00E-05 | 3200.095477 | 636827 | 10.61378333 | 0.995271868 |
0.999960481 | 3.95E-05 | 12531.89447 | 0.509782957 | 5.00E-05 | 3412.919598 | 679175 | 11.31958333 | 0.987234043 |
0.999967762 | 3.23E-05 | 13652.90955 | 0.520239495 | 4.00E-05 | 3205.512563 | 637897 | 10.63161667 | 0.993853428 |
0.999975773 | 2.43E-05 | 15084.02513 | 0.516088718 | 3.00E-05 | 3937.758794 | 783620 | 13.06033333 | 0.997163121 |
0.999983453 | 1.65E-05 | 17850.52764 | 0.509438445 | 2.00E-05 | 4596.673367 | 914740 | 15.24566667 | 0.994326241 |
0.999991715 | 8.29E-06 | 25200.21608 | 0.516967818 | 1.00E-05 | 4941.844221 | 983443 | 16.39071667 | 0.989598109 |
0.99999284 | 7.16E-06 | 25605.17085 | 0.515739454 | 9.00E-06 | 4968.120603 | 988673 | 16.47788333 | 0.989598109 |
0.999993474 | 6.52E-06 | 28406.36683 | 0.524064768 | 8.00E-06 | 5459.522613 | 1086445 | 18.10741667 | 0.994326241 |
0.999994401 | 5.60E-06 | 28608.58794 | 0.521154234 | 7.00E-06 | 5223.728643 | 1039538 | 17.32563333 | 0.986761229 |
0.999995111 | 4.89E-06 | 32479.66332 | 0.509533483 | 6.00E-06 | 6074.311558 | 1208788 | 20.14646667 | 0.995271868 |
0.999995947 | 4.06E-06 | 36849.28141 | 0.495180394 | 5.00E-06 | 6820.743719 | 1357328 | 22.62213333 | 0.98250591 |
0.999996768 | 3.23E-06 | 36909.13065 | 0.504486974 | 4.00E-06 | 6836.849246 | 1360549 | 22.67581667 | 0.98392435 |
0.999997515 | 2.48E-06 | 43731.97487 | 0.494505625 | 3.00E-06 | 7944.974874 | 1581050 | 26.35083333 | 0.991962175 |
0.999998265 | 1.74E-06 | 62934.13568 | 0.491236323 | 2.00E-06 | 10640.96985 | 2117553 | 35.29255 | 0.990070922 |
0.999999125 | 8.74E-07 | 93680.26633 | 0.497100158 | 1.00E-06 | 16180.28141 | 3219876 | 53.6646 | 0.992907801 |
所以现在有了3个迭代次数分别是
x=1 | n1 |
x=0.1 | n0.1 |
0.8x=1||0.2x=0.1 | n1-0.1 |
验算n1-0.1与n1和n0.1之间的关系
1 | 0.1 | 理论值 | 实测值 | ||
δ | 迭代次数n1 | 迭代次数n0.1 | 0.8*n1+0.2*n0.1 |
| 理论值/实测值 |
0.5 | 17.40201005 | 17.87437186 | 17.49648241 | 17.31155779 | 1.010682148 |
0.4 | 951.2110553 | 1408.577889 | 1042.684422 | 977.2964824 | 1.066906963 |
0.3 | 1144.577889 | 1720.517588 | 1259.765829 | 1244.819095 | 1.012007153 |
0.2 | 1313.633166 | 1995.110553 | 1449.928643 | 1367.894472 | 1.059971125 |
0.1 | 1505.824121 | 2243.834171 | 1653.426131 | 1622.60804 | 1.018992936 |
0.01 | 2362.115578 | 3001.552764 | 2490.003015 | 2451.462312 | 1.015721516 |
0.001 | 4129.020101 | 4007.532663 | 4104.722613 | 4189.592965 | 0.979742578 |
1.00E-04 | 10353.37186 | 5532.668342 | 9389.231156 | 9589.763819 | 0.979088884 |
9.00E-05 | 10653.93467 | 5683.753769 | 9659.898492 | 9769.472362 | 0.988784055 |
8.00E-05 | 11292.43719 | 6131.934673 | 10260.33668 | 10447.81407 | 0.982055827 |
7.00E-05 | 11761.11055 | 6106.919598 | 10630.27236 | 11190.78894 | 0.949912684 |
6.00E-05 | 12657.69347 | 6014.688442 | 11329.09246 | 11462.45729 | 0.988365076 |
5.00E-05 | 13305.44221 | 6455.321608 | 11935.41809 | 12531.89447 | 0.952403335 |
4.00E-05 | 15844.29648 | 6724.738693 | 14020.38492 | 13652.90955 | 1.026915536 |
3.00E-05 | 17291.77387 | 7055.80402 | 15244.5799 | 15084.02513 | 1.010644027 |
2.00E-05 | 20753.56281 | 7763.41206 | 18155.53266 | 17850.52764 | 1.017086611 |
1.00E-05 | 27708.19598 | 8749.050251 | 23916.36683 | 25200.21608 | 0.949054038 |
9.00E-06 | 29358.8593 | 8879.41206 | 25262.96985 | 25605.17085 | 0.986635473 |
8.00E-06 | 30689.87437 | 9387.150754 | 26429.32965 | 28406.36683 | 0.930401617 |
7.00E-06 | 33437.22111 | 9532.648241 | 28656.30653 | 28608.58794 | 1.001667981 |
6.00E-06 | 36960.63819 | 9957.683417 | 31560.04724 | 32479.66332 | 0.971686404 |
5.00E-06 | 40669.92462 | 10661.56281 | 34668.25226 | 36849.28141 | 0.940812166 |
4.00E-06 | 44594.04523 | 11025.0402 | 37880.24422 | 36909.13065 | 1.02631093 |
3.00E-06 | 51522.10553 | 11653.63317 | 43548.41106 | 43731.97487 | 0.995802526 |
2.00E-06 | 67583.53266 | 13076.9196 | 56682.21005 | 62934.13568 | 0.900659228 |
1.00E-06 | 107224.5276 | 15184.58794 | 88816.5397 | 93680.26633 | 0.948081631 |
从数值看
这个公式还是符合的很好的。
表明神经网络的迭代次数可以被看作是一个线性变量可以用概率矩阵和迭代次数矩阵的点积来计算。
实验参数
学习率 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 |