Lensa ML

Cara Kerja Forward Propagation

Langkah 1 dari 6: Feature Mentah Masuk

Network melihat angka, bukan gambar. Setiap feature adalah hasil ukur

Gambar kucing masuk ke network
Telinga runcing
0.85
skala 0–1
Kumis
0.72
skala 0–1
Tekstur bulu
0.91
skala 0–1

Network tidak melihat foto. Yang dilihatnya hanya angka: setiap feature adalah hasil ukur yang diskalakan ke 0–1, dan nilai tinggi berarti ciri itu jelas ada. Hanya ketiga angka ini yang bisa diolah network.

① Ukur feature
② Normalisasi ke 0–1
③ Masukkan ke layer 1

Lihat ketiga kartu feature terisi: Telinga runcing 0,85, Kumis 0,72, Tekstur bulu 0,91. Ketiganya membentuk input vector x = [0.85, 0.72, 0.91]. Model gambar sungguhan memakai input yang jauh lebih banyak. Satu digit grayscale 28×28 saja sudah menghasilkan 784 nilai pixel. Rentang input perlu disamakan, karena feature yang nilainya ribuan akan mendominasi setiap weighted sum dan mendorong neuron sigmoid ke daerah datarnya. Dalam praktiknya, framework memproses banyak contoh sekaligus dengan menumpuk input vector menjadi matriks, satu baris per contoh.

Langkah 2 dari 6: Weight Membentuk Sinyal

Setiap koneksi mengalikan input dengan weight yang dipelajari

Ketuk neuron untuk melihat weight-nya
0.85Telinga runcing0.72Kumis0.91Tekstur bulu0.620.520.630.300.650.770.410.480.57Kucing0.67AnjingInputHidden 1Hidden 2Output

Setiap koneksi punya weight, yaitu angka yang memperkuat, meredam, atau membalik sinyal. Ketuk neuron mana saja untuk melihat weight yang masuk ke dalamnya.

Ketuk neuron di hidden layer atau output layer untuk melihat daftar weight yang masuk ke dalamnya. Weight di antara dua layer membentuk matriks. Di sini matriks dari input ke Hidden 1 berukuran 3×4, dengan satu kolom per neuron Hidden 1, jadi seluruh layer dihitung sebagai satu perkalian matriks x·W. Itu sebabnya GPU, yang dibuat untuk perkalian matriks, mempercepat neural network sebesar itu. Weight ini dimulai antara −0,8 dan 0,8. Network sungguhan menskalakan weight awalnya menurut ukuran layer, seperti pada inisialisasi Xavier atau He.

Langkah 3 dari 6: Neuron Menjumlahkan

Setiap neuron mengumpulkan sinyal yang sudah dikalikan weight, lalu menjumlahkannya

InputNilai×Weight=Hasil
Telinga runcing...×-0.57=...
Kumis...×+0.48=...
Tekstur bulu...×+0.68=...
Σ jumlah =...
z = ?×(?) + ?×(?) + ?×(?) = ...

Setiap neuron berperan sebagai pengumpul: semua input yang sudah dikalikan weight dijumlahkan menjadi satu angka, yaitu weighted sum (z). Jumlah mentah ini bisa berupa bilangan real apa pun, positif atau negatif. Activation function menyusul setelah ini.

Klik H1#1 sampai H1#4 untuk menghitung weighted sum tiap neuron. Untuk H1#1: z = 0.85×(−0.57) + 0.72×0.48 + 0.91×0.68 = −0.485 + 0.346 + 0.619 = 0.480. Ini adalah dot product, jadi z besar ketika input vector searah dengan weight vector milik neuron. Sebagian besar network juga menambahkan bias, z = w·x + b. Network ini tidak memakai bias supaya setiap jumlah bisa dicek dengan tangan.

Langkah 4 dari 6: Activation Function

Sigmoid memampatkan angka apa pun ke rentang 0–1 secara halus

-4-202400.51z (weighted sum)σ(z)σ = 0.6177
Nilai z
0.48→0.6177
z ≪ 0
Output → 0
z ≈ 0
Output ≈ 0.5
z ≫ 0
Output → 1

Fungsi sigmoid memampatkan angka apa pun ke rentang 0–1. Dengan begitu neuron punya sakelar nyala/mati yang halus: bukan 0 atau 1 yang kaku, melainkan nilai yang bertahap.

Geser slider nilai z dari −6 ke 6 dan baca output-nya. Sigmoid adalah σ(z) = 1 / (1 + e^(−z)). Pada z = 0.48, jumlah dari H1#1, σ menghasilkan 0,618, dan itulah output neuron tersebut di langkah berikutnya. Di kedua ujung slider, output-nya 0,0025 dan 0,9975. Sigmoid cocok untuk output yang dibaca sebagai probabilitas. Hidden layer pada network modern biasanya memakai ReLU, max(0, z), yang lebih murah dihitung dan tidak mendatar untuk z positif yang besar.

Langkah 5 dari 6: Layer demi Layer

Lihat data mengalir ke depan melewati seluruh network

Data mengalir ke depan melewati network
0.85Telinga runcing0.72Kumis0.91Tekstur buluKucingAnjingInputHidden 1Hidden 2Outputdata mengalir ke depan
Input
rerata: 0.827
Hidden 1
—
Hidden 2
—
Output
—

