Week 3 BackPropagation (Eka Rahayu S., M. Kom.) Machine Learning Week 3 BackPropagation (Eka Rahayu S., M. Kom.) © Sekolah Tinggi Teknik Surabaya
Minggu Lalu... Hebbian Perceptron Hebbian ataupun Perceptron Input Biner Input Bipolar Tidak bisa menangani SEMUA permasalahan Linear Separable Perceptron Hebbian ataupun Perceptron Sama-sama merupakan cara belajar, bukan arsitektur Sama-sama menggunakan arsitektur 1 layer (tanpa hidden layer) Sama-sama tidak bisa menyelesaikan Non Linear Separable Saat gagal dengan representasi input biner, gunakan representasi input bipolar © Sekolah Tinggi Teknik Surabaya
Minggu Lalu... Perbedaan Hebbian Perceptron Learning Rate Tidak Ada Epoch Single Epoch Multi Epoch Fungsi Aktivasi 2 respon {0,1} atau {-1,+1} 3 respon {-1,0,+1} Output Biner atau Bipolar Hanya Bipolar Mekanisme Perubahan Bobot Tanpa Syarat Bersyarat: Jika output yang dihasilkan beda dengan target © Sekolah Tinggi Teknik Surabaya
Backpropagation Supervised Learning 2 Tahap: Training Testing Dapat mengatasi permasalahan Non Linear Separable Arsitektur 2 Layer [atau lebih] Mulai adanya hidden layer Supervised Learning Unsupervised Learning © Sekolah Tinggi Teknik Surabaya
Fungsi Aktivasi [1] Binary Sigmoid Function Berbeda dengan Hebbian dan Perceptron, fungsi aktivasi yang digunakan dalam backpropagation sedikit berbeda. Fungsi aktivasinya dihitung melalui persamaan diatas untuk permasalahan yang memiliki target output antara 0-1 © Sekolah Tinggi Teknik Surabaya
Fungsi Aktivasi [2] Bipolar Sigmoid Function Fungsi aktivasinya dihitung melalui persamaan diatas untuk permasalahan yang memiliki target output antara -1 - 1 © Sekolah Tinggi Teknik Surabaya
Contoh Arsitektur Backpropagation Laurene Fausett, Fundamentals of Neural Networks: Architecture, Algorithms, and Applications © Sekolah Tinggi Teknik Surabaya
3 Langkah : Data dimasukkan ke input jaringan (feedforward) Perhitungan propagasi balik dari error yang bersangkutan Pembaharuan (adjustment) bobot dan bias © Sekolah Tinggi Teknik Surabaya
Simbol-Simbol [1] x Data training untuk input x = (x1 , ..., xi , ...., xn) i -- n t Data training untuk output (target) t = (t1 , ..., tk , ...., tm) k-- m α Learning Rate (biasanya antara 0-1) z Hidden Unit z = (z1 , ..., zj , ...., zp) j -- p v Bobot untuk unit hidden dinyatakan dalam vij dimana i : index input; j: index hidden sehingga v13 artinya bobot dari input 1 yang mengarah ke hidden yang ke 3 © Sekolah Tinggi Teknik Surabaya
Simbol-Simbol [2] Y Unit output Y = (Y1 , ..., Yk , ...., Ym) k– m w Bobot untuk unit output dinyatakan dalam wjk dimana j : index hidden; k: index output sehingga w21 artinya bobot dari hidden ke-2 yang mengarah ke output yang ke 1 Bias dinyatakan sebagai node yang ke-0 sehingga w02 artinya bobot bias hidden layer ke output yang ke-2. (begitu juga untuk v) δk Faktor koreksi error untuk bobot wjk δj Faktor koreksi error untuk bobot vij © Sekolah Tinggi Teknik Surabaya
Letak Simbol (feedforward) . x1 xi xn 1 z1 zj zp v01 v11 v1j vnp vij Y1 Yk Ym w01 w11 w1k wjk wpm © Sekolah Tinggi Teknik Surabaya
Letak Simbol (feedforward) . x1 xi xn 1 z1 zj zp v01 v11 Y1 Yk Ym w01 w11 Zin1 Yin1 vj1 vn1 © Sekolah Tinggi Teknik Surabaya
Letak Simbol (backprop) . x1 xi xn 1 z1 zj zp v01 v11 Y1 Yk Ym w01 w11 δ1 δin1 w1k δ2 w1m δ3 © Sekolah Tinggi Teknik Surabaya
Algoritma 0. Inisialisasi semua nilai bobot dan bias WHILE NOT stoping condition, lakukan step 2 - 8 Untuk setiap data training, lakukan step 3 – 8 FEEDFORWARD: Isi nilai x Hitung z_inj dan zj Hitung y_ink dan yk PROPAGATION ERROR: Hitung δk dan Δwjk Hitung δ_inj dan Δvij PERBARUAN BOBOT dan BIAS: Menghitung w dan v baru © Sekolah Tinggi Teknik Surabaya
Nilai bobot adalah bilangan random Step 0 0. Inisialisasi semua nilai bobot dan bias WHILE NOT stoping condition, lakukan step 2 - 9 Untuk setiap data training, lakukan step 3 – 8 FEEDFORWARD: Isi nilai x Hitung z_inj dan zj Hitung y_ink dan yk PROPAGATION ERROR: Hitung δk dan Δwjk Hitung δ_inj dan Δvij PERBARUAN BOBOT dan BIAS: Menghitung w dan v baru Memeriksa stoping condition Nilai bobot adalah bilangan random antara 0 s/d 1 atau -1 s/d 1 © Sekolah Tinggi Teknik Surabaya
Step 1 Stoping condition: 0. Inisialisasi semua nilai bobot dan bias WHILE NOT stoping condition, lakukan step 2 - 8 Untuk setiap data training, lakukan step 3 – 8 FEEDFORWARD: Isi nilai x Hitung z_inj dan zj Hitung y_ink dan yk PROPAGATION ERROR: Hitung δk dan Δwjk Hitung δ_inj dan Δvij PERBARUAN BOBOT dan BIAS: Menghitung w dan v baru Memeriksa stoping condition Stoping condition: Dengan melakukan pembatasan jumlah iterasi (epoch) Dengan memberikan batasan error Bisa dengan mean square error (error rata-rata) © Sekolah Tinggi Teknik Surabaya
Step 4 Fungsi Aktivasi 0. Inisialisasi semua nilai bobot dan bias WHILE NOT stoping condition, lakukan step 2 - 8 Untuk setiap data training, lakukan step 3 – 8 FEEDFORWARD: Isi nilai x Hitung z_inj dan zj Hitung y_ink dan yk PROPAGATION ERROR: Hitung δk dan Δwjk Hitung δ_inj dan Δvij PERBARUAN BOBOT dan BIAS: Menghitung w dan v baru Memeriksa stoping condition Fungsi Aktivasi © Sekolah Tinggi Teknik Surabaya
Step 5 Fungsi Aktivasi yang sama dengan step 4 0. Inisialisasi semua nilai bobot dan bias WHILE NOT stoping condition, lakukan step 2 - 8 Untuk setiap data training, lakukan step 3 – 8 FEEDFORWARD: Isi nilai x Hitung z_inj dan zj Hitung y_ink dan yk PROPAGATION ERROR: Hitung δk dan Δwjk Hitung δ_inj dan Δvij PERBARUAN BOBOT dan BIAS: Menghitung w dan v baru Memeriksa stoping condition Fungsi Aktivasi yang sama dengan step 4 © Sekolah Tinggi Teknik Surabaya
Step 6 0. Inisialisasi semua nilai bobot dan bias WHILE NOT stoping condition, lakukan step 2 - 8 Untuk setiap data training, lakukan step 3 – 8 FEEDFORWARD: Isi nilai x Hitung z_inj dan zj Hitung y_ink dan yk PROPAGATION ERROR: Hitung δk dan Δwjk Hitung δ_inj dan Δvij PERBARUAN BOBOT dan BIAS: Menghitung w dan v baru Memeriksa stoping condition © Sekolah Tinggi Teknik Surabaya
Step 7 0. Inisialisasi semua nilai bobot dan bias WHILE NOT stoping condition, lakukan step 2 - 9 Untuk setiap data training, lakukan step 3 – 8 FEEDFORWARD: Isi nilai x Hitung z_inj dan zj Hitung y_ink dan yk PROPAGATION ERROR: Hitung δk dan Δwjk Hitung δ_inj dan Δvij PERBARUAN BOBOT dan BIAS: Menghitung w dan v baru Memeriksa stoping condition © Sekolah Tinggi Teknik Surabaya
Step 8 0. Inisialisasi semua nilai bobot dan bias WHILE NOT stoping condition, lakukan step 2 - 9 Untuk setiap data training, lakukan step 3 – 8 FEEDFORWARD: Isi nilai x Hitung z_inj dan zj Hitung y_ink dan yk PROPAGATION ERROR: Hitung δk dan Δwjk Hitung δ_inj dan Δvij PERBARUAN BOBOT dan BIAS: Menghitung w dan v baru Memeriksa stoping condition © Sekolah Tinggi Teknik Surabaya
Contoh Aplikasi XOR Input 1 Input 2 output 1 v01 = 1.718946 1 v01 = 1.718946 v11 = -1.263178 v21 = -1.083092 α = 0.01 E = 0.41 w01 = -0.541180 w11 = 0.543960 1 x1 x2 z1 Y1 v01 v11 v21 w01 w11 © Sekolah Tinggi Teknik Surabaya
Algoritma Sejenis Algoritma sejenis: Boltzmann Machine Hopfield Net Gaussian Machine Cauchy Machine etc. © Sekolah Tinggi Teknik Surabaya