1. 程式人生 > >權重初始化方式對神經網路迭代次數的影響

權重初始化方式對神經網路迭代次數的影響

做一個網路

輸入X範圍是[1e-16,37]

權重初始化方式

Random rand1 =new Random();

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

tw[a][b]=(double)ti1/n; 

學習率0.1

本文用於檢測當n分別等於50,100,200,300,400,500,1000時對迭代次數是否有影響。

得到的資料如下

#50 #100 #200 #300   #400 #500 #1000
1e-5*11*11*1e-5 515690.56 1151745.985 2442883.495 1042074.315 64498.62
56510.775 50278.48
1e-4*11*11*1e-4 538336.22 1140325.425 2456006.97 556370.145 58516.835 58154.21 49405.25
1e-3*11*11*1e-3 515657.815 1181040.275 2631372.3 995064.645 59504.625 54353.44 50357.935
1e-2*11*11*1e-2 524385.4 1149965.665 2448382.15 1149738.31
91348.485 57477.815 49364.26
0.1*11*11*0.1 466648.73 1023284.48 2530742.245 2146998.835 171378.415 60060.805 49182.16
1*11*11*1 269628.89 507738.58 1193861.05 2005743.37 2752611.045 3334475.955 57438.16
2*11*11*2 215952.105 338796.91 762422.04 1341740.89
1788425.735 2468127.52 564607.03
3*11*11*3 196236.455 272292.105 680873.4 1084323.92 1449072.63 2018767.03 1764958.1
4*11*11*4 187556.205 264077.425 600728.635 1014091.78 1398991.365 1922227.875 2092883.28
5*11*11*5 189551.09 256461.865 588419.74 910780.35 1290084.505 1786341.78 2279545.655
6*11*11*6 182710.855 251478.63 614340.585 1004629.11 1317827.625 1862401.95 2300141.175
7*11*11*7 182428.85 251915.34 608052.375 975472.28 1365238.66 1818134.405 2301074.53
8*11*11*8 185063.05 254112.845 568591.285 959487.245 1379721.04 1655470.885 2080430.445
9*11*11*9 182868.76 255234.11 579499.295 965944.865 1289923.15 1779299.45 2199222.36
10*11*11*10 190904.745 258464.335 605392.56 956794.66 1373901.005 1690353.16 2154894.06


因為迭代次數只有兩個基本狀態和一個過渡狀態

小區間

基本狀態

[1e-16,0.1]

過渡區間

過渡態

[1,3]

大區間

基本狀態

[4,37]

為了加快計算本文只計算了1e-5到10

當n=50,100,200的影象為

可以看到隨著n的增加,大區間[4,37]在明顯的向上移動,曲線是遞減。

TensorFlow中的迭代次數是一個固定值,如果大區間和小區間的迭代次數相差比較大就會出現問題

比如當n=100時

小區間迭代次數

1129272

大區間迭代次數

255963.5

如果將TensorFlow的迭代次數定位800000就會使小區間反應不足,大區間反應過度。

因為小區間要1129272次迭代才都能達到要求精度,800000次迭代相當於只完成了總任務的71%。而大區間只要255963次就可以達到要求精度,800000次迭代相對大區間來說有68%的計算是浪費的。

同樣如果選一個比較大的迭代次數比如1400000這樣雖然小區間和大區間都可以達到要求精度但是這樣做只會造成算力的更大浪費。

所以最好可以通過調整權重初始化方式得到一條相對差距比較小的線。

當n=400,500,1000時的影象

這張圖片隨著n的增加,大區間也是增加的,但影象近似是遞增的。

所以一定有個從遞減過渡到遞增狀態的n值使得小區間和大區間的迭代次數幾乎相等,使整條曲線看起來相對平直。經過實驗這個n值大致在300左右

當n=300時從1e-16到37的曲線資料

a

b

迭代次數

時間ms

時間min

300

1e-16*11*11*1e-16

0.494442208

0.495641938

1177391.87

1650993

27.51655

300

1e-15*11*11*1e-15

0.495423001

0.495922727

1028492.8

1436999

23.94998

300

1e-14*11*11*1e-14

0.495842043

0.495641787

931314.04

1294996

21.58327

300

1e-13*11*11*1e-13

0.495004211

0.495304312

881531.34

1223201

20.38668

300

1e-12*11*11*1e-12

0.494611448

0.495411409

928887.445

1285013

21.41688

300

1e-11*11*11*1e-11

0.495657121

0.494857016

869741.21

1212002

20.20003

300

1e-10*11*11*1e-10

0.495416301

0.495516346

822223.815

1147814

19.13023

300

1e-9*11*11*1e-9

0.495270974

0.495870804

1157183.93

1602565

26.70942

300

