ทำไม Convolutions จึงใช้เลขคี่เป็นตัวกรอง


13

ถ้าเราดูเอกสารที่ตีพิมพ์ 90-99% โดยใช้ CNN (ConvNet) ส่วนใหญ่ใช้ขนาดตัวกรองของตัวเลขคี่ : {1, 3, 5, 7} สำหรับการใช้งานมากที่สุด

สถานการณ์นี้อาจนำไปสู่ปัญหาบางอย่าง: ด้วยขนาดตัวกรองเหล่านี้โดยปกติแล้วการดำเนินการสังวัตนาจะไม่สมบูรณ์แบบด้วยการเติม 2 (การเติมทั่วไป) และขอบบางส่วนของ input_field หายไปในกระบวนการ ...

คำถามที่ 1:เหตุใดจึงใช้เพียง odd_numbers สำหรับขนาดตัวกรอง Convolutions

คำถามที่ 2:จริง ๆ แล้วมันเป็นปัญหาที่จะละเว้นส่วนเล็ก ๆ ของ input_field ในระหว่างการโน้มน้าว? ทำไมต้องเป็นเช่นนั้น /

คำตอบ:


14

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

A.1 อย่างไรก็ตามเจตนาของการบิดคือการเข้ารหัสเมทริกซ์แหล่งข้อมูล (รูปภาพทั้งหมด) ในแง่ของตัวกรองหรือเคอร์เนล โดยเฉพาะอย่างยิ่งเรากำลังพยายามเข้ารหัสพิกเซลในพื้นที่ใกล้เคียงของจุดยึด / พิกเซลแหล่งที่มา ดูรูปด้านล่าง: ป้อนคำอธิบายรูปภาพที่นี่ โดยทั่วไปแล้วเราพิจารณาทุกพิกเซลของภาพต้นฉบับเป็นจุดยึด / พิกเซลต้นทาง แต่เราไม่ได้บังคับให้ทำเช่นนี้ ในความเป็นจริงมันไม่ใช่เรื่องแปลกที่จะรวมก้าวย่างที่เรายึด / พิกเซลแหล่งที่มาจะถูกคั่นด้วยจำนวนพิกเซลที่เฉพาะเจาะจง

โอเคพิกเซลแหล่งที่มาคืออะไร เป็นจุดยึดที่เคอร์เนลอยู่กึ่งกลางและเรากำลังเข้ารหัสพิกเซลที่อยู่ใกล้เคียงทั้งหมดรวมถึงจุดยึด / พิกเซลแหล่งที่มา เนื่องจากเคอร์เนลมีรูปร่างสมมาตร (ไม่ใช่สมมาตรในค่าเคอร์เนล) จึงมีจำนวนพิกเซล (n) เท่ากันทุกด้าน (การเชื่อมต่อ 4 จุด) ของจุดยึดพิกเซล ดังนั้นไม่ว่าจำนวนพิกเซลนี้จะเท่าไหร่ความยาวของแต่ละด้านของเคอร์เนลที่มีรูปร่างสมมาตรคือ 2 * n + 1 (แต่ละด้านของจุดยึด + จุดยึดพิกเซล) และดังนั้นตัวกรอง / เมล็ดจึงมีขนาดแปลกเสมอ

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

A.2 ปัญหาขอบเขตถูกจัดการโดยใช้วิธีการที่แตกต่างกัน: บางคนไม่สนใจ, บางส่วนเป็นศูนย์มัน, กระจกเงาสะท้อนให้เห็น หากคุณไม่ต้องการคำนวณการผกผันเช่น deconvolution และไม่สนใจที่จะสร้างภาพต้นฉบับขึ้นมาใหม่อย่างสมบูรณ์แบบคุณไม่ต้องสนใจว่าจะสูญเสียข้อมูลหรือการส่งเสียงดังเนื่องจากปัญหาเขตแดน โดยทั่วไปการดำเนินการรวมกำไร (การรวมกำไรโดยรวมหรือการรวมกำไรสูงสุด) จะลบสิ่งประดิษฐ์ขอบเขตของคุณต่อไป ดังนั้นอย่าเพิกเฉยส่วนหนึ่งของ 'ฟิลด์อินพุต' การดำเนินการรวมกำไรของคุณจะทำเพื่อคุณ

-

เซนแห่งการโน้มน้าวใจ:

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

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


ขอบคุณสำหรับ exaplantion ของคุณ แต่มันง่ายกว่าที่จะเข้าใจสิ่งนี้โดยดูที่คำจำกัดความของการบิดในแง่คณิตศาสตร์หรือไม่? en.wikipedia.org/wiki/Convolution#Discrete_convolution เพราะที่นี่เราเห็นว่าเราจะมีคำ m ทางด้านซ้ายและด้านขวาของจุดกำเนิดเสมอ ... ดังนั้นสิ่งนี้จะส่งผลในจำนวนที่ไม่สม่ำเสมอ
zwep

@zwep เห็นด้วย! ฟอรัม Q & A ไม่ได้แทนที่สารานุกรม แต่เพียงเสริมพวกเขา อย่างไรก็ตามมุมมองที่กว้างขึ้นต่อความคิดเห็นของคุณ: โดยทั่วไปคำจำกัดความเป็นเพียงตัวเลือกที่ดีที่สุดในการตรวจสอบตัวเลือกที่มีอยู่ มันไม่ใช่ความจริงพระกิตติคุณ อย่างไรก็ตามกฎจะต้องเรียนรู้ก่อนที่จะทำลายพวกเขาเพื่อให้สามารถสื่อสารกับชุมชนได้อย่างชัดเจนว่าอย่างไรและทำไมคุณถึงทำมันแตกต่างกัน เหตุผลและทางเลือกอื่นที่อยู่เบื้องหลังคำจำกัดความบางประการนั้นอยู่ในเอกสารการวิจัยและโดยทั่วไปไม่ได้อยู่ในสารานุกรม
Stardust แบบไดนามิก

5

1) สมมติว่าเป็นศูนย์ทั้งหมดยกเว้นหนึ่งรายการที่ดัชนีinput_field idxขนาดตัวกรองคี่จะส่งคืนข้อมูลโดยมีศูนย์กลางอยู่ที่จุดสูงสุดขนาดตัวกรองแบบคู่จะไม่ส่งกลับไปidxพิจารณากรณีของตัวกรองแบบสม่ำเสมอที่มีขนาด 2 คนส่วนใหญ่ต้องการรักษาตำแหน่งของจุดสูงสุดเมื่อทำการกรอง

2) จากข้อมูลทั้งหมดที่input_fieldเกี่ยวข้องกับการบิด แต่ขอบของไม่สามารถคำนวณได้อย่างถูกต้องเนื่องจากข้อมูลที่จำเป็นไม่ได้มีอยู่ในoutput_field input_fieldถ้าผมต้องการที่จะคำนวณคำตอบสำหรับองค์ประกอบแรกของตัวกรองที่จะต้องมีศูนย์กลางอยู่ที่องค์ประกอบแรกของoutput_field input_fieldแต่ก็มีองค์ประกอบกรองที่ไม่สอดคล้องกับองค์ประกอบใด ๆ input_fieldของ output_fieldมีเทคนิคต่างๆที่จะได้รับการคาดเดาสำหรับขอบของเป็น


2

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

ทำไมตัวกรองขนาดเท่ากันถึงไม่ทำงาน

แหล่งที่มา: https://towardsdatascience.com/deciding-optimal-filter-size-for-cnns-d6f7b56f9363

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