ตัวกรองและแผนที่การเปิดใช้งานเชื่อมต่อในเครือข่ายประสาทเทียมอย่างไร


11

แผนที่เปิดใช้งานในเลเยอร์ที่กำหนดเชื่อมต่อกับตัวกรองสำหรับเลเยอร์นั้นอย่างไร ฉันไม่ได้ถามเกี่ยวกับวิธีการดำเนินการ convolutional ระหว่างตัวกรองและแผนที่เปิดใช้งานฉันกำลังถามเกี่ยวกับประเภทของการเชื่อมต่อที่ทั้งสองมี

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

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

แหล่งที่มาหลักของความสับสนของฉันคือดูไดอะแกรมของ convnets ที่ฉันเห็นทางออนไลน์ บางส่วนมี "การเชื่อมต่อแบบเต็ม" ระหว่างตัวกรองและแผนที่เปิดใช้งานเช่นนี้ - ป้อนคำอธิบายรูปภาพที่นี่ ในเลเยอร์แรกคุณมีแผนที่เปิดใช้งาน 4 แห่งและตัวกรอง 2 ตัวน่าจะเป็น แต่ละแผนที่มีความเชื่อมั่นกับตัวกรองแต่ละตัวทำให้เกิด 8 แผนที่ในเลเยอร์ถัดไป ดูดี.

แต่ที่นี่เรามีสถาปัตยกรรมที่ไม่สมเหตุสมผลสำหรับฉัน - ป้อนคำอธิบายรูปภาพที่นี่ คุณจะไปจากแผนที่ 6 แห่งในชั้นแรกถึง 16 ในอันดับที่ 2 ได้อย่างไร ฉันสามารถคิดถึงวิธีรับแผนที่ 16 จาก 6 แต่พวกเขาจะไม่มีเหตุผลทำ

คำตอบ:


10

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

สถาปัตยกรรมซีเอ็นเอ็น

