Contoh Perhitungan Algoritma Backpropagation - Structilmy

Unduh sebagai pdf atau txt
Unduh sebagai pdf atau txt
Anda di halaman 1dari 32

3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy

STRUCTILMY
(HTTPS://STRUCTILMY.COM/) 
TUTORIAL, CATATAN, DOKUMENTASI

MACHINE LEARNING (HTTPS://STRUCTILMY.COM/CATEGORY/MACHINE-LEARNING/)

CONTOH PERHITUNGAN ALGORITMA


BACKPROPAGATION
 JULY 31, 2019  BY RIAN ADAM (HTTPS://STRUCTILMY.COM/AUTHOR/RIANADAM/)  15 MIN READ
 39 COMMENTS (HTTPS://STRUCTILMY.COM/2019/07/CONTOH-PERHITUNGAN-ALGORITMA-BACKPROPAGATION/#COMMENTS)

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.

ARTIKEL INI DIUPDATE PADA 8 AGUSTUS 2020

https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 1/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy

Sebelum memulai, sebaiknya kita mengerti terlebih dahulu dasar-dasar untuk:

Menghitung turunan satu variabel suatu persamaan


(https://kalkulus.mipa.ugm.ac.id/tutorial/penghitungan-derivatif-fungsi-implisit-
fungsi-satu-peubah/)
Memahami cara perkalian matriks (https://id.wikipedia.org/wiki/Perkalian_matriks)

Jika masih dirasa banyak yang lupa, silakan refresh kembali materi tersebut.

OVERVIEW

model / arsitektur JST sederhana

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

Kami akan mencoba Iklan


Iklanuntuk
oleh
tidak
ditutup olehmenampilkan iklan itu lagi
Stop lihat iklan ini Mengapa iklan ini?
Hello to Glow
We empower you to go
foundation-free. Get
tips for healthy radiant
skin.

DR's Secret Open

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.

proses forward dan backward pada JST

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.

Untuk perhitungannya, nilai y1 diperoleh dengan menghitung nilai z1 terlebih dahulu


(perhitungan linier).

z1 = w11 x1 + w21 x2 + w31 x3 + b1

https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 4/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy

Kami akan mencoba Iklan


Iklanuntuk
oleh
tidak
ditutup olehmenampilkan iklan itu lagi
Stop lihat iklan ini Mengapa iklan ini?
Hello to Glow
We empower you to go
foundation-free. Get
tips for healthy radiant
skin.

DR's Secret Open

Setelah diperoleh z1 , output prediksi y1 diperoleh dengan menerapkan fungsi aktivasi


terhadap z1 .

y1 = σ (z1 )

Perhitungan untuk semua y secara umum bisa menggunakan rumus:

yj = σ wij xi + bj
(∑ )
i=1

Rumus di atas, sangat penting untuk dipahami, untuk penjelasannya simbol-simbolnya:

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

CONTOH FORWARD PROPAGATION

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):

⎡w = 0.2 w12 = 0.3 ⎤


11
⎢ ⎥
w21 = 0.3 w22 = 0.1
⎢ ⎥
⎣ w31 = 0.3 w32 = 0.2 ⎦

[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:

Kami akan mencoba Iklan


Iklanuntuk
oleh
tidak
ditutup olehmenampilkan iklan itu lagi
Stop lihat iklan ini Mengapa iklan ini?
Hello to Glow
We empower you to go
foundation-free. Get
tips for healthy radiant
skin.

DR's Secret Open

z1 = w11 x1 + w21 x2 + w31 x3 + b1

= 0.2 ∗ 1 + 0.3 ∗ 2 + 0.3 ∗ 0.5 + 0

= 0.95

Lalu setelah itu kita hitung nilai y1 :

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

prosesnya bagaimana bisa mendapatkan semua nilai y.

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:

[y1 = 0.721, y2 = 0.645]

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

Kami akan mencoba Iklan


Iklanuntuk
oleh
tidak
ditutup olehmenampilkan iklan itu lagi
Stop lihat iklan ini Mengapa iklan ini?

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.

Rumus utama untuk memperbaiki suatu bobot w berdasarkan error E adalah:

Kami akan mencoba Iklan


Iklanuntuk
oleh
tidak
ditutup olehmenampilkan iklan itu lagi
Stop lihat iklan ini Mengapa iklan ini?
Hello to Glow
We empower you to go
foundation-free. Get
tips for healthy radiant
skin.

DR's Secret Open

∂E
wnew = wold – α
∂w

Rumus ini juga berlaku untuk memperbaiki nilai bias:

∂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 .

Nilai E diperoleh dari rumus Mean Square Error:

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

Kami akan mencoba Iklan


Iklanuntuk
oleh
tidak
ditutup olehmenampilkan iklan itu lagi
Stop lihat iklan ini Mengapa iklan ini?
Hello to Glow
We empower you to go
foundation-free. Get
tips for healthy radiant
skin.

DR's Secret Open

Variabel y diperoleh dari menerapkan sebuah fungsi aktivasi terhadap variabel z. Sedangkan,
variabel z sendiri dihitung dengan:

z1 = w11 x1 + w21 x2 + w31 x3 + b1

z2 = w12 x1 + w22 x2 + w32 x3 + b2

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

2. jika f (x) maka , artinya jika ada sebuah fungsi f yang


∂f (x) ∂u(x) ∂v(x)
= u(x) + v(x) = +
∂x ∂x ∂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

fungsi lain, bisa dilakukan turunan untuk masing-masingnya lalu dikalikan


5. jika f (x) dengan σ(x) adalah fungsi sigmoid, maka .
∂f (x)
= σ(x) = f (x)(1 − f (x))
∂x

Contoh:

1. f (x) maka turunan


3 ∂f (x) 2
= 2x = 6x
∂x

https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 10/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy

2. f (x) maka turunan


3 2 ∂f (x) 2
= 2x + x = 6x + 2x
∂x

3. f (x, y) maka turunan


3 2 ∂f (x,y) 2
= 2x + y = 6x + 0
∂x

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 )

Kami akan mencoba Iklan


Iklanuntuk
oleh
tidak
ditutup olehmenampilkan iklan itu lagi
Stop lihat iklan ini Mengapa iklan ini?
Hello to Glow
We empower you to go
foundation-free. Get
tips for healthy radiant
skin.

DR's Secret Open

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

z1 = w11 x1 + w21 x2 + w31 x3 + b1

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

menjadi 2 bagian lagi:

∂y1 ∂y1 ∂z1


= ( ) ⋅ ( )
∂w11 ∂z1 ∂w11

∂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 = w11 x1 + w21 x2 + w31 x3 + b1

∂z1
= x1 + 0 + 0 + 0
∂w11

= x1

Kami akan mencoba Iklan


Iklanuntuk
oleh
tidak
ditutup olehmenampilkan iklan itu lagi
Stop lihat iklan ini Mengapa iklan ini?

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

Jika diinputkan dengan angka maka:

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– 0.721) ∗ 0.721(1– 0.721) ∗ 1

= 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

Perhatikan bahwa bagian pertama ∂E

∂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 )

z1 = w11 x1 + w21 x2 + w31 x3 + b1

Perhatikan bahwa jalur ini juga sama dengan yang dilalui untuk mencari update bobot w11 ,
yakni dengan memecah menjadi dua bagian berikut:

∂y1 ∂y1 ∂z1


= ( ) ⋅ ( )
∂b1 ∂z1 ∂b1

Bagian pertama , tidak perlu dihitung lagi karena sudah pernah kita hitung saat proses
∂y 1

∂z 1

update w11 , yakni . Kemudian bagian kedua adalah:


∂y 1 ∂z 1
= y1 (1– y1 )
∂z 1 ∂b1

https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 13/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy

z1 = w11 x1 + w21 x2 + w31 x3 + b1

∂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

Jika diinputkan dengan angka:

∂E
=– (t1 – y1 ) ∗ y1 (1– y1 ) ∗ 1
∂b1

=– (0– 0.721) ∗ 0.721(1– 0.721) ∗ 1

= 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

MENGUPDATE SEMUA BOBOT


INGAT! perhitungan di atas belum selesai memperbarui semua bobot dan bias. Saat
backpropagation, proses di atas kita lakukan ke semua bobot w dan bias b.

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

menghitung turunan (karena w21 masih sama-sama bagian dari y1 ).

∂E ∂E ∂y1 ∂z1
= ⋅ ⋅
∂w21 ∂y1 ∂z1 ∂w21

=– (t1 – y1 ) ∗ y1 (1– y1 ) ∗ x2

=– (0– 0.721) ∗ 0.712(1– 0.721) ∗ 2

= 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:

Maka untuk menghitung turunannya menjadi sedikit beda:

∂E ∂E ∂y2 ∂z2
= ⋅ ⋅
∂w12 ∂y2 ∂z2 ∂w12

= −(t2 – y2 ) ∗ y2 (1– y2 ) ∗ x1

= −(0– 0.645) ∗ 0.645(1– 0.645) ∗ 1

= −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:

⎡w = 0.1206 w12 = 0.3399 ⎤


11
⎢ ⎥
w21 = 0.1412 w22 = 0.1799
⎢ ⎥
⎣ w31 = 0.2603 w32 = 0.2199 ⎦

[b1 = −0.0793, b2 = 0.0399]

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:

[y1 = 0.6115, y2 = 0.7005]

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 

Hal tersebut menandakan backpropagation kita telah berhasil

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.

Proses implementasi akan dibahas di post selanjutnya insyaAllah


(https://structilmy.com/2020/08/step-by-step-backpropagation-menggunakan-python/).
Sekian, jika ada yang ditanyakan seputar rumus atau perhitungannya, silakan bertanya di
kolom komentar Terima kasih

Sumber gambar: ickr


artikel ini terinspirasi dari artikel Matt Mazur (https://mattmazur.com/2015/03/17/a-step-by-step-
backpropagation-example/)

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/)

 NEURAL NETWORK (HTTPS://STRUCTILMY.COM/TAG/NEURAL-NETWORK/)

Tutorial Dasar PyTorch :


Tensor dan Autograd

(https://structilmy.com/2019/07/tutorial-
dasar-pytorch-tensor-dan-autograd/)

Review Course Online Premium AI, ML,


dan Deep Learning
(https://structilmy.com/2019/08/review-
course-online-berbayar-tentang-ai-ml-
deep-learning/)

ABOUT THE AUTHOR

Rian Adam

Lecturer at Universitas Islam Indonesia; Machine Learning Enthusiast

 VIEW ALL POSTS (HTTPS://STRUCTILMY.COM/AUTHOR/RIANADAM/)  (HTTPS://STRUCTILMY.COM)

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)

Ada contoh implementasi program dalam bahasa PHP gk mas?

 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)

Maaf mau tanya, penerapan adam pada gradient descent bgmn ?

 REPLY

Rian Adam (https://structilmy.com)


May 14, 2020 at 17:06 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-148)

Adam merupakan pengembangan dari gradient descent standard, khususnya pada


pengaturan learning rate yang dapat berubah (adaptive). Mohon maaf untuk saat ini
kami belum bisa menjelaskan Adam secara detail, insyaAllah jika ada kesempatan akan
kami bahas lebih detail di artikel. Untuk referensi lebih lanjut, kami sarankan ke artikel
oleh Sebastien Ruder yang membandingkan semua pengembangan algoritma gradient
descent: https://arxiv.org/abs/1609.04747 (https://arxiv.org/abs/1609.04747)

 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

Rian Adam (https://structilmy.com)


May 26, 2020 at 20:30 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-155)

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

Arwan Wira Yudha


May 30, 2020 at 23:10 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-156)

Sangat bermanfaat sekali pak

Mau bertanya pak , jika parameter pembelajaran di tambahkan koefesien momentum

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

Rian Adam (https://structilmy.com)


June 11, 2020 at 23:11 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-165)

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

Raka Gemi Ibrahim


June 28, 2020 at 21:54 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-168)

