ต้นขั้ว CNNs (Convolutional Neural Networks) คืออะไร? - Unite.AI
เชื่อมต่อกับเรา
มาสเตอร์คลาส AI:

AI 101

CNNs (Convolutional Neural Networks) คืออะไร?

mm
วันที่อัพเดท on

บางทีคุณอาจสงสัยว่า Facebook หรือ Instagram สามารถจดจำใบหน้าในรูปภาพได้โดยอัตโนมัติได้อย่างไร หรือวิธีที่ Google ช่วยให้คุณสามารถค้นหารูปภาพที่คล้ายกันบนเว็บได้เพียงแค่อัปโหลดรูปภาพของคุณเอง คุณลักษณะเหล่านี้เป็นตัวอย่างของคอมพิวเตอร์วิทัศน์ และขับเคลื่อนโดย โครงข่ายประสาทเทียม (CNNs). เครือข่ายประสาทเทียมคืออะไรกันแน่? มาเจาะลึกเกี่ยวกับสถาปัตยกรรมของ CNN และทำความเข้าใจว่าพวกเขาทำงานอย่างไร

โครงข่ายประสาทเทียมคืออะไร?

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

นี่คือวิธีการทำงานของโครงข่ายประสาทเทียมแบบป้อนไปข้างหน้า และ CNN ประกอบด้วยสองส่วน: โครงข่ายประสาทเทียมแบบป้อนไปข้างหน้าและกลุ่มของชั้นการม้วนงอ

Convolution Neural Networks (CNN) คืออะไร?

“การโน้มน้าวใจ” ที่เกิดขึ้นในโครงข่ายประสาทเทียมแบบโนโวลูชั่นคืออะไร? การบิดเป็นการดำเนินการทางคณิตศาสตร์ที่สร้างชุดน้ำหนัก โดยพื้นฐานแล้วเป็นการสร้างการแสดงส่วนต่างๆ ของภาพ ตุ้มน้ำหนักชุดนี้เรียกว่า เคอร์เนลหรือตัวกรอง. ตัวกรองที่สร้างขึ้นมีขนาดเล็กกว่ารูปภาพอินพุตทั้งหมด ครอบคลุมเพียงส่วนย่อยของรูปภาพ ค่าในตัวกรองจะถูกคูณด้วยค่าในรูปภาพ จากนั้นฟิลเตอร์จะถูกเลื่อนไปเพื่อสร้างตัวแทนของส่วนใหม่ของภาพ และกระบวนการนี้จะเกิดขึ้นซ้ำๆ จนกว่าจะครอบคลุมทั้งภาพ

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

เอาต์พุตจากตัวกรองที่เคลื่อนไปรอบๆ รูปภาพอินพุตทั้งหมดคืออาร์เรย์สองมิติที่แสดงรูปภาพทั้งหมด อาร์เรย์นี้เรียกว่า “แผนที่คุณลักษณะ”.

ทำไม Convolutions จึงมีความสำคัญ

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

ตัวกรองและช่อง

รูปภาพ: cecebur ผ่าน Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)

ซีเอ็นเอ็นไม่ได้ใช้ตัวกรองเพียงตัวเดียวในการเรียนรู้รูปแบบจากภาพที่ป้อนเข้า ใช้ตัวกรองหลายตัวเนื่องจากอาร์เรย์ต่างๆ ที่สร้างขึ้นโดยตัวกรองต่างๆ นำไปสู่การแสดงภาพอินพุตที่ซับซ้อนและสมบูรณ์ยิ่งขึ้น จำนวนตัวกรองทั่วไปสำหรับ CNN คือ 32, 64, 128 และ 512 ยิ่งมีตัวกรองมากเท่าใด CNN มีโอกาสมากขึ้นในการตรวจสอบข้อมูลอินพุตและเรียนรู้จากข้อมูลดังกล่าว

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

โครงข่ายประสาทเทียม (CNN) สถาปัตยกรรม

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

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

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

บล็อกเกอร์และโปรแกรมเมอร์ที่มีความเชี่ยวชาญด้าน เครื่องเรียนรู้ และ การเรียนรู้ลึก ๆ หัวข้อ Daniel หวังว่าจะช่วยให้ผู้อื่นใช้พลังของ AI เพื่อประโยชน์ทางสังคม