เลเยอร์ Convolutional: เพื่อ pad หรือไม่ pad?


19

สถาปัตยกรรม AlexNet ใช้การ zero-paddings ดังแสดงในรูป: ป้อนคำอธิบายรูปภาพที่นี่ อย่างไรก็ตามไม่มีคำอธิบายในกระดาษว่าทำไมการขยายตัวนี้ถูกนำมาใช้

หลักสูตร Standford CS 231n สอนให้เราใช้การขยายเพื่อรักษาขนาดเชิงพื้นที่: ป้อนคำอธิบายรูปภาพที่นี่

ฉันสงสัยว่ามันเป็นเหตุผลเดียวที่เราต้องการแพ็ดดิ้ง? ฉันหมายความว่าถ้าฉันไม่ต้องการรักษาขนาดเชิงพื้นที่ฉันสามารถลบการขยายได้หรือไม่ ฉันรู้ว่ามันจะทำให้ขนาดเชิงพื้นที่ลดลงอย่างรวดเร็วเมื่อเราไปถึงระดับที่ลึกกว่า อย่างไรก็ตามฉันสามารถแลกเปลี่ยนสิ่งนั้นได้โดยการลบเลเยอร์รวมกำไร ฉันจะมีความสุขมากถ้าใครสามารถให้เหตุผลกับฉันได้ ขอบคุณ!

คำตอบ:


20

มีเหตุผลสองประการที่สำคัญคือการเติมเต็ม:

  1. มันง่ายในการออกแบบเครือข่ายถ้าเรารักษาheightและwidthและไม่ต้องกังวลมากเกินไปเกี่ยวกับมิติเมตริกซ์เมื่อไปจากชั้นหนึ่งไปยังอีกมิติเพราะจะเป็นเพียงแค่ "งาน"

  2. จะช่วยให้เราสามารถออกแบบเครือข่ายลึก การลดขนาดของปริมาณจะลดลงเร็วเกินไป

  3. padding จริงช่วยเพิ่มประสิทธิภาพการทำงานโดยการเก็บรักษาข้อมูลที่ชายแดน

ข้อความอ้างอิงจากการบรรยายของ Stanford: "นอกจากประโยชน์ดังกล่าวในการรักษาขนาดเชิงพื้นที่ให้คงที่หลังจาก CONV การทำเช่นนี้จะช่วยเพิ่มประสิทธิภาพในการทำงานจริงถ้าชั้น CONV ไม่ได้เป็นศูนย์แบบอินพุตและทำงานได้อย่างเหมาะสมเท่านั้น ปริมาณจะลดลงเล็กน้อยหลังจากแต่ละ CONV และข้อมูลที่ชายแดนจะ "ล้าง" เร็วเกินไป " - แหล่งที่มา

  1. ดังที่ @dontloo ได้กล่าวไปแล้วสถาปัตยกรรมเครือข่ายใหม่จำเป็นต้องเชื่อมต่อเลเยอร์ Convolutional กับตัวกรอง 1x1, 3x3 และ 5x5 และจะไม่สามารถทำได้หากไม่ได้ใช้การขยายเนื่องจากขนาดไม่ตรงกัน ตรวจสอบภาพของโมดูลการลงทะเบียนเรียนนี้เพื่อทำความเข้าใจให้ดีขึ้นว่าเหตุใดการแพ็ดดิ้งจึงมีประโยชน์ที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


4
ทำไมการเติมเต็มศูนย์จึงแพร่หลายทุกครั้ง? ในการประมวลผลภาพมีโหมดเส้นขอบที่แตกต่างกันมากมายเช่นการทำมิเรอร์ประเภทต่าง ๆ หรือดำเนินการต่อด้วยค่าที่ขอบ เลขศูนย์มีโครงสร้างที่แตกต่างกันมากเมื่อเทียบกับรูปภาพ / คุณสมบัติจริง
isarandi

3

สำหรับฉันเหตุผลที่สำคัญที่สุดคือการรักษาขนาดเชิงพื้นที่ ดังที่คุณกล่าวไว้เราสามารถแลกเปลี่ยนการลดขนาดเชิงพื้นที่ด้วยการลบเลเยอร์รวม อย่างไรก็ตามหลายโครงสร้างเครือข่ายที่ผ่านมา (เช่นอวนที่เหลือ , มุ้งก่อตั้ง , มุ้งเศษส่วน ) ดำเนินการเกี่ยวกับผลของชั้นที่แตกต่างกันซึ่งจะต้องมีขนาดเชิงพื้นที่ที่สอดคล้องกันระหว่างพวกเขา

อีกสิ่งหนึ่งคือหากไม่มีการเว้นระยะห่างพิกเซลที่มุมของอินพุตจะมีผลกับพิกเซลในมุมที่สอดคล้องกันของเอาต์พุตเท่านั้นในขณะที่พิกเซลที่อยู่ตรงกลางนำไปสู่การละแวกใกล้เคียงในเอาต์พุต เมื่อเลเยอร์ที่ไม่มีการแพ็ดซ้อนกันซ้อนกันเครือข่ายจะไม่สนใจพิกเซลของรูปภาพ

