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
- Neural Network · Cara neuron dan layer mengenali gambar
- Activation Function · Kenapa network butuh sifat non-linear untuk belajar
- Backpropagation · Cara network belajar dari kesalahannya
- Inisialisasi Weight · Xavier, He, dan kenapa weight acak itu penting
- Tensor, Broadcasting, dan Reshaping · Struktur data di deep learning
- Loss Function · Cara network mengukur kesalahannya
Referensi
- Goodfellow, Bengio & Courville (2016), "Deep Learning", chapter 6: Deep Feedforward Networks
- Nielsen, "Neural Networks and Deep Learning", chapter 1
- Zhang et al., "Dive into Deep Learning", Forward Propagation, Backward Propagation, and Computational Graphs
- Glorot & Bengio (2010), "Understanding the difficulty of training deep feedforward neural networks", AISTATS
Terakhir diperbarui