Ketika jaringan saraf memproses batch, semua nilai aktivasi untuk setiap lapisan dihitung untuk setiap contoh (mungkin secara paralel per contoh jika perpustakaan dan perangkat keras mendukungnya). Nilai-nilai tersebut disimpan untuk kemungkinan digunakan nanti - yaitu satu nilai per aktivasi per contoh dalam batch, mereka tidak dikumpulkan dengan cara apa pun
Selama propagasi balik, nilai aktivasi tersebut digunakan sebagai salah satu sumber numerik untuk menghitung gradien, bersama dengan gradien yang dihitung sejauh ini bekerja mundur dan bobot penghubung. Seperti propagasi maju, propagasi balik diterapkan per contoh, itu tidak bekerja dengan nilai rata-rata atau dijumlahkan. Hanya ketika semua contoh telah diproses Anda bekerja dengan gradien dijumlahkan atau rata-rata untuk batch.
Ini berlaku sama untuk lapisan lapisan maks. Anda tidak hanya tahu apa output dari layer pooling untuk setiap contoh dalam batch, tetapi Anda dapat melihat layer sebelumnya dan menentukan input mana ke pool yang maksimum.
Secara matematis, dan menghindari kebutuhan untuk menentukan indeks untuk lapisan NN dan neuron, aturannya dapat dinyatakan seperti ini
Fungsi maju adalah m = m a x ( a , b )
Kita tahu ∂J∂m untuk beberapa fungsi target J (dalam jaringan saraf yang akan menjadi fungsi kerugian yang kita ingin meminimalkan, dan kami mengasumsikan kita telah dipropagasi ke titik ini sudah)
Kami ingin tahu ∂J∂a dan ∂J∂b
Jika a>b
Secara lokal , *m=a. Begitu∂J∂a=∂J∂m
Secara lokal , *m tidak bergantung pada b. Begitu∂J∂b=0
Karena itu ∂J∂a=∂J∂m jika a>b, lain ∂J∂a=0
dan ∂J∂b=∂J∂m jika b>a, lain ∂J∂b=0
Ketika propagasi balik melewati lapisan pengumpulan max, gradien diproses per contoh dan hanya ditugaskan untuk input dari lapisan sebelumnya yang maksimum. Input lain mendapatkan gradien nol. Ketika batch ini tidak berbeda, hanya diproses per contoh, mungkin secara paralel. Di seluruh batch ini dapat berarti bahwa lebih dari satu, mungkin semua, dari aktivasi input ke kumpulan max mendapatkan beberapa bagian dari gradien - masing-masing dari subset contoh yang berbeda dalam batch.
* Lokal -> ketika membuat perubahan sangat kecil ke m.
** Secara teknis, jika a=b tepat saat itu kami memiliki diskontinuitas, tetapi dalam praktiknya kami dapat mengabaikan itu tanpa masalah saat melatih jaringan saraf.