คู่มือสำหรับผู้เริ่มต้นใช้งาน Convolutional Neural Networks (CNN): คำอธิบายทีละขั้นตอน

เผยแพร่แล้ว: 2022-06-06

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

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

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

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

เรียนรู้ แมชชีนเลิ ร์นนิง ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก – ปริญญาโท, Executive Post Graduate Programme และ Advanced Certificate Program ใน ML & AI เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

สารบัญ

แอปพลิเคชันของ CNN

การใช้ระบบที่ใช้ CNN สามารถเห็นได้ในระบบรักษาความปลอดภัย ระบบป้องกัน การวินิจฉัยทางการแพทย์ การวิเคราะห์ภาพ การจำแนกประเภทสื่อ และซอฟต์แวร์การจดจำอื่นๆ ตัวอย่างเช่น สามารถใช้ CNN กับ RNN (Recurrent Neural Network) เพื่อสร้างซอฟต์แวร์จดจำวิดีโอหรือตัวรับรู้การดำเนินการ

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

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

สำรวจหลักสูตรของเราเกี่ยวกับการเรียนรู้ของเครื่องและปัญญาประดิษฐ์

การรับรองขั้นสูงในการเรียนรู้ของเครื่องและคลาวด์จาก IITM วิทยาศาสตรมหาบัณฑิตสาขาวิชา Machine Learning & AI จาก LJMU Executive Post Graduate Program in Machine Learning & AI จาก IITB
โปรแกรมประกาศนียบัตรขั้นสูงในการเรียนรู้ของเครื่อง & NLP จาก IIITB โปรแกรมประกาศนียบัตรขั้นสูงในการเรียนรู้ของเครื่องและการเรียนรู้เชิงลึกจาก IIITB โปรแกรมใบรับรองขั้นสูงใน AI สำหรับผู้จัดการจาก IITR

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

อย่างไรก็ตาม สิ่งเหล่านี้เป็นการใช้งานขั้นสูงของ CNN ที่ต้องใช้ฮาร์ดแวร์และเซ็นเซอร์ เช่น GPS, RADAR, LiDAR ตลอดจนข้อมูลการฝึกอบรมจำนวนมหาศาลและสภาพแวดล้อมการประมวลผลที่มีประสิทธิภาพสูง สิ่งเหล่านี้ช่วยให้โมเดลการเรียนรู้เชิงลึกกลายเป็นระบบการตัดสินใจที่ประมวลผลข้อมูลที่เข้ามาจากเซ็นเซอร์ในแบบเรียลไทม์และดำเนินการที่เกี่ยวข้อง

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

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

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

โครงข่ายประสาทเทียมในการเรียนรู้เชิงลึกคืออะไร?

Deep Learning เป็นหนึ่งในสาขาที่สำคัญที่สุดของ Machine Learning และใช้ ANN หรือ Artificial Neural Networks (ANN) เพื่อนำไปใช้เป็นวิธีการ Machine Learning ที่อยู่ภายใต้การควบคุมดูแล ไม่ได้รับการดูแล หรือกึ่งควบคุม โมเดล Machine Learning ประเภทนี้อาศัยการประมวลผลหลายชั้นเพื่อทำงานกับฟีเจอร์ระดับสูงในข้อมูล

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

อัลกอริธึมเครือข่ายประสาทจะดึงเอาท์พุตที่สามารถป้อนการคำนวณไปยังเลเยอร์ในอนาคตจนกว่าจะถึงเลเยอร์เอาต์พุตสุดท้าย รูปแบบนี้เป็นเครือข่ายที่โหนดทั้งหมดจากทุกเลเยอร์ที่ตามมาเชื่อมต่อกับโหนดเดียวจากเลเยอร์ก่อนหน้า เมื่อใดก็ตามที่โมเดลใช้มากกว่าสองชั้น จะจัดเป็น Deep Neural Networks (DNNs) เครือข่ายเหล่านี้ไม่ก่อให้เกิดวัฏจักรและอนุญาตให้มีการรับรู้หลายชั้น จึงแนะนำมิติต่างๆ ให้กับการคาดการณ์และการประมวลผลข้อมูลด้วย

อ่านบทความยอดนิยมของเราเกี่ยวกับการเรียนรู้ของเครื่องและปัญญาประดิษฐ์

