JARINGAN SYARAF TIRUAN ARTIFICIAL NEURAL NETWORK
Jaringan Syaraf Tiruan Jaringan syaraf tiruan (JST) atau Artificial Neural Network (ANN) adalah suatu model matematik atau komputasi untuk mensimulasikan struktur dan fungsi dari jaringan syaraf dalam otak. Terdiri dari: Node atau unit pemroses (penjumlah dan fungsi aktivasi) weight/ bobot yang dapat diatur Masukan dan Keluaran Sifat : Adatif Mampu belajar Nonlinear 2
Biological Neural Network 3
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 4
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
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 9
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: 12
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. 13
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
Σ Proses Belajar w1 w2 F(y) wi b p1 n=Σpi.wi + p2 - pi Target Masukan Keluaran w1 n=Σpi.wi a=f(n) + Σ p2 F(y) w2 - . b wi pi Error=target-a Error digunakan untuk pembelajaran /mengatur bobot
Analog 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) 20
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 22
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. 23
Melatih Perceptron: Operasi OR Variabel Input OR x1 x2 Fd 1 24
Σ 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 26
Langkah ke tiga : Menghitung error e(k) = t(k) – a(k) e(1) = 0 – 0 = 0 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. 28
K=2 w1(2)= 0.3 w2(2)=0.1, p1(2)=0, p2(2)=1 target(2)=Fd(2)=1 Hitung keluaran:
Mengatur Bobot Hitung error Mengupdate bobot perceptron 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)
Tugas Perorangan hitung secara manual melatih perseptron untuk fungsi AND, XOR, XNOR Kelompok buat program perceptron