1. 程式人生 > >用神經網路模擬分子:資料重複性檢測

用神經網路模擬分子:資料重複性檢測

前面計算了9*9,11*11,35*35隨著節點數量的增加迭代次數也隨著增加,本文計算了從2*2到35*35的所有資料用於檢測這個規律是否在這個區間上一直存在。

網路結構示意圖

a

b

迭代次數

耗時ms

耗時min

一次迭代計算量

迭代計算量比值

迭代次數比值

35*35

0.5020962

0.5023962

751763.7

4758620

79.310333

1260

34*34

0.5016177

0.5025177

730357.58

4631428

77.190467

1190

0.94444

0.97153

33*33

0.5022399

0.5019399

739203.6

4220539

70.342317

1122

0.94286

1.01211

32*32

0.5017839

0.5023839

738450.39

4206704

70.111733

1056

0.94118

0.99898

31*31

0.5024481

0.5014481

730641.13

3916113

65.26855

992

0.93939

0.98942

30*30

0.5019485

0.5018485

726516.24

3705960

61.766

930

0.9375

0.99435

29*29

0.5025317

0.5013317

728437.23

3504054

58.4009

870

0.93548

1.00264

28*28

0.5012694

0.5023694

723658.62

3388659

56.47765

812

0.93333

0.99344

27*27

0.5019454

0.5017454

727087.32

3186527

53.108783

756

0.93103

1.00474

26*26

0.5015347

0.5021347

725809.93

3054470

50.907833

702

0.92857

0.99824

25*25

0.5022511

0.5015511

717297.49

2922118

48.701967

650

0.92593

0.98827

24*24

0.5015609

0.5020609

702123.9

2718257

45.304283

600

0.92308

0.97885

23*23

0.5018727

0.5017727

719971.28

2279043

37.98405

552

0.92

1.02542

22*22

0.5014452

0.5021452

710521.89

2314168

38.569467

506

0.91667

0.98688

21*21

0.5022063

0.5013063

694105.77

2160346

36.005767

462

0.91304

0.9769

20*20

0.5013893

0.5021893

703333.75

2010246

33.5041

420

0.90909

1.01329

19*19

0.5009267

0.5023267

663836.89

1829267

30.487783

380

0.90476

0.94384

18*18

0.5019723

0.5014723

669932.06

1648492

27.474867

342

0.9

1.00918

17*17

0.5013449

0.5020449

653491.58

1534869

25.58115

306

0.89474

0.97546

16*16

0.501363

0.501963

643422.3

1410569

23.509483

272

0.88889

0.98459

15*15

0.5021922

0.5010922

630734.96

1264237

21.070617

240

0.88235

0.98028

14*14

0.5015126

0.5016126

615826.19

1133747

18.895783

210

0.875

0.97636

13*13

0.5012293

0.5020293

616165.2

1099168

18.319467

182

0.86667

1.00055

12*12

0.5012554

0.5017554

599936.86

947558

15.792633

156

0.85714

0.97366

11*11

0.5017812

0.5013812

591014.93

833751

13.89585

132

0.84615

0.98513

10*10

0.5015105

0.5014105

569645.39

585590

9.7598333

110

0.83333

0.96384

9*9

0.5015922

0.5012922

554611.5

626660

10.444333

90

0.81818

0.97361

8*8

0.5005043

0.5024043

555818.07

577421

9.6236833

72

0.8

1.00218

7*7

0.5018814

0.5011814

589825.64

518911

8.6485167

56

0.77778

1.06118

6*6

0.5017638

0.5010638

535387.56

405154

6.7525667

42

0.75

0.9077

5*5

0.501102

0.501702

558111.44

350389

5.8398167

30

0.71429

1.04244

4*4

0.5017422

0.5011422

622167.2

327116

5.4519333

20

0.66667

1.11477

3*3

0.5017388

0.5012388

856043.13

345007

5.7501167

12

0.6

1.37591

2*2

0.5017251

0.5010251

1727142.7

407016

6.7836

6

0.5

2.01759

迭代次數曲線35-2

從35-4隨著節點數量的增加迭代次數幾乎一直都是在增加的,

而且看起來像是一條直線,先不考慮為什麼從4*4開始網路的迭代次數為什麼大幅增加,只看35-5在這個區間上11*11,19*19,35*35迭代次數依次增加,重現了前面的資料。

