Anda di halaman 1dari 3

Programming Backpropagation Neural Network using MATLAB

Salam; Bikin program buat melatih dan menguji Neural Network (NN) kalo pake' NNTools-nya Matlab gak sulit kok, cukup simple. Beberapa tipe algoritma NN yg cukup familiar udah ada di Matlab, mulai Hebb, Adaline, Perceptron, sampe Probabilistic NN juga ada. Di bawah ini ada langkah yang mungkin bisa dicoba buat yang lagi belajar coding NN, especially Backpropagation Neural Network (BPNN) pake' Matlab by .m file editor, lets try; Buat nginputkan data, kita bisa pake matrix yang berisi data input dan target NN kita nanti, kita bisa pake' 1 matrix yang dibagi2, ato masing2 1 matrix buat input n data. Tlg diingat, matrix input n target harus di-transpose, biar sesuai buat format itungan fungsi NN ntar. Misalnya kita punya matrix "Data" yang berisi data input n target buat NN kita, kita bisa membagi matrix itu utk variabel input dan target kita, just like these; %%%%% Data Input %%%%% Input = Data(1:m,1:n)'; Target = Data(1:m,n+1:o)'; Sebelum data yg kita punya diproses, kita perlu melakukan proses normalisasi dan preprocessing dulu, biar nilai masing2 data bisa diitung dengan nilai yg lbih kcil tanpa khilangan karakteristiknya sendiri, just like these; %%%%% Preprocessing / Normalisasi %%%%% [Inputn,meanIn,stdIn,Targetn,meanT,stdT] = prestd(Input,Target); those variables means : Inputn = normalisasi Input meanIn = mean Input stdIn = standar deviasi Input Targetn = normalisasi Target meanT = mean Target stdT = standar deviasi Target Stelah smua data input n target dinormalisasi, then kita bangun jaringan BPNN kita, u can use these code; %%%%% Build BPNN %%%%% BPNNx = newff(minmax(Inputn), [x1 x2 x3 ...], {'act1' 'act2' 'act3' '...'}, 'train' ); n those variables means : BPNNx = nama NN-mu x = jumlah neuron pada tiap2 layer, kalo ada 3 "x", brarti BPNN-mu punya 2 hidden layer dan 1 output layer act = fungsi aktivasi pada masing2 layer train = model learning yg kamu pake' Dalam programming BPNN menggunakan Matlab, umumnya dikenal 3 macam fungsi aktivasi yang umum digunakan yaitu : - tansig = fungsi sigmoid bipolar - logsig = fungsi sigmoid unipolar - purelin = fungsi identitas Untuk metode learning BPNN, terdapat beberapa metode yang umum digunakan dan embedded dalam Matlab, yaitu : - traingd = metode BPNN standar- traingdm = metode BPNN yg dipercepat dgn momentum - traingda = metode BPNN yg dipercepat dgn learning rate variabel - traingdx = metode BPNN yg dipercepat dgn learning rate variabel dan momentum - trainrp = metode resilient BPNN

prast_yuu@yahoo.co.id / prastyuu@elect-eng.its.ac.id

- traincgf = metode BPNN dgngradien conjugate Fletcher-Reeves - traincgp = metode BPNN dgngradien conjugate Polak-Ribiere - traincgb = metode BPNN dgngradien conjugate Powel Beale Lha, stelah kita menyiapkan input, target, dan network yg ntar bakal dilatih, kita juga perlu mnentukan parameter2 yg mempengaruhi learning BPNN kita. Parameter2 itu harus kita tentukan dgn mngatur nilai masing2 parameter dalam bentuk integer,desimal, ato eksponensial, just like these examples; %%%%% Set Parameter %%%%% net.trainParam.epochs = p1; net.trainParam.goal = p2; net.trainParam.lr = p3; net.trainParam.show = p4; net.trainParam.mc = p5; n those variables means : p1 = jumlah epoch (iterasi) learning maksimal BPNN kita p2 = jumlah error minimum yg kita inginkan p3 = jumlah learning rate, antara 0-1 p4 = jumlah epoch dimana penampilan grafik error akan di-update p5 = jumlah momentum, antara 0.5-1 Stelah smua perjuangan mengatur input, target, network, dan parameter dilalui, then now we'll start the learning process, just like these : %%%%% Learn Our BPNN %%%%% BPNNx = train(BPNNx,Inputn,Targetn); all variables of that function udah dijelaskn di atas di bagian preprocessing dan pembangunan network; Stelah BPNN kita terlatih hingga mendapatkan nilai error minimum ato epoch maksimum, then kita akan nge-test hasil learning kita, sama aja dgn ujian semester kita tiap semester. We can generate these function to dimulate this test; %%%%% Simulate Our BPNN%%%%% SimBPNNn = sim(BPNNx,Inputn); SimBPNN = poststd(SimBPNNn,meanT,stdT); n those variables means : SimBPNNn = mensimulasikan network BPNNx kita SimBPNN = men-denormalisasi target hasil simulasi BPNNx kita then kita bisa mengevaluasi kinerja output network yang kita simulasikan dgn data pelatihan dan target using these function : %%%%% Evaluate BPNN %%%%% [mx,b,rx] = postreg (SimBPNN,Target); n those variables means : mx = lereng regresi linear simulasi network b = perpotongan y untuk regresi linear rx = nilai parameter regresi After that process already done, kita telah selesai memrogram BPNN kita. Pada pemakaian umumnya, ada function lain yg umum digunakan untuk melihat kinerja BPNN kita, just like these codes : Menampilkan output angka hasil simulasi ShowNN = [(1:size(Input,2))' Target' SimBPNN' (Target'-SimBPNN')];

prast_yuu@yahoo.co.id / prastyuu@elect-eng.its.ac.id

fprintf ( 'No Target BPNN Output BPNN ERROR\n'); fprintf ( '%2.0f %7.3f %7.3f %7.3f\n', ShowNN'); Menampilkan grafik hasil plot data simulasi BPNN plot ([1:size(Input,2)]', Target, 'bo', [1:size(Input,2)]', SimBPNN', 'r*'); title ('Hasil pengujian dengan Data Pelatihan: Target (o), Output (*)'); xlabel('Data ke-'); ylabel('Target/Output'); Stelah smua proses coding dilakukan, just run that code using .m file editor, fix the error then see how your BPNN work, have a nice try guys, slmt mncoba! Smoga brmanfaat, Wassalam.

prast_yuu@yahoo.co.id / prastyuu@elect-eng.its.ac.id