r1 | r2 | ||
<1 | <1 | 吸引子 | c |
>1 | >1 | 排斥子 | p |
>1 | <1 | 鞍点 | a |
<1 | >1 | 反鞍点 | fa |
图中的2*2数组有可能构成4种对象,吸引子,排斥子,两种鞍点,所以这4个对象相互之间可能有几种分类的可能?
吸引子
Random rand1 =new Random();
int ti1=rand1.nextInt(99)+1;
x[0]=sig((double)ti1/100);
Random rand2 =new Random();
int ti2=rand2.nextInt(99)+1;
x[3]=sig((double)ti2/100);
排斥子
Random rand1 =new Random();
int ti1=rand1.nextInt(99)+1;
x[0]=sig( 1+((double)ti1/100) );
Random rand2 =new Random();
int ti2=rand2.nextInt(99)+1;
x[3]=sig ( 1+((double)ti2/100) );
鞍点
Random rand1 =new Random();
int ti1=rand1.nextInt(99)+1;
x[0]=sig(1+((double)ti1/100));
Random rand2 =new Random();
int ti2=rand2.nextInt(99)+1;
x[3]=sig( ((double)ti2/100);
反鞍点
Random rand1 =new Random();
int ti1=rand1.nextInt(99)+1;
x[0]=sig( ((double)ti1/100) );
Random rand2 =new Random();
int ti2=rand2.nextInt(99)+1;
x[3]=sig ( 1+((double)ti2/100) );
具体实验过程
二分类吸引子和排斥子
制作一个4*4*2的网络向这个的左侧输入吸引子,并让左侧网络向1,0收敛;向右侧网络输入排斥子让右侧向0,1收敛,并让4*4*2部分权重共享,,前面大量实验表明这种效果相当于将两个弹性系数为k1,k2的弹簧并联成一个弹性系数为k的弹簧,并且让k1=k2=k/2的过程。
这个网络的收敛标准是
if (Math.abs(f2[0]-y[0])< δ && Math.abs(f2[1]-y[1])< δ )
因为对应每个收敛标准δ都有一个特征的迭代次数n与之对应因此可以用迭代次数曲线n(δ)来评价网络性能。
本文尝试了δ从0.5到1e-6在内的26个值.
具体进样顺序 | |||
进样顺序 | 迭代次数 | ||
δ=0.5 | |||
c | 1 | 判断是否达到收敛 | |
p | 2 | 判断是否达到收敛 | |
梯度下降 | |||
c | 3 | 判断是否达到收敛 | |
p | 4 | 判断是否达到收敛 | |
梯度下降 | |||
…… | |||
达到收敛标准测量准确率,记录迭代次数,将这个过程重复199次 | |||
δ=0.4 | |||
… | |||
δ=1e-7 |
将这个网络简写成
d2(c,p)-4-4-2-(2*k),k∈{0,1}
用同样的方法制作了另外3个网络
d2(c,a)-4-4-2-(2*k),k∈{0,1}
d2(p,a)-4-4-2-(2*k),k∈{0,1}
d2(a,fa)-4-4-2-(2*k),k∈{0,1}
d2(p,fa)-4-4-2-(2*k),k∈{0,1}
得到数据
cp | ca | pa | afa | pfa | |
δ | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n | 迭代次数n |
0.5 | 148.30151 | 180.67337 | 179.0603 | 214.68342 | 178.32663 |
0.4 | 6197.6935 | 4208.2663 | 4113.7538 | 2224.8241 | 4047.1106 |
0.3 | 10206.226 | 4965.9347 | 4770.2864 | 2641.8995 | 4810.196 |
0.2 | 15103.111 | 5666.1357 | 5453.7387 | 2984.9799 | 5358.6683 |
0.1 | 25082.256 | 6463.7839 | 5938.3518 | 3399.4975 | 6089.4874 |
0.01 | 59887.874 | 9122.9196 | 8264.6533 | 5348.005 | 8208.8643 |
0.001 | 114187.58 | 13523.744 | 11603.126 | 9662.5477 | 11726.623 |
1.00E-04 | 204204.85 | 21989.372 | 18094.442 | 20640.92 | 18081.387 |
9.00E-05 | 212029.8 | 22158.729 | 18169.357 | 22173.181 | 18628.291 |
8.00E-05 | 230115.46 | 23297.724 | 19261.548 | 22113.302 | 18945.538 |
7.00E-05 | 224907.52 | 23686.688 | 19705.91 | 24109.462 | 19293.508 |
6.00E-05 | 237383.71 | 25068.457 | 20358.794 | 24321.457 | 19860.241 |
5.00E-05 | 246789.74 | 25858.92 | 20987.075 | 26949.528 | 21636.754 |
4.00E-05 | 256184.58 | 27282.357 | 21595.568 | 29458.889 | 21976.352 |
3.00E-05 | 286819.37 | 29634.709 | 22861.719 | 31531.528 | 22984.724 |
2.00E-05 | 313117.33 | 32804.296 | 25696.352 | 37564.513 | 25560 |
1.00E-05 | 353265.05 | 39593.593 | 29068.01 | 48460.693 | 30457.467 |
9.00E-06 | 368245.31 | 42348.136 | 30718.523 | 48989.075 | 30770.121 |
8.00E-06 | 400112.01 | 43153.874 | 31194.653 | 51058.447 | 31517.286 |
7.00E-06 | 422938.39 | 45063.482 | 32060.241 | 55210.915 | 31988.151 |
6.00E-06 | 428425.83 | 47849.362 | 32218.121 | 57914.985 | 32109.307 |
5.00E-06 | 432199.83 | 50972.276 | 34493.357 | 64475.487 | 34064.794 |
4.00E-06 | 462574.88 | 58229.774 | 35875.94 | 68047.628 | 36596.07 |
3.00E-06 | 514760.03 | 68639.985 | 38775.96 | 74026.98 | 38338.553 |
2.00E-06 | 542470.45 | 87870.628 | 43315.487 | 91905.673 | 43193.698 |
1.00E-06 | 626429.11 | 137870.24 | 47935.467 | 118729.68 | 49143.266 |
两个完全相同的对象无法被分成两类,也就是两个完全相同的对象的迭代次数是无限大,所以迭代次数越大表明两个被分类对象差异越小。从表格很容易得出按相似度
cp>afa>ca>pa=pfa
也就是排斥子和鞍点之间的差异最大,吸引子和排斥子之间的差异最小。
排斥子与鞍点和排斥子与反鞍点差异相同。
吸引子与鞍点和吸引子与反鞍点差异相同。
实验参数
学习率 0.1 |
权重初始化方式 |
Random rand1 =new Random(); |
int ti1=rand1.nextInt(98)+1; |
tw[a][b]=xx*((double)ti1/100); |