用数学方法构造神经网路的迭代次数1-9

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

为了验证这个关系构造了等式

 

本文验算这个表达式是否正确

实验过程

首先用实验的方法测量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  ; 90% x=1, 10%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的比例是9:1.

具体进样顺序

   

 

进样顺序

迭代次数

  

 

δ=0.5

   

 

mnist 0-1

1

 

判断是否达到收敛

90% x=1,10% x=0.1

2

 

判断是否达到收敛

梯度下降

   

 

mnist 0-2

3

 

判断是否达到收敛

90% x=1,10% x=0.1

4

 

判断是否达到收敛

梯度下降

   

 

……

   

 

mnist 0-4999

9997

 

判断是否达到收敛

90% x=1,10% x=0.1

9998

 

判断是否达到收敛

梯度下降

   

 

……

   

 

如果4999图片内没有达到收敛标准再次从头循环

 

 

mnist 0-1

9999

 

判断是否达到收敛

90% x=1,10% x=0.1

10000

 

判断是否达到收敛

……

   

 

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

  

 

δ=0.4

   

 

……

   

 

相当于分类两个图片集,一个图片集是mnist的0另一个图片集只有两张图片,两张图片被取样的概率是9:1

得到的数据

用0和x二分类

        

1:0.1=9:1

        

f2[0]

f2[1]

迭代次数n

平均准确率p-ave

δ

耗时ms/次

耗时ms/199次

耗时min/199次

最大准确率p-max

0.498104124

0.502676985

16.44723618

0.507694501

0.5

705.7939698

140453

2.340883333

0.93286052

0.607871638

0.392303481

962.2462312

0.469812419

0.4

860.839196

171307

2.855116667

0.771631206

0.713203914

0.287205344

1173.944724

0.510825998

0.3

901.3768844

179390

2.989833333

0.996217494

0.815556635

0.184524514

1334.738693

0.546073155

0.2

929.1155779

184894

3.081566667

0.990543735

0.90997792

0.090066952

1611.693467

0.542224123

0.1

973.8894472

193804

3.230066667

0.997635934

0.991681618

0.008309057

2341.964824

0.569198237

0.01

1099.482412

218797

3.646616667

0.993853428

0.999210695

7.89E-04

4295.603015

0.509585754

0.001

1426.964824

283982

4.733033333

0.994799054

0.99991913

8.10E-05

9687.070352

0.502465044

1.00E-04

2373.773869

472383

7.87305

0.995271868

0.999923991

7.60E-05

10210.03518

0.496014351

9.00E-05

2356.180905

468880

7.814666667

0.908274232

0.999935256

6.48E-05

10843.55276

0.497753543

8.00E-05

3242.708543

645299

10.75498333

0.991489362

0.999943561

5.64E-05

10806.32663

0.502959241

7.00E-05

3266.79397

650109

10.83515

0.969267139

0.999950232

4.98E-05

12581.07035

0.497993514

6.00E-05

3724.944724

741264

12.3544

0.989125296

0.999958783

4.13E-05

13029.84422

0.498421184

5.00E-05

3809.974874

758185

12.63641667

0.997635934

0.999966645

3.33E-05

14310.57789

0.510201124

4.00E-05

3262.095477

649172

10.81953333

0.968794326

0.999974884

2.51E-05

16443.79397

0.502852323

3.00E-05

4501.236181

895749

14.92915

0.994799054

0.99998357

1.64E-05

19419.17085

0.503299001

2.00E-05

5115.778894

1018040

16.96733333

0.993380615

0.999991794

8.20E-06

27144.11558

0.489817884

1.00E-05

6756.723618

1344588

22.4098

0.973995272

0.999992793

7.20E-06

29046.41709

0.497423287

9.00E-06

6943.306533

1381720

23.02866667

0.995271868

0.999993282

6.72E-06

31390.61809

0.496453901

8.00E-06

7751.251256

1542499

25.70831667

0.996217494

0.999994272

5.73E-06

31424.78894