Mas Rian, bagaimana perhitungan sederhana manual dengan long short-term memory?

 REPLY

Rochana Prih Hastuti (https://structilmy.com/)


June 30, 2020 at 19:40 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-169)

Halo, secara umum perhitungan dilakukan dengan konsep BPTT (Backpropagation


Through Time). Untuk ukuran timestep n, turunan error dihitung untuk tiap timestep t,
dari timestep terakhir t=n sampai timestep pertama t=0. Perhitungan turunan error
menggunakan chain rule yang melibatkan turunan dari bobot W, U, b pada masing-
masing gate f, a, i, o. Setelah perhitungan sampai pada timestep t=0, seluruh bobot
pada sel LSTM diupdate dengan mengakumulasi semua perubahan bobot yang telah
dihitung di tiap timestep.

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)

Terimakasih, penjelasannya sangat bagus. sy mw bertanya, Bagaimana cara mendapatkan nilai


bias baru, b1=-0.19, b2=1.01, b3=1.95. mohon penjelasannya. terimakasih

 REPLY

Rochana Prih Hastuti (https://structilmy.com/)


July 8, 2020 at 23:21 (https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-171)

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

Ahmad Habibul Ulum


July 14, 2020 at 00:25 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-172)

terimakasih atas penjelasannya, tapi maaf saya kurang faham dengan yg


