คำถามติดแท็ก batch-normalization

2
Batch Normalization ใช้ค่าเฉลี่ยเคลื่อนที่อย่างไรและทำไมในการติดตามความแม่นยำของโมเดลในขณะที่รถไฟ?
ฉันกำลังอ่านกระดาษการทำแบตช์ให้เป็นมาตรฐาน (BN) (1) และไม่เข้าใจความจำเป็นในการใช้ค่าเฉลี่ยเคลื่อนที่เพื่อติดตามความแม่นยำของแบบจำลองและแม้ว่าฉันยอมรับว่ามันเป็นสิ่งที่ถูกต้องที่จะทำฉันไม่เข้าใจ พวกเขากำลังทำอะไรกันแน่ เพื่อความเข้าใจของฉัน (ซึ่งฉันผิด) กระดาษกล่าวว่าจะใช้สถิติประชากรมากกว่ามินิแบทช์สถิติเมื่อแบบจำลองเสร็จสิ้นการฝึกอบรม หลังจากการอภิปรายของการประมาณการที่ไม่เอนเอียง (ซึ่งดูเหมือนว่าจะเป็นวงสัมผัสกับฉันและไม่เข้าใจว่าทำไมมันถึงพูดถึงเรื่องนี้) พวกเขาไปและพูดว่า: ใช้ค่าเฉลี่ยเคลื่อนที่แทนเราติดตามความแม่นยำของแบบจำลองในขณะที่รถไฟ นั่นคือส่วนที่ทำให้ฉันสับสน เหตุใดพวกเขาจึงทำการย้ายค่าเฉลี่ยเพื่อประเมินความแม่นยำของโมเดลและชุดข้อมูลใด โดยทั่วไปแล้วสิ่งที่ผู้คนทำเพื่อประเมินลักษณะทั่วไปของแบบจำลองของพวกเขาพวกเขาเพียงแค่ติดตามข้อผิดพลาดในการตรวจสอบความถูกต้องของแบบจำลองของพวกเขา อย่างไรก็ตามดูเหมือนว่าการทำแบทช์ให้เป็นมาตรฐานนั้นกำลังทำสิ่งที่แตกต่างไปจากเดิมอย่างสิ้นเชิง ใครบางคนสามารถชี้แจงสิ่งที่และทำไมมันทำอะไรที่แตกต่างกันอย่างไร 1 : Ioffe S. และ Szegedy C. (2015), "Batch Normalization: เร่งการฝึกอบรมเครือข่ายลึกโดยการลดการเปลี่ยนแปลงภายใน Covariate Shift" การดำเนินการประชุมนานาชาติครั้งที่ 32 เกี่ยวกับการเรียนรู้ของเครื่องจักร Lille, France, 2015 วารสารการวิจัยการเรียนรู้ของเครื่องจักร W&CP เล่ม 37

1
เหตุใดแบทช์มาตรฐานจึงมีขนาดและการเรียนรู้ที่เปลี่ยนแปลงได้?
เท่าที่ผมเข้าใจมันเป็นบรรทัดฐานชุด normalises ป้อนข้อมูลทั้งหมดที่มีคุณสมบัติชั้นเพื่อการกระจายปกติหน่วย1) ค่าเฉลี่ยและความแปรปรวนถูกประเมินโดยการวัดค่าของพวกเขาสำหรับมินิแบทช์ปัจจุบันยังไม่มีข้อความ( μ = 0 , σ= 1 )ยังไม่มีข้อความ(μ=0,σ=1)\mathcal{N}(\mu=0,\sigma=1)μ ,σ2μ,σ2\mu, \sigma^2 หลังจากการทำให้เป็นมาตรฐานแล้วอินพุตจะถูกปรับขนาดและเลื่อนตามค่าสเกลาร์: x^'ผม= γx^ผม+ βx^ผม'=γx^ผม+β\hat{x}_i' = \gamma \hat{x}_i + \beta (แก้ไขฉันถ้าฉันผิดที่นี่ - นี่คือที่ฉันเริ่มไม่แน่ใจเล็กน้อย) γγ\gammaและเป็นค่าสเกลาร์และมีคู่ของแต่ละค่าสำหรับเลเยอร์ที่มีบรรทัดฐานแบทช์ พวกเขาเรียนรู้พร้อมกับน้ำหนักโดยใช้ backprop และ SGDββ\beta คำถามของฉันคือไม่ใช่พารามิเตอร์เหล่านี้ซ้ำซ้อนเพราะอินพุตสามารถปรับขนาดและเลื่อนได้ด้วยน้ำหนักในเลเยอร์เอง ในคำอื่น ๆ ถ้า Y= Wx^'+ bY=Wx^'+ขy = W \hat{x}' + b และ x^'= γx^+ βx^'=γx^+β\hat{x}' = \gamma \hat{x} + …

1
รูปแบบเมทริกซ์ของการแพร่กระจายย้อนกลับพร้อมการทำให้เป็นมาตรฐาน
การทำให้เป็นมาตรฐานของแบทช์ได้รับเครดิตด้วยการปรับปรุงประสิทธิภาพอย่างมากในอวนตาข่ายประสาท วัสดุจำนวนมากบนอินเทอร์เน็ตแสดงวิธีใช้งานบนพื้นฐานการเปิดใช้งานโดยการเปิดใช้งาน ฉันใช้ backprop ไปแล้วโดยใช้พีชคณิตเมทริกซ์และเนื่องจากฉันทำงานในภาษาระดับสูง (ในขณะที่พึ่งพาRcpp(และในที่สุด GPU ของ) สำหรับการคูณเมทริกซ์หนาแน่น) การฉีกทุกอย่างออกไปและหันไปใช้forลูปของฉัน อย่างมีนัยสำคัญนอกเหนือไปจากความเจ็บปวดขนาดใหญ่ ฟังก์ชั่นการปรับสภาพแบทช์คือ โดยที่b(xp)=γ(xp−μxp)σ−1xp+βb(xp)=γ(xp−μxp)σxp−1+β b(x_p) = \gamma \left(x_p - \mu_{x_p}\right) \sigma^{-1}_{x_p} + \beta คือ Pโหนด, th ก่อนที่มันจะได้รับการเปิดใช้งานxpxpx_pppp และ βเป็นพารามิเตอร์สเกลาร์γγ\gammaββ\beta และ σ x พีมีค่าเฉลี่ยและ SD ของ xพี (โปรดสังเกตว่าปกติใช้สแควร์รูทของความแปรปรวนบวกกับฟัดจ์แฟคเตอร์ - สมมติว่าองค์ประกอบที่ไม่ใช่ศูนย์เพื่อความกะทัดรัด)μxpμxp\mu_{x_p}σxpσxp\sigma_{x_p}xpxpx_p ในรูปแบบเมทริกซ์ฟื้นฟูชุดสำหรับชั้นทั้งจะ ที่b(X)=(γ⊗1p)⊙(X−μX)⊙σ−1X+(β⊗1p)b(X)=(γ⊗1p)⊙(X−μX)⊙σX−1+(β⊗1p) b(\mathbf{X}) = \left(\gamma\otimes\mathbf{1}_p\right)\odot \left(\mathbf{X} - \mu_{\mathbf{X}}\right) \odot\sigma^{-1}_{\mathbf{X}} + \left(\beta\otimes\mathbf{1}_p\right) คือ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.