Setiap layer menerapkan weight → jumlah → sigmoid dan meneruskan hasilnya ke depan. Pada network yang sudah dilatih, feature makin abstrak di setiap layer, dari "telinga runcing" menuju "mirip kucing". Nilai hanya bergerak ke depan, dan tidak ada layer yang menengok ke belakang.

Klik label layer untuk menghentikan animasi dan memeriksanya, atau biarkan berputar. Kalau ditulis lengkap, seluruh proses ini adalah h₁ = σ(xW₁), h₂ = σ(h₁W₂), dan y = σ(h₂W₃): komposisi tiga fungsi. Setiap layer butuh seluruh output layer sebelumnya, jadi layer berjalan berurutan. Neuron dalam satu layer tidak saling bergantung dan bisa berjalan paralel. Rata-rata aktivasi naik dari sekitar 0,52 di Hidden 1 ke sekitar 0,58 di Hidden 2. Proses ini butuh 36 operasi kali-tambah, satu per weight.

Langkah 6 dari 6: Prediksi

Output layer menjawab: network sudah membuat tebakan

0.85Telinga runcing0.72Kumis0.91Tekstur bulu0.620.520.630.300.650.770.410.480.57Kucing0.57110.67Anjing0.6715
① Input masuk
② Weight membentuk sinyal
③ Layer mengubah nilai
④ Output memprediksi

Lihat kedua kartu output: Kucing 0,57 dan Anjing 0,67. Network yang belum dilatih ini menganggap kucing tadi anjing. Label confidence di sini longgar. Setiap output adalah skor sigmoid yang terpisah, dan tidak ada yang mengalibrasi skor itu agar cocok dengan frekuensi sebenarnya. Training dimulai dengan membandingkan output dengan target Kucing = 1 dan Anjing = 0. Jumlah kuadrat error di sini adalah (1 − 0.571)² + (0 − 0.671)² ≈ 0.63. Backpropagation lalu menelusuri loss itu kembali sampai ke weight.

Apa itu forward propagation pada neural network?

Forward propagation adalah hitungan yang dijalankan neural network untuk mengubah input menjadi prediksi. Setiap layer mengambil output dari layer sebelumnya, mengalikannya dengan weight, menjumlahkannya, lalu menerapkan activation function. Hasilnya mengalir ke layer berikutnya sampai output layer menghasilkan jawaban.

Setiap kali model yang sudah dilatih dipakai, yang berjalan adalah forward pass: mengklasifikasikan gambar, menilai pengajuan pinjaman, atau menghasilkan kata berikutnya dalam balasan chatbot. Training juga menjalankan forward pass, karena loss dan gradient sama-sama dihitung dari output-nya. Contoh di sini mengikuti satu foto kucing melewati network dengan 3 input, dua hidden layer berisi 4 neuron, dan 2 output.

Ide utama

  • Forward pass mengubah input vector menjadi prediksi, satu layer demi satu layer.
  • Setiap neuron menghitung weighted sum dari input-nya, lalu menerapkan activation function.
  • Satu layer utuh adalah satu perkalian matriks, diikuti aktivasi per elemen.
  • Layer harus berjalan berurutan, tetapi neuron dalam satu layer bisa berjalan paralel.
  • Dengan weight acak, forward pass tetap menghasilkan jawaban, hanya saja jawabannya buruk.
  • Training memakai output forward pass untuk menghitung loss dan gradient.

Pertanyaan umum

Apa bedanya forward propagation dan backpropagation?

Forward propagation menghitung prediksi dari input. Backpropagation berjalan setelahnya, mulai dari loss lalu bergerak mundur untuk menghitung gradient tiap weight. Inference hanya butuh forward pass, sedangkan training butuh keduanya.

Apakah forward propagation sama dengan inference?

Inference berarti menjalankan model yang sudah dilatih pada data baru, dan isinya adalah forward pass. Saat training, forward pass juga dijalankan pada setiap batch contoh, jadi forward propagation dipakai di kedua fase.

Kenapa aktivasi perlu disimpan selama forward pass?

Backpropagation butuh input dan output tiap layer untuk menghitung gradient. Selama training, framework menyimpannya di memori sampai backward pass selesai. Saat inference tidak ada yang disimpan, itu sebabnya menjalankan model memakai memori jauh lebih sedikit daripada melatihnya.

Bagaimana forward propagation dijalankan untuk satu batch input?

Semua input vector ditumpuk menjadi matriks X dengan satu baris per contoh. Setiap layer lalu menghitung σ(XW + b) dalam satu perkalian matriks, dan menghasilkan output untuk semua contoh sekaligus. Batching memanfaatkan GPU jauh lebih baik daripada memproses contoh satu per satu.

Penjelasan terkait

Referensi

  1. Goodfellow, Bengio & Courville (2016), "Deep Learning", chapter 6: Deep Feedforward Networks
  2. Nielsen, "Neural Networks and Deep Learning", chapter 1
  3. Zhang et al., "Dive into Deep Learning", Forward Propagation, Backward Propagation, and Computational Graphs
  4. Glorot & Bengio (2010), "Understanding the difficulty of training deep feedforward neural networks", AISTATS

Terakhir diperbarui