IoT: ประวัติศาสตร์ ปัจจุบัน และอนาคต บทช่วยสอนการเรียนรู้ของเครื่อง: เรียนรู้ ML อัลกอริทึมคืออะไร? ง่ายและสะดวก
เงินเดือนวิศวกรหุ่นยนต์ในอินเดีย: บทบาททั้งหมด วันหนึ่งในชีวิตของวิศวกรแมชชีนเลิร์นนิง: พวกเขาทำอะไร? IoT คืออะไร (Internet of Things)
การเปลี่ยนแปลงและการรวมกัน: ความแตกต่างระหว่างการเปลี่ยนแปลงและการรวมกัน แนวโน้ม 7 อันดับแรกในปัญญาประดิษฐ์และการเรียนรู้ของเครื่อง แมชชีนเลิร์นนิงกับ R: ทุกสิ่งที่คุณต้องรู้

ต่อไปนี้คือกรอบงานทั่วไปบางส่วนที่ใช้สำหรับการเรียนรู้เชิงลึก:

  • TensorFlow
  • Keras
  • Apache MXNet

Convolutional Neural Network คืออะไร?

Convolutional Neural Networks เป็น ANN ประเภทหนึ่งที่ใช้เป็นหลักในการทำงานกับข้อมูลพิกเซลเพื่อประมวลผลภาพหรือเพื่อการจดจำภาพ CNN ใช้ใน Deep Learning สำหรับงานทั่วไปและงานบรรยายที่ใช้วิชันซิสเต็มและระบบตามคำแนะนำ

CNN เป็น ANN ที่มีประสิทธิภาพมากกว่าคล้ายกับ DNN แต่ยังคงลดความซับซ้อนของ Feedforward Neural Network เนื่องจากโดยทั่วไป CNN จะอาศัยสองชั้น ได้แก่ เลเยอร์แผนที่คุณลักษณะและเลเยอร์การแยกคุณลักษณะ อินพุตของแต่ละโหนดจะแยกคุณลักษณะเฉพาะออกจากฟิลด์การรับข้อมูลภายในของเลเยอร์ก่อนหน้า

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

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

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

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

นี่คือสถาปัตยกรรมบางส่วนที่มีอยู่ของ CNNs

  • GoogLeNet
  • AlexNet
  • เลเน็ต
  • ZFNet
  • ResNet
  • VGGNet

นี่คือตัวอย่างการใช้งาน CNN

สมมติว่าเราต้องจำแนกนก แมว สุนัข รถ และมนุษย์จากชุดรูปภาพแบบสุ่ม ในการเริ่มต้น ก่อนอื่นเราต้องค้นหาชุดข้อมูลการฝึกอบรมที่สามารถใช้เป็นเกณฑ์มาตรฐานสำหรับการคำนวณในอนาคต ตัวอย่างของชุดข้อมูลการฝึกที่ดีคือชุดข้อมูลภาพนก แมว สุนัข รถ และมนุษย์ขนาด 50,000 64×64 พิกเซล

แต่ละเป้าหมายเหล่านี้จะกลายเป็นป้ายกำกับคลาสที่มีค่าจำนวนเต็มที่เกี่ยวข้อง ป้ายกำกับคลาสจะเป็น 'นก', 'แมว', 'สุนัข', 'รถยนต์' และ 'มนุษย์' โดยมีค่าเท่ากับ 0, 1, 2, 3 และ 4 เมื่อโมเดล CNN ได้รับการฝึกฝนโดยใช้ชุดข้อมูลนี้และเกณฑ์มาตรฐาน จะสามารถระบุตัวชี้นำที่มองเห็นได้จากข้อมูลอินพุตแบบสุ่ม แล้วจัดประเภทตามป้ายกำกับ โมเดลสุดท้ายสามารถระบุวัตถุห้าประเภท (ป้ายกำกับ) ได้อย่างแม่นยำจากชุดรูปภาพแบบสุ่มที่มีวัตถุเหล่านี้

นี่คือขั้นตอนที่จำเป็นสำหรับการสร้างแบบจำลอง CNN

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

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

โครงข่ายประสาทเทียมแบบคลาสสิก (ANN อื่นๆ) และ CNN แตกต่างกันอย่างไร

ความแตกต่างที่สำคัญระหว่าง Neural Networks แบบคลาสสิก เช่น Artificial Neural Network (ANN) และ CNN อยู่ที่ความจริงที่ว่ามีเพียงเลเยอร์สุดท้ายของ CNN ที่เชื่อมต่ออย่างสมบูรณ์ และใน ANN เซลล์ประสาทแต่ละเซลล์เชื่อมต่อกับเซลล์ประสาทอื่นทุกเซลล์

Deep Neural Network คืออะไร?

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

NLP สามารถใช้กับ CNN ได้หรือไม่?

คล้ายกับการจัดประเภทประโยค CNN สามารถใช้สำหรับงาน NLP หลายอย่าง เช่น การจัดประเภทความรู้สึก การแปลด้วยเครื่อง การสรุปข้อความ การเลือกคำตอบ และอื่นๆ