Praktikum Metkuan Jaringan Syaraf Tiruan Propagasi Balik
Jaringan Syaraf Tiruan Perceptron Single Layer JST Multi Layer Perceptron (MLP) JST Propagasi Balik
Multiple Layer 1 bias v01 1 v11 X1 w01 Z1 w11 v12 Y1 v21 w21 X2 Z2 v22 Output Layer v02 1 input Layer Hidden Layer
Review Perceptron : AND X1 X2 net Y, 1 jika net >=2, 0 jika net < 2 1 1 1.1+1.1=2 1 1 0 1.1+0.1=1 0 0 1 0.1+1.1=1 0 0 0 0.1+0.1=0 0 Ternyata BERHASIL mengenali pola X1 X2 Y 2 1
Review Perceptron : OR X1 X2 net Y, 1 jika net >=1, 0 jika net < 1 1 1 1.1+1.1=2 1 1 0 1.1+0.1=1 1 0 1 0.1+1.1=1 1 0 0 0.1+0.1=0 0 Ternyata BERHASIL mengenali pola X1 X2 Y 1
Review Perceptron : X1 and not(X2) X1 X2 net Y, 1 jika net >=2, 0 jika net < 2 1 1 1.2+1.-1=1 0 1 0 1.2+0.-1=2 1 0 1 0.2+1.-1=-1 0 0 0 0.2+0.-1=0 0 Ternyata BERHASIL mengenali pola X1 X2 Y 2 -1
Problem “XOR” X1 X2 Y 1 1 0 1 0 1 0 1 1 0 0 0 GAGAL! F(1,1) = 0 1 1 0 1 0 1 0 1 1 0 0 0 GAGAL!
Solusi XOR = (x1 ^ ~x2) V (~x1 ^ x2) Ternyata dibutuhkan sebuah layer tersembunyi -> Multi Layer Perceptron X1 X2 Z1 Z2 Y 2 -1 1
Tabel
JST Propagasi Balik 3 tahapan : 1. Feedforward pola pelatihan yang diinput 2. perhitungan dan propagasi balik kesalahan 3. penyesuaian bobot (weight). Untuk mendapatkan bobot akhir yang bisa memetakan output dengan tepat, diperlukan 3 tahapan di atas
Fungsi Aktivasi Fungsi undak biner (hard limit) Fungsi undak biner (threshold)
Fungsi Aktivasi Fungsi bipolar Fungsi bipolar dengan threshold
Fungsi Aktivasi Fungsi Linier (identitas) Fungsi Sigmoid biner
Contoh Kasus Misal akan dibuat arsitektur JST Back Propagation mengenali angka 1-9 dengan 5 neuron pada hidden layer dengan fungsi tansig (tan sigmoid) dan 4 neuron pada output dengan fungsi purelin (pure linear)
function NN() %ada 15 baris karena grid 3x5 rangeinput=[0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1; 0 1 ]; %bikin feedforward net=newff(rangeinput,[5 4],{'tansig' 'purelin'}); % 5 neouron hidden dengan tansig, 4 neuron output dengan purelin %inisialisasi net=init(net);
angka1=[0; 1; 0; 1; 1; 0; 0; 1; 0; 1; 1; 1]; angka2=[1; 1; 1; 0; 0; 1; 0; 1; 1; angka3=[1; 1; 1; 1; 1; 1; angka4=[1; 0; 1; 1; 0; 1; 0; 0; 1];
angka5=[1; 1; 1; 1; 0; 0; 1; 1; 1; 0; 0; 1; 1; 1; 1]; p=[angka1 angka2 angka3 angka4 angka5 angka6 angka7 angka8 angka9]; t=[0 0 0 1; 0 0 1 0; 0 0 1 1; 0 1 0 0; 0 1 0 1; 0 1 1 0; 0 1 1 1; 1 0 0 0; 1 0 0 1]; %9x9 karena data trainingnya ada 9
t=t'; %training net= train(net, p, t); %testing %a=sim(net, datatesting) %melihat nilai semua bobot dari lapisan input ke layer disp('net.IW{1,1}-->'); net.IW{1,1} %melihat nilai semua bobot dari layer 1 ke layer 2 disp('net.LW{2,1}-->'); net.LW{2,1} disp('net.b{1}-->'); net.b{1} disp('net.b{2}-->'); net.b{2} datatesting=[0; 1; 0; 1; 1; 0; 0; 1; 0; 0; 1; 0; 1; 1; 1]; a=sim(net,datatesting)
Latihan Input training data
Input testing data
neuron Input : 15 neurons Hidden layer : 5 neurons Output layer : 4 neurons Hidden layer : purelin (linear) Output layer : tansig (sigmoid)