ai-jaringan-syaraf-tiruan.pptx
-
Upload
abdur-rahman -
Category
Documents
-
view
219 -
download
0
Transcript of ai-jaringan-syaraf-tiruan.pptx
Slide 1
KECERDASAN BUATAN(Artificial Intelligence)
Jaringan Syaraf Tiruan (Artificial Neural Networks)
Otak Manusia
2
Manusia bisa belajar dari pengalaman.
Belajar mengenali suhu air: panas, dingin, hangat
Belajar mengurus STNK, SIM
Belajar berhitung
Manusia dapat merasakan rasa sakit, geli, capek, dsb karena adanya stimulus yang dikirim ke otak, kemudian otak menjawab dengan membangkitkan suatu perasaan/rasa: senang, sedih, manis, asam, dsb. Manusia dapat beradaptasi dengan sesuatu yang baru (belum pernah dikenalnya) untuk digeneralisasikan
Biasanya makan nasi, singkong, dsb kemudian merasakan makanan keju, pizza
Campuran gula 1 sendok dengan garam 2 sendok.
Otak adalah sistem pemrosesan informasi yang sangat kompleks, nonlinear, dan paralel.
Jaringan Syaraf Tiruan
3
Diilhami dari sistem kerja otak manusia.
Otak manusia terdiri dari sejumlah sel syaraf yang saling terhubung, sel syaraf tersebut adalah unit pemroses informasi, disebut Neuron.
Otak manusia terdiri dari sekitar 10 milyar neuron dan 60 triyun koneksi antar neuron Synapses (Shepherd and Koch, 1990)
Menggunakan banyak neouron secara simultan, otak dapat mengerjakan fungsinya lebih cepat dari pada komputer tersepat saat ini.
Sebuah neuron terdiri dari sebuah badan sel, soma, sejumlah serat yang disebut dendrit, dan sebuah serat panjang tunggal disebut axon.
Sedangkan dendrit bercabang membentuk jaringan seperti soma, axon meregang menuju dendrit dan soma dari neuron lain.
Pemodelan Neuron
4
Neuron adalah unit pemrosesan informasi yang merupakan dasar operasi jaringan syaraf.
Tiga elemen dasar :
Sejumlah (himpunan) synapses atau connecting links,
Masing-masing dikarakterkan oleh bobot (weight) atau kekuatan (strength) dari dirinya sendiri.
Sinyal xj pada input synapse j dihubungkan ke neuron k dikalikan oleh bobot synaptic wkj.
Dalam bobot wkj, k mengacu neuron yang terhubung, sedangkan j mengacu pada akhir input dari synapse dimana bobot digunakan
Sebuah Adder
Untuk penjumlahan sinyal input,
Dimuati oleh hasil synapses dari neuron
Sebuah fungsi aktivasi (activation function)
Untuk pembatasan amplitude dari output neuron.
Fungsi aktivasi ini disebut juga dengan squashing function yang melakukan pembatasan range amplitude yang diijinkan dari sinyal output pada beberapa batas nilai
Normalisasi range amplitude dari output neuron ditulis menjadi interval unit [0,1] atau [-1,1]
Unsur eksternal BIAS
Bias bk mempunyai pengaruh dalam meningkatkan atau menurunkan input net dari fungsi aktivasi, tergantung nilai dari nilai bias apakah positif atau negatif.
Jika positif akan meningkatkan, dan jika negatif akan menurunkan
Nilai input vektor Bias selalu 1
Pemodelan Neuron
5
Input dari semua vektor dihitung oleh setiap neuron (didalam Adder) dengan persamaan:
x adalah vektor input
w adalah bobot (synapse)
m adalah jumlah input sebuah vektor x
u adalah hasil perhitungan sinyal input ke sebuah neuron
k adalah neuron ke-k
Untuk JST yang mengunakan Bias, persamaan adder akan ditambah vektor Bias x0 (sebesar 1) dengan besar bobot Bias sebesar w0, menjadi : vk = uk + x0.w0
Nilai uk kemudian dilakukan aktivasi menggunakan fungsi aktivasi : Yk = sign(vk)
Nilai Yk adalah keluaran (output) JST dari sebuah neuron k
Jaringan Syaraf BiologisJaringan Syaraf TiruanSomaNeuronDendritInputAxonOutputSynapseBobotAnalogi
Bias
6
Dalam bagian tertentu, tergantung pada saat bias bk positif atau negatif, hubungan antara induced local field atau activation potential vk dari neuron k dan combiner linear output uk diubah seperti pada gambar x, disini setelah digunakannya induced local field.
Bias bk adalah parameter eksternal dari neuron buatan k
pengaruh bias dihitung untuk melakukan dua hal :
(1) menambahkan sinyal input lain dengan nilai tetap +1;
(2) menambahkan bobot synaptic baru yang sama dengan bias bk.
Fungsi Aktivasi
7
Mendefinisikan output neuron dalam daerah induced local field v
Ada tiga jenis fungsi aktivasi dasar :
Fungsi Identitas (Identity Function)/Linear
Fungsi Piece-wise (Piece-wise Linear Function)
Fungsi Threshold (Threshold Function)
Threshold Biner
Threshold Bipolar
Fungsi Sigmoid (Sigmoid Function)
Sigmoid Biner
Sigmoid Bipolar
Fungsi identitas
Fungsi Piece-wise
Fungsi Aktivasi
8
Fungsi Threshold Biner (step)
Fungsi Threshold Bipolar (sign)
Fungsi Sigmoid Biner
Fungsi Sigmoid Bipolar
Threshold Biner
Threshold Bipolar
Sigmoid Biner
Sigmoid Bipolar
Model JST McCulloch-Pitts
9
Operasi OR
FA adalah threshold
Threshold = 2
x1x2y111100010000x1x2y111101011000Operasi AND
FA adalah threshold
Threshold = 2
Operasi AND
10
Fungsi Aktivasi Threshold biner
Threshold = 2
Y = 1, jika v 2
Y = 0, jika v < 2
Hasil Y sama dengan target JST dapat mengenali pola dengan benar
Vektor[x1 x2]Bobot[w1 w2]v=x1*w1 + x2*w2Y=Sign(v)Target[1 1][1 1]1*1 + 1*1 = 211[1 0][1 1]1*1 + 0*1 = 100[0 1][1 1]0*1 + 1*1 = 100[0 0][1 1]0*1 + 0*1 = 000Operasi OR
11
Fungsi Aktivasi Threshold biner
Threshold = 2
Y = 1, jika v 2
Y = 0, jika v < 2
Hasil Y sama dengan target JST dapat mengenali pola dengan benar
Vektor[x1 x2]Bobot[w1 w2]v=x1*w1 + x2*w2Y=Sign(v)Target[1 1][2 2]1*2 + 1*2 = 411[1 0][2 2]1*2 + 0*2 = 211[0 1][2 2]0*2 + 1*2 = 211[0 0][2 2]0*2 + 0*2 = 000Operasi AND (dengan Bias)
12
Fungsi Aktivasi Threshold biner
Threshold = 0
Y = 1, jika v 0
Y = 0, jika v < 0
Hasil Y sama dengan target JST dapat mengenali pola dengan benar
Vektor[x y 1]Bobot[w1 w2 w3]v=x1*w1 + x2*w2Y= Sign(v)Target[1 1 1][1 1 -2]1*1 + 1*1 + 1*(-2) = 011[1 0 1][1 1 -2]1*1 + 0*1 + 1*(-2) = -100[0 1 1][1 1 -2]0*1 + 1*1 + 1*(-2) = -100[0 0 1][1 1 -2]0*1 + 0*1 + 1*(-2) = -200Jaringan FeedForward
13
Dalam JST berlayer, neuron diorganisasikan dalam bentuk layer.
Bentuk yang paling sederhana dari jaringan berlayer, dimiliki adanya input layer(lapis masukan) dari node sumber yang diproyeksikan pada output layer (lapis keluaran) neuron (computation node/node penghitung), tetapi tidak sebaliknya.
Jaringan ini disebut feedforward lurus atau acyclic.
Jaringan seperti ini disebut single-layer network, dengan pendesainan single-layer diartikan pada layer output dari node (neuron) komputasi.
Layer input dari node sumber tidak dihitung karena tidak ada komputasi yang dilakukan disana
JST Feedfordward Lapis Tunggal (Single-Layer Feedforward Networks)
Jaringan FeedForward Contd
14
JST feedforward yang membedakan dirinya dengan adanya satu atau lebih hidden layers (lapis tersembunyi), dimana node komputasi juga dihubungkan dengan apa yang disebut hidden neurons (neuron tersembunyi) atau hidden units.
Fungsi dari neuron tersembunyi menjadi perantara antara input eksternal dan output jaringan dengan suatu kegunaan tertentu.
Dengan menambahkan satu atau lebih layer tersembunyi, jaringan akan dapat mengeluarkan statistik yang tinggi yang dalam hal tertentu dapat bernilai ketika ukuran dari layer input sangat besar
JST Feedfordward Lapis Jamak (Multi-Layer Feedforward Networks)
JST 10-4-2
Pelatihan Jaringan Syaraf Tiruan
15
Karena JST awalnya tidak dapat memahami pola masukan dan pola keluaran, maka proses pelatihan perlu diberikan pada JST.
Pada saat proses pelatihan itulah, terjadi penyesuaian bobot sehingga setiap pola masukan dapat terpetakan dengan benar ke pola keluaran yang seharusnya. Sehingga JST dapat mengenali pola masukan untuk memberikan keluaran seperti pelajaran yang pernah didapatkannya.
Properti penting dalam jaringan syaraf adalah :
Kemampuan jaringan untuk belajar dari lingkungan,
Meningkatkan kinerjanya selama proses pembelajaran. Peningkatan kinerja ini membutuhkan waktu yang lebih dengan beberapa aturan yang sudah diberikan.
Jaringan syaraf mempelajari lingkungannya selama proses interaktif dalam penyesuaian yang diterapkan pada bobot synaptic dan level bias.
Idealnya, jaringan menjadi lebih paham (pintar) mengenali lingkungannya setelah tiap iterasi proses pelatihan/pembelajaran.
Pelatihan Jaringan Syaraf Tiruan Contd
16
Definisi pelatihan/pembelajaran dalam konteks jaringan syaraf menurut Mendel dan McClaren (1970):
Pelatihan/pembelajaran adalah proses dimana parameter bebas jaringan syaraf diadaptasi selama proses simulasi oleh lingkungan dimana jaringan ditempatkan. Jenis pelatihan ditentukan oleh cara dimana perubahan parameter membutuhkan tempat.
Proses pelatihan ini mengimplikasikan urutan kejadian berikut :
Jaringan syaraf distimulus oleh lingkungan
Jaringan syaraf mengalami perubahan pada parameter bebas sebagai hasil dari stimulasi ini
Jaringan syaraf menhasilkan cara baru untuk mengenali lingkungan karena perubahan yang terjadi dalam struktur internal.
Proses pelatihan ini dilakukan selama waktu tertentu sampai mendapatkan kondisi konvergen yang diinginkan :
Tidak ada perubahan pada bobot
Pola sudah dapat dikenali dengan benar
Jumlah iterasi pembelajaran sudah tercapai
Beberapa teknik pembelajaran yang dibuat oleh para ahli, misalnya : single layer perceptron, multi layer perceptron, back-propagation, dsb.
Pelatihan Jaringan Syaraf Tiruan Contd
17
Neuron k ditentukan oleh vektor sinyal x(n)
Argumen n menyatakan waktu diskrit atau lebih tepatnya langkah waktu proses iterative dalam penyesuaian bobot synaptic neuron k.
Sinyal output neuron k dinyatakan oleh yk(n).
Sinyal output, yang merepresentasikan keluaran jaringan syaraf, dibandingkan dengan desired response atau output target (target/hasil yang diinginkan) yang dinyatakan oleh dk(n).
Konsekuensinya, sebuah error signal (sinyal error), dinyatakan oleh ek(n) akan dihasilkan, sebagai hasil dari formula
Error signal (sinyal error), dinyatakan oleh ek(n) , dimana
ek(n) = dk(n) yk(n)
Pelatihan Jaringan Syaraf Tiruan Contd
18
Pada setiap iterasi pelatihan dilakukan perubahan/penyesuaian bobot agar JST dapat mengenali pola (lingkungan), menurut aturan delta (Delta Rule) :
wkj(n) = ek(n) xj(n)
adalah laju pelatihan (learning rate), nilainya 0 < < 1
E adalah error (selisih antara target dengan hasil yang didapat)
x adalah vektor masukan
wkj(n + 1) = wkj(n) + wkj(n)
Pelatihan Jaringan Syaraf Tiruan Contd
19
Algoritma Pembelajaran Perceptron yang diusulkan Rosenblatt (1960) untuk melakukan klasifikasi:
Langkah 1: Inisialisasi
Tetapkan inisialisasi untuk threshold (jika menggunakan fungsi aktivasi Threshold)
Tetapkan inisialisasi bobot dengan pembangkitan secara acak. Range nilai umumnya [-0.5, 0.5].
Tetapkan nilai laju pembelajaran
Langkah 2: Aktivasi
Lakukan aktivasi perceptron dengan menerapkan setiap vektor dengan Yn = sign(vn)
Langkah 3: Training Bobot
Ubah bobot perceptron wkj(n + 1) = wkj(n) + wkj(n)
Dimana wkj(n) adalah koreksi bobot pada iterasi ke-n
dimana wkj(n) = ek(n) xj(n) Delta Rule
Langkah 4: Iterasi
Naikkan iterasi n satu langkah, kembali ke langkah 2 dan ulangi proses sampai syarat konvergensi tercapai.
Jenis Pembelajaran
20
Pembeda diantara jenis pembelajaran adalah formula perhitungan wkj(n) = ek(n) xj(n)
d = targety = hasil keluaran fungsi aktivasiv = sebelum aktivasi
Perceptron (terawasi/supervised)
ek(n) = d - y
wkj(n) = ek(n) xj(n)
Hebbian (tidak terawasi/unsupervised)
ek(n) = y
wkj(n) = ek(n) xj(n)
Delta (terawasi/supervised)
Sinyal error = (target hasil)2
ek(n) = (d y) * sign(v)
sign(v) adalah differensial fungsi aktivasi
wkj(n) = ek(n) xj(n)
Untuk fungsi aktivasi sigmoid biner dengan a=1, differensial sign(v) terhadap w menghasilkan : sign(v) = y(1-y)
Untuk fungsi aktivasi sigmoid bipolar dengan a=1, differensial sign(v) terhadap w menghasilkan : sign(v) = (1-y2)
Jenis Pembelajaran
21
Widrow-Hoff
Menggunakan fungsi aktivasi Linier Fungsi aktivasi tidak berpengaruh dalam proses pebelajaran
ek(n) = d - v
wkj(n) = ek(n) xj(n)
Back-propagation
Correlation
Winner Take All
Self Organizing Map (SOM)
Dsb.
Bagaimana membuat JST Perceptron yang dapat mengenali operasi AND, OR, dan XOR ?
22
Perceptron harus dilatih untuk dapat memetakan setiap pola masukan (mis. 2 masukan operasi AND) ke pola keluaran yang sesuai.
Misal : pola masukan 1 dan 1 menghasilkan 1, pola masukan 1 dan 0 menghasilkan 0, dsb.
Setelah inisialisasi (membangkitkan bobot, penentuan fungsi aktivasi, laju pembelajaran), barulah dilakukan pembelajaran dengan algoritma diatas untuk setiap pola yang harus dipelajari epoch
Bobot di-update terus pada setiap pelatihan (ketika terjadi error) sampai konvergen, dimana error sudah tidak terjadi (dibawah ambang batas)
JST Perceptron untuk kasus AND (Cara 1)
23
Bobot awal : 0.3 dan -0.1
Learning rate : 0.1
Fungsi aktivasi : Threshold () biner = 0.2
iterasimasukanvkeluaranlrtargetErrorperubahan bobotbobot baru[n1 n2]yde[w1 w2 bias][w1 w2 bias]Inisialisasi bobot[0 0]1[1 1]000.111[0.1 0.1][0.1 0.1][1 0]0.100.100[0 0][0.1 0.1][0 1]0.100.100[0 0][0.1 0.1][0 0]000.100[0 0][0.1 0.1]2[1 1]0.210.110[0 0][0.1 0.1][1 0]0.100.100[0 0][0.1 0.1][0 1]0.100.100[0 0][0.1 0.1][0 0]000.100[0 0][0.1 0.1]JST Perceptron untuk kasus AND (Cara 1)
24
Bobot awal : 0.3 dan -0.1 Learning rate : 0.1Fungsi aktivasi : Threshold () biner = 0.2
iterasimasukanvkeluaranlrtargetErrorperubahan bobotbobot baru[n1 n2]yde[w1 w2 bias][w1 w2 bias]Inisialisasi bobot[0.3 -0.1]1[1 1]0.210.110[0 0][0.3 -0.1][1 0]0.310.10-1[-0.1 0][0.2 -0.1][0 1]-0.100.100[0 0][0.2 -0.1][0 0]000.100[0 0][0.2 -0.1]2[1 1]0.100.111[0.1 0.1][0.3 0][1 0]0.310.10-1[-0.1 0][0.2 0][0 1]000.100[0 0][0.2 0][0 0]000.100[0 0][0.2 0]3[1 1]0.210.110[0 0][0.2 0][1 0]0.210.10-1[-0.1 0][0.1 0][0 1]000.100[0 0][0.1 0][0 0]000.100[0 0][0.1 0]4[1 1]0.100.111[0.1 0.1][0.2 0.1][1 0]0.200.100[0 0][0.2 0.1][0 1]0.100.100[0 0][0.2 0.1][0 0]000.100[0 0][0.2 0.1]5[1 1]0.310.110[0 0][0.2 0.1][1 0]0.210.10-1[-0.1 0][0.1 0.1][0 1]0.100.100[0 0][0.1 0.1][0 0]000.100[0 0][0.1 0.1]6[1 1]0.210.110[0 0][0.1 0.1[1 0]0.100.10[0 0][0.1 0.1][0 1]0.100.10[0 0][0.1 0.1][0 0]000.10[0 0][0.1 0.1]JST Perceptron untuk kasus AND (Cara 2)
25
Bobot awal : 0 dan 0
Bias : 0
Learning rate : 1
Fungsi aktivasi : Threshold () biner = 0
iterasimasukanvkeluaranlrtargeterrorperubahan bobotbobot baru[n1 n2 1]ydE[w1 w2 bias][w1 w2 bias]Inisialisasi bobot[0 0 0]1[1 1 1]01110[0 0 0][0 0 0][1 0 1]0110-1[-1 0 -1][-1 0 -1][0 1 1]-10100[0 0 0][-1 0 -1][0 0 1]-10100[0 0 0][-1 0 -1]2[1 1 1]-20111[1 1 1][0 1 0][1 0 1]0110-1[-1 0 -1][-1 1 -1][0 1 1]0110-1[0 -1 -1][-1 0 -2][0 0 1]-20100[0 0 0][-1 0 -2]3[1 1 1]-30111[1 1 1][0 1 -1][1 0 1]-10100[0 0 0][0 1 -1][0 1 1]0110-1[0 -1 -1][0 0 -2][0 0 1]-20100[0 0 0][0 0 -2]4[1 1 1]-20111[1 1 1][1 1 -1][1 0 1]0110-1[-1 0 -1][0 1 -2][0 1 1]-10100[0 0 0][0 1 -2][0 0 1]-20100[0 0 0][0 1 -2]JST Perceptron untuk kasus AND (Cara 2)
26
Hasil bobot akhir : 1 dan 2
Bias : -3
iterasimasukanvkeluaranlrtargeterrorperubahan bobotbobot baru[n1 n2 1]ydE[w1 w2 bias][w1 w2 bias]5[1 1 1]-10111[1 1 1][1 2 -1][1 0 1]0110-1[-1 0 -1][0 2 -2][0 1 1]0110-1[0 -1 -1][0 1 -3][0 0 1]-30100[0 0 0][0 1 -3]6[1 1 1]-20111[1 1 1][1 2 -2][1 0 1]-10100[0 0 0][1 2 -2][0 1 1]0110-1[0 -1 -1][1 1 -3][0 0 1]-30100[0 0 0][1 1 -3]7[1 1 1]-10111[1 1 1][2 2 -2][1 0 1]0110-1[-1 0 -1][1 2 -3][0 1 1]-10100[0 0 0][1 2 -3][0 0 1]-30100[0 0 0][1 2 -3]8[1 1 1]01110[0 0 0][1 2 -3][1 0 1]-20100[0 0 0][1 2 -3][0 1 1]-10100[0 0 0][1 2 -3][0 0 1]-30100[0 0 0][1 2 -3]AND (Pengujian)
27
Pengujian jaringan untuk mengenali pola vektor yang telah dilatihkan.
Terlihat bahwa nilai keluaran (y) pada pengujian keempat vektor memberikan hasil yang sama dengan nilai target (d).
Sehingga dapat disimpulkan bahwa jaringan berhasil mempelajari pola vektor masukan.
Masukanbobot (w)vkeluaran (y)target (d)[1 1 1][1 2 -3]011[1 0 1][1 2 -3]-200[0 1 1][1 2 -3]-100[0 0 1][1 2 -3]-300AND, OR, XOR
28
Dengan cara yang sama, kita bisa membuat JST untuk melakukan operasi OR.
JST single layer tidak akan bisa menyelesaikan kasus XOR ! Mengapa ?
Penyebab :
Pelatihan perceptron (hampir semua teknik pengenalan pola) sebenarnya adalah fungsi linear.
Fungsi linear hanya bisa memisahkan data dalam kelas yang sifatnya pengelompokannya adalah linear.
Operasi AND dan OR dapat dipisahkan dengan sebuah garis lurus, sedangkan XOR tidak bisa.
Inilah penyebab kasus XOR tidak dapat diselesaikan dengan single layer perceptron.
A XOR B = (A OR B) AND NOT(A AND B)
Mengapa pelatihan perceptron single layer hanya berlaku untuk data yang terpisah secara linear ?
29
Persamaan perceptron :
Keluaran perceptron Y=1 hanya jika total bobot masukan lebih besar atau sama dengan nilai threshold
Misal : untuk persamaan operasi AND menggunakan persamaa x1w1 + x2w2 =
Menurut hasil cara 1, garis pemisah adalah 0.1x1 + 0.1x2 = 0.2
Atau x1 + x2 = 2
Maka daerah 0 (nol) dibawah garis, diberikan oleh : x1 + x2 -2 < 0
Daerah 1 diatas garis diberikan oleh : x1 + x2 -2 0
Fakta bahwa perceptron hanya dapat mempelajari fungsi linear merupakan kelemahan, tetapi banyak kelebihan yang sudah ditawarkan.
Untuk menangani fungsi non-linear, umumnya menggunakan multi layer perceptron dengan sejumlah pembatasan seperti yang disampaian Rosenblatt, menggunakan algoritma Back-propagation.
Contoh kasus
30
Temukan nilai bobot dan bias dimana hasil dalam single-neuron perceptrons dengan batasan keputusan yang terpilih.
Kemudian lakukan pengujian semua vektor pada bobot dan bias yang didapatkan untuk memverifikasi.
Asumsikan bahwa fungsi aktivasi yang digunakan adalah threshold biner (step) dengan nilai threshold 0 (nol).
Tanda titik terang menunjukkan target kelas adalah 1 (terang) dan tanda titik gelap menunjukkan target kelas adalah 0 (gelap).
Gunakan laju pembelajaran: 0.1
Bobot awalLearning rateIterasiBobot akhir[0 0 0]0.13[-0.125 0.075 0][0 0 0]0.23[-0.25 0.15 0][0 0 0]0.33[-0.375 0.225 0][0 0 0]0.43[-0.5 0.3 0][0 0 0]0.53[-0.625 0.375 0][0 0 0]0.63[-0.75 0.45 0][0 0 0]0.93[-1.125 0.675 0][0 0.3 -0.5]0.95[-1.8 0.75 0.4][-0.1 -0.7 -0.2]0.96[-2.125 0.425 0.7][0.4 2 0.9]0.93[-1.625 1.325 0]JST Delta
31
Algoritma jaringan Delta (Mc Clelland dan Rumelhart, 1986) diaplikasikan dalam paradigma pembelajaran terawasi (supervised)
Hampir selalu digunakan untuk fungsi aktivasi berupa fungsi kontinyu.
Jaringan Delta disebut juga sebagai jaringan pembelajaran perceptron kontinyu
Dapat diturunkan untuk aplikasi jaringan syaraf tiruan lapis jamak (seperti jaringan Error Backpropagation dan varian-variannya).
Tipe pembelajaran feedforward (maju) dengan paradigma pembelajaran terawasi (supervised) dengan laju pembelajaran adalah .
Sinyal error e : nilai perbedaan antara target dk dengan sinyal keluaran yk dikalikan dengan nilai differensial dari yk.
JST Delta
32
Inisialisasi bobot wk bisa diberi nilai awal 0 / nilai acak yang kecil antara -0.5 sampai dengan +0.5.
Proses pelatihan sangat tergantung kepada nilai sinyal error e yang diharapkan terus menurun dan mencapai target maksimal error yang diinginkan, umumnya kecil sekitar 0.001 atau lebih kecil.
Proses pelatihan akan dihentikan ketika error yang didapatkan pada saat pelatihan mencapai target atau telah mencapai sejumlah iterasi (epoch) yang diinginkan
Sinyal error = (target hasil)2
ek(n) = (d y) * sign(v)
sign(v) adalah differensial fungsi aktivasi
wkj(n) = ek(n) xj(n)
Untuk fungsi aktivasi sigmoid biner dengan a=1, differensial sign(v) terhadap w menghasilkan : sign(v) = y(1-y)
Untuk fungsi aktivasi sigmoid bipolar dengan a=1, differensial sign(v) terhadap w menghasilkan : sign(v) = (1-y2)
Kasus operasi logika AND dengan JST Delta
33
Sebuah jaringan delta single neuron keluaran untuk mengenali fungsi logika AND dengan dua neuron masukan, vektor masukannya adalah sebagai berikut :
x1T = [1 1]
x1T = [1 0]
x1T = [0 1]
x1T = [0 0]
Targetnya adalah dk = [1 0 0 0],
Bobot awal adalah wT = [0 0] dan bias 0.
Fungsi aktivasi yang digunakan adalah sigmoid biner dengan parameter slope (a) 1.
Target error 0.001.
Lakukan pelatihan jaringan untuk mendapatkan bobot optimal dengan nilai laju pembelajaran 1 dan 0.8
Kasus operasi logika AND dengan JST Delta
34
Menggunakan nilai laju pembelajaran 1.
Diakhir pelatihan ke-1 bobot yang didapat adalah wT = [-0.0134 -0.0066 -0.2603].
Sedangkan error yang didapatkan adalah max(0.125 0.158 0.1393 0.1076) = 0.158.
Karena error yang didapatkan masih lebih besar dari target error (baru > ) maka pelatihan masih dilanjutkan pada iterasi kedua.
Pelatihan akan terus dilanjutkan pada iterasi kedua, ketiga sampai jumlah iterasi yang ditentukan atau nilai error yang didapatkan telah mencapai target error yaitu 0.001.
Pelatihan jaringan terus dilakukan sampai error yang didapatkan mencapai target yaitu 0.001 (vektor pertama) pada iterasi ke-2035.
Setelah itu barulah jaringan dapat melakukan pengenalan pola vektor dengan baik dengan memberikan nilai keluaran yang sesuai (mendekati) target yang diinginkan
35
ite.masukanvkeluarany'target bobotbobot baruerror[n1 n2 1]yd[w1 w2 bias]baruInisialisasi bobot[0 0 0]1[1 1 1]00.50.2511[0.125 0.125 0.125][0.125 0.125 0.125]0.125[1 0 1]0.250.56220.246110[-0.1384 0 -0.1384][-0.0134 0.125 -0.0134]0.158[0 1 1]0.11160.52790.249210[0 -0.1316 -0.1316][-0.0134 -0.0066 -0.1449]0.1393[0 0 1]-0.14490.46380.248710[0 0 -0.1154][-0.0134 -0.0066 -0.2603]0.10762[1 1 1]-28020.43040.245211[0.1396 0.1396 0.1396][0.1263 0.1331 -0.1206]0.1622[1 0 1]0.00560.50140.2510[-0.1254 0 -0.1254][0.0009 0.1331 -0.246]0.1257[0 1 1]-0.11290.47180.249210[0 -01176 -0.1176][0.0009 0.0155 -0.3636]0.1113[0 0 1]-0.36360.41010.241910[0 0 -0.0992][0.0009 0.0155 -04628]0.08412034[1 1 1]3.06140.95530.042711[0.0019 0.0019 0.0019][6.3066 6.3083 -9.5477]0.001[1 0 1]-3.24110.03760.036210[-0.0014 0 -0.0014][6.3052 6.3083 -9.5491]0.0007[0 1 1]-3.24080.03770.036210[0 -0.0014 -0.0014][6.3052 6.3069 -9.5505]0.0007[0 0 1]-9.55050.0007010[0 0 -0.0000][6.3052 6.3069 -9.5505]0.00002035[1 1 1]3.10170.95530.042711[0.0019 0.0019 0.0019][6.3071 6.3088 -9.5486]0.001[1 0 1]-3.24140.03760.036210[-0.0014 0 -0.0014][6.3058 6.3088 -9.5499]0.0007[0 1 1]-3.24110.03760.036210[0 -0.0014 -0.0014][6.3058 6.3075 -9.5513]0.0007[0 0 1]-9.55130.0000010[0 0 0.0000][6.3058 6.3075 -9.5513]0.0000Dengan laju pembelajaran = 1
36
Dengan laju pembelajaran = 0.8
ite.masukanvkeluarany'target bobotbobot baruerror[n1 n2 1]yd[w1 w2 bias]baruInisialisasi bobot[0 0 0]1[1 1 1]00.50.250.81[0.1 0.1 0.1][0.1 0.1 0.1]0.125[1 0 1]0.20.54980.24750.80[-0.1089 0 -0.1089][-0.0089 0.1 -0.0089]0.1512[0 1 1]0.09110.52280.24950.80[0 -0.1043 -0.1043][-0.0089 -0.0043 -0.1132]0.1366[0 0 1]-0.11320.47170.24920.80[0 0 -0.0940][-0.0089 -0.0043 -0.2072]0.11132[1 1 1]-22050.44510.24700.81[0.1096 0.1096 0.1096][0.1008 0.1053 -0.0976]0.1539[1 0 1]0.00310.50080.250.80[-0.1002 0 -0.1002][0.0006 0.1053 -0.1978]0.1254[0 1 1]-0.09250.47690.24950.80[0 -0.0952 -0.0951][0.0006 0.0101 -0.2929]0.1137[0 0 1]-0.29290.42730.24470.80[0 0 -0.0836][0.0006 0.0101 -0.3766]0.09132548[1 1 1]3.06140.95530.04270.81[0.0015 0.0015 0.0015][6.3058 6.3072 -9.5469]0.001[1 0 1]-3.24110.03760.03620.80[-0.0011 0 -0.0011][6.3047 6.3072 -9.5480]0.0007[0 1 1]-3.24090.03770.03620.80[0 -0.0011 -0.0011][6.3047 6.3061 -9.5491]0.0007[0 0 1]-9.54910.00010.00010.80[0 0 -0.0000][6.3047 6.3061 -9.5491]0.00002549[1 1 1]3.06170.95530.04270.81[0.0015 0.0015 0.0015][6.3062 6.3076 -9.5476]0.001[1 0 1]-3.24130.03760.03620.80[-0.0011 0 -0.0011][6.3051 6.3076 -9.5486]0.0007[0 1 1]-3.24110.03760.03620.80[0 -0.0011 -0.0011][6.3051 6.3065 -9.5497]0.0007[0 0 1]-9.54980.00010.00010.80[0 0 -0.0000][6.3051 6.3065 -9.5497]0.0000Kasus operasi logika AND dengan JST Delta
37
Pelatihan jaringan terus dilakukan sampai error yang didapatkan mencapai target yaitu 0.001 (vektor pertama) pada iterasi ke-2549.
Setelah itu barulah jaringan dapat melakukan pengenalan pola vektor dengan baik dengan memberikan nilai keluaran yang sesuai (mendekati) target yang diinginkan.
Dengan nilai laju pembelajaran yang lebih kecil ternyata perubahan nilai bobot dan bias lebih halus tetapi dengan usaha (iterasi) yang lebih banyak, hal ini lebih baik untuk menghindari hasil yang terjebak pada daerah local minima
Kasus kelas lebih dari satu
38
Vektor pola yang terbagi menjadi empat kelompok (kelas) seperti yang ditunjukkan pada Gambar yaitu kelas : lingkaran, bujur sangkar, belah ketupat dan segi tiga.
Lakukan pembuatan desain jaringan delta untuk mendapatkan nilai bobot dan bias pada jaringan agar dapat mengenali vektor-vektor pola untuk diklasifikasikan menjadi empat kelas seperti pada gambar
Kasus kelas lebih dari satu
39
Hitung jumlah kelas target (n)
n=4
Tentukan jumlah garis
Jika jumlah garis adalah l maka untuk l garis linear dapat digunakan untuk maksimal 2l kelas.
Jadi 2l n, tetapi juga diusahakan agar jumlah garis tidak berlebihan.
Jika l diasumsikan bernilai 2 maka jumlah kelas target yang dapat digunakan adalah 4.
Maka kasus diatas seharusnya dapat dipecahkan dengan 2 garis linear.
Jumlah garis ini nantinya akan menjadi jumlah neuron keluaran yang harus dibuat pada desain jaringan syaraf
Kasus kelas lebih dari satu
40
Desain JST
Jika daerah diatas garis linear dikodekan dengan 1 dan daerah dibawah garis linear dikodekan dengan 0 maka konversi kelas menjadi :
Lingkaran 11 : artinya kode target untuk kelas lingkaran adalah jika unit keluaran 1 adalah 1 dan unit keluaran 2 adalah 1.
Belah ketupat 10 : artinya kode target untuk kelas belah ketupat adalah jika unit keluaran 1 adalah 1 dan unit keluaran 2 adalah 0.
Bujur sangkar 01 : artinya kode target untuk kelas bujur sangkar adalah jika unit keluaran 1 adalah 0 dan unit keluaran 2 adalah 1.
Segitiga 00 : artinya kode target untuk kelas segitiga adalah jika unit keluaran 1 adalah 0 dan unit keluaran 2 adalah 0
masukantargetn1n2biasd1d2-0.51111-0.51.51110.51111-0.50110-0.50.511000.51100.50.5101111011.51.51010.50100101001-0.5100JST Perceptron Lapis Jamak (Multi Layer Perceptron)
41
Perceptron multilayer adalah JST feedforward dengan satu atau lebih hidden layer (layer tersembunyi)
Biasanya jaringan terdiri dari input layer neuron sumber, minimal satu atau lebih hidden layer neuron komputasi, dan sebuah output layer neuron komputasi.
Sinyal masukan dirambatkan arah maju (forward) pada basis layer per layer.
Mengapa kita membutuhkan hidden layer ?
Setiap layer dalam jaringan syaraf multilayer mepunyai fungsi khusus sendiri-sendiri.
Layer masukan menerima sinyal input dari dunia luar dan mendistribusikan sinyal ke semua neuron dalam hidden layer
Output layer menerima output sinyal dari (atau stimulus pola), dari hidden layer dan memunculkan pola keluaran dari seluruh bagian jaringan.
Neuron dalam hidden layer mendeteksi fitur; bobot neuron merepresentasikan fitur tersembunyi dalam pola masukan.
Fitur kemudian digunakan oleh output layer dalam menentukan pola keluaran.
Dengan satu hidden layer, kita dapat merepresentasikan sembarang fungsi kontinyu dari sinyal masukan.
Dengan dua hidden layer, bahkan fungsi diskontinyu dapat direpresentasikan.
JST Perceptron Lapis Jamak (Multi Layer Perceptron) Contd
42
Mengapa layer tengah dalam multilayer network disebut hidden layer ? Apa yang disembunyikannya ?
Sebuah hidden layer menyembunyikan keluaran yang dibutuhkannya. Neuron dalanmhidden layer tidak dapat diobservasi melalui perilaku input/output jaringan
Tidak ada cara apapun untuk mengetahui apa output yang dibutuhkan hidden layer.
Dengan kata lain, keluaran yang dibutuhkan hidden layer ditentukan oleh layer itu sendiri.
Bisakan JST memasukkan lebih dari satu hidden layer ?
JST komersial disandingkan dengan 3 atau kadang-kadang 4 layer (termasuk 1 atau 2 hidden layer)
Setiap layer dapat berisi dari 10 sampai 1000 neuron.
Penelitian umumnya 5 atau kadang 6 layer (termasuk 3 atau 4 hidden layer), dan menggunakan jutaan neuron, tapi praktek umumnya hanya 3 layer, karena setiap penambahan layer akan meningkatkan komputasi secara eksponensial.
Bagaimana cara pembelajaran JST multi layer ?
Pembelajaran dalam JST multilayer diproses dengan cara yang sama seperti pada perceptron.
Training set pola masukan diberikan pada jaringan. Jaringan menghitung pola keluaran. Jika ada error (perbedaan pola keluaran aktual dengan yang dibutuhkan), maka bobot akan disesuaikan untuk mengurangi error.
JST MLP Back-propagation
43
Dalam JST BP, algoritma pembelajaran mempunyai 2 fase.
Fase 1,
Pelatihan pola masukan diberikan pada jaringan input layer.
Jaringan kemudian merambatkan pola masukan dari layer ke layer sampai pola keluaran di-generate oleh output layer.
Fase 2,
Jika pola tersebut berbeda dari keluaran yang dibutuhkan, error dihitung kemudian dirambatkan balik sepanjang jaringan dari output layer ke input layer.
Bobot diubah ketika error dirambatkan.
Seperti JST yang lain, BP ditentukan oleh hubungan antara neuron (arsitektur jaringan), fungsi aktivasi yang digunakan oleh neuron, algoritma pelatihan (aturan pelatihan) yang menetapkan prosedur penyesuaian bobot.
Umumnya, jaringan BP adalah JST multilayer yang mempunyai 3 atau 4 layer, full connected.
Fungsi aktivasi yang digunakan sigmoid biner:
Atau bipolar:
Bagaimana aturan pembelajaran JST BP
44
Input signals, x1; x2; . . . ; xn, dirambatkan sepanjang jaringan dari kiri ke kanan, dan sinyal error, e1; e2; . . . ; el, dari kanan ke kiri.
Untuk merambatkan sinyal error, kita mulai pada layer output dan kembali ke hidden layer.
Sinyal error pada neuron output k pada iterasi ke-p didefinisikan oleh:
ek(p) = dk(p) yk(p)
Dimana dk adalah target keluaran yang diinginkan pada neuron k
Neuron k (neuron output), disuplay dengan keluarannya sendiri. Maka kita dapat menggunakan prosedur sederhana untuk mengupdate bobot wjk. Aturannya sama dengan perceptron:
wjk(p+1) = wjk + wjk(p)
wjk(p) adalah koreksi bobot
wjk(p) = . ek(p) . (vektor masukan neuron k)
(vektor masukan neuron k bukan dari input awal, tapi output dari hidden layer.
Bagaimana aturan pembelajaran JST BP Contd
45
(vektor masukan) yang digunakan dari sinyal keluaran hidden layer zj digunakan untuk mendapatkan perubahan bobot (Fu, 1994):
wjk(p) = . k(p) . zj
k(p) adalah error gradien neuron k dilayer output pada iterasi ke-k
Error gradient ditentukan sebagai turunan fungsi aktivasi dikalikan dengan error pada neuron output.
Untuk neuron k pada layer output:
k(p) = fa(v) . ek(p)
Dimana fa(v) = turunan fungsi sigmoid biner
Untuk sigmoid biner: fa(v) = yk(p) . (1 yk(p))
k(p) = yk(p) . (1 yk(p)) . ek(p)
yk(p) = 1/(1+e-v), untuk a=1
Bagaimana aturan pembelajaran JST BP Contd
46
Koreksi bobot pada hidden layer didapatkan dengan cara yang sama:
uij(p) = . j(p) . xi(p)
j(p) adalah error gradient pada neuron j (hidden neuron).
j(p) = zj(p) . (1 zj(p)) .
Dimana l adalah jumlah neuron output
Dimana zj = 1/(1+e-v)
Algoritma Training BP
47
Langkah 1: Inisialisasi
Berikan nilai random pada bobot jaringan yang terdistribusi seragam.
Haykin (1999), gunakan range (-2.4/Fi, 2.4/Fi)
Fi adalah jumlah neuron input
Random mulai -0.5 sampai 0.5
Langkah 2: Hitung keluaran (aktivasi)
Mengaktivasi JST back-pro dengan menerapkan input x1(p), x2(p), , xn(p), dan ouput yang diinginkan d1(p), d2(p), , dn(p)
Hitung output aktual pada neuron dalam hidden layer
zj(p) = sigmoid(vj), n dalah jumlah input masukan neuron pada hidden layer
Hitung ouput aktual pada neuron dalam output layer
yk(p) = sigmoid(vk), m adalah jumlah input neuron k pada output layer
Langkah 3: Koreksi bobot
Algoritma Training BP Contd
48
Langkah 3: Koreksi bobot
Ubah bobot pada perambatan balik error dalam jaringan
Hitung error gradient pada output layer
k(p) = yk(p) . (1 yk(p)) . ek(p)
Dimana ek(p) = dk(p) yk(p)
Hitung koreksi bobot
wjk(p) = . k(p) . zj
Update bobot pada neuron dalam output layer
wjk(p+1) = wjk + wjk(p)
Hitung error gradient pada hidden layer
j(p) = zj(p) . (1 zj(p)) .
Hitung koreksi bobot
uij(p) = . j(p) . xi(p)
Update bobot pada neuron dalam hidden layer
uij(p+1) = uij + uij(p)
Langkah 4: Iterasi
Lakukan langkah 2 sampai kriteria error sudah tercapai
Kriteria error menggunakan Sum of Square Error (SSE)
JST BP Mengenali operasi XOR
49
Arsitektur perceptron multilayer dengan algoritma back-propagation
Terdiri dari: 2 masukan, 3 neuron tersembunyi, 1 neuron keluaran.
Fungsi aktivasi: sigmoid biner
Laju pelatihan: 0.1
x1x2y110101011000Lihat di excel ....
JST BP Mengenali operasi XOR Contd
50
x1x2dkykdk - ykSE1100.016363-0.016360.0001341010.9800010.0199990.00020110.9946110.0053891.45E-050000.016285-0.016290.000133SSE0.000481Target error0.001Setelah 152 iterasi
Akselerasi proses pelatihan pada multilayer neural network
51
Mempercepat proses pembelajaran dengan memberikan setting parameter tambahan.
Menggunakan fungsi aktivasi sigmoid bipolar
Dimana a dan b konstanta
Nilai yang cocok untuk a=1.716, b=0.667 (Guyon, 1991).
Menambahkan momentum pada saat melakukan koreksi bobot.
wjk(p) = . wjk(p-1) . . k(p) . zj
Konstanta momemtum bernilai 0 1, nilai yang umum 0.95
Momentum berguna untuk menstabilkan dan mempercepat proses training.
Setting laju pembelajaran (learning rate)
Semakin kecil nilai , maka perubahan bobot akan kecil dan pergerakan kurva SSE semakin halus mengakibatkan proses pelatihan menjadi semakin lama.
Jika nilai semakin besar maka proses pelatihan berjalan lebih cepat, perubahan bobot juga besar tetapi menyebabkan ketidakstabilan pada perubahan SSE (naik turun terus).
52
ANY QUESTIONS ?
-2-1012
-0.2
0
0.2
0.4
0.6
0.8
1
(v)
v
-2-1012
-2
-1
0
1
2
(v)
v
-10-50510
0
0.2
0.4
0.6
0.8
1
1.2
(v)
v
a=0.5
a=3
a=5
a=1
-10-50510
-1
-0.5
0
0.5
1
(v)
v
a=0.5
a=1
a=3
a=5
(0,0)
(0,1)
(1,0)
(1,1)
n1
n2
(0,0)
(0,1)
(1,0)
(1,1)
n1
n2
w
k1
w
k2
w
km
w
km-1
x
1
x
m
x
m-1
x
2
w
k0
x
0
Vektor
input
bias
y
k
r=d
k
-y
k
r
.
.
.
.
.
.
v
k
d
k
x
Dw
F
F
h
wk1
wk2
wkm
wkm-1
x1
xm
xm-1
x2
wk0
x0
Vektor input
bias
yk
r=dk-yk
h
F
r
. . .
. . .
vk
dk
x
Dw
F
(0,0)
(0,1)
(1,0)
(1,1)
n1
n2
(0,0)
(0,1)
(1,0)
(1,1)
n1
n2
0500100015002000
0
0.05
0.1
0.15
0.2
0.25
05001000150020002500
0
0.05
0.1
0.15
0.2
d
1
d
2
n2
n1
w11
w21
w12
w22
w10
1
w20
1
y
1
y
2
d1
d2
n2
n1
w11
w21
w12
w22
w10
1
w20
1
y1
y2
k
l
k
jk
k
w
p
w
p
0
1
)
(
).
(
+
=
d
j
n
i
ij
i
j
w
p
w
p
x
v
0
1
)
(
).
(
+
=
=
k
m
j
jk
k
j
k
w
p
w
p
z
v
0
1
)
(
).
(
+
=
=
-
=
=
l
k
k
k
y
d
SSE
1
2
)
(
5
.
0