• Metode pelatihan Perceptron lebih kuat dari metode Hebb terutama dalam iterasi
yang dapat membuat output dari bobot menjadi konvergen.
• Perbedaan tipe Perceptron pertama kali dikemukakan oleh Rosenblatt (1962) dan
Minsky (1969) .dan Papert (1988).
• Aktivasi yang digunakan dalam pereptron adalah aktivasi bipolar, yaitu -1, 0, 1.
1 if y _ in > θ
f ( y _ in) = 0 if − θ ≤ y _ in ≤ θ
− 1 if y _ in < −θ
Arsitektur
• Arsitektur Perceptron sederhana adalah terdiri dari beberapa input dan sebuah output.
• Tujuan dari jaringan adalah untuk mengklasifikasikan masing-masing pola input dan pola output baik
yang bernilai +1 atau yang bernilai -1.
Algoritma
Algoritma berlaku untuk input bipolar atau input biner dengan nilai target bipolar dan nilai threshold yang
tetap serta nilai bias yang dapat diatur.
X1
Langkah 1 :
Inisialisasi bobot dan bias (untuk sederhananya, set bobos dan bias dengan angka 0)
Set learning rate α (0 < α ≤ 1) (untuk sederhananya, set α dengan angka 1)
Langkah 2:
Selama kondisi berhenti bernilai salah, lakukan langkah berikut :
Untuk masing-masing pasangan s dan t, kerjakan :
a : set aktivasi dari unit input : xi = si
b : hitung respon untuk unit output :
n
y _ in = b + ∑ xi wi
i =1
. 1
1 if y _ in > θ
f ( y _ in) = 0 if − θ ≤ y _ in ≤ θ
− 1 if y _ in < −θ
c : perbaiki bobot dan bias, jika terjadi kesalahan pada pola ini :
jika y ≠ t, maka
wi (baru) = wi (lama) + αtxi
b(baru) = b(lama) + αt
jika tidak, maka
wi (baru) = wi (lama)
b(baru) = b(lama)
d : jika masih ada bobot yang berubah maka kondisi dilanjutkan, jika tidak maka proses berhenti.
Implementasi
• Untuk mengaplikasikan Perceptron, akan dicoba untuk mengaplikasikan fungsi logika AND dengan
input biner dan target bipolar.
• Data pelatihan masalah fungsi logika AND seperti pada tabel 1.
Garis pembatasnya adalah : 2x1 + 3x2 – 4 = 0.2 dan 2x1 + 3x2 – 4 = -0.2
Perceptron tidak dapat mengenali dan membuat region untuk fungsi Exclusive OR (XOR) seperti tabel 2
Tabel 3 Fungsi logika AND
Input
Target
x1 x2 b
1 1 1 -1
1 0 1 1
0 1 1 1
0 0 1 -1
Activate = res
End Function
Setting Data
• Variabel parameter
SampleAmt = 4
InputAmt = 2
OutputAmt =1
Threshold = 0.2
LearningRate = 1
• Redim Sample
Dim i As Integer, j As Integer
For i = 0 To InputAmt
For j = 1 To OutputAmt
Weight(i, j) = 0
Next j
Next i
Proses Pelatihan
Dim i As Integer, j As Integer, k As Integer
Dim Error As Double, GlobalError As Double, Epzilon As Double
Dim Delta As Double
Dim str As String, strn As String, stro As String, strt As String
Dim iteration As Long
GlobalError = 1
Epzilon = 0
While GlobalError > Epzilon
GlobalError = 0
For i = 1 To SampleAmt
'searching sigma
For j = 1 To OutputAmt
Sample(i).Net(j) = Weight(0, j) 'bias unit
For k = 1 To InputAmt
Sample(i).Net(j) = Sample(i).Net(j) + Sample(i).Inp(k) * Weight(k, j)
Next k
Next j
'update weight
Error = 0
For j = 1 To OutputAmt
If Activate(Sample(i).Net(j)) <> Sample(i).Out(j) Then 'update weight if any change
txtError.Text = GlobalError
txtError.Refresh
Next i
DoEvents
iteration = iteration + 1
Wend
Tes Data
Dim Implementation As DataSample
ReDim Implementation.Inp(InputAmt)
ReDim Implementation.Net(OutputAmt)
ReDim Implementation.Out(OutputAmt)
Dim i As Integer, j As Integer
Implementation.Inp(1) = txtInput1.Text
Implementation.Inp(2) = txtInput2.Text
For i = 1 To OutputAmt
Implementation.Net(i) = Weight(0, i) 'for bias first
For j = 1 To InputAmt
Implementation.Net(i) = Implementation.Net(i) + Implementation.Inp(j) * Weight(j, i)
Next j
Implementation.Out(i) = Activate(Implementation.Net(i))
Next i
txtOutput.Text = Implementation.Out(1)