用神经网络二分类吸引子与排斥子

制作一个4*4*2结构的神经网络,向这个网络输入吸引子并让这个网络向1,0收敛

将这个网络简单表示成

s(c)-4-4-2-(2*k),k∈(0,1)

用同样的办法制作一个4*4*2的网络向这个网络输入排斥子,并让这个网络向0,1收敛将这个网络表示成

s(p)-4-4-2-(2*k),k∈(0,1)

现在用这两个网络组成一个网络,并让4*4*2部分的权重共享,前面大量实验表明这种效果相当于将两个弹性系数为k1,k2的弹簧并联成一个弹性系数为k的弹簧,并且让k1=k2=k/2的过程。

将这两个网络

s(c)-4-4-2-(2*k),k∈(0,1)

s(p)-4-4-2-(2*k),k∈(0,1)

合起来简化成

d(c,p)-4-4-2-(2*k),k∈(0,1)

这个网络的收敛标准是

if (Math.abs(f2[0]-y[0])< δ  &&  Math.abs(f2[1]-y[1])< δ   )

因为对应每个收敛标准δ都有一个特征的迭代次数n与之对应因此可以用迭代次数曲线n(δ)来评价网络性能。

本文尝试了δ从0.5到1e-7在内的35个值.

具体进样顺序

   

进样顺序

迭代次数

  

δ=0.5

   

c

1

 

判断是否达到收敛

p

2

 

判断是否达到收敛

梯度下降

   

c

3

 

判断是否达到收敛

p

4

 

判断是否达到收敛

梯度下降

   

……

   

达到收敛标准测量准确率,记录迭代次数,将这个过程重复199次

  

δ=0.4

   

   

δ=1e-7

   

 

其中吸引子为

Random rand1 =new Random();

int ti1=rand1.nextInt(98)+1;

x[0]=((double)ti1/100);

 

Random rand2 =new Random();

int ti2=rand2.nextInt(98)+1;

x[3]=((double)ti2/100);

排斥子为

Random rand1 =new Random();

int ti1=rand1.nextInt(98)+1;

x[0]=1+((double)ti1/100);

 

Random rand2 =new Random();

int ti2=rand2.nextInt(98)+1;

x[3]=1+((double)ti2/100);

 

得到的数据

f2[0]

f2[1]

迭代次数n

平均准确率p-ave

δ

耗时ms/次

耗时ms/199次

耗时 min/199

0.4971798

0.6221749

77.246231

0

0.5

0.9447236

188

0.003133333

0.3845949

0.6054663

714.47739

0

0.4

1.8542714

385

0.006416667

0.461226

0.542424

1496.4422

0

0.3

3.758794

748

0.012466667

0.8074469

0.2004141

2202.7136

0

0.2

4.9346734

982

0.016366667

0.9127876

0.091302

3383.8744

0

0.1

6.5477387

1303

0.021716667

0.9911862

0.0090039

8291.6432

0

0.01

13.889447

2765

0.046083333

0.9991082

9.02E-04

17873.312

0

0.001

28.422111

5704

0.095066667

0.9999093

9.12E-05

35607.754

0

1.00E-04

56.798995

11303

0.188383333

0.9999191

8.14E-05

37798.116

0

9.00E-05

60.125628

11965

0.199416667

0.999928

7.24E-05

37683.543

0

8.00E-05

59.643216

11886

0.1981

0.9999368

6.36E-05

41542.548

0

7.00E-05

66.874372

13308

0.2218

0.9999461

5.42E-05

40211.523

0

6.00E-05

64.030151

12742

0.212366667

0.9999553

4.49E-05

42300.095

0

5.00E-05

68.236181

13595

0.226583333

0.9999638

3.63E-05

47197.432

0

4.00E-05

76.834171

15290

0.254833333

0.9999733

2.69E-05

48845.975

0

3.00E-05

77.954774

15514

0.258566667

0.999982

1.81E-05

56957.04

0

2.00E-05

91.623116

18233

0.303883333

0.999991

9.00E-06

63660.739

0

1.00E-05

103.31658

20575

0.342916667

0.9999918

8.28E-06

65146.025

0

9.00E-06

104.68342

20864

0.347733333

0.9999928

7.22E-06

67970.698

0

8.00E-06

109.41206

21773

0.362883333

0.9999937

6.32E-06

70787.05

0

7.00E-06

114.21106

22728

0.3788

0.9999946

5.44E-06

74924.146

0

6.00E-06

120.14573

23925

0.39875

0.9999955

4.49E-06

77173.342

0

5.00E-06

123.59296

24612

0.4102

0.9999964

3.65E-06

78510.518

0

4.00E-06

126.51759

25193

0.419883333

0.9999973

2.71E-06

83886.447

0

3.00E-06

136.93467

27281

0.454683333

0.9999982

1.81E-06

97791.07

0

2.00E-06

157.86935

31417

0.523616667

0.9999991

8.99E-07

104116.33

0

1.00E-06

168.39698

33511

0.558516667

0.9999992

8.16E-07

113022.57

0

9.00E-07

182.17588

36285

0.60475

0.9999993

7.26E-07

113242.4

0

8.00E-07

181.37688

36094

0.601566667

0.9999994

6.35E-07

113600.84

0

7.00E-07

182.63317

36360

0.606

0.9999995

5.44E-07

125167.88

0

6.00E-07

202.27638

40253

0.670883333

0.9999995

4.56E-07

127589.14

0

5.00E-07

205.37186

40869

0.68115

0.9999996

3.64E-07

126430.22

0

4.00E-07

204.93467

40798

0.679966667

0.9999997

2.71E-07

133013.72

0

3.00E-07

214.10553

42607

0.710116667

0.9999998

1.83E-07

144383.77

0

2.00E-07

234.1809

46602

0.7767

0.9999999

9.06E-08

173535.34

0

1.00E-07

281.52764

56024

0.933733333

得到迭代次数曲线

迭代次数随着δ的减小不断增加。

从表格可以合理假设当δ无限减小的时候迭代次数n会随着无限增加,就向在吸引子和排斥子之间有一种排斥力随着两个分类对象的接近而增加;或者也可以理解成两个对象之间的排斥力之所以随着距离的减小而增加是因为两个对象在任意小的精度上的差别都在变小,但两个对象的差别在任意小的精度上一直存在。

 

实验参数

学习率 0.1

权重初始化方式

Random rand1 =new Random();

int ti1=rand1.nextInt(98)+1;

tw[a][b]=xx*((double)ti1/100);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑榆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值