BAB 3 METODOLOGI PENELITIAN 31 Pendahuluan Algoritma Resilient Backpropagation (RPROP) dibagi menjadi dua bagian proses yaitu forward pass dan backward pass Forward pass berfungsi untuk mendapatkan nilai error dari algoritma artificial neural network, dimana nilai error tersebut harus konvergen nilai nol yaitu nilai error mendekati nilai nol Backward pass berfungsi untuk melakukan update pada nilai weight agar nilai yang dihasilkan pada waktu proses forward pass berikutnya menghasilkan nilai error yang konvergen terhadap nilai nol Kedua bagian ini merupakan bagian terpenting pada algoritma RPROP karena merupakan bagian untuk melakukan pembelajaran terhadap algoritma RPROP yang bertujuan untuk mengenali lingkungan yang akan diproses Proses algoritma RPROP pada kedua bagian tersebut dapat dioptimalkan pada waktu training, dengan cara melakukan komputasi parallel pada algoritma RPROP Pada proses RPROP dibagi menjadi beberapa sub-proses, dan sub-proses tersebut dijalankan pada waktu yang bersamaan Penelitian yang dilakukan adalah menganalisa waktu pada pembelajaran dengan cara membuat tiga model komputasi parallel algoritma RPROP yang dijalankan pada sebuah komputer menggunakan multithreading Multithreading adalah teknik untuk menjalankan beberapa proses secara bersamaan dengan menggunakan satu buah processor Pada bab ini metodologi dibagi menjadi beberapa bagian yaitu tahapan tahapan penelitian yang berisikan tahapan yang dilakukan pada penelitian ini, dataset adalah menjelaskan dataset yang digunakan pada penelitian ini, perancangan algoritma RPROP parallel processing, dan yang terakhir cara melakukan analisis data yang dihasilkan
22 32 Tahapan Tahapan Penelitian Tahapan tahapan penelitian bertujuan penelitian yang dilaksanakan tidak keluar dari jalur yang ditentukan Tahapan penelitian yang dilakukan dijabarkan pada Gambar31 Dataset yang Digunakan Perancangan Arsitektur Resilient Backpropagation Parallel Berdasarkan Thread Training Algoritma Resilient Backpropagation Parallel CPU Time Pembelajaran Berdasarkan Pengunaan Thread Gambar 3 1 Diagram Tahapan Tahapan Penelitian 33 Data yang Digunakan Dataset adalah kumpulan data yang digunakan untuk pembelajaran dan ujicoba pada artificial neural network Dataset yang digunakan berasal dari UCI Machine Learning dengan data HAR (Human Activity Recognition) Dataset HAR ini berisi data data sensor dari accelerometer dan gyroscope menggunakan smartphone jenis Samsung Galaxy S II yang diletakan pada pinggang Penelitian yang dilakukan menggunakan data dari sensor accelerometer dan gyroscope Dataset HAR terdiri dari dua jenis data sensor dan data yang diambil adalah sensor accelerometer dan gyroscope, pada dataset ini telah disedikan dataset untuk training dan testing
23 Dataset sensor accelerometer dan gyroscope didapatkan tiga buah nilai axial yaitu nilai x, y, dan z Jumlah kasus pada masing masing nilai axial tersebut adalah 7352 kasus Kasus tersebut adalah aktifitas yang dilakukan oleh volunteers berjumlah 30 volunteers Aktifitas yang dilakukan oleh volunteers yaitu berjalan, menaiki tangga, menuruni tangga, duduk, berdiri, dan tidur Dari setiap aktifitas yang dilakukan tersebut menghasilkan nilai axial nya yaitu x, y, dan z Nilai triaxial tersebut diekstrak menjadi 561 feature data yang ditampilkan pada Tabel 31 yang hanya menampilkan beberapa fitur dataset saja untuk fitur dataset yang lebih lengkapnya akan ditampilkan pada Lampiran A Tabel 3 1 Fitur Dataset Triaxial No Nama Feature No Nama Feature 1 tbodyacc-mean()-x 281 fbodyacc-sma() 2 tbodyacc-mean()-y 282 fbodyacc-energy()-x 3 tbodyacc-mean()-z 283 fbodyacc-energy()-y 4 tbodyacc-std()-x 284 fbodyacc-energy()-z 5 tbodyacc-std()-y 285 fbodyacc-iqr()-x 6 tbodyacc-std()-z 286 fbodyacc-iqr()-y 7 tbodyacc-mad()-x 287 fbodyacc-iqr()-z 8 tbodyacc-mad()-x 288 fbodyacc-entropy()-x 9 tbodyacc-mad()-z 289 fbodyacc-entropy()-y 10 tbodyacc-max()-x 290 fbodyacc-entropy()-z 11 tbodyacc-max()-y 291 fbodyacc-maxinds-x 12 tbodyacc-max()-z 292 fbodyacc-maxinds-y 13 tbodyacc-min()-x 293 fbodyacc-maxinds-z 14 tbodyacc-min()-y 294 fbodyacc-meanfreq()-x 15 tbodyacc-min()-z 295 fbodyacc-meanfreq()-y 16 tbodyacc-sma() 296 fbodyacc-meanfreq()-z 17 tbodyacc-energy()-x 297 fbodyacc-skewness()-x 18 tbodyacc-energy()-y 298 fbodyacc-kurtosis()-x 19 tbodyacc-energy()-z 299 fbodyacc-skewness()-y 20 tbodyacc-iqr()-x 300 fbodyacc-kurtosis()-y 21 tbodyacc-iqr()-y 301 fbodyacc-skewness()-z 22 tbodyacc-iqr()-z 302 fbodyacc-kurtosis()-z 23 tbodyacc-entropy()-x 303 fbodyacc-bandsenergy()-1,8 24 tbodyacc-entropy()-y 304 fbodyacc-bandsenergy()-9,16 25 tbodyacc-entropy()-z 305 fbodyacc-bandsenergy()-17,24 26 tbodyacc-arcoeff()-x,1 306 fbodyacc-bandsenergy()-25,32 27 tbodyacc-arcoeff()-x,2 307 fbodyacc-bandsenergy()-33,40 28 tbodyacc-arcoeff()-x,3 308 fbodyacc-bandsenergy()-41,48 29 tbodyacc-arcoeff()-x,4 309 fbodyacc-bandsenergy()-49,56
24 Tabel 3 2 Fitur Dataset Triaxial (Lanjutan) No Nama Feature No Nama Feature 30 tbodyacc-arcoeff()-y,1 310 fbodyacc-bandsenergy()-57,64 31 tbodyacc-arcoeff()-y,2 311 fbodyacc-bandsenergy()-1,16 32 tbodyacc-arcoeff()-y,3 312 fbodyacc-bandsenergy()-17,32 33 tbodyacc-arcoeff()-y,4 313 fbodyacc-bandsenergy()-33,48 34 tbodyacc-arcoeff()-z,1 314 fbodyacc-bandsenergy()-49,64 Feature dataset yang sebanyak 561 dijadikan sebagai nilai input pada algoritma neural network, nilai input pada bilangan tersebut adalah bilangan real Dataset target sensor disikan nilai menggunakan 1 dan 0 Node ouput dari algoritma artificial neural network (ANN) sebanyak aktifitas yang diklasifikasikan yaitu ada enam aktifitas yang harus diklasifikasikan Setiap aktifitas mempunyai nilai output pada setiap node ouput pada algoritma ANN yang dijabarkan pada Tabel 38 Tabel 3 3 Nilai Target Output Aktifitas Manusia No Aktifitas Nilai Target 1 Jalan 100000 2 Naik Tangga 010000 3 Turun Tangga 001000 4 Duduk 000100 5 Berdiri 000010 6 Tidur 000001 34 Arsitektur Artificial Neural Network Rancangan arsitektur artificial neural network ini bertujuan untuk menentukan jumlah neuron pada masing masing layer 341 Input Layer Input Layer merupakan layer untuk memasukan nilai yang digunakan untuk dipelajari oleh artificial neural network Node pada input layer disediakan sebanyak 561 node,
25 sesuai dengan dataset yang dihasilkan dari kedua sensor tersebut yang menghasilkan nilai feature sebanyak 561 node yang telah dijabarkan pada Tabel 31 342 Hidden Layer Hidden Layer merupakan layer melakukan proses nilai input menghasilkan nilai function yang diteruskan ke layer output Node atau neuron yang disediakan pada hidden layer di penelitian ini ditentukan berdasarkan (Heaton, 2008): 1 Jumlah neuron pada hidden layer harus diantara jumlah neuron pada input layer dan jumlah neuron pada output layer 2 Jumlah neuron pada hidden layer harus 2/3 jumlah neuron pada input layer, dan ditambahkan dengan jumlah neuron pada output layer 3 Jumlah neuron pada hidden layer harus kurang dari dua kali jumlah neuron pada input layer Neuron hidden layer yang digunakan pada penelitian ini adalah menggunakan peraturan pada no 2 yaitu jumlah neuron pada hidden layer adalah 2/3 dari jumlah neuron input layer dan output layer Jumlah neuron pada hidden layer yang digunakan adalah Jumlah neuron hidden = 2 (Jumlah neuron input + jumlah neuron output) 3 Jumlah neuron hidden = 2 (561 + 6) 3 Jumlah neuron hidden = 2 3 567 Jumlah neuron hidden = 378 Jumlah neuron hidden layer yang digunakan sebanyak 378 neuron pada hidden layer 343 Output Layer Output Layer merupakan layer memproses nilai dari hidden layer dan menghasilkan nilai error, yang digunakan sebagai nilai untuk mengupdate nilai weight Neuron pada layer output sesuai dengan dataset target yaitu 6 buah node Pada masing masing node tersebut mengenal beberapa aktivitas manusia yaitu jalan, naik tangga, turun tangga, duduk, berdiri dan tidur
26 344 Rancangan Arsitektur Neural Network Berdasarkan data yang telah disebutkan maka rancangan neural network dijelaskan melalui Gambar 33 Feed Forward Y1 X1 Z1 X2 X 561 Y2 Y377 Z2 Z6 Input Layer Y378 Output Layer Hidden Layer Backward Gambar 3 2 Arsitektur Neural Network Resilient Backpropagation Gambar 33 merupakan rancangan arsitektur standar tanpa menerapkan teknik parallel di dalamnya Input pada rancangan arsitektur disesuakian banyak feature dataset dari UCI Machine Learning yaitu sebanyak 561 neuron pada input layer Pada hidden layer berdasarkan perhitungan yang telah didapatkan maka neuron pada hidden layer disediakan sebanyak 378 neuron Dan untuk output layer sesuai dengan data yang disebut pada output layer yaitu sebanyak 6 buah neuron 35 Parallel Resilient Backpropagation Parallel pada resilient backpropagation difokuskan pada waktu proses feedforward Proses feedforward untuk parallel menggunakan multithreading ini difokuskan pada bagian hidden layer Implementasi parallel resilient backpropagation maka digunakan teknologi multithreading Neuron yang berada pada bagian hidden layer akan dibagi
27 berdasarkan jumlah thread Penelitian yang akan dilakukan menggunakan jumlah thread dimulai dari 1 buah thread sampai 7 buah thread Pembatasan sampai 7 buah thread ini disebabkan oleh waktu karena pada pengujian yang dilakukan pada setiap arsitektur resilient backpropagation dengan parallel processing sehingga membutuhkan waktu untuk memprosesnya Pada penelitian ini difokuskan pada kecepatan waktu proses dari resilient backpropagation dalam menyelesaikan satu itreasi Waktu yang akan diambil untuk menentukan kecepatan proses tersebut akan berdasarkan pada waktu di komputer (CPU Time) 36 Rancangan Arsitektur Resilient Backpropagation Parallel Rancangan arsitektur resilient backpropagation parallel ada sebanyak tujuh buah model, berdasarkan pada thread yang digunakan yaitu dari satu buah thread sampai tujuh buah thread yang berfokus pada proses feedforward Gambar arsitektur neural network akan ditampilkan pada Gambar 33 sampai Gambar 39 Feed Forward 1 Thread Y1 X1 Z1 Y2 X2 Y377 Z2 X561 Z6 Y378 Gambar 3 3 Arsitektur Neural Network Parallel dengan 1 Thread Gambar 33 arsitektur neural network ini satu buah thread memproses sebanyak 378 neuron pada hidden layer
28 Feed Forward 1 Thread X1 Y1 Y188 Z1 X2 X561 Y189 Z2 Z6 Y378 2 Thread Gambar 3 4 Arsitektur Neural Network Parallel dengan 2 Thread Gambar 34 thread yang digunakan yaitu sebanyak 2 buah dan 1 buah thread memproses sebanyak 189 neuron Feed Forward X1 Y1 Y125 1 Thread Z1 X2 X561 Y126 Y251 2 Thread Y252 Y378 3 Thread Z2 Z6 Gambar 3 5 Arsitektur Neural Network Parallel dengan 3 Thread
29 Gambar 35 pada arsitektur neural network dibentuk 3 thread untuk memproses neuron pada hidden layer Pada masing masing thread memproses sebanyak 126 thread Feed Forward Y1 Y93 1 Thread X1 X2 X561 Y94 Y187 2 Thread Y188 Y281 3 Thread Z1 Z2 Z6 Y282 Y378 4 Thread Gambar 3 6 Arsitektur Neural Network Parallel dengan 4 Thread Gambar 36 pada arsitektur neural network ini ada 4 thread yang dibuat untuk memproses neuron yang berada pada hidden layer Pada thread 1 sampai 3 memproses sebanyak 94 neuron Pada thread 4 memproses neuron sebanyak 96 neuron, ini disebabkan jumlah total neuron yang dibagi dengan banyak thread bukan menghasilkan bilangan bulat Sehingga pada thread ke empat neuron yang diproses bertambah 2 neuron
30 Feed Forward Y1 Y74 1 Thread X1 Y75 Y149 2 Thread Z1 X2 X561 Y150 Y224 3 Thread Y225 Y299 4 Thread Z2 Z6 Y299 Y378 5 Thread Gambar 3 7 Arsitektur Neural Network Parallel dengan 5 Thread Gambar 38 arsitektur neural network neural network ini menggunakan 5 thread untuk memproses neuron pada hidden layer Pada thread 1 sampai 4 memproses 75 neuron, dan thread ke 5 memproses sebanyak 78 thread
31 Feed Forward Y1 Y62 1 Thread Y63 Y125 2 Thread X1 X2 X561 Y126 Y188 3 Thread Y189 Y251 4 Thread Z1 Z2 Z6 Y252 Y314 5 Thread Y315 Y378 6 Thread Gambar 3 8 Arsitektur Neural Network Parallel dengan 6 Thread Gambar 38 arsitektur neural network ini menggunakan 6 thread untuk memproses neuron pada hidden layer, pada masing masing thread memproses 63 neuron
32 Feed Forward Y1 Y53 1 Thread Y54 Y107 2 Thread X1 X2 X561 Y108 Y161 3 Thread Y162 Y205 4 Thread Y206 Y259 5 Thread Z1 Z2 Z6 Y260 Y313 6 Thread Y314 Y378 7 Thread Gambar 3 9 Arsitektur Neural Network Parallel dengan 7 Thread Gambar 39 arsitektur ini menggunakan 7 buah thread untuk memproses neuron pada hidden layer Pada masing masing thread memproses neuron sebanyak 54 neuron 37 Analisis Waktu Pembelajaran Analisa waktu training yang dilakukan berdasarkan pada CPU time Pengambilan waktu CPU time yang diambil dari setiap iterasi yang diproses Waktu yang didapat pada setiap iterasi ditotal untuk mendapatkan waktu keseluruhan pada setiap proses training resilient backpropagation
33 Pengujian yang dilakukan dibagi menjadi beberapa bagian berdasarkan thread yang dibentuk pada multithreading yang dijabarkan pada Tabel 34 Tabel 3 4 Pembagian Neuron Hidden Layer Berdasarkan Jumlah Thread Thread yang terbentuk Hidden Neuron pada sebuah Thread Total Neuron pada Hidden Layer 1 378 378 2 189 378 3 126 378 4 94 378 5 75 378 6 63 378 7 54 378 Berdasarkan pada Tabel 34 hasil dari jumlah neuron hidden yang diproses pada sebuah thread menggunakan rumus sederhana yaitu Nh Nh adalah jumlah neuron pada hidden layer dibagi dengan t yaitu thread yang akan digunakan pada sebuah processor Pada penelitian ini dibentuk hanya sampai 7 thread karena terbatas sumber daya untuk memproses semua dan waktu yang dibutuhkan untuk pembelajaran tersebut t Analisa waktu yang dilakukan berdasarakan Tabel 34 yang telah dibagikan jumlah neuron berdasarkan jumlah thread maka setiap pembagian tersebut dilakukan pengujian ke dalam komputer untuk mengetahui pembagian thread mana yang cepat selesai berdasarkan pada CPU time Total waktu selesai tersebut akan diambil dari waktu selesai pada satu iterasi dan ditotal keseluruhannya sebagai contoh ada 6 iterasi dan epoch 10 maka 6 dikalikan 10 yang menghasilkan sebanyak 60 iterasi dari 60 iterasi tersebut akan dihasilkan waktu CPU time pada masing masing iterasi tersebut dimana semua waktu tersebut akan di jumlah untuk mendapatkan total waktu CPU time 38 Analisis Parallel Resilient Backpropagation Pada proses perhitungan parallel ini dijabarkan terlebih dahulu proses kerja dari algoritma resilient backpropagation secara garis besar terlebih dahulu yaitu proses kerja parallel resilient backpropagation Proses kerja parallel algoritma resilient backpropagation dijabarkan sebagai berikut: 1 Pengisian data awal Pada bagian ini memasukan data berupa weight dan input data yang digunakan untuk melakukan training
34 2 Proses feedforward Pada proses feedforward pada masing masing thread yang dibentuk mengeksekusi neuron neuron yang telah ditetapkan pada masing masing thread Setelah nilai function pada masing masing neuron di hidden layer telah terkumpul, maka dilanjutkan ke output layer Pada output layer setiap neuron pada output layer menerima jumlah dari nilai function neuron pada hidden layer dikalikan dengan weight yang menuju ke neuron output layer Setelah itu nilai function output dikurangi dengan nilai target untuk mendapatkan nilai error 3 Proses backward Pada proses backward dari nilai error yang dihasilkan dari output layer akan digunakan sebagai penentuan learning rate yang digunakan untuk melakukan update weight dari output layer ke hidden layer dan ini sama juga dengan melakukan update weight dari hidden layer menuju ke output layer Pada proses diatas setelah mencapai proses backward maka balik ke proses feedforward dan dilakukan secara berulang ulang berdasarkan pada nilai epoch yang ditetapkan ataupun berdasarkan nilai error yang telah ditetapkan sampai proses pembelajaran tersebut selesai Proses perhitungan algoritma resilient backpropagation ditunjukan sebagai berikut Pada proses perhitungan ini hanya menggunakan 6 input saja untuk memudahkan perhitungan yang dilakukan Arsitektur yang ditetapkan adalah 6 8 6 yaitu 6 neuron pada input layer, 8 neuron pada hidden layer, dan 6 neuron pada output layer Pada hidden layer menggunakan 2 thread, jadi pada 1 thread terdapat 4 neuron Nilai input ditampilkan pada Tabel 35 berserta dengan targetnya Tabel 3 5 Nilai Input dan Target Iterasi X1 X2 X3 X4 X5 X6 Target 1-0,29711074-0,21974984-0,54056759-0,15985587-0,34680107-0,60118907 100000 2-0,38277796-0,26594667-0,90660877 0,0047518659-0,352221-061701539 010000 3-0,08941795 0,3503063-0,61875707 0,22870880-0,19840814-0,72534632 001000 4-0,99534349-0,99294196-0,99471662-0,98509701-0,99030212-0,98772069 000100 5-0,99500944-0,99574572-0,9941746-0,98630456-0,98702854-0,9903605 000010 6-0,99821243-0,99713065-0,99584015-0,99185951-0,99263477-0,9612347 000001
35 Nilai masing masing weight neuron dari input layer ke hidden layer ditunjukan pada Tabel 36 Tabel 3 6 Nilai Weight dari Input Layer ke Hidden Layer W1 W2 W3 W4 W5 W6 Neuron 1 0426761-0209749 0130493 0159938 0513239 0259989 Neuron 2 0147308 0244746 0939377-0958328 0491299-0345167 Neuron 3 0123516-0077415 0665945-0902579 0609804 0946845 Neuron 4-0580798 0079208-0168001 -0195628 0258399-0532974 Neuron 5 0094000 0219853 0657973-0413534 -0115490-0235629 Neuron 6-0022459 0203899-0391928 -0279733-0282830 0251747 Neuron 7 0419578-0550749 0867966-0603141 0578925 0962164 Neuron 8-0198452 -0034806 0370672 0850606-0842940 -0320036 Nilai masing masing weight neuron dari hidden layer ke output layer ditunjukan pada Tabel 37 Tabel 3 7 Nilai Weight dari Hidden Layer ke Output Layer W1 W2 W3 W4 W5 W6 W7 W8 Neuron 1-0210552 0247029 0141611-0006003 0367705 0217677 0236928 0833174 Neuron 2-0194510 -0906991-0687177 0577420-0069840 0878773-0661131 -0479768 Neuron 3 0132161 0028865-0621014 -0081734 0124832-0105653 0502964 0933528 Neuron 4-0708678 0347272 0104149 0683817 0692320-0260428 -0990184-0393145 Neuron 5-0054912 -0230816 0178554-0422108 0617603 0127605-0875401 0823427 Neuron 6 0266208-0536563 0719287-0298457 -0125625 0689534-0050286 -0503200 Proses perhitungan dibagi menjadi 2 thread Pada thread pertama memproses neuron 1 sampai neuron 4, sedangkan thread kedua memproses neuron 5 sampai neuron 6 Thread tersebut akan berjalan secara bersamaan dan proses perhitungan adalah sebagai berikut: Proses perhitungan pada thread 1 Ny1 = ( 029711074 0426761) + ( 021974984 0209749) + ( 054056759 0130493 ) + ( 015985587 0159938 ) + ( 034680107 0513239) + ( 060118907 0259989 ) = 051110466146687 f(ny1) = 1 1 + e Nh1 = 1 = 03749346028203156 1 + e ( 051110466146687)
36 Ny2 = ( 029711074 0147308) + ( 021974984 0244746) + ( 054056759 0939377 ) + ( 015985587 0958328 ) + ( 034680107 0491299) + ( 060118907 0345167) = 041502447919987007 f(ny2) = 1 1 + e Nh1 = 1 = 03977079594387821 1 + e ( 041502447919987007) Ny3 = ( 029711074 0123516) + ( 021974984 0077415) + ( 054056759 0665945 ) + ( 015985587 0902579) + ( 034680107 0609804) + ( 060118907 0946845 ) = 101610527340649 f(ny3) = 1 1 + e Nh1 = 1 = 02657867400127982 1 + e ( 101610527340649) Ny4 = ( 029711074 0580798) + ( 021974984 0079208) + ( 054056759 0168001 ) + ( 015985587 0195628 ) + ( 034680107 0258399) + ( 060118907 0532974) = 0508048651775 f(ny4) = 1 1 + e Nh1 = 1 = 06243489216047062 1 + e (0508048651775) Proses perhitungan pada thread 2 Ny5 = ( 029711074 0094000) + ( 021974984 0219853) + ( 054056759 0657973 ) + ( 015985587 0413534 ) + ( 034680107 0115490) + ( 060118907 0235629 ) = 018410447773467994 f(ny5) = 1 1 + e Nh1 = 1 = 04541034439696736 1 + e ( 018410447773467994) Ny6 = ( 029711074 0022459) + ( 021974984 0203899) + ( 054056759 0391928 ) + ( 015985587 0279733 ) + ( 034680107 0282830) + ( 060118907 0251747 ) = 016518477580253998
37 f(ny6) = 1 1 + e Nh1 = 1 = 05412025487653866 1 + e ( 018410447773467994) Ny7 = ( 029711074 0419578) + ( 021974984 0550749) + ( 054056759 0867966 ) + ( 015985587 0603141) + ( 034680107 0578925) + ( 060118907 0962164 ) = 115562707476906 f(ny7) = 1 1 + e Nh1 = 1 = 02394627762742987 1 + e ( 115562707476906) Ny8 = ( 029711074 0198452) + ( 021974984 0034806) + ( 054056759 0370672) + ( 015985587 0850606) + ( 034680107 0842940) + ( 060118907 0320036) = 021499784078014 f(ny8) = 1 1 + e Nh1 = 1 = 0553543369536466 1 + e (021499784078014) Nilai function neuron pada hidden layer dijabarkan pada Tabel 38 Threa d 1 Threa d 2 Tabel 3 8 Nilai Function Neuron pada Hidden Layer f(ny1) f(ny2) f(ny3) f(ny4) 03749346028203156 03977079594387821 02657867400127982 06243489216047062 f(ny5) f(ny6) f(ny7) f(ny8) 04541034439696736 05412025487653866 02394627762742987 0553543369536466 Nilai function yang telah dihasilkan dari hidden layer pada masing masing thread dilanjutkan ke output layer Proses perhitungan hidden layer ke output layer disajikan sebagai berikut Nz1 = (03749346028203156 0210552) + (03977079594387821 0247029) + (02657867400127982 0141611 ) + (06243489216047062 0006003 ) + (04541034439696736 0367705) + (05412025487653866 0217677 ) + (02394627762742987 0236928 ) + (0553543369536466 0833174 ) = 08559093625825036
38 f(nz1) = 1 1 + e No1 = 1 = 07018052950441617 1 + e (08559093625825036) e o (Nz1) = y target (Nz1) f(nz1) = 1 07018052950441617 = 029819470495583833 δ o (Nz1) = f(nz1) [1 f(nz1)] e o (Nz1) = 07018052950441617 [1 07018052950441617] 029819470495583833 = 006240458442806568 Nz2 = (03749346028203156 0194510) + (03977079594387821 0906991) + (02657867400127982 0687177 ) + (06243489216047062 0577420 ) + (04541034439696736 0069840) + (05412025487653866 0878773) + (02394627762742987 0661131 ) + (0553543369536466 0479768 ) = 023578610696011662 f(nz2) = 1 1 + e Nz2 = 1 = 044132505826024154 1 + e ( 023578610696011662) e o (Nz2) = y target (Nz2) f(nz2) = 0 044132505826024154 = 044132505826024154 δ o (Nz2) = f(nz2) [1 f(nz2)] e o (Nz2) = 044132505826024154 [1 044132505826024154] 044132505826024154 = 010881189325554852
39 Nz3 = (03749346028203156 0132161) + (03977079594387821 0028865) + (02657867400127982 0621014 ) + (06243489216047062 0081734 ) + (04541034439696736 0124832) + (05412025487653866 0105653) + (02394627762742987 0502964 ) + (0553543369536466 0933528 ) = 048164010968736654 f(nz3) = 1 1 + e Nz3 = 1 = 061813508792344 1 + e (048164010968736654) e o (Nz3) = y target (Nz3) f(nz3) = 0 061813508792344 = 061813508792344 δ o (Nz3) = f(nz3) [1 f(nz3)] e o (Nz3) = 061813508792344 [1 061813508792344] 061813508792344 = 014590714112626096 Nz4 = (03749346028203156 0708678) + (03977079594387821 0347272) + (02657867400127982 0104149 ) + (06243489216047062 0683817 ) + (04541034439696736 0692320) + (05412025487653866 0260428) + (02394627762742987 0990184 ) + (0553543369536466 0393145 ) = 004573234502369555 f(nz4) = 1 1 + e Nz4 = 1 = 05114310940310602 1 + e (004573234502369555) e o (Nz4) = y target (Nz4) f(nz4) = 0 05114310940310602 = 05114310940310602
40 δ o (Nz4) = f(nz4) [1 f(nz4)] e o (Nz4) = 05114310940310602 [1 05114310940310602] 05114310940310602 = 012779094485235482 Nz5 = (03749346028203156 0054912) + (03977079594387821 0230816) + (02657867400127982 0178554 ) + (06243489216047062 0422108 ) + (04541034439696736 0617603) + (05412025487653866 0127605) + (02394627762742987 0875401 ) + (0553543369536466 0823427 ) = 026722124457485047 f(nz5) = 1 1 + e Nz5 = 1 = 05664105977929704 1 + e (026722124457485047) e o (Nz5) = y target (Nz5) f(nz5) = 0 05664105977929704 = 05664105977929704 δ o (Nz5) = f(nz5) [1 f(nz5)] e o (Nz5) = 05664105977929704 [1 05664105977929704] 05664105977929704 = 01391045705565229 Nz6 = (03749346028203156 0266208) + (03977079594387821 0536563) + (02657867400127982 0719287) + (06243489216047062 0298457 ) + (04541034439696736 0125625) + (05412025487653866 0689534) + (02394627762742987 0050286 ) + (0553543369536466 0503200) = 008320297993132811 f(nz6) = 1 1 + e Nz6 = 1 = 04792112465544288 1 + e ( 008320297993132811)
41 e o (Nz6) = y target (Nz6) f(nz6) = 0 04792112465544288 = 04792112465544288 δ o (Nz5) = f(nz5) [1 f(nz5)] e o (Nz5) = 04792112465544288 [1 04792112465544288] 04792112465544288 = 011959570982646014 Nilai function neuron pada output layer ditampilkan pada Tabel 39 Tabel 3 9 Nilai Function, Error, dan Gradien Error Neuron Output Layer Neuron Function Error Gradien Error 1 07018052950441617 029819470495583833 006240458442806568 2 044132505826024154 044132505826024154 010881189325554852 3 061813508792344 061813508792344 014590714112626096 4 05114310940310602 05114310940310602 012779094485235482 5 05664105977929704 05664105977929704 01391045705565229 6 04792112465544288 04792112465544288 011959570982646014 Nilai gradien error yang telah didapatkan pada masing masing neuron output layer, dilanjutkan ke fase backward yaitu melakukan update weight pada jaringan neural network tersebut Update weight yang pertama kali dimulai dari weight hidden layer ke output layer Resilient backpropagation menggunakan nilai gradien error untuk menentukan learning rate yang akan digunakan dan menentukan delta weight apakah ditambah atau dikurangi pada waktu melakukan update weight tersebut, jika gradien error lebih besar dari 0 maka nilai weight ditambah dengan nilai delta dan sebaliknya jika nilai gradien error lebih kecil dari 0 maka nilai weight akan dikurangi dengan nilai weight Karena ini merupakan iterasi yang pertama maka gradien error terdahulu diberi nilai 0 dan dikalikan dengan nilai gradien error output sekarang, maka dilanjutkan ke perhitungan update weight dengan penjabaran sebagai berikut wo1 = sign(006240458442806568) 01 = 01 wo 11 = 0210552 + ( 01) = 0310552 wo 12 = 0247029 + ( 01) = 0147029 wo 13 = 0141611 + ( 01) = 004161099999999998 wo 14 = 0006003 + ( 01) = 0106003
42 wo 15 = 0367705 + ( 01) = 026770499999999997 wo 16 = 0217677 + ( 01) = 0117677 wo 17 = 0236928 + ( 01) = 0136928 wo 18 = 0833174 + ( 01) = 0733174 Proses perhitungan tersebut dilanjutkan sampai neuron output ke enam dan hasil dari weight tersebut disajikan pada Tabel 310 Neuron 1 Neuron 2 Neuron 3 Neuron 4 Neuron 5 Neuron 6 Tabel 3 10 Nilai Weight Baru dari Hidden Layer ke Output Layer W1 W2 W3 W4 W5 W6 W7 W8 0310552 0147029 0041611 0106003 0267705 0117677 0136928 0733174-009451 -0806991-0587177 067742 003016 0978773-0561131 -0379768 0232161 0128865-0521014 0018266 0224832-0005653 0602964 1033528-0608678 0447272 0204149 0783817 079232-0160428 -0890184-0293145 0045088-0130816 0278554-0322108 0717603 0227605-0775401 0923427 0366208-0436563 0819287-0198457 -0025625 0789534 0049714-04032 Setelah mengupdate weight hidden layer menuju ke output layer, maka dilanjutkan ke bagian weight input layer ke hidden layer Untuk mengupdate weight tersebut diperlukan gradien error pada setiap neuron di hidden layer, maka perhitungan sebagai berikut δ h (Ny1) = f(ny1) [1 f(ny1)] δ o (p) w 1o (p) l o=1 = 03749346028203156 [1 03749346028203156] ((006240458442806568 0210552) + ( 010881189325554852 0194510) + ( 014590714112626096 0132161) + ( 012779094485235482 0708678) + ( 01391045705565229 0054912) + ( 011959570982646014 0266208)) = 0012914606073151137
43 δ h (Ny2) = f(ny2) [1 f(ny2)] δ o (p) w 2o (p) l o=1 = 03977079594387821 [1 03977079594387821] ((006240458442806568 0247029) + ( 010881189325554852 0906991) + ( 014590714112626096 0028865) + ( 012779094485235482 0347272) + ( 01391045705565229 0230816) + ( 011959570982646014 0536563)) = 003875590565609073 δ h (Ny3) = f(ny3) [1 f(ny3)] δ o (p) w 3o (p) l o=1 = 02657867400127982 [1 02657867400127982] ((006240458442806568 0141611) + ( 010881189325554852 0687177) + ( 014590714112626096 0621014) + ( 012779094485235482 0104149) + ( 01391045705565229 0178554) + ( 011959570982646014 0719287)) = 0009766958283362576 δ h (Ny4) = f(ny4) [1 f(ny4)] δ o (p) w 4o (p) l o=1 = 06243489216047062 [1 06243489216047062] ((006240458442806568 0006003) + ( 010881189325554852 0577420) + ( 014590714112626096 0081734) + ( 012779094485235482 0683817) + ( 01391045705565229 0422108) + ( 011959570982646014 0298457)) = 0010379097384309031
44 δ h (Ny5) = f(ny5) [1 f(ny5)] δ o (p) w 5o (p) l o=1 = 04541034439696736 [1 04541034439696736] ((006240458442806568 0367705) + ( 010881189325554852 0069840) + ( 014590714112626096 0124832) + ( 012779094485235482 0692320) + ( 01391045705565229 0617603) + ( 011959570982646014 0125625)) = 003644713666440263 δ h (Ny6) = f(ny6) [1 f(ny6)] δ o (p) w 6o (p) l o=1 = 05412025487653866 [1 05412025487653866] ((006240458442806568 0217677) + ( 010881189325554852 0878773) + ( 014590714112626096 0105653) + ( 012779094485235482 0260428) + ( 01391045705565229 0127605) + ( 011959570982646014 0689534)) = 0033162464982293714 δ h (Ny7) = f(ny7) [1 f(ny7)] δ o (p) w 7o (p) l o=1 = 02394627762742987 [1 02394627762742987] ((006240458442806568 0236928) + ( 010881189325554852 0661131) + ( 014590714112626096 0502964) + ( 012779094485235482 0990184) + ( 01391045705565229 0875401) + ( 011959570982646014 0050286)) = 004874653253015212
45 δ h (Ny8) = f(ny8) [1 f(ny8)] δ o (p) w 8o (p) l o=1 = 0553543369536466 [1 0553543369536466] ((006240458442806568 0833174) + ( 010881189325554852 0479768) + ( 014590714112626096 0933528) + ( 012779094485235482 0393145) + ( 01391045705565229 0823427) + ( 011959570982646014 0503200)) = 0008929311385118785 Nilai gradien error neuron pada hidden layer ditampilkan pada Tabel 311 Tabel 3 11 Nilai Gradien Error Neuron pada Hidden Layer Neuron Nilai Gradien Error 1 0012914606073151137 2 003875590565609073 3 0009766958283362576 4 0010379097384309031 5 003644713666440263 6 0033162464982293714 7 004874653253015212 8 0008929311385118785 Setelah didapatkan nilai gradien error masing masing neuron pada hidden layer, maka dilanjutkan ke update weight yang berada diantara input layer dan hidden layer Perhitungan update weight untuk hidden layer sama dengan update weight pada output layer dengan perhitungan sebagai berikut wh1 = sign(0012914606073151137) 01 = 01 wh 11 = 0426761 + ( 01) = 0526761 wh 12 = 0209749 + ( 01) = 0309749 wh 13 = 0130493 + ( 01) = 0030493
46 wh 14 = 0159938 + ( 01) = 0059938 wh 15 = 0513239 + ( 01) = 0413239 wh 16 = 0259989 + ( 01) = 0159989 Proses perhitungan update weight tersebut dilanjutkan sampai neuron ke 8 dan hasil update weight tersebut akan ditampilkan pada tabel 312 Tabel 3 12 Nilai Weight Baru dari Input Layer ke Hidden Layer W1 W2 W3 W4 W5 W6 Neuron 1 0526761 0309749 0030493 0059938 0413239 0159989 Neuron 2 0047308 0144746 0839377-1058328 0391299-0445167 Neuron 3 0023516-0177415 0565945-1002579 0509804 0846845 Neuron 4-0480798 0179208-0068001 -0095628 0358399-0432974 Neuron 5 0194 0319853 0757973-0313534 -001549-0135629 Neuron 6 0077541 0303899-0291928 -0179733-018283 0351747 Neuron 7 0319578-0650749 0767966-0703141 0478925 0862164 Neuron 8-0098452 0065194 0470672 0950606-074294 -0220036 Setelah didapatkan nilai weight baru dari iterasi pertama maka dilanjutkan ke iterasi berikutnya sampai ke iterasi ke enam, lalu setelah semua iterasi selesai maka diulangi sampai nilai error mendekati dengan nilai nol 38 CPU Time untuk Parallel Processing Analisis CPU Time jaringan arsitektur neural network parallel processing ini difokuskan pada setiap iterasi yang diproses oleh jaringn neural network Hasil CPU Time yang dihasilkan adalah waktu per iterasi, dan total CPU Time pemebelajaran aka didapatkan dari total dari seluruh iterasi n T = I i 31 T adalah total waktu jaringan neural network I i adalah waktu iterasi Waktu yang dihasilkan sebanyak 7 total waktu dari masing masing thread yang diuji Pengujian yang dilakukan adalah sebanyak 3 kali ini dilakukan karena hasil CPU Time yang dihasilkan tidaklah sama pada setiap waktu karena tergantung pada proses komputer tersebut, sehinga harus dilakukan tiga kali pengujian untuk memastikan jumlah thread yang cepat melakukan pembelajaran neural network Pengujian yang dilakukan i=1
47 sebanyak tiga kali maka harus dicari rata rata nilai tersebut dengan menggunakan rumus sebagai berikut: RT = 3 i=1 T i RT adalah merupakan rata rata waktu, dan i=1 T i merupakan jumlah total dari 3 pengujian tersebut dan dibagi dengan banyak pengujian tersebut dilakukan yaitu 3 3 3 32
BAB 4 HASIL DAN PEMBAHASAN 41 Pendahuluan Pada bab ini menjelaskan hasil penelitian dari penerapan parallel processing ke dalam resilient backpropagation terhadap waktu training yang dihasilkan Dataset tersebut diambil sample hanya 100 kasus, nilai iterasi yaitu 100 dan nilai epoch yaitu 200 Analisis waktu pelatihan resilient backpropagation dengan penerapan parallel processing berdasarkan pada CPU time, pada setiap iterasi dihasilkan CPU time ini digunakan sebagai total keseluruhan waktu proses pembelajaran tersebut dimulai sampai proses pembelajaran tersebut selesai 42 Peralatan Pengujian Hardware yang digunakan dalam pengujian adalah 1 buah komputer dengan speksifikasi: 1 Processor Core i3 2 Ram 1 GB Software yang digunakan dalam penelitian ini adalah: 1 Sistem Operasi : Windows 7 Profesional 2 Bahasa Pemograman : Python 31 43 Hasil Penelitian Dalam melakukan pengujian ini dilakukan sebanyak 7 pengujian berdasarkan jumlah thread yang telah ditentukan pada metode penelitian Pengujian yang dilakukan ini berdasarkan banyak thread yang digunakan pada arsitektur neural network Pengujian yang diberikan dilakukan sebanyak tiga kali testing untuk mendapatkan waktu rata rata pada ketujuh pengujian tersebut
49 Hasil proses update weight pada penelitian ini akan ditampilkan dalam tabel 41 sebagai berikut Iterasi Tabel 4 1 Proses update weight berserta dengan CPU Time / iterasi Weight Hidden Weight Output CPU Time W1 W2 W3 W1 W2 W3 1 thread 3 thread 5 thread 7 thread 1-4,95137 2,102565-0,947173-5,327748-8,68779 8,345004 1,5288 1,372791 1,4508 1,4976 2-5,05137 2,002565-1,047173-5,227748-8,58779 8,445004 1,3416 1,185593 1,3416 1,3416 3-5,15137 1,902565-1,147173-5,107748-8,46779 8,565004 1,3728 1,185592 1,3416 1,2324 4-5,15137 1,902565-1,147173-5,107748-8,46779 8,565004 1,3572 1,154393 1,3416 1,3104 5-5,15137 1,902565-1,147173-4,987748-8,34779 8,685004 1,3728 1,169992 1,2948 1,3572 6-5,15137 1,902565-1,147173-4,987748-8,34779 8,685004 1,3884 1,185593 1,2168 1,326 20000-5,07137 1,982565-1,067173-5,327748-8,68779 8,345004 1,4352 1,154393 1,24796 1,248 Pada Tabel 41 hanya mengambil beberapa sampel untuk bagian weight untuk hidden dan weight output, demikian pada CPU Time nya Pengambilan sample ini disebabkan total weight yang cukup banyak yaitu proses dari input layer ke hidden layer ada sebanyak 212058 weight pada hidden layer ke output layer ada sebanyak 2268 weight Hasil waktu dari algoritma resilient backpropagation dengan menggunakan teknik parallel processing menggunakan threading ditampilkan dalam bentuk tabel, hasil pengujian dilakukan sebanyak tiga kali sehingga ditampilkan tiga bentuk tabel pengujian dengan bentuk pengujian yang sama yaitu pada setiap tabel akan menampilkan tujuh bagian yang diselesaikan oleh masing masing thread bertujuan untuk mengetahui waktu yang diselesaikan pada masing masing thread dan dibandingkan thread manakah yang memiliki waktu proses yang paling cepat selesai Pengujian pada pertama kali resilient backpropagation disajikan dalam Tabel 42 dan Tabel 43 sebagai lanjutannya Tabel 4 2 Hasil Pengujian I Resilient Backpropagation Parallel Multithreading Thread Waktu Selesai Rata Rata Waktu Iterasi 1 27293694772998733 / detik 13646847386499366 / detik 2 25413755037002018 / detik 1270687751850101 / detik 3 2391401629200012 / detik 1195700814600006 / detik 4 2523132637700154 / detik 1261566318850077 / detik
50 Tabel 4 3 Hasil Pengujian I Resilient Backpropagation Parallel Multithreading (lanjutan) Thread Waktu Selesai Rata Rata Waktu Iterasi 5 25519277693998476 / detik 12759638846999237 / detik 6 26835739719997993 / detik 13417869859998997 / detik 7 27292983101998594 / detik 13646491550999298 / detik Tabel 42 dan Tabel 43 menunjukan pada pengujian pertama kali mendapatkan bahwa dengan menggunakan 3 buah thread pada arsitektur neural network resilient backpropagation pada dapat diselesaikan dalam waktu 23914,01629200012 / detik atau 6,643782 jam Sedangkan pada pada proses yang menggunakan 1 buah thread dan 7 buah thread menunjukan hasil yang hampir sama yaitu 27293,694772998733 / detik untuk 1 buah thread dan 27292,983101998594 / detik untuk 7 buah thread, hanya menunjukan perbedaan 1 detik saja Pada tabel 41 pada pengujian pertama ini menunjukan terjadi kecepatan penyelesaian yang dimulai dari penggunaan 1 buah thread sampai 3 buah thread tapi setelah 4 buah thread menunjukan perlambatan waktu penyelesaian dan ini terjadi pada terus pada 5 buah thread sampai 7 buah thread Untuk hasil visual dari peningkatan kecepatan pada penggunaan thread ditunjukan pada Gambar 41 28000 27000 CPU Time / detik 26000 25000 24000 23000 22000 1 2 3 4 5 6 7 Thread Gambar 4 1 Grafik Peningkatan Kecepatan Waktu Berdasarkan Peningkatan Jumlah Thread Pengujian I Pada pengujian yang kedua menunjukan hasil sama pada pengujian pertama yaitu 3 buah thread cepat dalam penyelsaian tapi berbeda waktu penyelesaiannya pada pengujian yang pertama yaitu pada pengujian yang pertama menunjukan CPU time
51 yang diselesaikan 23914,01629200012 / detik pada pengujian yang kedua waktu penyelesaiannya 23910,218218001297 / detik, lebih cepat 4 detik dalam penyelesaian waktunya Hasil dari pengujian yang kedua ini ditampilkan dalam Tabel 44 dan untuk grafik ditampilkan pada Gambar 42 Tabel 4 4 Hasil Pengujian II Resilient Backpropagation Parallel Multithreading Thread Waktu Selesai Rata Rata Waktu Iterasi 1 27290439604999618 / detik 13645219802499808 / detik 2 25172112700000416 / detik 12586056350000208 / detik 3 23910218218001297 / detik 11955109109000648 / detik 4 24732658940000627 / detik 12366329470000312 / detik 5 25274041188002 / detik 12637020594001 / detik 6 26885634780998025 / detik 13442817390499013 / detik 7 27160287975998206 / detik 13580143987999103 / detik 28000 27000 CPU Time / detik 26000 25000 24000 23000 22000 1 2 3 4 5 6 7 Thread Gambar 4 2 Grafik Peningkatan Kecepatan Waktu Berdasarkan Peningkatan Jumlah Thread Pengujian II Pada pengujian yang ketiga menampilkan hasil sama yaitu dengan menggunakan 3 buah thread pada arsitektur neural network resilient backpropagation menunjukan kecepatan waktu penyelesaian yang lebih cepat daripada thread lainnya, tetapi waktu penyelesaian berbeda pada yaitu pada pengujian ketiga waktu diselesaikn dalam 24067489326000406 / detik, penggujian kedua waktu penyelesaiannya 23910218218001297 / detik, dan pengujian pertama waktu penyelesaiannya
52 2391401629200012 / detik Hasil pengujian ini akan ditampilkan pada Tabel 45 dan untuk grafik waktu akan ditampilkan pada Gambar 43 Tabel 4 5 Hasil Pengujian III Resilient Backpropagation Parallel Multithreading Thread Waktu Selesai Rata Rata Waktu Iterasi 1 32389488616999854 / detik 16194744308499927 / detik 2 27906764599999868 / detik 13953382299999935 / detik 3 24067489326000406 / detik 12033744663000203 / detik 4 25553457462000133 / detik 12776728731000067 / detik 5 2550042951299844 / detik 12750214756499219 / detik 6 26590765166998073 / detik 13295382583499036 / detik 7 2750032026299811 / detik 13750160131499054 / detik 35000 30000 CPU Time / detik 25000 20000 15000 10000 5000 0 1 2 3 4 5 6 7 Thread Gambar 4 3 Grafik Peningkatan Kecepatan Waktu Berdasarkan Peningkatan Jumlah Thread Pengujian II Hasil pengujian pada Tabel 41, Tabel 42, dan Tabel 43 menunjukan hasil waktu yang bervariasi Karena hasil yang bervariasi maka ketiga pengujian tersebut digabungkan dengan rata rata waktu penyelesaian dari hasil pengujian tersebut Hasil pengujian yang telah ditampilkan digabungkan menjadi sebuah tabel dengan menjumlahkan waktu selesai dari masing masing proses dan hasil penjumlahan dibagi dengan banyak pengujian tersebut Rata Rata Waktu = n i=1 w i n
53 Hasil rata rata pengujian tersebut ditunjukan pada Tabel 46 sebagai berikut Tabel 4 6 Hasil Pengujian Rata Rata Resilient Backpropagation Parallel Multithreading Rata Rata Waktu Iterasi / Thread Waktu Selesai / detik detik 1 28991,20766 1,449560383 2 26164,21078 1,308210539 3 23963,90795 1,198195397 4 25172,48093 1,258624046 5 25431,24946 1,271562473 6 26770,71322 1,338535661 7 27317,86378 1,365893189 Pada pengujian pertama sampai pengujian ketiga bahwa dengan menggunakan 3 thread pada arsitektur neural network menunjukan waktu proses pembelajaran pada jaringan tersebut lebih dibandingkan dengan enam pengujian thread lainnya Pada pengabungan waktu berfungsi untuk melihat hasil rata rata waktu penyelesaian masing masing thread pada tiga pengujian tersebut Hasil tampilan grafik waktu rata rata waktu tersebut ditampilkan pada Gambar 44 35000 30000 CPU Time / second 25000 20000 15000 10000 5000 0 1 2 3 4 5 6 7 Thread Gambar 4 4 Grafik Rata Rata Waktu Selesai Pembelajaran Resilient Backpropagation Hasil penelitian yang telah dilakukan pada (Stubbemann, Kramer, & Treiber, 2015)bagian diatas menunjukan 3 buah thread membantu dalam mempercepat waktu training, dengan jumlah neuroan pada hidden layer sebanyak 378 neuron
54 44 Pembahasan Hasil pengujian yang telah dilakukan mendapatkan bahwa jaringan neural network yaitu resilient backpropagation dengan menambahkan teknik parallel processing yang diimplementasikan menggunakan multithreading menunjukan membantu kinerja pembelajaran dari jaringan neural network resilient backpropagation Ini ditunjukan dari hasil rata rata waktu pengujian kecepatan pembelajaran yaitu dibuktikan dari thread 1 sampai thread 3 didapatkan penurunan waktu ini menunjukan kecepatan pembelajaran thread 3 lebih cepat dari pada thread 1 dan thread 2 Tetapi thread 4 menunjukan waktu yang berangsur angsur naik sampai thread ke 7, ini menunjukan waktu pembelajaran menjadi lebih lambat Penurunan kecepatan yang dimulai dari penggunaan 4 buah thread ini dapat disebabkan oleh kemampuan hardware yang digunakan dan pergantian antar thread yang terjadi Pengunaan hardware yaitu Core i3 dengan dua core pada masing masing core dapat menjalankan 2 thread sekaligus, karena kemampuan ini dapat memproses 4 thread pada waktu yang bersamaan Proses pada jaringan neural network menggunakan parallel processing dengan teknik multithreading, pada 1 thread maka yang terjadi ada adanya penggunaan 2 thread yaitu 1 thread untuk memproses semua neuron pada hidden layer dan 1 thread sebagai melakukan pengecekan terhadap proses neuron pada hidden layer apakah sudah selesai semua Pada saat 2 thread maka yang terjadi adalah pembentukan sebanyak 2 thread untuk memproses neuron pada hidden layer dan 1 thread sebagai pengecekannya Pada saat 3 thread maka yang berjalan adalah 4 thread yaitu 3 thread memproses neuron pada hidden layer dan 1 thread sebagai pengecekan Pada setiap thread yang digunakan maka ditambah satu thread sebagai pengecekan proses pada hidden layer Oleh sebab itu pemanfaatan thread yang paling optimal adalah 3 thread karena penggunaan seluruh kemampuan hardware Tetapi pada saat penggunaan 4 thread maka yang terjadi adalah pengantian proses antar thread yaitu thread diproses secara bergantian pada hardware secara berulang ulang sampai proses tersebut selesai Oleh sebab itu terjadi kenaikan waktu proses karena perpindahaan antar thread tersebut
BAB 5 KESIMPULAN DAN SARAN 51 Kesimpulan Kesimpulan dari hasil penelitian yang dilakukan yaitu: 1 Parallel processing menggunakan multithreading yang diterapakan ke dalam arsitektur resilient backpropagation membantu kinerja waktu pembelajaran resilient backpropagation dengan hanya memanfaatkan 3 thread pada kasus pengenalan aktifitas manusia 2 Pengunaan lebih dari 3 thread pada arsitektur resilient backpropagation menyebabkan penurunan waktu pembelajaran yaitu lebih lambat, ini disebabkan oleh terjadi proses perpindahaan antar thread sehingga terjadi penambahaan waktu pada setiap perpindahaan thread tersebut 52 Saran Saran yang diberikan oleh penulis adalah sebagai berikut: 1 Penggunaan parallel dengan multithreading terhadap arsitektur resilient backpropagation harus memperhatikan jumlah thread yang dapat diproses pada waktu bersamaan pada sebuah CPU karena ini berpengaruh terhadap eksekusi thread yang dapat menyebabkan waktu delay pada perpindahaan antar thread tersebut 2 Untuk meningkatkan kemampuan parallel processing pada arsitektur resilient backpropagation dapat menggunakan multiprocessor yaitu menggunakan beberapa processor pada waktu bersamaan