สถาปัตยกรรม CNN พื้นฐาน: การอธิบาย 5 เลเยอร์ของ Convolutional Neural Network [สหรัฐอเมริกา]

เผยแพร่แล้ว: 2023-04-16

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

ลงทะเบียนเรียน หลักสูตร Machine Learning จากมหาวิทยาลัยชั้นนำของโลก รับหลักสูตร Master, Executive PGP หรือ Advanced Certificate เพื่อความก้าวหน้าในอาชีพของคุณ

สารบัญ

5 ชั้นของโครงข่ายประสาทเทียม

1. ชั้น Convolutional:

เลเยอร์นี้ดำเนินการหมุนวนบนข้อมูลอินพุต ซึ่งจะแยกคุณลักษณะต่างๆ ออกจากข้อมูล

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

ชั้น Convolutional ประกอบด้วยชุดตัวกรอง (หรือที่เรียกว่าเมล็ด) ที่ใช้กับข้อมูลอินพุตในรูปแบบหน้าต่างเลื่อน ตัวกรองแต่ละตัวจะแยกชุดคุณลักษณะเฉพาะจากข้อมูลอินพุตตามน้ำหนักที่เกี่ยวข้อง

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

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

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

2. การรวมเลเยอร์:

เลเยอร์นี้ดำเนินการดาวน์แซมปลิงบนฟีเจอร์แมป ซึ่งช่วยลดจำนวนการคำนวณที่จำเป็น และยังช่วยลดการใช้เกินพอดีอีกด้วย

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

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

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

3. เลเยอร์การเปิดใช้งาน:

เลเยอร์นี้เพิ่มความไม่เป็นเชิงเส้นให้กับโมเดลโดยใช้ฟังก์ชันการเปิดใช้งานแบบไม่เชิงเส้น เช่น ReLU หรือ tanh

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

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

ฟังก์ชันการเปิดใช้งานทั่วไปที่ใช้ใน CNN ได้แก่ ReLu (Rectified Linear Unit), sigmoid และ tanh ฟังก์ชันการเปิดใช้งานแต่ละฟังก์ชันมีจุดประสงค์ที่แตกต่างกันและสามารถใช้ในสถานการณ์ต่างๆ ได้

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

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

Tanh เป็นฟังก์ชันการเปิดใช้งานที่ใช้กันน้อยที่สุด ซึ่งจะส่งออกค่าระหว่าง -1 ถึง 1 สำหรับอินพุตใดก็ตาม

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

4. เลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์:

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

เลเยอร์ที่เชื่อมต่ออย่างสมบูรณ์ใน CNN คือเลเยอร์ของเซลล์ประสาทที่เชื่อมต่อกับเซลล์ประสาททุกเซลล์ในเลเยอร์ก่อนหน้าในเครือข่าย สิ่งนี้ตรงกันข้ามกับชั้น convolutional ซึ่งเซลล์ประสาทเชื่อมต่อกับชุดย่อยของเซลล์ประสาทในชั้นก่อนหน้าตามรูปแบบเฉพาะเท่านั้น

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

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

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

5. เลเยอร์เอาต์พุต:

นี่คือเลเยอร์สุดท้ายของเครือข่ายซึ่งสร้างป้ายกำกับหรือค่าเอาต์พุต

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

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

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

สุดท้าย เลเยอร์เอาต์พุตของ CNN ยังสามารถใช้เพื่อดำเนินการเทคนิคการทำให้เป็นมาตรฐาน เช่น การออกกลางคันหรือการทำให้เป็นมาตรฐานแบบกลุ่ม เพื่อปรับปรุงประสิทธิภาพของเครือข่าย

บทสรุป

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

รับชุดทักษะที่เชี่ยวชาญใน ML และ DL ด้วย upGrad

ด้วย โปรแกรมประกาศนียบัตรขั้นสูงของ upGrad ในการเรียนรู้ของเครื่องและการเรียนรู้เชิงลึก ที่นำเสนอโดย IIIT-B คุณจะได้รับความเชี่ยวชาญในการเรียนรู้ของเครื่องและการเรียนรู้เชิงลึก โปรแกรมครอบคลุมพื้นฐานของ ML และ DL รวมถึงหัวข้อต่างๆ เช่น การเรียนรู้แบบมีผู้สอนและแบบไม่มีผู้สอน การถดถอยเชิงเส้นและโลจิสติก เครือข่ายประสาทเทียม การเรียนรู้แบบเสริมแรง และการประมวลผลภาษาธรรมชาติ คุณจะได้เรียนรู้การสร้างและปรับใช้โมเดล ML และ DL ใน Python และ TensorFlow และได้รับประสบการณ์จริงจากการทำงานในโครงการในโลกแห่งความเป็นจริง

หลักสูตรนี้ยังรวมถึงสิทธิประโยชน์เช่น:

  • การให้คำปรึกษาและคำแนะนำจากผู้เชี่ยวชาญในอุตสาหกรรม
  • ความช่วยเหลือด้านการจัดหางานเพื่อช่วยคุณหางานที่เหมาะสม
  • ใบรับรองขั้นสูงจาก IIIT Bangalore

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

ไลบรารีใดใน Python ที่สามารถใช้กับ CNN ได้

ไลบรารีใน Python ที่สามารถใช้สำหรับ CNN ได้แก่ TensorFlow, Keras, PyTorch, Caffe, Theano, Scikit-learn, MxNet, CNTK, OpenCV และ SciPy ไลบรารีเหล่านี้สามารถใช้เพื่อรับโมดูลที่สร้างไว้ล่วงหน้าเพื่อสร้างแอปพลิเคชันและใช้อัลกอริทึมของ CNN ได้อย่างง่ายดาย

CNN มีกี่มิติ?

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

ฉันสามารถพัฒนา CNN ใน R ได้หรือไม่

ใช่ สามารถพัฒนา CNN ได้โดยใช้ทั้ง Python และ R ด้วย R ที่มีไลบรารีที่มีรายละเอียดสูงเป็นพิเศษ การสร้างโครงข่ายประสาทเทียมด้วย R นั้นค่อนข้างง่าย