dijelaskan pada update bias | b1 new = b1 old – (alfa * delta E/delta b1). |
casenya seperti ini; learning rate/alfa = 0.5, bias = 1, lalu misalkan total data di
setiap 1 iterasi/epoch ada 10.

yg saya faham disini.. untuk iterasi/epoch pertama jika menggunakan jika


menggunakan rumus yg anda jelaskan apakah hasilnya seperti ini ::
bias data k1 = 0.5 – (1 – 1) = 0.5,
bias data k2 = 0.5 – (0.5 – 1) = 0,
bias data k3 = 0 – (0.5 – 1) = -0.5,

https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 22/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy

bias data k4 = -0.5 – (0 – 1) = -1,


bias data k5 = -1 – (-0.5 – 1) = -1.5,
dan seterusnya..

apakah seperti itu?

 REPLY

Rochana Prih Hastuti (https://structilmy.com/)


August 8, 2020 at 22:24
(https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-179)

Halo, contoh cara menghitung update bias sudah kami tambahkan di


artikel ya

 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)

terimakasih, penjelasaanya saangat detail dan membantu bagi saya


mau tanya pak, kalo untuk penentuan bias dan bobot nya itu kan bapak info diatas “random”
ya
apakah se random”nya tetep ada ketentuan? contohnya angka bias dan bobot harus kurang
dari 1. karena saya liat bapak pakai angka kurang dari 1