0.496423013

7.00E-06

7481.080402

1488736

24.81226667

0.988652482

0.999994899

5.11E-06

36383.01005

0.481965382

6.00E-06

8729.462312

1737170

28.95283333

0.926241135

0.999995796

4.20E-06

36290.04523

0.500666453

5.00E-06

7995.130653

1591032

26.5172

0.972104019

0.999996677

3.32E-06

42239.1005

0.486182686

4.00E-06

9862.758794

1962705

32.71175

0.885106383

0.999997456

2.55E-06

48473.47236

0.488192737

3.00E-06

10236.57789

2037079

33.95131667

0.997635934

0.999998261

1.74E-06

65778.96985

0.483386198

2.00E-06

13816.74874

2749549

45.82581667

0.94893617

0.999999127

8.72E-07

86632.40704

0.494909536

1.00E-06

18408.96482

3663384

61.0564

0.969739953

测试集是0和1,虽然训练集没有1,平均准确率接近0.5,但最大准确率还是能超过99%

 

所以现在有了3个迭代次数分别是

x=1

n1

x=0.1

n0.1

0.9x=1||0.1x=0.1

n1-0.1

验算n1-0.1与n1和n0.1之间的关系

 

1

0.1

理论值

实测值

理论值/实测值

δ

迭代次数n1

迭代次数n0.1

0.9*n1+0.1*n0.1

 

 

0.5

17.40201005

17.87437186

17.44924623

16.44723618

1.060922701

0.4

951.2110553

1408.577889

996.9477387

962.2462312

1.036063023

0.3

1144.577889

1720.517588

1202.171859

1173.944724

1.024044689

0.2

1313.633166

1995.110553

1381.780905

1334.738693

1.03524451

0.1

1505.824121

2243.834171

1579.625126

1611.693467

0.980102704

0.01

2362.115578

3001.552764

2426.059296

2341.964824

1.035907658

0.001

4129.020101

4007.532663

4116.871357

4295.603015

0.958391952

1.00E-04

10353.37186

5532.668342

9871.301508

9687.070352

1.019018253

9.00E-05

10653.93467

5683.753769

10156.91658

10210.03518

0.994797413

8.00E-05

11292.43719

6131.934673

10776.38693

10843.55276

0.99380592

7.00E-05

11761.11055

6106.919598

11195.69146

10806.32663

1.036031191

6.00E-05

12657.69347

6014.688442

11993.39296

12581.07035

0.953288761

5.00E-05

13305.44221

6455.321608

12620.43015

13029.84422

0.968578744

4.00E-05

15844.29648

6724.738693

14932.3407

14310.57789

1.043447778

3.00E-05

17291.77387

7055.80402

16268.17688

16443.79397

0.98932016

2.00E-05

20753.56281

7763.41206

19454.54774

19419.17085

1.001821751

1.00E-05

27708.19598

8749.050251

25812.28141

27144.11558

0.9509347

9.00E-06

29358.8593

8879.41206

27310.91457

29046.41709

0.94025072

8.00E-06

30689.87437

9387.150754

28559.60201

31390.61809

0.909813306

7.00E-06

33437.22111

9532.648241

31046.76382

31424.78894

0.98797048

6.00E-06

36960.63819

9957.683417

34260.34271

36383.01005

0.941657732

5.00E-06

40669.92462

10661.56281

37669.08844

36290.04523

1.038000592

4.00E-06

44594.04523

11025.0402

41237.14472

42239.1005

0.976278951

3.00E-06

51522.10553

11653.63317

47535.25829

48473.47236

0.980644793

2.00E-06

67583.53266

13076.9196

62132.87136

65778.96985

0.944570453

1.00E-06

107224.5276

15184.58794

98020.53367

86632.40704

1.131453425

 

 

从数值看

这个公式还是符合的很好的。

表明神经网络的迭代次数可以被看作是一个线性变量可以用概率矩阵和迭代次数矩阵的点积来计算。

 

实验参数

学习率 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

黑榆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值