เพียงแค่ความเข้าใจของฉันฉันเชื่อว่ามีเหตุผลที่ดีอื่น ๆ


2

เป็นคำถามที่ดีมาก Drag0 อธิบายได้ดี แต่ฉันเห็นด้วยมีบางอย่างผิดปกติ

มันเหมือนกับการดูรูปถ่ายและต้องจัดการกับชายแดน ในชีวิตจริงคุณสามารถขยับดวงตาของคุณให้มองไกลขึ้น ไม่มีพรมแดนจริง ดังนั้นจึงเป็นข้อ จำกัด ของสื่อ

นอกเหนือจากการรักษาขนาดแล้ว ฉันไม่ทราบคำตอบที่น่าพอใจ แต่ฉันคาดเดา (ไม่ได้รับการพิสูจน์) ว่าด้วยการทดลองเกี่ยวกับความสนใจและการบดเคี้ยว (วัตถุบางส่วน) เราไม่ต้องการข้อมูลที่สูญหายบนเส้นขอบ หากคุณต้องทำสิ่งที่ฉลาดกว่า (พูดคัดลอกพิกเซลที่อยู่ติดกัน) มันจะไม่เปลี่ยนคำตอบแม้ว่าฉันจะไม่ได้ทดลองตัวเอง การเติมด้วย 0s นั้นเร็วและรักษาขนาดเอาไว้นั่นคือสาเหตุที่เราทำ


1

นี่คือความคิดของฉัน การเติมเต็มศูนย์เป็นสิ่งสำคัญในเวลาเริ่มต้นสำหรับการรักษาขนาดของเวกเตอร์คุณลักษณะ ouput และบางคนข้างต้นบอกว่าการเติมเต็มศูนย์มีประสิทธิภาพมากกว่า

แต่ครั้งสุดท้ายแล้วล่ะ คุณสมบัติความละเอียดของภาพแบบเวกเตอร์มีขนาดเล็กมากและค่าพิกเซลหมายถึงเวกเตอร์ที่มีขนาดทั่วโลก

ฉันคิดว่าในกรณีสุดท้ายการสะท้อนบางอย่างจะดีกว่าถ้าเว้นระยะห่าง


1

รายละเอียดเกี่ยวกับการเก็บข้อมูลที่ชายแดนโดยทั่วไปพิกเซลที่มุม (สีเขียวแรเงา) เมื่อเสร็จสิ้นการสังวัตนาจะใช้เพียงครั้งเดียวในขณะที่หนึ่งที่อยู่ตรงกลางเช่นสีแดงสีเทาจะช่วยให้แผนที่คุณลักษณะที่เกิดขึ้นหลายครั้งดังนั้น เราแผ่นภาพดูรูปที่: 2


1

ฉันจะพยายามบอกจากข้อมูลที่ว่าเมื่อไรมันก็ดีที่จะผัดและเมื่อมันไม่เป็นเช่นนั้น

สำหรับกรณีพื้นฐานมาเป็นตัวอย่างของฟังก์ชั่นการแพ็ดดิงโฟลว์ มันมีสองสถานการณ์ทั้ง "ถูกต้อง" หรือ "เหมือนกัน" เหมือนกันจะรักษาขนาดของเอาท์พุทและจะทำให้มันเหมือนกันกับของอินพุทโดยการเพิ่มช่องว่างที่เหมาะสมในขณะที่ถูกต้องจะไม่ทำอย่างนั้นและบางคนอ้างว่ามันจะนำไปสู่การสูญเสียข้อมูล .

การสูญเสียข้อมูลนี้ขึ้นอยู่กับขนาดของเคอร์เนลหรือตัวกรองที่คุณใช้ ตัวอย่างเช่นสมมติว่าคุณมีภาพขนาด 28x28 และขนาดตัวกรองเท่ากับ 15x15 (สมมติว่าเป็น) ผลลัพธ์ควรมีขนาด 16x16 แต่ถ้าคุณใช้ "เดียวกัน" ในการเทนเซอร์กระแสมันจะเป็น 28x28 ตอนนี้คอลัมน์ 12 แถวและ 12 คอลัมน์ในตัวมันเองไม่ได้มีข้อมูลที่มีความหมาย แต่ก็ยังมีสัญญาณรบกวนอยู่ และเราทุกคนรู้ว่าแบบจำลองการเรียนรู้แบบลึกที่ไวต่อเสียงนั้นเป็นอย่างไร สิ่งนี้สามารถลดการฝึกอบรมได้มาก ดังนั้นหากคุณใช้ตัวกรองขนาดใหญ่ดีกว่าอย่าไปกับการเติมเต็ม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.