Backpropagation adalah metode yang digunakan jaringan saraf untuk menghitung gradien: seberapa besar loss akan berubah jika setiap bobot atau bias diubah sedikit. Dalam bahasa sederhana, metode ini memberi tahu model parameter mana yang mendorong prediksi ke arah yang salah dan seberapa besar pengaruhnya.

Versi singkatnya sederhana: jalankan jaringan ke depan, ukur error, lalu bergerak mundur melalui perhitungan yang sama dengan aturan rantai. Ini membuat model yang dalam tetap mudah dikelola, karena setiap layer hanya perlu menyumbang turunan lokal yang kecil.

Apa yang dihitung backpropagation

Backpropagation tidak memperbarui parameter dengan sendirinya. Metode ini menghitung gradien seperti Lw\frac{\partial L}{\partial w} dan Lb\frac{\partial L}{\partial b}, dengan LL sebagai loss. Optimizer seperti gradient descent menggunakan gradien tersebut untuk melakukan pembaruan yang sebenarnya.

Jika model dan loss dapat diturunkan, atau setidaknya cukup piecewise differentiable untuk metode berbasis gradien, backpropagation memungkinkan Anda menghitung gradien itu secara efisien dalam satu backward pass.

Mengapa aturan rantai adalah ide kuncinya

Bayangkan jaringan saraf sebagai rantai perhitungan yang panjang. Setiap layer menerima input, mengubahnya, lalu meneruskan hasilnya ke layer berikutnya. Saat Anda sampai ke loss, error akhir bergantung pada setiap keputusan sebelumnya.

Backpropagation mengajukan pertanyaan lokal di setiap langkah: jika nilai antara ini berubah sedikit, bagaimana loss akhir akan berubah? Efek-efek lokal itu dikalikan bersama saat Anda bergerak mundur. Itulah aturan rantai dalam bahasa sederhana.

Contoh backpropagation dengan satu neuron

Gunakan satu neuron dengan satu input:

z=wx+bz = wx + b a=σ(z)a = \sigma(z) L=12(ay)2L = \frac{1}{2}(a - y)^2

Di sini xx adalah input, ww adalah bobot, bb adalah bias, aa adalah prediksi, yy adalah target, dan σ\sigma adalah fungsi sigmoid.

Ambil

x=2,w=0.5,b=0,y=1.x = 2, \qquad w = 0.5, \qquad b = 0, \qquad y = 1.

Langkah 1: Forward pass

Pertama hitung jumlah berbobot neuron:

z=wx+b=0.52+0=1.z = wx + b = 0.5 \cdot 2 + 0 = 1.

Sekarang terapkan sigmoid:

a=σ(1)0.731.a = \sigma(1) \approx 0.731.

Sekarang hitung loss:

L=12(0.7311)20.036.L = \frac{1}{2}(0.731 - 1)^2 \approx 0.036.

Prediksi berada di bawah target, jadi loss bernilai positif.

Langkah 2: Backward pass

Sekarang hitung gradien terhadap bobot.

Mulai dari loss dan bergerak ke dalam:

La=ay.\frac{\partial L}{\partial a} = a - y.

Untuk sigmoid,

az=a(1a).\frac{\partial a}{\partial z} = a(1-a).

Dan untuk jumlah berbobot,

zw=x,zb=1.\frac{\partial z}{\partial w} = x, \qquad \frac{\partial z}{\partial b} = 1.

Sekarang rangkai bagian-bagian itu bersama:

Lw=Laazzw=(ay)a(1a)x.\frac{\partial L}{\partial w} = \frac{\partial L}{\partial a} \cdot \frac{\partial a}{\partial z} \cdot \frac{\partial z}{\partial w} = (a-y)a(1-a)x. Lb=Laazzb=(ay)a(1a).\frac{\partial L}{\partial b} = \frac{\partial L}{\partial a} \cdot \frac{\partial a}{\partial z} \cdot \frac{\partial z}{\partial b} = (a-y)a(1-a).

Masukkan angkanya:

Lb(0.7311)(0.731)(10.731)0.0529\frac{\partial L}{\partial b} \approx (0.731 - 1)(0.731)(1 - 0.731) \approx -0.0529 Lw(0.0529)(2)0.1058.\frac{\partial L}{\partial w} \approx (-0.0529)(2) \approx -0.1058.

