Anda di halaman 1dari 2

Backpropagation

Backpropafation adalah algoritma pembelajaran tersupervisi dan terutama digunakan oleh Multi-layerperceptron untuk mengubah bobot yang terhubung dengan neuron layer tersembunyi jaringan.
Algoritma backpropagation menggunakan hitungan error output untuk mengubah nilai bobot dalam
arah mundur.
Untuk mendapatkan error jaringan ini, fasa forwardpropagation harus telah dilakukan sebelumnya. Saat
propagasi dalam arah maju, neuron diaktivasi dengan menggunakan fungsi aktivasi sigmoid.
Rumus aktivasi sigmoid adalah:
1
f ( x )=
1+e x
Algoritma bekerja sebagai berikut:
1. Lakukan fasa forwardpropagation untuk pola input dan hitung error output.
2. Ubah semua nilai bobot dari matriks bobot dengan menggunakan rumus: bobotlama + learning
rate * error output * output(neuroni) * output(neuroni+1) * (1 output(neuroni+1))
3. Kembali ke langkah 1
4. Algoritma berakhir, jika semua pola output cocok dengan pola tujuan.
Contoh: Andaikan anda mempunyai Multi-layer-perceptron sebagai berikut:

Pola yang akan dipelajari:


input

output

Mula-mula, nilai bobot diatur ke nilai acak: 0,62; 0,42; 0,55; -0,17 untuk matrik bobot 1 dan 0,35; 0,81
untuk matrik bobot 2.
Learning rate jaringan diatur ke 0,25.
Berikutnya, nilai pola input pertama (0 1) diatur ke neuron layer input (output dari layer input adalah
sama dengan inputnya).

Neuron di layer tersembunyi diaktivasi:


Input neuron tersembunyi 1: 0 * 0,62 + 1 * 0,55 = 0,55
Input neuron tersembunyi 2: 0 * 0,42 + 1 * (-0,17) = -0,17
Output neuron tersembunyi 1: 1 / (1 + exp(-0,55)) = 0,634135591
Ouput neuron tersembunyi 2: 1 / (1 + exp(+0,17)) = 0,457602059
Neuron di layer output diaktivasi:
Input neuron output: 0,634135591 * 0,35 + 0,457602059 * 0,81 = 0,592605124
Output neuron output: 1 / (1 + exp(-0,592605124)) = 0,643962658
Hitung nilai error dengan mengurangkan output dari target: 0 0,643962658 = -0,643962658
Setelah mendapatkan error output, lakukan backpropagation.
Dimulai dengan mengubah bobot pada matrik bobot 2:
Perubahan bobot 1: 0,25 * (-0,643962658) * 0,634135591 * 0,643962658 * (1-0,643962658) =
-0,023406638
Perubahan bobot 2: 0,25 * (-0,643962658) * 0,457602059 * 0,643962658 * (1-0,643962658) =
-0,016890593
Bobot 1: 0,35 + (-0,023406638) = 0,326593362
Bobot 2: 0,81 + (-0,016890593) = 0,793109407
Sekarang kita ubah matrik bobot 1:
Perubahan bobot 1: 0,25 * (-0,643962658) * 0 * 0,634135591 * (1-0,634135591) = 0
Perubahan bobot 2: 0,25 * (-0,643962658) * 0 * 0,457602059 * (1-0,457602059) = 0
Perubahan bobot 3: 0,25 * (-0,643962658) * 1 * 0,634135591 * (1-0,634135591) = -0,037351064
Perubahan bobot 4: 0,25 * (-0,643962658) * 1 * 0,457602059 * (1-0,457602059) = -0,039958271
Bobot 1: 0,62 + 0 = 0,62
Bobot 2: 0,42 + 0 = 0,42
Bobot 3: 0,55 + (-0,037351064) = 0,512648936
Bobot 4: -0,17+ (-0,039958271) = -0,209958271
Pola input pertama telah dipropagasi melalui jaringan. Prosedur yang sama digunakan untuk pola input
berikutnya, tetapi dengan nilai bobot yang sudah diubah.
Setelah propagasi forward dan backward pola kedua, satu langkah pembelajaran selesai dan error
jaringan dapat dihitung dengan menambahkan kuadrat error output dari tiap pola.
Dengan melakukan prosedur ini secara berulang, nilai error akan semakin lama semakin kecil.
Algoritma berakhir dengan sukses, jika error jaringan nol (sempurna) atau mendekati nol.

Anda mungkin juga menyukai