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 InputmeanIn = mean InputstdIn = standar deviasi Input
Targetn = normalisasi TargetmeanT = mean TargetstdT = 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
- 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 simulasiShowNN = [(1:size(Input,2))' Target' SimBPNN' (Target'-SimBPNN')];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 BPNNplot ([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.
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 InputmeanIn = mean InputstdIn = standar deviasi Input
Targetn = normalisasi TargetmeanT = mean TargetstdT = 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
- 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 simulasiShowNN = [(1:size(Input,2))' Target' SimBPNN' (Target'-SimBPNN')];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 BPNNplot ([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.
8 comments:
opo wae kuwi...
GAK JELAZ BLAST.....
iKu bkN g jelaS;
tp ngeRti g yg diomonGne;
wekekekekek;
tanya donk. gmn caranya simulasi backpropagation klo bobotnya udah dapet sebelumnya. jd gak ngelewatin proses pelatihan. gmn cara ngebangun arsitektur jaringannya?
Wah,kok bisa dpt weightx?
Drmn?
Weight tu dtentukan awlx random,kl g dlatih trus,stau sy y g bs mas..
Kalo parameter utk ngebangun NN,sy pke trial error mulai jml neuron+layer trkcil,trus dtmbh smp yg plg bgus hsilx,tp ada jg yg dioptimasi pke algoritma gnetik,ato algoritma laen..
thank you.. it helps me a lot :)
thanks
artikelnya cukup membantu.
bisa eg men generate kan membership function secara otomatis menggunakan NN
kita juga punya nih artikel mengenai 'Backpropagation', silahkan dikunjungi dan dibaca , berikut linknya
http://repository.gunadarma.ac.id/bitstream/123456789/2963/1/Artikel_50403683.pdf
terima kasih
semoga bermanfaat
Post a Comment