https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 23/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy

 REPLY

Rian Adam (https://structilmy.com)


August 18, 2020 at 08:06 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-186)

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

Rian Adam (https://structilmy.com)


September 9, 2020 at 12:43 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-191)

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

Rian Adam (https://structilmy.com)


September 9, 2020 at 18:40
(https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-193)

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)

*perhatikan tanda kurungnya ya

 REPLY

Kurniawan Qof
September 9, 2020 at 18:51
(https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-194)

Terimakasih kak, saya paham skrg, jarang sekali yg memposting


perhitungan manual ANN yg begitu rinci semacam ini, hanya di
blog ini dan satu lagi punyanya Matt Mazur.

Maaf saya masih n00b tentang ANN, saya mencoba


mempelajarinya utk mengaplilasikannya dalam Deep Q Network.

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

Rochana Prih Hastuti (https://structilmy.com/)


September 26, 2020 at 13:34 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-208)

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

Jadi tergantung menggunakan metode optimisasi apa

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

Rochana Prih Hastuti (https://structilmy.com/)


October 15, 2020 at 13:21 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-215)

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

Rian Adam (https://structilmy.com)


October 21, 2020 at 08:32 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-219)

maksudnya skor gejala?

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)

Maksudnya skor gejala adalah pendefenisian inputnya kak. Misalnya untuk


gejala “demam intermitten (x1)” nilai bobotnya berapa, dan untuk penentuan
nilai outputnya bagaimana kak?
Misalnya kita buat nilai output -1 adalah DBD, 0 adalah Tifoid dan 1 adalah
Malaria. Apakah bisa kiya buat juga untuk nilai -1 Tifoid, 0 Malaria dan 1 DBD?

Apa yang mendasari pemberian nilai output tersebut gitu kak?


Mohon bantuannya kak

 REPLY

https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 28/32
3/28/2021 Contoh Perhitungan Algoritma Backpropagation - Structilmy

Rian Adam (https://structilmy.com)


October 21, 2020 at 17:17
(https://structilmy.com/2019/07/contoh-perhitungan-
algoritma-backpropagation/#comment-222)

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

Rian Adam (https://structilmy.com)


February 27, 2021 at 20:11 (https://structilmy.com/2019/07/contoh-
perhitungan-algoritma-backpropagation/#comment-267)

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...

SUBSCRIBE TO BLOG VIA EMAIL


Enter your email address to subscribe to this blog and receive noti cations of new posts by
email.

Join 6 other subscribers

Email Address

SUBSCRIBE

Type here to search... 

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

 JULY 31, 2019

(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

 June 2019 (https://structilmy.com/2019/06/)


 May 2019 (https://structilmy.com/2019/05/)
 April 2019 (https://structilmy.com/2019/04/)
 March 2019 (https://structilmy.com/2019/03/)
 February 2019 (https://structilmy.com/2019/02/)
 January 2019 (https://structilmy.com/2019/01/)
 December 2018 (https://structilmy.com/2018/12/)

COPYRIGHT © 2021. CREATED BY MEKS (HTTP://MEKSHQ.COM). POWERED BY WORDPRESS (HTTP://WORDPRESS.ORG).

HOME (HTTP://STRUCTILMY.COM/) ABOUT (HTTP://STRUCTILMY.COM/ABOUT)


ENGLISH (HTTPS://STRUCTILMY.COM/CATEGORY/ENGLISH/) RIAN’S BLOG (HTTP://RIAN.STRUCTILMY.COM)
NANA’S BLOG (HTTP://NANA.STRUCTILMY.COM)

https://structilmy.com/2019/07/contoh-perhitungan-algoritma-backpropagation/ 32/32

Anda mungkin juga menyukai