Contoh Perhitungan Algoritma Backpropagation - Structilmy
Contoh Perhitungan Algoritma Backpropagation - Structilmy
Contoh Perhitungan Algoritma Backpropagation - Structilmy
STRUCTILMY
(HTTPS://STRUCTILMY.COM/)
TUTORIAL, CATATAN, DOKUMENTASI
Beberapa waktu lalu saya dapat kesempatan untuk mengasisteni kegiatan kemkominfo di
UGM seputar AI. Salah satu topik yang dibicarakan adalah Backpropagation pada Jaringan
Saraf Tiruan (JST). Di postingan ini saya akan mencontohkan perhitungan Backpropagation
langkah per langkah, menggunakan arsitektur yang sederhana dan dilanjutkan implementasi
menggunakan Python.
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 1/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Jika masih dirasa banyak yang lupa, silakan refresh kembali materi tersebut.
OVERVIEW
Sebelum kita mulai, kita ingat kembali beberapa poin penting dalam JST
(https://structilmy.com/2019/09/sekilas-tentang-jaringan-saraf-tiruan-dan-deep-learning/)
pada ilustrasi di atas.
JST yang akan kita buat di atas terdiri dari 1 layer input dan 1 layer output. Layer input
biasanya digunakan untuk menerima input berupa tur suatu data. Sedangkan layer output
biasanya merepresentasikan prediksi kelas dari data tersebut.
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 2/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Contoh, sebuah data X memiliki 3 tur dan 2 kelas. Maka, layer input JST terdiri dari 3 neuron
dan layer output terdiri dari 2 neuron. Diketahui sebuah data termasuk pada kelas ke-“2”
dengan detail nilai tur input adalah sebagai berikut:
Maka dari data tersebut dapat diketahui representasi dalam JST-nya adalah sebagai berikut:
1. Fitur- tur pada X , dipetakan dengan variabel x sehingga diperoleh x1 =1.0, x2 =2.0,
x3=0.5
2. Label kelas, diubah bentuknya menjadi one-hot encoding. One-hot encoding adalah vektor
yang semua isinya bernilai 0, kecuali pada index kelas yang sesuai. Misalnya, untuk data
dengan dua kelas, maka vektor representasinya memiliki panjang 2, di mana tiap elemen
direpresentasikan dengan variabel t menunjukkan index label kelas. Variabel t1 bernilai
1 jika data berlabel kelas ke-1 dengan vektor one-hot encodingnya adalah [1, 0].
Sebaliknya, variabel t2 bernilai 1 ketika data berlabel kelas ke-2 dengan vektor one-hot
encodingnya adalah [0, 1]. Contoh data di atas diketahui termasuk pada kelas ke-2, maka
vektornya adalah [0, 1], dengan nilai tiap elemennya adalah t1 =0 dan t2 =1.
3. JST akan menghitung nilai prediksi y1 dan y2 berdasarkan input X . Lalu melalui proses
pembelajaran, JST berusaha menghasilkan nilai prediksi y yang sama dengan nilai target
t
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 3/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Ada dua bagian utama pada JST, yakni forward propagation dan backward propagation.
pada forward propagation, JST akan mencoba menghasilkan nilai y, sedangkan pada
backward propagation, JST akan memperbaiki dirinya (update bobot) sehingga pada forward
propagation berikutnya diharap bisa menghasilkan nilai y yang lebih baik atau lebih
mendekati label aslinya.
FORWARD PROPAGATION
Forward propagation adalah proses perhitungan secara “maju” dari input (disimbolkan x)
hingga diperoleh output model (disimbolkan y). Misal pada ilustrasi di bawah, adalah proses
forward propagation dari input x menuju y.
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 4/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
y1 = σ (z1 )
yj = σ wij xi + bj
(∑ )
i=1
Simbol bi menunjukkan nilai bias. Nilai bias ini mirip dengan nilai bobot hanya saja
tidak dikalikan dengan input. Tujuannya agar garis persamaan bisa lebih kompleks
(tidak selalu melewati titik origin). (https://stackover ow.com/questions/2480650/role-
of-bias-in-neural-networks)
Semua nilai bobot w dan bias b awalnya diberikan nilai random, dan diperbarui nilainya
dengan proses backprop untuk meningkatkan kualitas model. Jika diperhatikan kita
menamai simbol wij berarti bobot yang menghubungkan neuron input nomor i ke
neuron output nomor j.
N menunjukkan banyak neuron di layer sebelah kiri (layer input).
Simbol σ() (sigma) adalah simbol dari fungsi aktivasi. Artinya, setelah proses perkalian
input x dan bobot w lalu dilakukan penjumlahan semua, langkah selanjutnya adalah
mengenai hasil perhitungan tersebut dengan fungsi aktivasi. Ada banyak fungsi aktivasi
yang dapat dipilih salah satunya fungsi aktivasi sigmoid yang bentuknya seperti ini:
1
σ(x) =
−x
1 + e
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 5/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Misalkan kita memiliki sebuah input seperti tabel di atas X = [1, 2, 0.5] dengan nilai bobot
dan bias di awal adalah sebagai berikut (nilai awal bobot dan bias adalah nilai random, saya
susun seperti matrix agar mudah):
[b1 = 0, b2 = 0]
Pada contoh di atas simbol wij berarti bobot yang menghubungkan neuron input nomor i ke
neuron output nomor j. Misalnya w21 artinya bobot yang menghubungkan neuron input
nomor 2 dengan neuron output nomor 1 (bisa diperhatikan pada ilustrasi sebelumnya).
Langka pertama forward propagation adalah menghitung nilai z. Pada contoh ini dapat kita
hitung nilai z1 adalah:
= 0.95
y1 = σ(z1 )
= σ(0.95)
1
=
−0.95
1 + e
= 0.721
Dengan cara perhitungan yang sama dengan di atas dapat diperoleh juga nilai y2 adalah
0.645 . Sampai sini, mungkin sebelum lanjut coba berhenti sebentar dan dipahami lagi
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 6/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
ERROR
Dari perhitungan sebelumnya diperoleh nilai sebagai berikut:
Nilai tersebut adalah nilai prediksi, atau nilai yang dihasilkan oleh model JST kita. Seperti
disebutkan sebelumnya setiap data yang masuk memiliki label kelas atau nilai y yang
diharapkan, misalnya untuk data X di atas kita ingin model kita seharusnya bernilai berikut
(variabel t adalah nilai target label kelas yang sebenarnya):
[t1 = 0, t2 = 1]
Dari sana tampak perbedaan nilai prediksi kita (y) dengan nilai target (t). Kita bisa
menghitung seberapa melenceng prediksi kita menggunakan rumus untuk menghitung
error. Salah satunya adalah dengan rumus Mean Square Error (MSE):
n
1
2
error = (targeti – prediksii )
n ∑
i=1
CleanMyMac X
Disfruta de un Mac X veces más limpio, rápido y protegido.
Descárgalo y compruébalo.
rumus tersebut menghitung selisih nilai target dan prediksi, mengkuadratkannya, lalu
merata-ratanya (dijumlah lalu dibagi n). Nilai n di sana adalah banyak datanya, pada contoh
ini kita menggunakan n=2 karena ada 2 node output.
Sehingga untuk perhitungan kita di atas, dapat dihitung error E yang dihasilkan adalah
sebesar:
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 7/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
2
1 2
E = (targeti – prediksii )
2 ∑
i=1
1 2 2
= ((t1 – y1 ) + (t2 – y2 ) )
2
1
2 2
= ((0– 0.721) + (1– 0.645) )
2
= 0.322
Karena tujuan JST adalah untuk menghasikan nilai prediksi y yang semirip mungkin dengan t,
maka dapat disebut juga tujuan dari JST adalah meminimalkan nilai error E.
BACKPROPAGATION
Setelah mendapatkan nilai error, kita bisa mulai memperbaiki JST kita dengan
backpropagation. Sebenarnya istilah memperbaiki JST ini kurang tepat jika menyebutnya
Backpropagation, lebih tepatnya adalah Gradient Descent.
(https://stackover ow.com/a/37953898/2147347) Tapi ya di Indonesia lebih umum
menyebutnya Backpropagation kadang disingkat Backprop.
∂E
wnew = wold – α
∂w
∂E
bnew = bold – α
∂b
Simbol α pada rumus di atas adalah learning rate, sebuah konstanta (biasanya antara 0-1)
yang menentukan seberapa cepat proses pembelajaran model dilakukan. Di artikel ini kita
akan menggunakan nilai α = 0.5 . Sedangkan simbol ∂E
∂w
atau dibaca “turunan parsial E
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 8/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
terhadap w ” adalah proses mencari nilai turunan E terhadap variabel yang akan diperbarui,
dalam contoh ini w . Proses mencari turunan inilah yang lebih tepat disebut backpropagation.
Karena ada banyak nilai w , kita akan spesi kkan untuk mengupdate nilai w11 terlebih
dulu. Setelahnya, kita akan coba hitung update nilai untuk b1 .
KONSEP CHAINING
Untuk menghitung ∂E
∂w
, pertama-tama kita coba berjalan mundur dulu. Urutan proses
backward chaining digambarkan dengan garis merah pada gambar di bawah ini. Dari mana
nilai E didapatkan dan apa hubungannya dengan w11 .
1 2 2
E = ((t1 – y1 ) + (t2 – y2 ) )
2
dari rumus di atas tidak ada variabel w11 tetapi kita bisa coba “jalan mundur” lagi. Kita ingat-
ingat lagi dari mana nilai setiap variabel y berasal.
y1 = σ (z1 )
y2 = σ (z2 )
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 9/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Variabel y diperoleh dari menerapkan sebuah fungsi aktivasi terhadap variabel z. Sedangkan,
variabel z sendiri dihitung dengan:
dari sini terlihat variabel w11 ada di perhitungan z1 yang secara tidak langsung berpengaruh
ke nilai E. Hal ini yang disebut dengan chaining atau rantaian.
DASAR TURUNAN
Setelah kita memahami hubungan E dan w11 langkah selanjutnya adalah kita pahami
bagaimana dasar menghitung turunannya. Disini kita menggunakan turunan parsial yang
bedanya dengan turunan biasa adalah fungsi bisa mengandung lebih dari satu variabel. Selain
itu, kita tidak menggunakan simbol d tetapi turunan parsial menggunakan simbol ∂. Dari
sekian banyak materi turunan jaman SMA kita cukup mengingat beberapa aturan saja (aturan
no. 5 tidak diajarkan di SMA):
1. jika f (x) maka , sudah cukup jelas, ini adalah rumus dasar turunan.
n ∂f (x) n−1
= x = nx
∂x
isinya adalah jumlahan dari fungsi-fungsi lain, kita bisa turunkan masing-masing lalu
dijumlahkan.
3. jika f (x, y) maka , sama dengan poin no.2, hanya saja
∂f (x) ∂u(x)
= u(x) + v(y) = + 0
∂x ∂x
jadi keliatan ketika ada bagian dari fungsi f yang ternyata tidak mengandung variabel
yang ingin diturunkan (yakni x) maka fungsi tersebut bisa dijadikan 0.
4. jika f (x) maka , jika ada fungsi yang di dalamnya ada
∂f (x) ∂f (x) ∂g(x)
= f (g(x)) = ⋅
∂x ∂g(x) ∂x
Contoh:
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 10/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
4. f (x) = z
2
dimana z dihitung dari z = 2x
3
maka turunannya:
∂f (x) ∂f (x) ∂z
= ⋅
∂x ∂z ∂x
∂f (x) ∂z
= 2z ⋅
∂x ∂x
∂f (x) 2 3 2 5
= 2z ⋅ 6x = 2(2x ) ⋅ 6x = 24x
∂x
MENGHITUNG TURUNAN
UPDATE NILAI w11
Nah, mari kita menghitung nilai ∂E
dengan beberapa langkah menggunakan aturan
∂w
perhitungan yang disebutkan sebelumnya. Menggunakan aturan no. 4 di atas, kita bisa
mencari nilai ∂E dengan 2 langkah berikut:
∂w11
∂E ∂E ∂y1
= ( ) ⋅ ( )
∂w11 ∂y1 ∂w11
Langkah 1
Kita selesaikan bagian pertamanya, menggunakan aturan no. 3 dan no. 4 di atas, maka:
1
2 2
E = ((t1 – y1 ) + (t2 – y2 ) )
2
∂E 1 2−1
= 2 ∗ (t1 – y1 ) − 1 + 0
∂y1 2
=– (t1 – y1 )
Langkah 2
Untuk bagian keduanya kita lihat kembali rumus asli untuk menghitung y1 , yakni dengan
menggunakan fungsi sigma terhadap z1 :
y1 = σ(z1 )
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 11/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Variabel w11 tidak langsung ditemukan dalam perhitungan variabel y1 , melainkan perlu
∂y
mundur lagi ke variabel z1 . Dengan aturan no. 4, maka pada tahap ini kita bisa memecah ∂w11
1
∂y
Kita selesaikan bagian pertama ∂z 1
1
dengan aturan no. 5:
y1 = σ(z1 )
∂y1
= y1 (1– y1 )
∂z1
Kemudian untuk bagian kedua kita selesaikan menggunakan aturan no. 2 dan no. 3,
∂z 1
∂w11
menjadi:
∂z1
= x1 + 0 + 0 + 0
∂w11
= x1
CleanMyMac X
Disfruta de un Mac X veces más limpio, rápido y protegido.
Descárgalo y compruébalo.
Gabungkan semua
Secara ringkas dari perhitungan-perhitungan di atas, maka nilai dari ∂E
∂w11
adalah:
∂E ∂E ∂y1 ∂z1
= ( ) ⋅ ( ( ) ⋅ ( ) )
∂w11 ∂y1 ∂z1 ∂w11
=– (t1 – y1 ) ⋅ y1 (1– y1 ) ⋅ x1
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 12/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
∂E
=– (t1 – y1 ) ∗ y1 (1– y1 ) ∗ x1
∂w11
= 0.1587
Sehingga untuk memperbarui bobot w11 nilai yang baru dengan nilai α = 0.5 (contoh)
adalah:
∂E
w11new = w11old – α
∂w11
= 0.2– (0.5)(0.1587)
= 0.1206
UPDATE NILAI b1
Chaining untuk mengupdate nilai bias dilakukan serupa dengan cara mengupdate nilai bobot.
Mulai dari paling belakang, telusuri tiap variabel dan pecah menurut perhitungan rumusnya,
sampai ditemukan variabel bias yang ingin diupdate. Untuk mengupdate bias b1 , dapat
dihitung dengan :
∂E ∂E ∂y1
= ( ) ⋅ ( )
∂b1 ∂y1 ∂b1
∂y 1
, dengan kurung berwarna biru, telah kita hitung
sebelumnya pada contoh update bobot w11 . Bagian ini menghasilkan ∂E
∂y
=– (t1 – y1 ) .
1
Selanjutnya kita fokus ke bagian kedua dengan kurung berwarna hijau. Variabel b1 dapat
∂y 1
∂b1
diperoleh dengan merunut jalur variabel y1 kemudian ke variabel z1 (perhatikan ilustrasi jalur
backward chaning dengan garis merah putus-putus pada gambar sebelumnya).
y1 = σ(z1 )
Perhatikan bahwa jalur ini juga sama dengan yang dilalui untuk mencari update bobot w11 ,
yakni dengan memecah menjadi dua bagian berikut:
Bagian pertama , tidak perlu dihitung lagi karena sudah pernah kita hitung saat proses
∂y 1
∂z 1
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 13/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
∂z1
= 0 + 0 + 0 + 1
∂b1
= 1
Gabungkan semua
Setelah semua variabel pada jalur chaining dapat dipecah dan berakhir pada bias b1 , maka
dapat kita gabungkan menjadi:
∂E ∂E ∂y1 ∂z1
= ( ) ⋅ ( ( ) ⋅ ( ) )
∂b1 ∂y1 ∂z1 ∂b1
=– (t1 – y1 ) ⋅ y1 (1– y1 ) ⋅ 1
∂E
=– (t1 – y1 ) ∗ y1 (1– y1 ) ∗ 1
∂b1
= 0.1587
Sehingga untuk memperbarui bias b1 yang baru dengan nilai α = 0.5 (contoh) adalah:
∂E
b1new = b1old – α
∂b1
= 0– (0.5)(0.1587)
= −0.0793
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 14/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Tetapi jangan takut, karena sudah dapat rumus turunannya, kita bisa langsung lihat pola
rumusnya. Misalnya untuk w21 kita bisa cukup mengubah bagian nilai ketika
∂z 1
∂w21
∂E ∂E ∂y1 ∂z1
= ⋅ ⋅
∂w21 ∂y1 ∂z1 ∂w21
=– (t1 – y1 ) ∗ y1 (1– y1 ) ∗ x2
= 0.317
∂E
w21new = w21old – α
∂w21
= 0.3– (0.5)(0.317)
= 0.141
Namun, agak berbeda jika kita ingin memperbarui nilai w12 hal ini karena jika diperhatikan
w12 tidak ikut membangun nilai y1 tetapi berada di perhitungan y2 . Berikut ilustrasinya:
∂E ∂E ∂y2 ∂z2
= ⋅ ⋅
∂w12 ∂y2 ∂z2 ∂w12
= −(t2 – y2 ) ∗ y2 (1– y2 ) ∗ x1
= −0.0107
∂E
w12new = w12old – α
∂w12
= 0.3– (0.5)(−0.0799)
= 0.3399
EVALUASI
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 15/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Setelah melakukan backpropagation untuk semua bobot dan bias, maka akan diperoleh hasil
bobot sebagai berikut:
Untuk mengevaluasi kita bisa mengecek kembali hasilnya dengan forward propagation (tanpa
perlu backpropagation). Jika kita lakukan forward propagation, maka akan diperoleh nilai y
sebagai berikut:
Jika kita hitung errornya maka akan terjadi perubahan nilai dari sebelum dilakukan
backpropagation. Nilai error telah menjadi lebih kecil dari sebelumnya (error sebelumnya
0.3227):
2
1
2
E = (targeti – prediksii )
2 ∑
i=1
1 2 2
= ((t1 – y1 ) + (t2 – y2 ) )
2
1
2 2
= ((0– 0.6115) + (1– 0.7005) )
2
= 0.2318
Perlu dicatat, bahwa proses di atas adalah proses iterasi 1 kali backpropagation dan
untuk 1 data. Jika ada banyak data, maka proses di atas bisa diulang lagi dengan data yang
berbeda dan mengupdate bobotnya lagi. Lalu diulang untuk semua data (beberapa epoch)
hingga mendapatkan hasil yang optimal dan juga dilakukan untuk banyak data.
SHARE THIS:
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 16/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Twitter (https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/?share=twitter&nb=1)
Facebook (https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/?share=facebook&nb=1)
MATHEMATICS (HTTPS://STRUCTILMY.COM/TAG/MATHEMATICS/)
(https://structilmy.com/2019/07/tutorial-
dasar-pytorch-tensor-dan-autograd/)
Rian Adam
39 COMMENTS
Roby
December 16, 2019 at 20:32 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-113)
Untuk one hot encoding itu memang wajib atau gmna mas? Kalo tanpa one hot encoding bisa
enggak?
REPLY
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 17/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Rian Adam
December 19, 2019 at 16:11 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-115)
Tidak wajib, itu tergantung dari arsitektur JST yang digunakan. Untuk JST pada kasus
klasi kasi biasanya pakai one hot encoding.
REPLY
Roby
January 11, 2020 at 16:54 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-117)
REPLY
Roby
January 11, 2020 at 16:56 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-118)
Contoh simplenya aja mas yg selain di github, mohon bantuannya mas, terimakasih
sebelumnya
REPLY
shyfa andiantono
March 23, 2020 at 20:11 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-131)
maaf mau tanya, untuk nilai bias [b1=−0.19,b2=1.01,b3=1.95] ini di dapat dari hasil mana?
atau random saja ya mas?
REPLY
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 18/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Rian Adam
March 24, 2020 at 18:56 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-132)
Itu adalah bias hasil backpropagation, dihitung menggunakan cara yang mirip dengan
peng-update-an bobot. Mungkin untuk detailknya saya akan coba tambahkan
penjelasannya di artikel
REPLY
Sarang Dewa TV
May 9, 2020 at 12:02 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-145)
REPLY
REPLY
Prastyo
May 23, 2020 at 08:49 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-152)
pada proses Forward Propagation, didalam perhitungan menentukan nilai y, simbol sigma kan
berarti fungsi aktivasi sigmoid, dari hasil “sigma(0.95)” bisa menjadi 0.72 itu bagaimana
proses hitungnya ? mohon bantuannya
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 19/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
REPLY
itu hasil rumus sigmoid, rumusnya juga sudah tertulis di post. Bisa juga cek di sini:
https://www.wolframalpha.com/input/?i=1%2F%281%2Be%5E-0.95%29
(https://www.wolframalpha.com/input/?i=1%2F%281%2Be%5E-0.95%29)
REPLY
Rumus untum pengupdate an bobot nya jadi seperti apa yah pak ?
Terimakasih pak
REPLY
Fajar
June 11, 2020 at 00:53 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-164)
Mau bertanya pak, untuk menentukan bobot awal dan bias itu gimana pak saya masih bingung
dengan penjelasan di atas, misal input layer 12, hidden layer 10, output layer 1
REPLY
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 20/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Pada contoh di atas, penentuan bobot dan bias awal diberi secara random. Tetapi di
luar sana ada banyak penelitian yang mengusulkan metode untuk menentukan nilai
awal bobot dan bias.
REPLY
Mas Rian, bagaimana perhitungan sederhana manual dengan long short-term memory?
REPLY
Insyaallah contoh perhitungan backpropagation pada LSTM akan segera kami bahas di
artikel tersendiri. Untuk sementara, kami sarankan membaca artikel oleh Aidan Gomez
berikut: https://blog.aidangomez.ca/2016/04/17/Backpropogating-an-LSTM-A-
Numerical-Example/ (https://blog.aidangomez.ca/2016/04/17/Backpropogating-an-
LSTM-A-Numerical-Example/)
REPLY
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 21/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
smarttechno88 (http://gravatar.com/smarttechno88)
July 8, 2020 at 11:49 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-170)
REPLY
Terima kasih atas pertanyaannya, mohon maaf ada kesalahan perhitungan untuk nilai
bias baru dan sudah kami perbaiki di artikel.
Cara perhitungan update bias sama persis dengan langkah-langkah untuk mengupdate
bobot w (contoh di artikel, w11). Misalnya, rumus update bias b1 new = b1 old – (alfa *
delta E/delta b1). Perlu diperhatikan, bahwa saat menghitung nilai turunan delta z/delta
b1, tidak ada variabel pengali lain terhadap variabel bias b1, maka nilai turunannya
adalah 1. Ini berbeda dengan update bobot w11. Pada saat mencari turunan delta
z/delta w11, ada variabel x1 sehingga nilai turunannya adalah x1.
REPLY
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 22/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
REPLY
REPLY
Kurniawan Corp
August 12, 2020 at 20:17 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-182)
Tolong kak repost perhitungan manual yg sebelum diupdate ini pada artikel diatas yg
memberikan contoh output 3 node
REPLY
nurhasanah
August 17, 2020 at 21:18 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-185)
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 23/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
REPLY
Penentuan nilai awal bobot dan bias itu aslinya random saja, tetapi banyak penelitian
yang mengusulkan metode yang terbaik dalam merandom untuk nilai awalnya.
Nantinya ini bisa menentukan performa model ketika pelatihan. Misal random antara
-1…1 biasanya lebih cepat untuk dilatih dibanding model dengan bobot awal antara
-1000…1000. Ada artikel yang saya rasa cukup lengkap membahasnya:
https://towardsdatascience.com/weight-initialization-in-neural-networks-a-journey-
from-the-basics-to-kaiming-954fb9b47c79 (https://towardsdatascience.com/weight-
initialization-in-neural-networks-a-journey-from-the-basics-to-kaiming-
954fb9b47c79) Kalau saya pribadi seringnya menggunakan metodenya Kaiming untuk
merandom nilai awalnya.
REPLY
Kurniawan Qof
September 9, 2020 at 08:31 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-190)
Tolong repost artikel yg sebelum di up date mas? Yg ada 3 node output, terimakasih
REPLY
Sepertinya kami tidak akan merepost versi lama, karena di versi lama terdapat
beberapa kesalahan perhitungan. Untuk versi ini apakah ada kesulitan? karena di versi
lama perhitungan 3 node output tidak berbeda dengan versi ini
REPLY
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 24/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Kurniawan Qof
September 9, 2020 at 12:50 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-192)
Saya mau tanya, utk menghitung Mean Square Error apabila apabila outpunya 2
node kan seperti ini : 1/2 (y1-t1)^2 + (y2-t2)^2
Tapi bila outputnya ada 3 node apkah akan mjd seperti ini? 1/3 (y1-t1)^2 + (y2-
t2)^2 + (y3-t3)^2
Atau bgmna?
REPLY
iya benar, 1/2 di awal itu tujuannya untuk merata-rata (mean). Ketika
nodenya 3 maka di kali 1/3. Jadi 1/3((y1-t1)^2 + (y2-t2)^2 + (y3-t3)^2)
REPLY
Kurniawan Qof
September 9, 2020 at 18:51
(https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-194)
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 25/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Din
September 23, 2020 at 15:24 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-205)
Maaf mas saya mau tanya, jika diberikan input baru setelah proses backpro dijalankan. Apakah
weight yang digunakan itu langsung dari bobot yang telah diupdate?
REPLY
Kurniawan Qof
September 23, 2020 at 16:57 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-206)
Setahu saya sih begitu, tp backprop dilakukan berulang2 hingga max epoch dan/atau
min error yg ditentukan telah tercapai, weight akan terupdate setiap 1 epoch, 1 epoch =
1xforwardprop dan 1xbackprop.
Pada project yg saya buat algoritma akan mengulang backprop hingga min error
tercapai misal 0.0000001, lalu baru saya ijinkan utk membaca input baru. Semoga sdkit
menjawab
REPLY
Kalau di artikel ini, ya benar, untuk satu (1) data -> forward -> hitung (1) error ->
backprop dan update bobot (disebut SGD / Stochastic Gradient Descent).
Tapi implementasinya, ada metode lain misal Batch dan Minibatch Gradien Descent.
Batch: semua (N) data diproses forward -> hitung rata-rata (N) error -> backprop dan
update bobot
Minibatch: beberapa (n < N) data diproses forward -> hitung rata-rata (n) error ->
backprop dan update bobot
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 26/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
REPLY
rachmatika azizah
October 14, 2020 at 22:31 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-214)
hallo kak saya mau bertanya tentang estimasi menggunakan metode ini
saya punya data X=ukuran rumah dan Y=harga rumah ada 10 data
nah kemudian pertanyaannya kita harus estimasi harga rumah dengan ukuran 2000, saya
belum paham untuk menentukan bobot dan hiden layer nya, kemudian cara mendapat hasil
estimasinya gimana serta menghitung manual iterasi yg dibutuhkan untuk mendapat hasil yg
paling baik, terimakasih
REPLY
Y (harga rumah), asumsi saya nilainya seperti harga pada umumnya, bervariasi kan ya?
Kalau ya, berarti ini problem prediksi numerik. Berbeda dengan contoh di artikel,
problemnya klasi kasi atau prediksi kategorik.
Prediksi numerik dengan JST, jumlah neuron output diubah menjadi 1 saja. Proses
forward sama seperti pada artikel ini, namun tanpa fungsi aktivasi sigmoid. Error
dihitung antara Ypred (hasil forward pada neuron output) dengan Y (harga asli).
Penentuan bobot random saja. Jumlah hidden layer bisa dicoba-coba (bagian dari
eksperimen). Misal coba 1 hidden layer dulu, lakukan forward dan bakcprop ke semua
data, ulangi beberapa epoch. Kemudian coba ulangi dari awal dengan 2 hidden layer,
dst.
Hasil yang baik, adalah ketika error sudah minimal. Jika belum, bisa lanjutkan
pelatihan dengan menambah jumlah epoch.
Estimasi harga, diketahui ukuran 2000. Diperoleh dengan menghitung forward sampai
neuron output, menggunakan bobot terakhir yang diperoleh dari hasil pelatihan.
REPLY
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 27/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Citra
October 20, 2020 at 14:02 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-216)
Hallo kak saya mau bertanya. Saya sedang melakukan penelitian klasi kasi penyakit dengan
menggunakan backpropagation. Penyakit yang saya klasi kasikan adalah penyakit dengan
gejala demam ke dalam tiga kelas yaitu DBD, Tifoid dan Malaria. Bagaimana cara menentukan
skor gejala dari penyakit tersebut? Dan bagaimana juga mende nisikan outputnya? Mohon
bantuannya kak.
REPLY
karena ini kasus klasi kasi dengan 3 kelas, maka bisa menggunakan 3 neuron pada
output layer. Lalu cara termudahnya bisa dengan memilih neuron dengan nilai output
terbesar di antara 3 neuron tersebut sebagai kelas yang dipilih
REPLY
Citra
October 21, 2020 at 14:45 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-221)
REPLY
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 28/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
Untuk penentuan nilai output 1,-1, atau 0 seperti itu bebas, dibolak-balik
tidak masalah karena itu hanya penamaan. Yang penting konsisten.
REPLY
Pelajar
October 21, 2020 at 12:44 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-220)
Wah penjelasan yg sangat bagus dan mudah dimengerti. Request ANFIS pak.
REPLY
Ardan
February 27, 2021 at 19:52 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-266)
Mohon maaf Pak apakah perhitungan ERROR pada step terakhir diatas sudah benar soalnya
disitu dikali dengan 1/3 padahal error’ sebelumnya dikali dengan 1/2
REPLY
Wah iya nice catch! terima kasih sudah diinfokan, seharusnya memang 1/2 hasil
akhirnya sudah benar. Sudah kami update
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 29/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
REPLY
LEAVE A REPLY
Enter your comment here...
Email Address
SUBSCRIBE
FEATURED POSTS
(https://structilmy.com/2020/12/istilah-penting-di-neural-network-dan-
deep-learning-bagian-2/) Istilah penting di Neural Network dan Deep
Learning (bagian 2) (https://structilmy.com/2020/12/istilah-penting-di-
neural-network-dan-deep-learning-bagian-2/)
DECEMBER 26, 2020
(https://structilmy.com/2019/08/review-course-online-berbayar-
tentang-ai-ml-deep-learning/) Review Course Online Premium AI, ML,
dan Deep Learning (https://structilmy.com/2019/08/review-course-
online-berbayar-tentang-ai-ml-deep-learning/)
AUGUST 8, 2019
(https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/) Contoh
Perhitungan Algoritma Backpropagation (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/)
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 30/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
(https://structilmy.com/2020/02/implementasi-jaringan-saraf-tiruan-menggunakan-pytorch/)
Implementasi Jaringan Saraf Tiruan menggunakan PyTorch
(https://structilmy.com/2020/02/implementasi-jaringan-saraf-tiruan-
menggunakan-pytorch/)
FEBRUARY 4, 2020
(https://structilmy.com/2020/12/istilah-istilah-di-neural-network-
ataupun-deep-learning-bagian-1/) Istilah-Istilah di Neural Network
ataupun Deep Learning (bagian 1)
(https://structilmy.com/2020/12/istilah-istilah-di-neural-network-
ataupun-deep-learning-bagian-1/)
DECEMBER 14, 2020
ARCHIVES
February 2021 (https://structilmy.com/2021/02/)
January 2021 (https://structilmy.com/2021/01/)
December 2020 (https://structilmy.com/2020/12/)
October 2020 (https://structilmy.com/2020/10/)
September 2020 (https://structilmy.com/2020/09/)
August 2020 (https://structilmy.com/2020/08/)
July 2020 (https://structilmy.com/2020/07/)
June 2020 (https://structilmy.com/2020/06/)
March 2020 (https://structilmy.com/2020/03/)
February 2020 (https://structilmy.com/2020/02/)
October 2019 (https://structilmy.com/2019/10/)
September 2019 (https://structilmy.com/2019/09/)
August 2019 (https://structilmy.com/2019/08/)
July 2019 (https://structilmy.com/2019/07/)
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 31/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy
https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 32/32