ก่อนอื่นต้องมีการชี้แจงเกี่ยวกับวิธีการสร้างแผนที่คุณลักษณะและความสัมพันธ์ของพวกเขากับตัวกรองคืออะไร แผนที่คุณลักษณะเป็นผลมาจากการแปลงตัวกรองที่มีแผนที่คุณสมบัติ มาดูเลเยอร์ INPUT และ C1 กัน ในกรณีที่พบบ่อยที่สุดในการรับแผนที่ขนาด 6 คุณสมบัติในชั้น C1 คุณต้องใช้ตัวกรองขนาด 6 6 ตัว (ผลของการบิดที่ถูกต้องของภาพขนาดด้วย a ตัวกรองขนาดสมมติว่ามีขนาด28×285×5M×MN×NMN(MN+1)×(MN+1). อย่างไรก็ตามคุณสามารถสร้างแผนที่คุณลักษณะได้ 6 แผนที่ด้วยการรวมแผนที่คุณลักษณะที่สร้างโดยตัวกรองมากกว่าหรือน้อยกว่า 6 ตัว (เช่นโดยการสรุปรวม) ในกระดาษไม่มีการเรียงลำดับใดที่บอกเป็นนัยสำหรับเลเยอร์ C1

เกิดอะไรขึ้นระหว่างเลเยอร์ S2 และเลเยอร์ C3 มีดังต่อไปนี้ มีฟีเจอร์แผนที่ 16 แบบในเลเยอร์ C3 ที่สร้างจากฟีเจอร์ 6 แผนที่ในเลเยอร์ S2 จำนวนตัวกรองในเลเยอร์ C3 ไม่ชัดเจน ในความเป็นจริงจากแผนภาพสถาปัตยกรรมเท่านั้นเราไม่สามารถตัดสินได้ว่าจำนวนตัวกรองที่แน่นอนที่สร้างแผนที่คุณลักษณะทั้ง 16 นั้นคืออะไร ผู้เขียนบทความให้ตารางต่อไปนี้ (หน้า 8):

การเชื่อมต่อระหว่างเลเยอร์ S2 และ C3

ด้วยตารางที่ให้คำอธิบายต่อไปนี้ (ด้านล่างของหน้า 7):

Layer C3 เป็นเลเยอร์ convolutional พร้อมกับฟีเจอร์ 16 แผนที่ แต่ละหน่วยในแต่ละแผนที่คุณลักษณะเชื่อมต่อกับหลาย ๆละแวกใกล้เคียงในสถานที่ที่เหมือนกันในส่วนย่อยของแผนที่คุณสมบัติของ S25×5

ในตารางผู้เขียนแสดงให้เห็นว่าทุก ๆ แผนที่คุณลักษณะในเลเยอร์ C3 ถูกสร้างขึ้นโดยการรวมแผนที่คุณลักษณะ 3 อย่างหรือมากกว่า (หน้า 8):

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

ทีนี้มีตัวกรองในเลเยอร์ C3 กี่ตัว? น่าเสียดายที่พวกเขาไม่ได้อธิบายเรื่องนี้ ความเป็นไปได้ที่ง่ายที่สุดสองอย่างคือ:

  1. มีหนึ่งตัวกรองต่อแผนที่คุณลักษณะ S2 ต่อแผนที่คุณลักษณะ C3 คือไม่มีการแชร์ตัวกรองระหว่างแผนที่คุณลักษณะ S2 ที่เชื่อมโยงกับแผนที่คุณลักษณะ C3 แบบเดียวกัน
  2. มีตัวกรองหนึ่งตัวต่อแผนที่คุณลักษณะ C3 ซึ่งแบ่งใช้ทั่วทั้งแผนที่คุณลักษณะ (3 ขึ้นไป) ของชั้น S2 ที่รวมกัน

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

ผู้เขียนให้ข้อมูลเพิ่มเติมบางอย่างซึ่งสามารถช่วยเราถอดรหัสสถาปัตยกรรม พวกเขาบอกว่า 'เลเยอร์ C3 มีพารามิเตอร์ที่ฝึกอบรมได้ 1,516 พารามิเตอร์' (หน้า 8) เราสามารถใช้ข้อมูลนี้เพื่อตัดสินใจระหว่างกรณี (1) และ (2) ด้านบน

ในกรณี (1) เรามีตัวกรอง ขนาดตัวกรอง5 จำนวนพารามิเตอร์ที่สามารถฝึกอบรมได้ในกรณีนี้คือพารามิเตอร์ที่ฝึกได้ หากเราถือว่าหนึ่งหน่วยอคติต่อแผนที่คุณลักษณะ C3 เราจะได้รับพารามิเตอร์ซึ่งเป็นสิ่งที่ผู้เขียนพูด เพื่อความสมบูรณ์ในกรณี (2) เราจะมีพารามิเตอร์ซึ่งไม่ใช่กรณี(6×3)+(9×4)+(1×6)=60(1410+1)×(1410+1)=5×55×5×60=1,5001,500+16=1,516(5×5×16)+16=416

ดังนั้นหากเราดูอีกครั้งที่ตารางที่ 1 ข้างต้นจะมีตัวกรอง C3 ที่แตกต่างกัน 10 ตัวที่เชื่อมโยงกับแผนที่คุณลักษณะ S2 แต่ละอัน (รวม 60 ตัวกรองที่แตกต่างกัน)

ผู้เขียนอธิบายตัวเลือกประเภทนี้:

แมปฟีเจอร์ที่แตกต่างกัน [ในเลเยอร์ C3] ถูกบังคับให้แยกฟีเจอร์ต่าง ๆ (เสริมหวัง) เพราะได้รับชุดอินพุตที่แตกต่างกัน

ฉันหวังว่านี่จะทำให้สถานการณ์ชัดเจนขึ้น


3

คุณถูกต้องแน่นอนว่าค่าก่อนเครื่องหมาย @ จะระบุจำนวนตัวกรองและไม่ใช่จำนวนของการแมปฟีเจอร์ (แม้ว่าสำหรับชั้นแรกใน Convolutional ค่าเหล่านี้จะตรงกัน)

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

ในที่สุดฉันไม่รู้ว่าคุณกำลังฝึกทักษะโครงข่ายประสาทเทียมด้วยการใช้งานด้วยตนเองหรือไม่ แต่ถ้าคุณแค่ต้องการใช้เครือข่าย convolutional กับงานที่เฉพาะเจาะจงมีห้องสมุดเครือข่ายประสาทที่ยอดเยี่ยมหลายแห่งเช่น Theano, Brainstorm, Caffe


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

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