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 1
- 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 2
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 3