ฉันเข้าใจเลเยอร์ convolutional และ pooling แต่ฉันไม่เห็นเหตุผลของเลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์ใน CNNs ทำไมเลเยอร์ก่อนหน้าไม่เชื่อมต่อโดยตรงกับเลเยอร์เอาท์พุท
ฉันเข้าใจเลเยอร์ convolutional และ pooling แต่ฉันไม่เห็นเหตุผลของเลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์ใน CNNs ทำไมเลเยอร์ก่อนหน้าไม่เชื่อมต่อโดยตรงกับเลเยอร์เอาท์พุท
คำตอบ:
เอาต์พุตจากเลเยอร์ convolutional แสดงถึงคุณสมบัติระดับสูงในข้อมูล ในขณะที่เอาต์พุตนั้นอาจถูกทำให้แบนและเชื่อมต่อกับเลเยอร์เอาท์พุทการเพิ่มเลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์นั้นเป็นวิธีการเรียนรู้ที่ผสมผสานกันแบบไม่เชิงเส้นของคุณสมบัติเหล่านี้
โดยพื้นฐานแล้วเลเยอร์ Convolutional นั้นจะให้พื้นที่คุณลักษณะที่มีความหมายมิติต่ำและไม่เปลี่ยนแปลงและเลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์นั้นกำลังเรียนรู้ฟังก์ชั่น (อาจไม่ใช่เชิงเส้น) ในพื้นที่นั้น
หมายเหตุ: มันเป็นเรื่องเล็กน้อยที่จะแปลงจากเลเยอร์ FC เป็นเลเยอร์ Conv การแปลงเลเยอร์ FC ยอดนิยมเหล่านี้เป็นเลเยอร์ Conv สามารถเป็นประโยชน์ได้ในหน้านี้อธิบาย
ฉันพบคำตอบนี้โดย Anil-SharmaบนQuora ที่เป็นประโยชน์
เราสามารถแบ่งเครือข่ายทั้งหมด (สำหรับการจำแนก) ออกเป็นสองส่วน:
การแยกคุณลักษณะ : ในอัลกอริทึมการจำแนกประเภททั่วไปเช่น SVM เราใช้เพื่อแยกคุณลักษณะจากข้อมูลเพื่อให้การจำแนกประเภททำงานได้ เลเยอร์ convolutional นั้นมีจุดประสงค์เดียวกันในการแยกฟีเจอร์ ซีเอ็นเอ็นจับการแสดงข้อมูลได้ดีขึ้นและด้วยเหตุนี้เราไม่จำเป็นต้องทำวิศวกรรมคุณสมบัติ
การจำแนกประเภท : หลังจากการดึงคุณสมบัติออกเราจำเป็นต้องจำแนกข้อมูลออกเป็นคลาสต่าง ๆ สิ่งนี้สามารถทำได้โดยใช้เครือข่ายประสาทที่เชื่อมต่ออย่างสมบูรณ์ (FC) แทนที่เลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์เรายังสามารถใช้ตัวจําแนกแบบดั้งเดิมเช่น SVM แต่โดยทั่วไปแล้วเราจะเพิ่มเลเยอร์ FC เพื่อให้โมเดลฝึกอบรมได้ตั้งแต่ต้นจนจบ