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

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

  1. 一个用于推算神经网络理论收敛迭代次数的方法

    神经网络的收敛过程就是输出值从0或者1逐渐逼近0.5的过程,也就是1-δ→0.5或者0+δ→0.5,所以用δ表示收敛标准,假设神经网络收敛迭代次数n与δ的关系为 n=r*δ^( -1*π/2) r是系 ...

  2. 用神经网络迭代次数曲线模拟原子光谱

    大量实验表明每个神经网络对应每个收敛标准δ都有一个特征的迭代次数n,因此可以用迭代次数曲线n(δ)来评价网络性能. 一个二分类网络分类两组对象A和B,B中有K张图片,B的第i张图片被取样的概率为pi, ...

  3. 测量一组5层网络的迭代次数

    如图左边5层网络很显然可以看作是右边的3层网络两个组合而成的,所以左边的5层网络的迭代次数和右边的3层网络的迭代次数有没有什么关系? 5层 3层 2*10*2*10*2 2*10*2 3*10*3*1 ...

  4. TensorFlow进阶--实现学习率随迭代次数下降

    我们直到学习率对于机器学习来说,大的学习率虽然往往能够使得损失函数快速下降,但是导致不收敛或者振荡现象的发生,而小的学习率虽然收敛,但是学习速率太慢,损失函数下降缓慢,需要等待长时间的训练,同时也会容 ...

  5. 图神经网路入门(1)

    图神经网络入门(1) 本文主要介绍图神经网路背景和必须的数学知识.下一部分会介绍模型和应用. 1.为什么会出现GCN(图卷积神经网络) 普通卷积网络都是研究的具备欧几里得领域的数据,例如规则的正方形, ...

  6. 神经网路对于非线性问题_再论强化学习和非线性最优控制卡特彼勒问题的神经节点...

    神经网路对于非线性问题 Learnt strategies: 1-go swing up (left), resonant incremental swing up (right) 学习的策略:1向上 ...

  7. 不用任何数学方法,如何计算圆面积

    本文转载自机器之心公众号,作者:Andre Ye,由机器之心编译.特此感谢! 杀鸡用牛刀,我们用机器学习方法来算圆的面积. 询问任何人圆的面积是多少,他们都会告诉你不就是????r²吗.但如果你问他们 ...

  8. 机器学习实现计算不规则图形面积_不用任何数学方法,如何计算圆面积

    杀鸡用牛刀,我们用机器学习方法来算圆的面积. 询问任何人圆的面积是多少,他们都会告诉你不就是r²吗.但如果你问他们为什么,他们很可能并不知道. 这是因为圆的面积公式的证明在大多数情况下要么不直观,不令 ...

  9. 人工构造迭代次数高度简并的神经网络训练集

    (x)---81*30*2---(1,0) 做一个结构是81*30*2的网络,人工构造一个训练集x,并让这个训练集向(1,0)收敛,不分类.让收敛标准为1e-4.使得迭代次数高度简并,有明显的谱线特征 ...

最新文章

  1. 【美团】招聘计算机视觉研究岗实习生
  2. python如何调用图片-python调用图片
  3. idea 中使用@Autowired注入mybatis Mapper接口时报错
  4. 《PC World》:Linux在桌面市场毫无长进 已经死亡
  5. 源码安装NASM,无root权限
  6. 利用反射机制创建新类的两种方式及比较
  7. netty的编解码、粘包拆包问题、心跳检测机制原理
  8. java整人_写了一个整人程序,较简单,有兴趣者可以看看
  9. Java爬虫框架调研
  10. asp.net添加自定义用户控件并传值
  11. 知识图谱入门 , 知识问答
  12. Acrobat Pro DC 教程,如何发送电子签名文件?
  13. 五步完成Spring整合Mybatis的完整示例
  14. mysql 的时间函数
  15. Vue学习三:安装axios(实现http请求后端)
  16. 802.11n和802.11ac的MCS速率表
  17. layer opcode oracle,ORACLE 事件追踪
  18. 百步穿杨(HDU2550)
  19. dxf素材和dxf、plt、dst看图软件
  20. django连接mysql数据库_Django学习笔记(4)——Django连接数据库

热门文章

  1. AttributeError: module 'select' has no attribute 'error'解决方法
  2. 用python做数据分析(行列转换)
  3. Z变换(2020.10.21)
  4. Win强制删除文件windows批处理强行删除文件
  5. 使用js实现放大镜效果
  6. STM32 SPI的使用
  7. Duilib vlc c++ 字符编码
  8. Dynamic CRM 2013学习笔记(四十三)流程6 - 自定义流程活动
  9. struts2 获取request、session的方法
  10. Kinect+OpenNI学习笔记之12(简单手势所表示的数字的识别)