PEMBELAJARAN MESIN STMIK AMIKOM PURWOKERTO NEURAL NETWORKS PEMBELAJARAN MESIN STMIK AMIKOM PURWOKERTO
Mengapa Neural Networks Perlu Dipelajari? Banyak algoritma yang telah tersedia dengan teknik arsitektur yang beragam dan canggih Adanya komputer digital yang berkecepatan tinggi sehingga mempermudah simulasi Aplikasinya yang sangat luas
Bidang-bidang Aplikasi Neural Network: Aeroscape Simulasi komponen pesawat, sistem kendali pesawat, perbaikan autopilot, simulasi jalur penerbangan, dll Otomotif Sistem kendali otomatis mobil Keuangan dan perbankan Deteksi uang palsu, identifikasi pola data pasar saham, evaluasi aplikasi kredit
Bidang-bidang Aplikasi Neural Network: Pertahanan (militer) Pengendalian senjata, deteksi bom, penelusuran target, pengendali sensor dan radar, pengolahan sinyal citra, dll Keamanan Mengenali benda atau wajah oknum Medis Deteksi kanker Pengenalan Pola Pengenalan tulisan, klasifikasi suara, dll
Bidang-bidang Aplikasi Neural Network: Elektronik Pembuatan perangkat keras, pengontrol gerakan robot, sintesis suara dll Matematika Membuat pemodelan variable yang tidak diketahui dll
NEURAL NETWORKS dibentuk sebagai generalisasi model matematika dari jaringan syaraf biologi manusia, dengan asumsi bahwa: Pemrosesan informasi terjadi pada banyak elemen sederhana (neuron) Sinyal dikirimkan di antara neuron-neuron melalui penghubung-penghubung Penghubung antara neuron memiliki bobot yang akan memperkuat atau memperlemah sinyal Untuk menentukan output, setiap neuron menggunakan fungsi aktivasi yang dikenakan pada jumlahan input yang diterima
Susunan Syaraf Manusia Gambaran sebuah neuron (satuan unit pemroses terkecil pada otak): Dendrit : menerima informasi Soma (badan sel): mengolah informasi Akson (neurit) : mengirimkan impuls ke syaraf lainnya
Analogi Jaringan Syaraf Tiruan dengan Jaringan Syaraf Biologis Jaringan Syaraaf Tiruan Jaringan Syaraf Biologis Node Badan sel (soma) Input Dendrit Output Akson Bobot Myelin
Neural Network /JST ditentukan oleh 3 hal berikut ini: Pola hubungan antar neuron (disebut arsitektur jaringan) Metode untuk menentukan bobot penghubung (disebut metode training / learning jaringan / algoritma Fungsi aktivasi
Istilah-istilah dalam JST Neuron: sel saraf tiruan yang merupakan elemen pengolahan JST untuk menerima dan memroses input Jaringan: kumpulan neuron yang saling terhubung dan membentuk lapisan Input: Berhubungan dengan atribut dari pola atau data dari luar. Sinyal input kemudian diteruskan ke lapisan selanjutnya Output: Solusi atau hasil pemahaman jaringan terhadap data input Lapisan tersembunyi (hidden layer): lapisan yang secara tak langsung berinteraksi dengan data dari luar
Istilah-istilah dalam JST Bobot: nilai matematis dari koneksi untuk mentransfer data antar lapisan. Bobot digunakan untuk mengatur jaringan sehingga menghasilkan output yang diinginkan Summation Function: Fungsi yang digunakan untuk mencari rata-rata bobot dari semua elemen input
Model Dasar JST Struktur Neuron pada JST:
Arsitektur Jaringan Syaraf Tiruan Jaringan dengan lapisan tunggal (single layer): Hanya memiliki satu lapisan dengan bobot-bobot terhubung. Jaringan ini hanya menerima input kemudian secara langsung akan mengolahnya menjadi output melalui lapisan tersembunyi
Lapisan input memiliki 3 neuron yaitu X1, X2, X3 Lapisan output memiliki 2 neuron yaitu Y1 dan Y2. Neuron pada kedua lapisan saling berhubungan. Seberapa besar hubungan antara 2 neuron ditentukan oleh bobot yang bersesuaian
Arsitektur Jaringan Syaraf Tiruan b. Jaringan dengan banyak lapisan (multilayer): Hanya memiliki satu atau lebih lapisan yang terletak di antara lapisan input dan lapisan output. Umumnya terdapat lapisan bobot-bobot yang terletak antara 2 lapisan yang bersebelahan. Multilayer dapat menyelesaikan permasalahan yang lebih sulit namun dengan proses learning yang lebih rumit
Inisialisasi Bobot Prosedur yang umum untuk menginisialisasi bobot dan bias adalah dengan membuat nilai acak dengan range -0,5 sd 0,5 atau -1 sd 1 atau interval lain yang sesuai. Nilai bobot mungkin saja positif atau negatif karena nilai akhirnya setelah pelatihan dapat berubah tanda
Fungsi Aktivasi Dipakai untuk menentukan keluaran suatu neuron Merupakan fungsi yang menggambarkan hubungan antara tingkat aktivasi internal (summation function) yang mungkin berbentuk linerar atau non linear
- Fungsi penjumlahan terbobot Neuron akan menghitung net-input ynet sebagai hasil penjumlahan terbobot input inputnya. ynet = w11 x1 + w21 x2 + w31 x3 +... + wn1 x1 Hasil dot-product vektor X dan vektor W - Fungsi aktivasi Besarnya output (atau aktivasi) sebuah neuron dihitung berdasarkan fungsi aktivasi F( . ) y = F(ynet ) lts05
Contoh Fungsi fungsi aktivasi dalam perhitungan output y. 1, bila ynet > q F(.) adalah fungsi ambang y = 0, bila ynet < q q adalah nilai ambang Bila nilai ambang diperlakukan sebagai bobot (disebut bobot prasikap, maka model neuronnya menjadi S F(.) x1 x2 x3 xn w11 w21 w31 wn1 y q -1
Fungsi Aktivasi Fungsi undak biner (hard limit) Fungsi undak biner (threshold)
Fungsi Aktivasi Fungsi bipolar Fungsi bipolar dengan threshold
Fungsi Aktivasi Fungsi Linier (identitas) Fungsi Sigmoid biner
Himpunan data pelatihan KLASIFIKASI PEMBELAJARAN 1. Belajar Terbimbing (supervised) NN input output t|2 X|2 2 t|K X|K K t|1 X|1 1 vektor target vektor input k Himpunan data pelatihan 1 epoch 1 eksemplar - X|k y|k t|k error error digunakan untuk menyesuai- kan bobot jaringan (berdasarkan suatu algoritma belajar). Data pelatihan di- berikan per-eksem- plar, diulang ulang per-epoch, sampai dicapai har- ga error mendekati nol untuk seluruh vektor pelatihan.
Himpunan Data Pelatihan 2. Belajar Tak-terbimbing (Unsupervised) NN X|1 1 X|2 2 X|K K vektor input k Himpunan Data Pelatihan X|k Y|k Vektor input pelatihan diberikan per- eksemplar, diulang ulang per-epoch, sampai jaringan menghasilkan harga output yang konsisten (tidak berubah- ubah lagi) untuk setiap input pelatihan. Dalam proses belajar, jaringan akan mengenali ciri ciri atau kesamaan ciri diantara vektor vektor input yang di- berikan, dan akan memberikan output yang sama untuk vektor vektor input yang memiliki kesamaan/kemiripan ciri.
3. Belajar Reinforcement Belajar reinforcement pada umumnya digunakan untuk melatih NN secara online dalam aplikasinya sebagai pengendali sebuah plant. Kelas belajar ini merupakan kombinasi kelas belajar terbimbing dan tak-terbimbing. Target tidak dinyatakan secara eksplisit, penyesuaian bobot dilakukan berdasarkan hasil penilaian kinerja obyek yang dikendalikan X NN Y plant misal : suhu plant misal : pengendali putaran kipas NN dilatih mengenali dinamika plant penilai kinerja plant Pertanyaan : Bagaimana data pelatihannya ? misal: suhu terlalu tinggi, rendah, cukup, ...
McCulloch Pitts Fungsi aktivasi biner Besar bobotnya sama Memiliki threshold yang sama Contoh buat fungsi logika “and”, input X1 dan X2, dan Y = 1 jika dan hanya jika inputan 1 X1 X2 Y 1 1 1 1 0 0 0 1 0 0 0 0
Contoh Sederhana
Jawab X1 X2 net Y, 1 jika net >=2, 0 jika net < 2 1 1 1.1+1.1=2 1 1 0 1.1+0.1=1 0 0 1 0.1+1.1=1 0Z 0 0 0.1+0.1=0 0 Ternyata BERHASIL mengenali pola X1 X2 Y 2 1
Contoh Program
Problem “OR” X1 X2 net Y, 1 jika net >=1, 0 jika net < 1 1 1 1.1+1.1=2 1 1 0 1.1+0.1=1 1 0 1 0.1+1.1=1 1 0 0 0.1+0.1=0 0 Ternyata BERHASIL mengenali pola X1 X2 Y 1
Contoh Simple Network
Contoh Program
Soal Latihan Buatlah JST untuk logika NOT & Programnya dalam bahasa C Tabel Kebenaran Gerbang NOT
Perceptron dan Klasifikasi pola
Perceptron dasar : Jaringan lapisan tunggal (lapisan input tidak dihitung), dengan N buah neuron input (vektor N-elemen) dan satu neuron output. Nilai elemen input (output) sebuah neuron : Biner [0, 1] atau Bipolar [-1, 1] Fungsi aktivasi neuron input : fungsi linear (tidak mengubah harga input dari luar) Fungsi aktivasi neuron output : fungsi ambang (step) x0 x1 x2 x3 contoh untuk N = 4 y w1 w2 w3 w4 Vektor input : X|i = { , , , , 1 } Vektor bobot : W = { , , , , wq } w0 xq = 1 wq Net input : å = n i x w net + xq.wq bias
Fungsi Aktivasi Undak Biner (Hard Limit)
1 , bila ynet > 0 Output : y = 0 , bila ynet < 0 Keterbatasan : Aturan belajar Perceptron akan konvergen (mencapai 1 set harga bobot yang akan membuat jaringan dapat melakukan klasifikasi dengan benar) bila “ Data input pelatihannya dapat dipisahkan secara linear (linearly separable)” Dengan satu neuron output , Perceptron sederhana hanya dapat melakukan klasifikasi dikotomis (dua kelas) untuk input- input yang dilatihkan. Contoh output dikotomis : “Benar” atau “Salah”, “Panas” atau “Dingin”, “Merah” atau “Bukan Merah” dikodekan secara biner ( 0,1 ) atau bipolar ( -1, 1 )
Linearly Separable (LS) Data yang linearly separable : terdapat garis atau bidang atau bidang banyak (hyperplane) linear yang dapat memisahkan data ter- sebut kedalam dua kelas (kelompok). x1 x2 + - Linearly Separable (LS) Data Set x1 x2 y w1 w2 1 Contoh 1 : Perceptron ini dilatih untuk melakukan klasifikasi berda- sarkan logika (AND) 3 2 target input k topologi Himpunan data pelatihan wq xq
X|0 = {0, 0} X|1 = {0, 1} = kelas “0” x2 X|2 = {1, 0} {1, 1} vektor vektor dua elemen (terletak dalam ruang 2-dimensi) Dalam proses belajar, NN akan mencari harga harga bobot yang dapat meng- klasifikasikan vektor vektor input ke- dalam kelas yang benar . Bobot tersebut dinamakan bobot- konvergen (bobot akhir pelatihan). lakhir adalah garis pemisah yang ter- bentuk oleh bobot akhir pelatihan. x2 x1 {1, 1} {0, 0} {0, 1} lakhir
Contoh klasifikasi dikotomis berdasarkan logika OR output input y x2 x1 1 -1 representasi biner representasi bipolar Himpunan pola pelatihan untuk klasifikasi dikotomis : { 0 0 } { 0 } { 0 1 } { 1 } { 1 0 } { 1 } { 1 1 } { 1 } 1 epoch pola pelatihan = 4 eksemplar pasangan {input} {target} {-1 -1 } { -1 } { -1 1 } { 1 } { 1 -1 } { 1 } { 1 1 } { 1 }
Dari ynet = wq + ∑ xi wi Garis pemisah : dan 1 jika ynet > 0 f(ynet) = -1 jika ynet < 0 , maka garis pemisah l adalah garis ynet = wq + ∑ xi wi = 0 atau wq + x1w1 + x2 w 2 = 0 Dalam pelatihan, dicari harga2 wᶿ , w1 , w2 yang membuat NN dapat melakukan klasifikasi dengan benar Contoh salah satu garis pemisah untuk klasifikasi berdasarkan logika OR bipolar persamaan garis : x2 = -x1 - 1 w0 = 1, wi = 1, w2 = 1 x2 x1 +1 -1 lakhir o Garis pemisah :
Soal : Sebuah Perceptron sederhana dua input dilatih untuk klasifikasi pola bipolar berdasarkan logika AND. Tunjukkan dengan gambar bahwa salah satu bobot solusinya adalah t = 2, wi =1, w2 =1
x1 x2 y w1 w2 1 Contoh 2 : Perceptron ini dilatih untuk melakukan klasifikasi berdasar- kan logika EXOR 3 2 target input k topologi Himpunan data pelatihan wq xq {1, 1} {0, 0} {0, 1} Tidak ada satupun garis linear yang dapat mengklasifikasikan vektor vektor input dengan benar ! Data pelatihan untuk logika EXOR tersebut non-linearly separable karena : lts05
Algoritma belajar Perceptron ( = algoritma penyesuaian bobot) wi baru = wi lama + Dwi Dwi = txi
Algoritma LMS - Least Mean Square atau ATURAN DELTA Selain dilatih dengan algoritma belajar Perceptron (Gradient Descend sederhana -Rosenblatt), jaringan lapis tunggal dapat dilatih dengan aturan belajar Delta (delta rule). Dasar aturan Delta adalah minimisasi galat kuadrat dalam pelatihan. Fungsi galat E adalah jumlah error kuadrat, merupakan fungsi bobot- bobot jaringan. Dalam proses belajar, bobot bobot disesuaikan kearah perubahan-harga-galat (gradient E) yang paling tajam (terjal) dalam ruang Bobot-Galat. Galat E untuk vektor bobot n-dimensi, E(w1,w2) w1 w2 Eab Ecd c d a b . [ ] ú û ù ê ë é ¶ º Ñ n 1 w E , K r Gradient E, untuk vektor bobot n-dimensi E(w1,w2, ... , wn) = S ( t |k – y |k ) k = jumlah vektor pelatihan (input dan target) k=1 Ruang Bobot-Galat, untuk vektor bobot 2-dimensi
S [( t |k–y |k ) ( - wi xi ) ] = S wi xi i=1 2 S k = [( t |k–y |k ) ( - wi xi ) ] Dengan demikian perubahan galat E akibat perubahan bobot wI adalah, = - wI [ ( t |k– y |k ) ( xI ) ] d E d wI untuk fungsi aktivasi linear : y|k = ynet|k N = S wi xi i=1 Gradient, Aturan penyesuaian bobotnya: = h [ ( t |k– y |k ) ( xI ) ] pada arah sumbu wi
D wi = h [ ( t |k– y |k ) ( xi ) ] Aturan Delta : Proses Pelatihan : Inisialisasi seluruh bobot wi ke harga acak yang kecil. Sampai jaringan konvergen, kerjakan : - Berikan satu vektor input pelatihan x|k. - Hitung net-input ynet|k= + + . . . + - Hitung output y|k = ynet|k (fungsi aktivasi = fungsi linear) - Hitung penyesuaian bobotnya, untuk i = 1, 2, ... , N, q wi baru = w i lama + Dwi Bila Dwi|k 0 untuk semua input dalam 1 epoch, hentikan pelatihan. w2 x2 w1 x1 wq syarat penghentian pelatihan h : konstante pesat belajar
S (t|k –y|k) 2 Contoh Kurve pembelajaran (learning curve), menunjukkan penurunan error (RMS=Root Mean Square) dalam proses belajar. Setiap pemberian satu epoch pola pelatihan disebut Satu iterasi pelatihan Pada setiap iterasi dihitung errornya : RMS = S (t|k –y|k) 2 1/2 Error = 0 (atau cukup kecil) pada iterasi pelatihan ke 5 Dikatakan jaringan konvergen pada iterasi ke 5.
Aturan belajar Perceptron vs aturan Delta/LMS Dengan data pelatihan yang linearly separable, Perceptron dapat melakukan klasifikasi sempurna (Gb.(a)) Dengan data pelatihan yang non-linearly separable, - Perceptron tidak dapat melakukan klasifikasi dengan benar (Gb.(b)). - Aturan Delta dapat melakukan klasifikasi pendekatan (Gb.(c)). Persentase kesalahan klasifikasi yang cukup kecil masih dapat diterima . Gb.(a) + - x1 x2 Gb.(b) - x1 x2 Gb.(c) x1 x2 + - +
ADALINE & MADALINE jaringan ADALINE (Adaptive Linear Element). Jaringan lapis tunggal yang dilatih dengan aturan Delta adalah jaringan ADALINE (Adaptive Linear Element). Jaringan ADALINE tidak mempersyaratkan data pelatihan yang harus linearly separable. M buah ADALINE yang dikombinasikan akan menghasilkan jaringan lapis- tunggal dengan M neuron output, disebut Multiple ADALINE (MADALINE) x1 w1 w2 x2 y ADALINE wN xN vektor bobot W = ( , , . . . , ) lts05 w1 w2 wN
MADALINE vektor bobot WM = ( , , . . . , ) Matriks bobot w12 w22 WNM = x1 x2 xN y1 y2 yM w21 wN1 w1M w2M wNM vektor bobot WM = ( , , . . . , ) Matriks bobot WNM = w12 w22 wN2 lts05
MADALINE Dengan M buah neuron output maka klasifikasi dengan MADALINE tidak hanya klasifikasi dikotomis. Misal : Jaringan MADALINE dilatih untuk Mengenali huruf huruf A, B, C, ... ADALINE merah : melakukan klasifikasi dikotomis “A” dan “bukan-A”. ADALINE biru: melakukan klasifikasi dikotomis “B” dan “bukan-B”. ADALINE hijau: melakukan klasifikasi dikotomis “C” dan “bukan-C”. x1 x2 xN y1 y2 yM
Latihan : 1. Enam buah pola berupa matriks 2x2. Horisontal vertikal Diagonal Rencanakan himpunan vektor pelatihannya Gambarkan arsitektur jaringannya Latih jaringan untuk mengenali jenis pola vertikal, horisontal dan diagonal yang diberikan pada inputnya. (d) Bagaimana output jaringan bila diberikan input pengujian sebagai berikut :