AI-For-Beginners/translations/th/lessons/4-ComputerVision/07-ConvNets/CNN_Architectures.md

10 KiB

สถาปัตยกรรม CNN ที่เป็นที่รู้จัก

VGG-16

VGG-16 เป็นเครือข่ายที่ทำคะแนนความแม่นยำได้ถึง 92.7% ในการจัดประเภท ImageNet top-5 ในปี 2014 โดยมีโครงสร้างเลเยอร์ดังนี้:

ImageNet Layers

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

ImageNet Pyramid

ภาพจาก Researchgate

ResNet

ResNet เป็นตระกูลของโมเดลที่ถูกเสนอโดย Microsoft Research ในปี 2015 แนวคิดหลักของ ResNet คือการใช้ residual blocks:

ภาพจาก this paper

เหตุผลที่ใช้ identity pass-through คือเพื่อให้เลเยอร์ของเราทำนาย ความแตกต่าง ระหว่างผลลัพธ์ของเลเยอร์ก่อนหน้าและผลลัพธ์ของ residual block - จึงเป็นที่มาของชื่อ residual บล็อกเหล่านี้ฝึกได้ง่ายกว่า และสามารถสร้างเครือข่ายที่มีบล็อกเหล่านี้หลายร้อยบล็อก (ตัวแปรที่พบบ่อยที่สุดคือ ResNet-52, ResNet-101 และ ResNet-152)

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

Google Inception

สถาปัตยกรรม Google Inception นำแนวคิดนี้ไปอีกขั้น โดยสร้างแต่ละเลเยอร์ของเครือข่ายเป็นการผสมผสานของหลายเส้นทาง:

ภาพจาก Researchgate

ที่นี่ เราต้องเน้นบทบาทของคอนโวลูชัน 1x1 เพราะในตอนแรกมันอาจดูไม่มีเหตุผล ทำไมเราต้องใช้ฟิลเตอร์ 1x1 กับภาพ? อย่างไรก็ตาม คุณต้องจำไว้ว่าฟิลเตอร์คอนโวลูชันทำงานกับหลายช่องความลึก (เริ่มต้นคือสี RGB ในเลเยอร์ถัดไปคือช่องสำหรับฟิลเตอร์ต่างๆ) และคอนโวลูชัน 1x1 ใช้เพื่อผสมช่องอินพุตเหล่านั้นเข้าด้วยกันโดยใช้น้ำหนักที่ฝึกได้ต่างกัน นอกจากนี้ยังสามารถมองว่าเป็นการลดขนาด (pooling) ในมิติช่องได้อีกด้วย

นี่คือ บทความที่ดีเกี่ยวกับคอนโวลูชัน 1x1 และ งานวิจัยต้นฉบับ

MobileNet

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

นี่คือ บทความที่ดีเกี่ยวกับ MobileNet

สรุป

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

🚀 ความท้าทาย

ในโน้ตบุ๊กที่แนบมา มีบันทึกที่ด้านล่างเกี่ยวกับวิธีการเพิ่มความแม่นยำ ลองทำการทดลองเพื่อดูว่าคุณสามารถเพิ่มความแม่นยำได้หรือไม่

แบบทดสอบหลังการบรรยาย

ทบทวนและศึกษาด้วยตนเอง

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

งานที่ได้รับมอบหมาย

ในห้องปฏิบัติการนี้ คุณมีหน้าที่จัดประเภทสายพันธุ์แมวและสุนัขที่แตกต่างกัน ภาพเหล่านี้มีความซับซ้อนมากกว่าชุดข้อมูล MNIST และมีมิติที่สูงกว่า รวมถึงมีมากกว่า 10 คลาส