Backprop ผ่านเลเยอร์ Max-Pooling?
นี่เป็นคำถามเชิงแนวคิดขนาดเล็กที่จู้จี้ฉันอยู่ครู่หนึ่ง: เราจะเผยแพร่กลับผ่านเลเยอร์ max-pooling ในเครือข่ายประสาทได้อย่างไร ฉันเจอเลเยอร์แบบรวมกำไรสูงสุดในขณะที่ทำตามบทช่วยสอนนี้สำหรับห้องสมุด nn ของ Torch 7 ไลบรารีจะสรุปการคำนวณการไล่ระดับสีและส่งต่อสำหรับแต่ละเลเยอร์ของเครือข่ายที่ลึก ฉันไม่เข้าใจวิธีการคำนวณการไล่ระดับสีสำหรับเลเยอร์ที่รวมกำไรสูงสุด ฉันรู้ว่าถ้าคุณมีอินพุตเข้าสู่เซลล์ประสาทของเลเยอร์ดังนั้น (นิยามเป็น ) มอบให้โดย: zilzil{z_i}^liiilllδilδil{\delta_i}^lδil=∂E∂zilδil=∂E∂zil{\delta_i}^l = \frac{\partial E}{\partial {z_i}^l}δil=θ′(zil)∑jδjl+1wl,l+1i,jδil=θ′(zil)∑jδjl+1wi,jl,l+1 {\delta_i}^l = \theta^{'}({z_i}^l) \sum_{j} {\delta_j}^{l+1} w_{i,j}^{l,l+1} ดังนั้นเลเยอร์ที่รวมกำไรสูงสุดจะได้รับของเลเยอร์ถัดไปตามปกติ แต่เนื่องจากฟังก์ชั่นการเปิดใช้งานสำหรับเซลล์ประสาท max-pooling ใช้เวลาในเวกเตอร์ของค่า (ซึ่งมัน maxes) เป็นอินพุตไม่ใช่หมายเลขเดียวอีกต่อไป แต่เวกเตอร์ (จะต้องถูกแทนที่ด้วย ) นอกจากนี้ซึ่งเป็นฟังก์ชันสูงสุดแล้วยังไม่สามารถแยกความแตกต่างได้ด้วยความเคารพของอินพุตδjl+1δjl+1{\delta_j}^{l+1}δilδil{\delta_i}^{l}θ′(zjl)θ′(zjl)\theta^{'}({z_j}^l)∇θ({zjl})∇θ({zjl})\nabla \theta(\left\{{z_j}^l\right\})θθ\theta ดังนั้น .... มันจะออกมาดียังไง