用神經網路模擬分子:資料重複性檢測
前面計算了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