迭代次數只和節點數n有關,比如20*20的網路一次迭代次數是2*(20*20+20)=840而10*10的一次迭代次數是2*(10*10+10)=220如果用迭代次數描述網路的複雜度那10*10的網路的複雜度只有20*20網路的26%,但10*10的迭代次數是20*20迭代次數的81%。

因為看起來是一條直線所以比如用(20,70333)和(10,569645)兩個點擬合一條線

可以很容易的得到

迭代次數=13368.8*n+435957

迭代次數

計算值

751763.695

35

903865

1.20233

730357.575

34

890496.2

1.21926

739203.595

33

877127.4

1.18658

738450.385

32

863758.6

1.16969

730641.125

31

850389.8

1.1639

726516.235

30

837021

1.1521

728437.225

29

823652.2

1.13071

723658.62

28

810283.4

1.1197

727087.32

27

796914.6

1.09604

725809.93

26

783545.8

1.07955

717297.485

25

770177

1.07372

702123.895

24

756808.2

1.07788

719971.275

23

743439.4

1.0326

710521.89

22

730070.6

1.02751

694105.77

21

716701.8

1.03255

703333.745

20

703333

1

663836.885

19

689964.2

1.03936

669932.055

18

676595.4

1.00995

653491.575

17

663226.6

1.0149

643422.295

16

649857.8

1.01

630734.96

15

636489

1.00912

615826.185

14

623120.2

1.01184

616165.195

13

609751.4

0.98959

599936.855

12

596382.6

0.99408

591014.93

11

583013.8

0.98646

569645.39

10

569645

1

554611.495

9

556276.2

1.003

555818.065

8

542907.4

0.97677

589825.64

7

529538.6

0.89779

535387.56

6

516169.8

0.9641

558111.435

5

502801

0.9009

從表格看到雖然這個公式比較粗糙但得到的資料的精度還是挺高的,表明像n*n這樣的網路的效能其實是很穩定可期待的。

至於為什麼從4*4開始迭代次數反常的增加了,這個可能是由於輸入太小反向傳導的反饋訊號相對出入訊號的比例變大,使波動變大。

實驗資料

引數設定

權重的初始化標準是

Random rand1 =new Random();

int t=rand1.nextInt(99);

w[a][b]=(double)t/200;

為了加快收斂速度這次的收斂標準是

While(Math.abs(a-b)>0.01)

學習率是0.1

        
        
        
        
35*35        
        
        
200        
        
