JARINGAN SYARAF TIRUAN Artificial neural networks
Human Brain Bertugas untuk memproses informasi Seperti prosesor pada komputer Masing-masing sel berinteraksi mendukung kinerja otak Setiap sel (neuron) memiliki satu nukleus (soma), bertugas memproses informasi, informasi diterima oleh dendrit, dan disebarkan melalui akson Pertemuan informasi antar syaraf berada di sinapsis
Struktur Jaringan pada Otak Neuron adalah satuan unit pemroses terkecil pada otak Jaringan otak manusia tersusun tidak kurang dari 1013 buah neuron yang masing-masing terhubung oleh sekitar 1015 buah dendrite Fungsi dendrite adalah sebagai penyampai sinyal dari neuron ke neuron yang terhubung dengannya Sebagai keluaran, setiap neuron memiliki axon, sedangkan bagian penerima sinyal disebut synapse Sebuah neuron memiliki 1000-10.000 synapse Penjelasan lebih rinci tentang hal ini dapat diperoleh pada disiplin ilmu biology molecular Secara umum jaringan saraf terbentuk dari jutaan (bahkan lebih) struktur dasar neuron yang terinterkoneksi dan terintegrasi antara satu dengan yang lain sehingga dapat melaksanakan aktifitas secara teratur dan terus menerus sesuai dengan kebutuhan
Synapse
A Neuron © 2000 John Wiley & Sons, Inc.
Jaringan Syaraf Tiruan Jaringan syaraf tiruan (JST) atau Artificial Neural Network (ANN) adalah suatu sistem pemrosesan informasi yang mencoba meniru kinerja otak manusia. Merupakan generalisasi model matematis dengan asumsi: Pemrosesan informasi terjadi pada elemen sederhana (=neuron) Sinyal dikirimkan diantara neuron-neuron melalui penghubung (=dendrit dan akson) Penghubung antar elemen memiliki bobot yang akan menambah atau mengurangi sinyal Untuk menentukan output, setiap neuron memiliki fungsi aktivasi (biasanya non linier) yang dikenakan pada semua input Besar output akan dibandingkan dengan threshold 6
Jaringan Syaraf Tiruan (JST) Menirukan model otak manusia Otak Manusia JST Soma Node Dendrites Input/Masukan Axon Output/Keluaran Synapsis Weight/ Bobot Milyaran Neuron Ratusan Neuron 7
Baik tidaknya suatu model JST ditentukan oleh: Pola antar neuron (arsitekur jaringan) Metode untuk menentukan dan mengubah bobot (disebut metode learning) Fungsi aktivasi JST disebut juga: brain metaphor, computational neuroscience, parallel distributed processing
JST dapat belajar dari pengalaman! Biasanya berhubungan dengan angka (numerik) sehingga data yang tidak numerik harus dibuat ke numerik Tidak ada rumus yang tetap (fixed) sehingga disebut dengan free-estimator! JST disebut black box atau tidak transparan karena tidak mampu menjelaskan bagaimana suatu hasil didapatkan! JST mampu menyelesaikan permasalahan yang tidak terstruktur dan sulit didefinisikan!
Kelebihan JST Mampu mengakuisisi pengetahuan walau tidak ada kepastian Mampu melakukan generalisasi dan ekstraksi dari suatu pola data tertentu JST dapat menciptakan suatu pola pengetahuan melalui pengaturan diri atau kemampuan belajar (self organizing) Memiliki fault tolerance, gangguan dapat dianggap sebagai noise saja Kemampuan perhitungan secara paralel sehingga proses lebih singkat
JST mampu: Klasifikasi: memilih suatu input data ke dalam kategori tertentu yang sudah ditetapkan Asosiasi: menggambarkan suatu obyek secara keseluruhan hanya dengan bagian dari obyek lain Self organizing: kemampuan mengolah data-data input tanpa harus mempunyai target Optimasi: menemukan suatu jawaban terbaik sehingga mampu meminimalisasi fungsi biaya
Kelemahan JST Kurang mampu untuk melakukan operasi operasi numerik dengan presisi tinggi Kurang mampu melakukan operasi algoritma aritmatik, operasi logika dan simbolis Lamanya proses training yang mungkin terjadi dalam waktu yang sangat lama untuk jumlah data yang besar
Aplikasi JST Pengenalan pola (pattern recognition) Signal Processing Huruf, tanda tangan, suara, gambar yang sudah sedikit berubah (mengandung noise) Identifikasi pola saham Pendeteksian uang palsu, kanker Signal Processing Menekan noise pada saluran telepon Peramalan Peramalan saham Autopilot dan simulasi Kendali otomatis otomotif
Aplikasi JST Tasks to be solved by artificial neural networks: controlling the movements of a robot based on self-perception and other information (e.g., visual information); deciding the category of potential food items (e.g., edible or non-edible) in an artificial world; recognizing a visual object (e.g., a familiar face); predicting where a moving object goes, when a robot wants to catch it.
Sejarah McCulloch & Pitts (1943) dikenal sebagai orang yang pertama kali memodelkan Neural Network. Sampai sekarang ide-idenya masih tetap digunakan, misalnya: bertemuanya beberapa unit input akan memberikan computational power Adanya threshold Hebb (1949) mengembangkan pertama kali learning rule (dengan alasan bahwa jika 2 neurons aktif pada saat yang bersamaan maka kekuatan antar mereka akan bertambah)
Antara tahun 1950-1960an beberapa peneliti melangkah sukses pada pengamatan tentang perceptron Mulai tahun 1969 merupakan tahun kematian pada penelitian seputar Neural Networks hampir selama 15 tahun (Minsky & Papert) Baru pada pertengahan tahun 80-an (Parker & LeCun) menyegarkan kembali ide-ide tentang Neural Networks
Model Neuron Tanpa bias Masukan /Inputs p1 w1 Penjumlahan Fungsi Aktifasi Σ n=Σpi.wi p2 F(y) w2 a=f(n) . wi pi Bobot/Weight = bisa diatur
Model Neuron dengan bias Masukan /Inputs p1 w1 Penjumlahan Fungsi Aktivasi Σ n=Σpi.wi p2 F(y) w2 a=f(n) . b (Bias)=Fix wi pi Bobot/Weight = bisa diatur
Sejumlah sinyal masukan x dikalikan dengan masing-masing penimbang yang bersesuaian W Kemudian dilakukan penjumlahan dari seluruh hasil perkalian tersebut dan keluaran yang dihasilkan dilalukan kedalam fungsi pengaktip untuk mendapatkan tingkatan derajad sinyal keluarannya F(x.W) Walaupun masih jauh dari sempurna, namun kinerja dari tiruan neuron ini identik dengan kinerja dari sel otak yang kita kenal saat ini Misalkan ada n buah sinyal masukan dan n buah penimbang, fungsi keluaran dari neuron adalah seperti persamaan berikut: F(x,W) = f(w1x1 + … +wnxn) Soft Computation Research Group, EEPIS-ITS
Neuron Sederhana
Model Matematis X=input/masukan i= banyaknya input W=bobot/weight Keluaran Penjumlah -> n = Σpi.wi (Jumlah semua Input(pi) dikali bobot (wi) Output/Keluaran Neuron= a = f(n) f=fungsi aktivasi
Fungsi Aktivasi 1 Jika n ≥ 0 0 Jika n < 0 Beberapa fungsi aktivasi a=f(n) Hardlimit function a = Linear Function a = n Sigmoid Function a = 1 /( 1+ e-n ) 1 Jika n ≥ 0 0 Jika n < 0 22
Grafik Fungsi Aktivasi Hardlimiter Purelinear a=f(n) Sigmoid
Kegunaan Aktivasi Untuk pengambilan keputusan biasanya digunakan Hardlimit Untuk pengenalan pola/jaringan back propagation biasanya digunakan sigmoid Untuk prediksi/aproksimasi linear biasanya digunakan linear
Model McCulloch and Pitts Neuron menghitung jumlah bobot dari setiap sinyal input dan membandingkan hasilnya dengan nilai bias/threshold, b. Jika input bersih kurang dari threshold, output neuron adalah -1. Tetapi, jika input bersih lebih besar dari atau sama dengan threshold, neuron diaktifkan dan outputnya ditetapkan +1 (McCulloch and Pitts, 1943). Fungsi aktivasi ini disebut Fungsi Tanda (Sign Function). Sehingga output aktual dari neuron dapat ditunjukkan dengan: 25
Perceptron Perceptron (Rosenblatt, 1958): JST training yang sederhana dipakaikan prosedur algoritma training yang pertama kali. Terdiri dari neuron tunggal dengan bobot synaptic yang diatur dan hard limiter. Operasinya didasarkan pada model neuron McCulloch dan Pitts. Jumlah input yang telah diboboti dipakaikan kepada hard limiter: menghasilkan output +1 jika input positif dan -1 jika negatif mengklasifikasikan output ke dalam dua area A1 dan A2. 26
Proses Belajar Target = Nilai yang diinginkan, Output = Nilai yang keluar dari neuron Proses Compare (membandingkan) antara output dengan target, Jika terjadi perbedaan maka weight/bobot di adjust/atur sampai nilai ouput= (mendekati) nilai target
Σ w1 w2 F(y) wi Proses Belajar b p1 n=Σpi.wi + p2 - pi Target Masukan Keluaran w1 n=Σpi.wi a=f(n) + Σ p2 w2 F(y) - . b wi pi Error=target-a Error digunakan untuk pembelajaran /mengatur bobot
Analogi Target apa yang anda inginkan Input/masukan Kekurangan dan kelebihan/potensi anda Bobot seberapa besar usaha anda Output hasil dari potensi and kelemahan dikalikan dengan usaha terhadap potensi or kelemahan Error Kesalahan/Introspeksi diri perkuat potensi or/and lemahkan kekurangan
Proses Belajar n=p1.w1 Masukan Σ F(y) w1 p1 a=f(n) Bobot
Proses Belajar jika masukan positif Untuk masukan positif penambahan bobot menyebabkan peningkatan keluaran Target (10) (6) Masukan Keluaran n=p1.w1 (3) a=f(n) + Σ F(y) p1 - w1 (2) F=linear Karena e ≥ 0 maka keluaran a hrs dinaikan untuk menaikan a maka naikan nilai w1 karena masukan positif w1 next= w1 old + delta w1 e=10-6=4 (+) Error=target-a
Proses Belajar jika masukan negatif Untuk masukan negatif penambahan bobot menyebabkan penurunan keluaran Target (10) (-6) Masukan Keluaran n=p1.w1 (3) a=f(n) + Σ F(y) p1 - w1 (-2) F=linear Karena e ≥ 0 maka keluaran a hrs dinaikan untuk menaikan a maka turunkan nilai w1 karena masukan negatif w1 next= w1 old + (- delta w1) e=10-(-6)=16 (+) Error=target-a
Proses Perceptron Belajar Pada awalnya bobot dibuat kecil untuk menjaga jangan sampai terjadi perbedaan yang sangat besar dengan target. Bobot awal adalah dibuat random, umumnya dalam interval [-0.5 – 0.5] Keluaran adalah proses jumlah perkalian antara masukan dengan bobot. Jika terjadi perbedaan antara keluaran dengan target, e(k) = a(k) – t(k), k = iterasi ke- 1, 2, 3, maka: Bobot diupdate/diatur sedikit demi sedikit untuk mendapatkan keluaran yang sesuai dengan target w(k+1) = w(k) + Δw(k) 33
Perceptron Learning Rule (Rosenblatt, 1960) e(k) = a(k) – t(k) , k = iterasi ke- 1, 2, 3, ….. a(k) = keluaran neuron t(k) = target yang diinginkan e(k) = error/kesalahan w(k+1) = w(k) + Δw(k) Δw(k) = kec belajar x masukan x error = ŋ x p(k) x e(k) Ŋ = learning rate -> kecepatan belajar (0< ŋ ≤1) Ŋ besar belajar cepat tidak stabil Ŋ kecil belajar lambat stabil
Langkah Pembelajaran Langkah pertama : Inisialisasi Awal Mengatur bobot w1, w2, ..., wn interval [-0.5 – 0.5], mengatur bias/threshold b, mengatur kec pembelajaran ŋ, fungsi aktivasi Langkah kedua : Menghitung keluaran Mengaktifkan perceptron dengan memakai masukan p1(k), p2(k), ..., pi(k) dan target yang dikehendaki t(k). Hitunglah output aktual pada iterasi ke-k = 1 i adalah jumlah input perceptron dan step adalah fungsi aktivasi 35
Langkah ke tiga : Menghitung error e(k) = t(k) – a(k) t(k) = target,a(t)=keluaran perceptron Langkah ke empat : Mengatur Bobot Mengupdate bobot perceptron wi(k+1) = wi(k) + Δwi(k) w(k+1) bobot baru w(k) bobot yg lalu Δwi(p) adalah pengkoreksian bobot pada iterasi k, yang dihitung dengan: Δwi(p) = ŋ x pi(k) x e(k) Langkah ke lima : pengulangan Naikkan iterasi k dengan 1 (k=k+1), kembalilah ke langkah ke dua dan ulangi proses sampai keluaran=target or mendekati target. 36
Melatih Perceptron: Operasi OR Variabel Input OR x1 x2 Fd 1 37
Σ w1 F(y) w2 b p1 p2 Fungsi OR a=f(n) x1 Fd=target x2 n=Σpi.wi + - error w2 a=f(n) p2 b Perceptron
Contoh Pembelajaran Langkah pertama : Inisialisasi Awal Mengatur bobot w1, w2 interval [-0.5 – 0.5], w1(1)=0.3 w2(1)=0.1, mengatur bias/threshold b=0.2, mengatur kec pembelajaran ŋ =0.2, fungsi aktivasi-> step Langkah kedua : Menghitung keluaran Mengaktifkan perceptron dengan memakai masukan p1(k), p2(k) dan target yang dikehendaki t(k). Hitunglah output aktual pada iterasi ke-k = 1 39
41 Langkah ke tiga : Menghitung error e(k) = t(k) – a(k) Langkah ke empat : Mengatur Bobot Mengupdate bobot perceptron wi(k+1) = wi(k) + Δwi(k) w1(2) = 0.3(1) + Δw1(1) Δw1(1) = ŋ x pi(1) x e(1) = 0.2 x 0 x 0 = 0 maka w1(2) = 0.3(1) + 0 = 0.3 (tidak berubah) w2(2) = 0.3(1) + Δw2(1) Δw2(1) = ŋ x pi(1) x e(1) maka w2(2) = 0.1(1) + 0 = 0.1 (tidak berubah) Langkah ke lima : pengulangan Naikkan iterasi k dengan 1 (k=k+1), kembalilah ke langkah ke dua dan ulangi proses sampai keluaran=target or mendekati target. 41
K=2 w1(2)= 0.3 w2(2)=0.1, p1(2)=0, p2(2)=1 target(2)=Fd(2)=1 Hitung keluaran:
Hitung error e(2)= target(2) – a(2) = 1 – 0 =1 (ada error) Mengatur Bobot Mengupdate bobot perceptron wi(k+1) = wi(k) + Δwi(k) w1(3) = 0.3(2) + Δw1(2) Δw1(2) = ŋ x p1(1) x e(1) = 0.2 x 0 x 1 = 0 maka w1(3) = 0.3(1) + 0 = 0.3 (tidak berubah) w2(3) = 0.3(2) + Δw2(2) Δw2(1) = ŋ x p2(1) x e(1) = 0.2 x 1 x 1 = 0.2 maka w2(3) = 0.1(1) + 0.2 = 0.3 (berubah sebelumnya w2(2)=0.1)