# สถาปัตยกรรม CNN ที่เป็นที่รู้จัก ### VGG-16 VGG-16 เป็นเครือข่ายที่ทำได้ความแม่นยำ 92.7% ในการจัดประเภท ImageNet top-5 ในปี 2014 โดยมีโครงสร้างชั้นดังนี้: ![ImageNet Layers](../../../../../translated_images/vgg-16-arch1.d901a5583b3a51baeaab3e768567d921e5d54befa46e1e642616c5458c934028.th.jpg) ดังที่คุณเห็น VGG ใช้สถาปัตยกรรมแบบพีระมิดดั้งเดิม ซึ่งเป็นลำดับของชั้นคอนโวลูชั่นและพูลลิ่ง ![ImageNet Pyramid](../../../../../translated_images/vgg-16-arch.64ff2137f50dd49fdaa786e3f3a975b3f22615efd13efb19c5d22f12e01451a1.th.jpg) > รูปภาพจาก [Researchgate](https://www.researchgate.net/figure/Vgg16-model-structure-To-get-the-VGG-NIN-model-we-replace-the-2-nd-4-th-6-th-7-th_fig2_335194493) ### ResNet ResNet เป็นกลุ่มโมเดลที่ถูกเสนอโดย Microsoft Research ในปี 2015 แนวคิดหลักของ ResNet คือการใช้ **residual blocks**: > รูปภาพจาก [this paper](https://arxiv.org/pdf/1512.03385.pdf) เหตุผลที่ใช้ identity pass-through คือเพื่อให้ชั้นของเราทำนาย **ความแตกต่าง** ระหว่างผลลัพธ์ของชั้นก่อนหน้าและผลลัพธ์ของ residual block - จึงเป็นที่มาของชื่อ *residual* บล็อกเหล่านี้ง่ายต่อการฝึก และสามารถสร้างเครือข่ายที่มีหลายร้อยบล็อกเหล่านี้ได้ (ตัวแปรที่พบมากที่สุดคือ ResNet-52, ResNet-101 และ ResNet-152) คุณสามารถมองเครือข่ายนี้ว่าเป็นเครือข่ายที่สามารถปรับความซับซ้อนให้เหมาะสมกับชุดข้อมูลได้ ในช่วงเริ่มต้นของการฝึกเครือข่าย ค่าของน้ำหนักจะเล็ก และสัญญาณส่วนใหญ่จะผ่านชั้น identity pass-through เมื่อการฝึกดำเนินไปและน้ำหนักมีค่ามากขึ้น ความสำคัญของพารามิเตอร์เครือข่ายจะเพิ่มขึ้น และเครือข่ายจะปรับตัวเพื่อรองรับพลังการแสดงออกที่จำเป็นในการจัดประเภทภาพฝึกได้อย่างถูกต้อง ### Google Inception สถาปัตยกรรม Google Inception นำแนวคิดนี้ไปอีกขั้น และสร้างแต่ละชั้นของเครือข่ายเป็นการรวมกันของหลายเส้นทาง: > รูปภาพจาก [Researchgate](https://www.researchgate.net/figure/Inception-module-with-dimension-reductions-left-and-schema-for-Inception-ResNet-v1_fig2_355547454) ในที่นี้ เราต้องเน้นบทบาทของคอนโวลูชั่น 1x1 เพราะในตอนแรกมันดูเหมือนไม่มีเหตุผล ทำไมเราต้องใช้ฟิลเตอร์ 1x1 กับภาพ? อย่างไรก็ตาม คุณต้องจำไว้ว่า ฟิลเตอร์คอนโวลูชั่นยังทำงานกับหลายช่องความลึก (ในตอนแรกคือสี RGB ในชั้นถัดไปคือช่องสำหรับฟิลเตอร์ต่างๆ) และคอนโวลูชั่น 1x1 ถูกใช้เพื่อผสมช่องอินพุตเหล่านั้นเข้าด้วยกันโดยใช้น้ำหนักที่สามารถฝึกได้ นอกจากนี้ยังสามารถมองว่าเป็นการลดขนาด (pooling) ในมิติช่องได้อีกด้วย นี่คือ [บล็อกโพสต์ที่ดี](https://medium.com/analytics-vidhya/talented-mr-1x1-comprehensive-look-at-1x1-convolution-in-deep-learning-f6b355825578) เกี่ยวกับเรื่องนี้ และ [เอกสารต้นฉบับ](https://arxiv.org/pdf/1312.4400.pdf) ### MobileNet MobileNet เป็นกลุ่มโมเดลที่มีขนาดเล็กลง เหมาะสำหรับอุปกรณ์มือถือ ใช้เมื่อคุณมีทรัพยากรจำกัด และสามารถยอมเสียความแม่นยำเล็กน้อยได้ แนวคิดหลักของมันคือ **depthwise separable convolution** ซึ่งช่วยให้สามารถแสดงฟิลเตอร์คอนโวลูชั่นโดยการประกอบกันของคอนโวลูชั่นเชิงพื้นที่และคอนโวลูชั่น 1x1 ในช่องความลึก สิ่งนี้ช่วยลดจำนวนพารามิเตอร์ได้อย่างมาก ทำให้เครือข่ายมีขนาดเล็กลง และง่ายต่อการฝึกด้วยข้อมูลน้อยลง นี่คือ [บล็อกโพสต์ที่ดีเกี่ยวกับ MobileNet](https://medium.com/analytics-vidhya/image-classification-with-mobilenet-cc6fbb2cd470) ## สรุป ในบทนี้ คุณได้เรียนรู้แนวคิดหลักเบื้องหลังเครือข่ายประสาทสำหรับการมองเห็นด้วยคอมพิวเตอร์ - เครือข่ายคอนโวลูชั่น สถาปัตยกรรมในชีวิตจริงที่ขับเคลื่อนการจัดประเภทภาพ การตรวจจับวัตถุ และแม้กระทั่งเครือข่ายการสร้างภาพ ล้วนมีพื้นฐานมาจาก CNN เพียงแค่มีชั้นมากขึ้นและเทคนิคการฝึกเพิ่มเติมบางอย่าง ## 🚀 ความท้าทาย ในโน้ตบุ๊กที่มาพร้อมกัน มีบันทึกที่ด้านล่างเกี่ยวกับวิธีการเพิ่มความแม่นยำ ลองทำการทดลองเพื่อดูว่าคุณสามารถทำให้ความแม่นยำสูงขึ้นได้หรือไม่ ## [แบบทดสอบหลังการบรรยาย](https://red-field-0a6ddfd03.1.azurestaticapps.net/quiz/207) ## ทบทวนและศึกษาด้วยตนเอง แม้ว่า CNN จะถูกใช้บ่อยที่สุดสำหรับงานการมองเห็นด้วยคอมพิวเตอร์ แต่โดยทั่วไปแล้วมันดีสำหรับการดึงรูปแบบขนาดคงที่ ตัวอย่างเช่น หากเรากำลังจัดการกับเสียง เราอาจต้องการใช้ CNN เพื่อค้นหารูปแบบเฉพาะในสัญญาณเสียง ซึ่งในกรณีนี้ฟิลเตอร์จะเป็นแบบ 1 มิติ (และ CNN นี้จะเรียกว่า 1D-CNN) นอกจากนี้ บางครั้ง 3D-CNN ถูกใช้เพื่อดึงคุณลักษณะในพื้นที่หลายมิติ เช่น เหตุการณ์บางอย่างที่เกิดขึ้นในวิดีโอ - CNN สามารถจับรูปแบบบางอย่างของการเปลี่ยนแปลงคุณลักษณะเมื่อเวลาผ่านไป ลองทบทวนและศึกษาด้วยตนเองเกี่ยวกับงานอื่นๆ ที่สามารถทำได้ด้วย CNN ## [งานที่ได้รับมอบหมาย](lab/README.md) ในห้องปฏิบัติการนี้ คุณมีหน้าที่จัดประเภทสายพันธุ์แมวและสุนัขต่างๆ ภาพเหล่านี้มีความซับซ้อนมากกว่าชุดข้อมูล MNIST และมีมิติที่สูงกว่า และมีมากกว่า 10 คลาส --- **ข้อจำกัดความรับผิดชอบ**: เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้อง แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาต้นทางควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษาจากผู้เชี่ยวชาญ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดซึ่งเกิดจากการใช้การแปลนี้