0.49675    0.50675    810481
0.497148    0.507148    788181
0.497384    0.507384    704652
0.495417    0.505417    842029
0.497171    0.507171    698999
0.506872    0.496872    659609
0.497507    0.507507    807864
0.497809    0.507809    921422
0.496937    0.506937    739951
0.507939    0.497939    819423
0.496708    0.506708    753829
0.507786    0.497786    751526
0.497232    0.507232    801998
0.497174    0.507174    695033
0.497045    0.507045    749511
0.507563    0.497563    684380
0.507662    0.497662    723234
0.507994    0.497994    920399
0.507571    0.497571    805100
0.507399    0.497399    674561
0.496782    0.506782    675300
0.506639    0.496639    711474
0.50707    0.49707    826604
0.497199    0.507199    847200
0.496148    0.506148    727594
0.497149    0.507149    736056
0.507266    0.497266    720836
0.496706    0.506706    749766
0.497063    0.507063    805986
0.507134    0.497134    772183
0.507495    0.497495    679744
0.507822    0.497822    913604
0.50762    0.49762    769370
0.497888    0.507888    706180
0.497741    0.507741    724682
0.496723    0.506723    709685
0.507196    0.497196    835523
0.507224    0.497224    794208
0.497291    0.507291    791955
0.508205    0.498205    802170
0.506757    0.496757    605002
0.497478    0.507478    639906
0.497098    0.507098    719036
0.497417    0.507417    684081
0.497568    0.507568    769559
0.507523    0.497523    721428
0.497779    0.507779    778272
0.507509    0.497509    749308
0.507148    0.497148    818641
0.507398    0.497398    681171
0.497456    0.507456    758299
0.497876    0.507876    783196
0.507196    0.497196    802192
0.505956    0.495956    754344
0.507041    0.497041    815168
0.497447    0.507447    853829
0.497425    0.507425    670510
0.497192    0.507192    843856
0.506466    0.496466    657838
0.507462    0.497462    835782
0.506378    0.496378    843067
0.496717    0.506717    761023
0.497026    0.507026    729336
0.49689    0.50689    769188
0.50672    0.49672    698130
0.496977    0.506977    767227
0.496142    0.506142    649927
0.507662    0.497662    806548
0.50788    0.49788    987771
0.497029    0.507029    716112
0.507305    0.497305    703961
0.497501    0.507501    768079
0.507788    0.497788    724957
0.497542    0.507542    655516
0.507671    0.497671    789263
0.497172    0.507172    592475
0.497324    0.507324    799733
0.506958    0.496958    708507
0.507953    0.497953    719122
0.498175    0.508175    918803
0.497129    0.507129    844280
0.497033    0.507033    721124
0.49776    0.50776    735240
0.506821    0.496821    719789
0.506997    0.496997    752237
0.496894    0.506894    720801
0.497422    0.507422    821084
0.507852    0.497852    751841
0.497322    0.507322    680553
0.496119    0.506119    697863
0.50805    0.49805    752030
0.497221    0.507221    912361
0.507169    0.497169    824342
0.496584    0.506584    737398
0.497651    0.507651    725294
0.50775    0.49775    784087
0.497353    0.507353    787337
0.507245    0.497245    653813
0.497054    0.507054    697083
0.50804    0.49804    802464
0.507803    0.497803    801644
0.507394    0.497394    684805
0.507406    0.497406    810243
0.496658    0.506658    594562
0.496585    0.506585    823252
0.496979    0.506979    762221
0.506691    0.496691    742272
0.497205    0.507205    634887
0.506853    0.496853    652412
0.507875    0.497875    677753
0.497454    0.507454    819665
0.496924    0.506924    786794
0.506649    0.496649    702079
0.507399    0.497399    672396
0.507874    0.497874    805735
0.507476    0.497476    713826
0.507487    0.497487    754229
0.496732    0.506732    614912
0.497609    0.507609    803277
0.497338    0.507338    651072
0.496937    0.506937    676803
0.497081    0.507081    680344
0.50739    0.49739    788642
0.506881    0.496881    624876
0.507897    0.497897    721414
0.507507    0.497507    746702
0.49701    0.50701    876400
0.506422    0.496422    675161
0.507881    0.497881    745981
0.496868    0.506868    693958
0.497585    0.507585    703395
0.496251    0.506251    753301
0.497672    0.507672    746226
0.497257    0.507257    854453
0.497782    0.507782    756438
0.497329    0.507329    778442
0.506799    0.496799    684380
0.507527    0.497527    685286
0.507839    0.497839    808556
0.497328    0.507328    744971
0.497729    0.507729    778014
0.506217    0.496217    588445
0.507457    0.497457    659411
0.506934    0.496934    897865
0.497864    0.507864    709199
0.507062    0.497062    777211
0.507505    0.497505    687283
0.507424    0.497424    745398
0.506863    0.496863    876001
0.50701    0.49701    757322
0.49664    0.50664    729917
0.49593    0.50593    645115
0.496937    0.506937    705774
0.49814    0.50814    955689
0.507276    0.497276    821252
0.507534    0.497534    735964
0.497191    0.507191    686438
0.49728    0.507279    726273
0.507089    0.497089    693293
0.497733    0.507733    723365
0.496863    0.506863    725454
0.507451    0.497451    717482
0.497391    0.507391    775177
0.50836    0.49836    1142431
0.50764    0.49764    811008
0.507481    0.497481    792613
0.495864    0.505864    790671
0.507698    0.497698    720601
0.496622    0.506622    768089
0.507537    0.497537    743617
0.507829    0.497829    817927
0.497551    0.507551    685889
0.507535    0.497535    677131
0.496691    0.506691    670259
0.497217    0.507217    834370
0.507193    0.497193    758099
0.507634    0.497634    708548
0.50787    0.49787    822819
0.496395    0.506395    674192
0.49733    0.50733    742303
0.507449    0.497449    875727
0.497374    0.507374    741429
0.506557    0.496557    657031
0.507347    0.497347    677507
0.507132    0.497132    940431
0.507363    0.497363    886476
0.507025    0.497025    688864
0.497274    0.507274    711782
0.506696    0.496696    655814
0.506529    0.496529    672399
0.496841    0.506841    741494
0.497461    0.507461    840432
0.497589    0.507589    739667
0.497113    0.507113    627073
0.497993    0.507993    862386
0.497283    0.507283    755218
0.49734    0.50734    732353
0.507311    0.497311    654093
0.497422    0.507422    630894
0.507659    0.497659    906509
        
        
0.502096    0.502396    751763.7
        
        
        
        
        
        
        
33*33        
        
200        
        
0.507024    0.497024    602650
0.496529    0.506529