现在已经知道二值化神经网络权重的分布规则
按列分布,
正负对称,
A0列或B0列高度比较突出,且A0列或B0列彼此之间正负关系相反
重合1列的高度较小,且正负关系与A0列或B0列相反
重合0列没有变化
A0列,B0列,重合1列,重合0列彼此之间几乎一致。
如果直接用这个规则去初始化权重会加速网络收敛吗?
(A,B)---9*9*2---(1,0)(0,1)
用神经网络去分类981,A有9个1,B有8个1.由这两张图片知道,权重仅由两部分组成x=0的B0列,和x=1,2,…,8的重合1列,
权重的三维形态一定如图。 B0列比较显著,且B0列和重合1列的正负相反,重合1列彼此之间相似。
现在设sta是一个有9个正负相间元素的随机double数组。
double []sta1= new double[9];
double []sta2= new double[9];
设sta1和sta2同样是9个元素的double数组,让sta1对应B0列,让sta2对应重合1列,并且
sta1[a]=sta[a]*xb; (x=0)
sta2[a]=sta[a]*xs*(-1);( x=1,2,…,8)
让xb=5,10,15,…,100
让xs=2.
观察xb的变化对迭代次数有什么影响
得到表格
981 | 5*2 | 10*2 | 15*2 | 20*2 | 25*2 | 30*2 | 35*2 | 40*2 | 45*2 | 50*2 | 55*2 | 60*2 | 70*2 | 80*2 | 90*2 | 100*2 | |
δ | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n |
5.00E-04 | 34219.01 | 56886.86 | 36059.07 | 20634.28 | 19187.37 | 18183.7 | 17729.88 | 16966.14 | 17022.57 | 16373.4 | 16072.6 | 16083.15 | 16028.49 | 15425.55 | 15602.96 | 15172.06 | 15299.72 |
4.00E-04 | 41899.68 | 69386.92 | 45562.85 | 25813.55 | 23488.27 | 22294.86 | 21419.86 | 21073.58 | 20844.78 | 20379.97 | 20134.43 | 19708.98 | 19848.92 | 19571.28 | 19298.47 | 19223.4 | 18968.62 |
3.00E-04 | 53474.56 | 93676.07 | 56546.3 | 33865.74 | 31434.57 | 30234.55 | 28367.02 | 28253.34 | 27734.93 | 27415.03 | 26803.53 | 26610.72 | 26424.95 | 26096.28 | 25570.21 | 25645.66 | 25862.75 |
2.00E-04 | 77797.83 | 135490 | 82163.32 | 50755.2 | 46369.35 | 44342.12 | 42539.73 | 41366.17 | 41436.05 | 40066.35 | 39555.05 | 38829.46 | 39453.35 | 38023.19 | 38457.01 | 38068.93 | 38530.56 |
1.00E-04 | 148175 | 255720 | 158724.8 | 99707.32 | 93043.35 | 89607.97 | 86883.28 | 81852.98 | 81348.49 | 79556.61 | 78937.04 | 78737.02 | 79539.05 | 78066.3 | 77624.52 | 75267.27 | 75173.51 |
981 | 5*2 | 10*2 | 15*2 | 20*2 | 25*2 | 30*2 | 35*2 | 40*2 | 45*2 | 50*2 | 55*2 | 60*2 | 70*2 | 80*2 | 90*2 | 100*2 | |
δ | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n |
5.00E-04 | 1 | 1.662435 | 1.053773 | 0.603006 | 0.560723 | 0.531392 | 0.51813 | 0.49581 | 0.497459 | 0.478489 | 0.469698 | 0.470006 | 0.468409 | 0.450789 | 0.455974 | 0.443381 | 0.447112 |
4.00E-04 | 1 | 1.656025 | 1.087427 | 0.61608 | 0.560583 | 0.532101 | 0.511218 | 0.502953 | 0.497493 | 0.486399 | 0.480539 | 0.470385 | 0.473725 | 0.467098 | 0.460587 | 0.458796 | 0.452715 |
3.00E-04 | 1 | 1.751788 | 1.057443 | 0.633306 | 0.587842 | 0.565401 | 0.530477 | 0.528351 | 0.518657 | 0.512674 | 0.501239 | 0.497633 | 0.494159 | 0.488013 | 0.478175 | 0.479586 | 0.483646 |
2.00E-04 | 1 | 1.741565 | 1.056113 | 0.652399 | 0.596024 | 0.569966 | 0.546798 | 0.531714 | 0.532612 | 0.515006 | 0.508434 | 0.499107 | 0.507127 | 0.488744 | 0.49432 | 0.489332 | 0.495265 |
1.00E-04 | 1 | 1.725797 | 1.071198 | 0.672902 | 0.627929 | 0.604744 | 0.586356 | 0.552407 | 0.549003 | 0.53691 | 0.532728 | 0.531378 | 0.536791 | 0.526852 | 0.52387 | 0.507962 | 0.507329 |
数据表明当xb=10,xs=2的时候迭代次数大于原始的初始化方法,但当xb=15,xs=2,收敛误差为1e-4时的迭代次数仅为原始值的67%。当xb=50,xs=2的时候迭代次数仅为原始值的53%。
所以xb的增加使得初始权重的形态更接近收敛权重的形态,让网络的迭代次数明显变小
观察分类准确率
981 | 5*2 | 10*2 | 15*2 | 20*2 | 25*2 | 30*2 | 35*2 | 40*2 | 45*2 | 50*2 | 55*2 | 60*2 | 70*2 | 80*2 | 90*2 | 100*2 | |
δ | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave | 平均准确率p-ave |
5.00E-04 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0.997303 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
4.00E-04 | 1 | 0.997672 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0.997303 | 0.997303 | 0.995343 | 0.997672 |
3.00E-04 | 1 | 1 | 1 | 1 | 1 | 0.997672 | 1 | 1 | 0.997672 | 1 | 1 | 0.997672 | 1 | 1 | 1 | 1 | 0.997303 |
2.00E-04 | 1 | 1 | 1 | 1 | 1 | 1 | 0.997672 | 0.997672 | 1 | 1 | 1 | 1 | 0.997672 | 1 | 0.994607 | 0.997672 | 1 |
1.00E-04 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0.995343 | 0.997672 | 1 | 0.997672 | 0.997303 |
数据表明xb的过大对网络性能有负面效应,尽管迭代次数变小了但如果xb过大网络分类准确率也有下降趋势,所以综合迭代次数和分类准确率xb=20比较恰当,迭代次数减小了40%,且保持网络的分类性能。
所以用网络的收敛权重形态去初始化权重确实可能在保持网络性能的前提下减少迭代次数,加速网络收敛。