AI จำภาพได้อย่างไร? คู่มือเข้าใจง่ายจากพิกเซลถึง CNN

AI Neural ·

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

สำหรับเครื่อง ภาพคือตารางตัวเลข

ภาพสีหนึ่งภาพประกอบด้วยพิกเซลหลายหมื่นตัว แต่ละพิกเซลเก็บค่าความสว่างสามค่า คือแดง เขียว น้ำเงิน ปกติอยู่ระหว่าง 0 ถึง 255 ดังนั้นเวลาส่งภาพเข้าโครงข่าย จริง ๆ แล้วคือส่งตัวเลขจำนวนมากที่เรียงเป็นตารางเรียบร้อย

กับ "ตารางตัวเลข" นี้ ขั้นแรกของโครงข่ายเรียบง่ายมาก คือมองหาการเปลี่ยนแปลงเล็ก ๆ เฉพาะที่ในตาราง เช่น ความสว่างที่เพิ่มหรือลดฉับพลันระหว่างพิกเซลข้างเคียง นั่นก็คือขอบ

จากพิกเซลสู่ลักษณะเด่น: ประกอบกันทีละชั้น

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

กระบวนการนี้ไม่มีใครเขียนกฎด้วยมือ โครงข่ายเรียนรู้เองระหว่างการฝึก "ลักษณะเด่น" ที่แต่ละชั้นเรียนรู้คือการนำเอาต์พุตของชั้นก่อนหน้ามาประกอบใหม่ ยิ่งลึกก็ยิ่งนามธรรมมากขึ้น

ตัวอย่างคลาสสิก: ตัวเลขเขียนมือ MNIST

เกือบทุกคนเริ่มเรียนการรู้จำภาพด้วย MNIST เป็นภาพตัวเลขเขียนมือขนาด 28×28 พิกเซลหลายหมื่นภาพ แต่ละภาพติดป้ายคำตอบที่ถูกต้องตั้งแต่ 0 ถึง 9 เหมาะอย่างยิ่งสำหรับฝึก "ดูแล้วจำแนก"

เพราะภาพเล็กและมีคลาสไม่มาก แม้โครงข่ายไม่ซับซ้อนก็ถึงความแม่นสูงได้ในไม่กี่นาที เหมาะกับการดูว่า "ตอนฝึกเกิดอะไรขึ้นจริง ๆ" พอเข้าใจ MNIST แล้ว งานภาพที่ซับซ้อนขึ้นก็จะเข้าใจได้ง่าย

CNN เพิ่มอะไรให้มากกว่าโครงข่ายธรรมดา

ถ้าเชื่อมทุกตำแหน่งพิกเซลตรงไปยังชั้นถัดไป จำนวนพารามิเตอร์จะพุ่งสูงจนฝึกยาก แนวคิดหลักของ CNN คือ "การคอนโวลูชัน" คือเลื่อนหน้าต่างเล็ก ๆ ไปทั่วภาพ แล้วใช้น้ำหนักชุดเดิมซ้ำ ๆ เพื่อหาลวดลายชนิดเดียวกัน วิธีนี้รักษาความสัมพันธ์เชิงตำแหน่งไว้พร้อมลดจำนวนพารามิเตอร์ลงอย่างมาก

นอกจากนี้ CNN มักใช้ "พูลลิ่ง" ย่อขนาดแผนที่ลักษณะเด่น ทำให้โครงข่ายสนใจว่า "มีลักษณะเด่นนี้ไหม" มากกว่าน้ำหนักว่าอยู่พิกเซลไหนพอดี จึงทนต่อการเลื่อนตำแหน่งเล็กน้อยได้ดีขึ้น การซ้อนคอนโวลูชันและพูลลิ่งทีละชั้นคือโครงหลักของการรู้จำภาพสมัยใหม่

FAQ

ทำไมภาพขาวดำมีหนึ่งช่องสัญญาณ แต่ภาพสีมีสามช่อง

ภาพขาวดำต้องใช้ค่าความสว่างเดียวต่อพิกเซล จึงมีหนึ่งช่องสัญญาณ ส่วนภาพสีเก็บค่าความสว่างสามค่า คือแดง เขียว น้ำเงิน ต่อพิกเซล จึงมีสามช่อง โครงข่ายจัดการแบบเดียวกัน แค่มีตัวเลขอินพุตมากขึ้นหน่อย

การฝึกการรู้จำภาพต้องใช้ภาพเยอะไหม

ปกติยิ่งมากยิ่งดี แต่ขยายจำนวนได้ด้วย data augmentation คือหมุน ครอป หรือพลิกภาพเล็กน้อยเพื่อเพิ่มปริมาณโดยอ้อม หรือใช้ transfer learning โดยเอาโมเดลที่ฝึกกับภาพมหาศาลมาแล้วมาเฟাইনจูนด้วยข้อมูลของเราเพียงเล็กน้อย

AI ถูกหลอกด้วยภาพลวงตาได้ไหม

ได้ แค่เปลี่ยนไม่กี่พิกเซลก็ทำให้โมเดลมอง A เป็น B ได้ ตัวอย่างแบบนี้เรียกว่า adversarial examples ซึ่งชี้ว่าโมเดลเรียนรู้ความคล้ายเชิงสถิติ ไม่ได้เข้าใจภาพจริง ๆ เหมือนคน ดังนั้นในงานที่เกี่ยวกับความปลอดภัยจึงต้องมีมาตรการป้องกันเพิ่มเติม

AI Neural

เข้าใจการรู้จำภาพทีละขั้นด้วย AI Neural

เปิด AI Neural แล้วดูตัวอย่างแบบโต้ตอบว่าพิกเซลกลายเป็นขอบ และขอบกลายเป็นชิ้นส่วนได้อย่างไร สัมผัสแนวคิดของ CNN ได้อย่างเข้าใจง่าย ถนัดกว่าท่องนิยามมาก

App Store ↗

← AI Neural