1e-8*11*11*1e-8

0.494929204

0.49442933

868996.86

1203788

20.06313

300

1e-7*11*11*1e-7

0.494712489

0.495112484

820649.265

1136546

18.94243

300

1e-6*11*11*1e-6

0.495338595

0.49523856

1110117.41

1536870

25.6145

300

1e-5*11*11*1e-5

0.496218585

0.495418654

1042074.32

1401070

23.35117

300

1e-4*11*11*1e-4

0.494981464

0.495381376

556370.145

784736

13.07893

300

1e-3*11*11*1e-3

0.495269247

0.496369031

995064.645

1376768

22.94613

300

1e-2*11*11*1e-2

0.49554725

0.49604707

1149738.31

1586597

26.44328

300

0.1*11*11*0.1

0.498097369

0.497897428

2146998.84

2974100

49.56833

300

1*11*11*1

0.502245991

0.500445991

2005743.37

2800078

46.66797

300

2*11*11*2

0.501306968

0.501406967

1341740.89

1969331

32.82218

300

3*11*11*3

0.502139484

0.500539485

1084323.92

1404763

23.41272

300

4*11*11*4

0.50137864

0.501278641

1014091.78

1446365

24.10608

300

5*11*11*5

0.501640009

0.500840009

910780.35

1301624

21.69373

300

6*11*11*6

0.501153924

0.501553924

1004629.11

1425911

23.76518

300

7*11*11*7

0.501061144

0.501461144

975472.28

1281737

21.36228

300

8*11*11*8

0.500697758

0.501897758

959487.245

1333199

22.21998

300

9*11*11*9

0.50157167

0.500971671

965944.865

1334896

22.24827

300

10*11*11*10

0.50154289

0.50104289

956794.66

1320600

22.01

300

11*11*11*11

0.500586866

0.501986866

953683.75

1327746

22.1291

300

12*11*11*12

0.501304336

0.501404336

1003937.46

1397277

23.28795

300

13*11*11*13

0.501390429

0.501390429

1021429.5

1450694

24.17823

300

14*11*11*14

0.501096067

0.501596067

1000931.95

1421634

23.6939

300

15*11*11*15

0.501186367

0.501286367

933033.265

1225792

20.42987

300

16*11*11*16

0.501117028

0.501417028

965515.97

1364626

22.74377

300

17*11*11*17

0.50155269

0.50115269

984877.165

1322929

22.04882

300

18*11*11*18

0.501249006

0.501349006

978266.335

1374509

22.90848

300

19*11*11*19

0.501139341

0.501439341

954977.96

1261967

21.03278

300

20*11*11*20

0.501726519

0.50082652

915192.715

1288190

21.46983

300

21*11*11*21

0.501756803

0.500656803

931755.655

1259473

20.99122

300

22*11*11*22

0.50169384

0.500893841

953562.595

1369851

22.83085

300

23*11*11*23

0.501966721

0.500666722

974836.26

1392312

23.2052

300

24*11*11*24

0.500926601

0.501826601

1007493.42

1297924

21.63207

300

25*11*11*25

0.501248655

0.501348655

959407.15

1355909

22.59848

300

26*11*11*26

0.501788982

0.500588983

894844.8

1169148

19.4858

300

27*11*11*27

0.502008374

0.500708374

977159.395

1349999

22.49998

300

28*11*11*28

0.501231491

0.501531491

987814.115

1414880

23.58133

300

29*11*11*29

0.501010278

0.501510278

947537.17

1336615

22.27692

300

30*11*11*30

0.501148884

0.501448884

971459.105

1339156

22.31927

300

31*11*11*31

0.500801108

0.501801107

964687.26

1247136

20.7856

300

32*11*11*32

0.501831602

0.500731601

919605.625

1270044

21.1674

300

33*11*11*33

0.500173133

0.502173132

893372.425

1231927

20.53212

300

34*11*11*34

0.501175259

0.501475259

969989.405

1370819

22.84698

300

35*11*11*35

0.501798376

0.500898377

958747.39

1372639

22.87732

300

36*11*11*36

0.501015419

0.501515419

929651.26

1236913

20.61522

300

37*11*11*37

0.501609929

0.501109929

999093.72

1426979

23.78298

將迭代次數畫成圖

可以看到這條曲線要平直的多。

小區間迭代次數

1030423.51

大區間迭代次數

962943.032

平均

996683.273

小區間和大區間的迭代次數只相差6.5%。

也就是在TensorFlow的環境中這個網路的權重初始化為ti1/300

應該可以相當程度上避免由於迭代曲線的巨大波動導致的反應過度和反應不足的問題,使網路在輸入整個區間上效能都相對平穩,又可以避免算力的浪費。

理論收斂迭代次數為996