MODUL 3 JARINGAN MODEL PERCEPTRON Perceptron merupakan suatu bentuk pelatihan dari jaringan syaraf tiruan yang biasany biasanya a digunak digunakan an untuk untuk mengkla mengklasifi sifikasik kasikan an suatu suatu tipe pola pola tertentu tertentu secara secara linier. linier. Perceptron dianggap dianggap sebagai bentuk dari jaringan syaraf tiruan yang sangat sederhana yang mana satu lapisan akan memiliki bobot yang bisa diatur. Algoritma yang digunakan oleh Perceptro Perceptron n
ini akan mengatur mengatur paramete parameter-pa r-parame rameter ter bebasnya bebasnya melalui proses
pembe pembelaj lajara aran n Seda Sedang ngkan kan,, fungsi fungsi aktiva aktivasin sinya ya yang yang sede sedemik mikian ian rupa rupa akan akan dapa dapatt melak melakuka ukan n pemba pembatas tasan an antar antara a daera daerah h posit positif if dan dan nega negativ tiv,, diperl diperliha ihatka tkan n dala dalam m gambar 3-1 berikut ini:[2]
Gambar 3-1 Pembatasan linier dengan Perceptron Garis pemisah antara daerah positif dan daerah nol memiliki pertidaksamaan sebagai berikut: W1.X1 + W2.X2 ≥ -b
Seda Sedang ngkan kan garis garis pemis pemisah ah antar antara a daera daerah h nega negativ tive e deng dengan an daera daerah h nol nol memil memiliki iki pertidaksamaan sebagai berikut: W1.X1 + W2.X2 < -b
Bentuk single layer Perceptron digambarkan sebagai berikut:
Gambar 3-2 Arsitektur Perceptron satu lapisan Seperti yang diperlihatkan dalam gambar diatas bahwa arsitektur perceptron terdiri dari 3 unit input (x1, xi, xn) dan sebuah output (y). Adapun w 1,wi, dan wn merupakan bobotbobot yang diberikan kepada jaringan saat terjadi koneksi antara sel pada unit masukan dan sel pada unit keluaran. Sel bias (b) bernilai 1 yang diberikan pada sel unit keluaran akan mengolah data yang ditransmisikan ke dalam sel unit keluaran. Pengolahan data pada unit keluaran mengguakan fungsi aktifasi Hard limit.
3.1. Algoritma Algoritma yang digunakan oleh jaringan Perceptron ini cocok untuk vector masukan biner atau bipolar, dengan target bipolar ,
tetap. Dan, nilai bias dapat
diatur. Langkah-langkah algoritma pelatihan Peceptron adalah sebagai berikut: Langkah 0
Inisialisasi bobot dan nilai sel bias (Tetapkan bobot awal = 0 dan nilai sel bias awal =0 ). Tetapkan pula laju pelatihan α (0 < α ≤ 1) biasanya , α =1. Set maximum epoh, tetapkan epoh = 0
Langkah 1
Selama kondisi berhenti bernilai false, lakukan langkah-langkah sebagai berikut: a. Untuk setiap pasangan pelatihan si dan ti dengan
i = 1,2,3,…,n maka lakukan beberapa langkah berikut: (i)
Tetapkan aktivasi unit masukan X i
(ii)
= S i dimana i= 1,2,3,..n
Hitung tanggapan unit keluaran Y in
= b + ∑ X i .W i i
1 , bila Y in > 0 0, bila -θ≤ Yin ≤ θ
Yin =
-1, bila Yin ≤ θ (iii)
Perbaharui bobot dan bias jika terjadi error: Bila y ≠ t Wi (baru ) b(baru )
= wi (lama) + α .t . xi
= b(lama ) + α ..t
Bila y = t Wi (baru ) b(baru )
b.
= Wi (lama)
= b(lama )
Tes kondisi berhenti, jika masih terjadi perubahan bobot atau jumlah kuadrat error ≠ 0, dan epoh < max epoh, maka kondisi berhenti adalah false. Namun jika sudah tidak terjadi perubahan bobot atau jumlah kuadrat error = 0, dan epoh > max epoh, maka kondisi berhenti true.
Contoh-1: Akan dibuat jaringan syaraf Tiruan untuk operasi AND dengan 2 input dan 1 output biner adalah sebagai berikut: Input 0 0 1 1
0 1 0 1
Target 0 0 0 1
Dimana fungsi aktifasi jaringan adalah Hard limit. Bobot awal jaringan W i = 0 dan nilai sel bias (b) awal = 0 Buatlah arsitektur dan pelatihan dengan menggunakan pogram Matlab !
Penyelesaian: % Buat Operasi AND dengan menggunakan jaringan Perceptron % Membangun Jaringan Perceptron P=[0 0 1 1;0 1 0 1]; T=[0 0 0 1]; net=newp([0 1;0 1],1); jumlah_input = net.inputs{1}.size range_input = net.inputs{1}.range jumlah_bobot_input = net.inputWeights{1}.size nilai_bobot_input = net.IW{:} jumlah_bobot_Lapisan = net.LW{:} nilai_bias_input = net.b{1} %Pelatihan net = init(net); net.adaptParam.passes =6; [net,Y,E]=adapt(net,P,T); %Menggambarkan grafik hubungan antara vektor input dan vektor target plotpv(P,T); plotpc(net.IW{:},net.b{1}); title('Hubungan vektor masukan dan vektor target') %simulasi a=sim(net,P) %Mencari MSE Error = mse(E) Setelah Matlab di run-ning maka akan menghasilkan: jumlah_input = 2 range_input = 0 1 0 1 jumlah_output = 1 jumlah_lapisan = 1 jumlah_bias = 1 jumlah_bobot_input = 1 2 nilai_bobot_input = 0 0
jumlah_bobot_Lapisan = [] nilai_bias_input = 0 a= 0
0
0
1
Error = 0 Bentuk grafiknya adalah sebagai berikut:
Contoh: Akan dibuat jaringan syaraf Tiruan untuk operasi OR dengan 2 input dan 1 output biner adalah sebagai berikut: Input 0 0 1 1
0 1 0 1
Target 0 1 1 1
Dimana fungsi aktifasi jaringan adalah Hard limit. Bobot awal jaringan W i = 0 dan nilai sel bias (b) awal = 0 Buatlah arsitektur dan pelatihan dengan menggunakan pogram Matlab !
Penyelesaian: % Buat Operasi AND dengan menggunakan jaringan Perceptron % Membangun Jaringan Perceptron P=[0 0 1 1;0 1 0 1]; T=[0 1 1 1];
net=newp([0 1;0 1],1); jumlah_input = net.inputs{1}.size range_input = net.inputs{1}.range jumlah_bobot_input = net.inputWeights{1}.size nilai_bobot_input = net.IW{:} jumlah_bobot_Lapisan = net.LW{:} nilai_bias_input = net.b{1} %Pelatihan net = init(net); net.adaptParam.passes =6; [net,Y,E]=adapt(net,P,T); %Menggambarkan grafik hubungan antara vektor input dan vektor target plotpv(P,T); plotpc(net.IW{:},net.b{1}); title('Hubungan vektor masukan dan vektor target') %simulasi a=sim(net,P) %Mencari MSE Error = mse(E) Setelah Matlab di run-ning maka akan menghasilkan: jumlah_input = 2 range_input = 0 1 0 1 jumlah_output = 1 jumlah_lapisan = 1 jumlah_bias = 1 jumlah_bobot_input = 1 2 a= 0 Error = 0
1
1
1
Contoh-3: Akan dibuat jaringan syaraf Tiruan untuk operasi NAND dengan 2 input dan 1 output biner adalah sebagai berikut:
Input 0 0 1 1
0 1 0 1
Target 1 1 1 0
Dimana fungsi aktifasi jaringan adalah Hard limit. Bobot awal jaringan W i = 0 dan nilai sel bias (b) awal = 0 Buatlah arsitektur dan pelatihan dengan menggunakan pogram Matlab !
Penyelesaian: % Buat Operasi NAND dengan menggunakan jaringan Perceptron % Membangun Jaringan Perceptron P=[0 0 1 1;0 1 0 1]; T=[1 1 1 0]; net=newp([0 1;1 1],1); jumlah_input = net.inputs{1}.size range_input = net.inputs{1}.range jumlah_output = net.outputs{1}.size jumlah_lapisan = net.layers{1}.size jumlah_bias = net.biases{1}.size jumlah_bobot_Lapisan = net.LW{:} nilai_bias_input = net.b{1} %Pelatihan net = init(net); net.adaptParam.passes =6; [net,Y,E]=adapt(net,P,T); %Menggambarkan grafik hubungan antara vektor input dan vektor target plotpv(P,T); plotpc(net.IW{:},net.b{1}); title('Hubungan vektor masukan dan vektor target') %simulasi a=sim(net,P) %Mencari MSE Error = mse(E)
Contoh-3: Akan dibuat jaringan syaraf Tiruan untuk operasi NOR dengan 2 input dan 1 output biner adalah sebagai berikut: Input 0 0 1 1
0 1 0 1
Target 1 0 0 0
Dimana fungsi aktifasi jaringan adalah Hard limit. Bobot awal jaringan W i = 0 dan nilai sel bias (b) awal = 0 Buatlah arsitektur dan pelatihan dengan menggunakan pogram Matlab !
Penyelesaian: % Buat Operasi NOR dengan menggunakan jaringan Perceptron % Membangun Jaringan Perceptron P=[0 0 1 1;0 1 0 1]; T=[1 0 0 0]; net=newp([0 1;1 1],1); jumlah_input = net.inputs{1}.size range_input = net.inputs{1}.range jumlah_output = net.outputs{1}.size jumlah_lapisan = net.layers{1}.size jumlah_bias = net.biases{1}.size jumlah_bobot_Lapisan = net.LW{:} nilai_bias_input = net.b{1} %Pelatihan net = init(net); net.adaptParam.passes =6; [net,Y,E]=adapt(net,P,T); %Menggambarkan grafik hubungan antara vektor input dan vektor target plotpv(P,T); plotpc(net.IW{:},net.b{1}); title('Hubungan vektor masukan dan vektor target') %simulasi a=sim(net,P) %Mencari MSE Error = mse(E)