เลเยอร์ที่เชื่อมต่ออย่างเต็มที่ทำอะไรใน CNNs


19

ฉันเข้าใจเลเยอร์ convolutional และ pooling แต่ฉันไม่เห็นเหตุผลของเลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์ใน CNNs ทำไมเลเยอร์ก่อนหน้าไม่เชื่อมต่อโดยตรงกับเลเยอร์เอาท์พุท

คำตอบ:


31

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

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

หมายเหตุ: มันเป็นเรื่องเล็กน้อยที่จะแปลงจากเลเยอร์ FC เป็นเลเยอร์ Conv การแปลงเลเยอร์ FC ยอดนิยมเหล่านี้เป็นเลเยอร์ Conv สามารถเป็นประโยชน์ได้ในหน้านี้อธิบาย


ขอบคุณสำหรับคำตอบของเจมส์ ดังนั้นเรากำลังเรียนรู้น้ำหนักระหว่างเลเยอร์ที่เชื่อมต่อกับการขยายพันธุ์กลับถูกต้องหรือไม่?
jeff

ใช่ข้อผิดพลาดกลับแพร่กระจายผ่านเลเยอร์ที่เชื่อมต่ออย่างเต็มที่กับชั้น convolutional และ pooling
jamesmf

ตกลง. ดังนั้นจุดประสงค์ของเลเยอร์ fc นั้นสามารถคิดได้เหมือน non-linear PCA มันแก้ไขคุณสมบัติ "ดี" และลดขนาดอื่น ๆ ด้วยการเรียนรู้น้ำหนักที่ครบถ้วน
jeff

1
ส่วนใหญ่จะช่วยให้คุณรวมคุณสมบัติที่ไม่ใช่เชิงเส้น คุณลักษณะทั้งหมดอาจดี (สมมติว่าคุณไม่มีคุณสมบัติ "ตาย") แต่การรวมกันของคุณสมบัติเหล่านั้นอาจจะดีกว่า
jamesmf

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

4

ฉันพบคำตอบนี้โดย Anil-SharmaบนQuora ที่เป็นประโยชน์

เราสามารถแบ่งเครือข่ายทั้งหมด (สำหรับการจำแนก) ออกเป็นสองส่วน:

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

  • การจำแนกประเภท : หลังจากการดึงคุณสมบัติออกเราจำเป็นต้องจำแนกข้อมูลออกเป็นคลาสต่าง ๆ สิ่งนี้สามารถทำได้โดยใช้เครือข่ายประสาทที่เชื่อมต่ออย่างสมบูรณ์ (FC) แทนที่เลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์เรายังสามารถใช้ตัวจําแนกแบบดั้งเดิมเช่น SVM แต่โดยทั่วไปแล้วเราจะเพิ่มเลเยอร์ FC เพื่อให้โมเดลฝึกอบรมได้ตั้งแต่ต้นจนจบ

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