Tanda negatif itu penting. Tanda tersebut menunjukkan bahwa menaikkan ww atau bb sedikit akan mengurangi loss dalam kasus ini, yang sesuai dengan situasinya karena prediksi saat ini terlalu rendah.

Jika Anda menggunakan gradient descent dengan learning rate η=0.1\eta = 0.1, maka

wnew=wηLw=0.50.1(0.1058)0.5106w_{\text{new}} = w - \eta \frac{\partial L}{\partial w} = 0.5 - 0.1(-0.1058) \approx 0.5106 bnew=bηLb=00.1(0.0529)0.0053.b_{\text{new}} = b - \eta \frac{\partial L}{\partial b} = 0 - 0.1(-0.0529) \approx 0.0053.

Itulah keseluruhan idenya dalam bentuk kecil: forward pass, loss, backward pass, pembaruan.

Mengapa backpropagation bekerja untuk jaringan yang dalam

Dalam jaringan yang lebih dalam, Anda melakukan hal yang sama layer demi layer. Perbedaan utamanya adalah setiap hidden layer memengaruhi loss secara tidak langsung melalui layer-layer setelahnya, sehingga gradiennya mencakup lebih banyak faktor aturan rantai.

Backpropagation tetap praktis karena setiap layer hanya membutuhkan turunan lokalnya dan sinyal yang datang dari layer setelahnya. Anda tidak perlu menurunkan ulang seluruh jaringan dari awal untuk setiap parameter.

Kesalahan umum dalam backpropagation

Mencampuradukkan backpropagation dengan gradient descent

Backpropagation menghitung gradien. Gradient descent menggunakan gradien tersebut untuk memperbarui parameter. Keduanya sangat berkaitan, tetapi bukan langkah yang sama.

Lupa bahwa loss berada di bagian akhir

Backward pass dimulai dari loss, bukan dari hidden layer sembarang. Jika Anda kehilangan jejak tentang apa saja yang memengaruhi loss, rantai turunannya biasanya akan terputus.

Mengabaikan perilaku fungsi aktivasi

Beberapa fungsi aktivasi menghasilkan gradien yang sangat kecil di wilayah tertentu. Jika ini terjadi berulang kali di banyak layer, proses belajar bisa menjadi lambat.

Menganggap satu backward pass berarti model sudah belajar

Satu backward pass memberikan satu set gradien untuk satu batch. Pelatihan biasanya membutuhkan banyak pembaruan pada banyak contoh.

Kapan backpropagation digunakan

Backpropagation adalah metode standar untuk menghitung gradien saat melatih banyak jenis jaringan saraf, termasuk multilayer perceptron, convolutional networks, model rekuren, dan transformer.

Optimizer yang digunakan bisa berbeda, dan beberapa arsitektur menambahkan trik praktis, tetapi ide intinya biasanya sama: hitung loss, propagasikan gradien ke belakang, lalu perbarui parameter untuk mengurangi error di masa depan.

Cara praktis untuk mengingatnya

Backpropagation adalah cara terstruktur untuk memberi kredit dan menyalahkan bagian-bagian di dalam model berlapis. Jika output salah, metode ini menelusuri error itu ke belakang sehingga setiap parameter menerima sinyal tentang bagaimana kontribusinya.

Itulah sebabnya frasa "bagaimana jaringan saraf belajar" sebagian besar akurat. Proses belajar terjadi melalui pembaruan parameter yang berulang, dan backpropagation membuat pembaruan itu berdasarkan informasi, bukan acak.

Coba soal serupa

Gunakan contoh yang sama, tetapi ubah target dari y=1y = 1 menjadi y=0y = 0. Hitung ulang Lw\frac{\partial L}{\partial w} dan Lb\frac{\partial L}{\partial b}, lalu periksa bagaimana tandanya berbalik. Satu perubahan itu membuat peran loss jauh lebih jelas daripada sekadar menghafal rumus.

Butuh bantuan mengerjakan soal?

Unggah pertanyaanmu dan dapatkan solusi terverifikasi langkah demi langkah dalam hitungan detik.

Buka GPAI Solver →