Skip to content
TIYA AI EaseMyPhD
Menu
  • English AI
  • Thai AI
  • Call for papers
  • Ph.D opportunities
  • Contact us
Menu

Convolution Neural Network คืออะไร

Posted on August 3, 2023

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

โครงสร้างของ CNN ประกอบด้วยเลเยอร์พื้นฐานดังนี้:

  1. Convolutional Layer (เลเยอร์การคอนโวลูชัน): ใช้ในการสกัดลักษณะ (feature extraction) จากข้อมูลนำเข้าโดยใช้การทำซ้ำของตัวกรอง (filter) เพื่อหาคุณลักษณะที่เกี่ยวข้อง
  2. Activation Function Layer (เลเยอร์ฟังก์ชันการกระตุ้น): ใช้ในการเปลี่ยนค่าผลลัพธ์ของเลเยอร์คอนโวลูชันให้เป็นค่าไม่เชิงเส้น โดยที่ฟังก์ชันที่ใช้มักเป็น ReLU (Rectified Linear Unit) หรือ Leaky ReLU
  3. Pooling Layer (เลเยอร์การกระจาย): ใช้ในการลดขนาดข้อมูลที่ผ่านเลเยอร์คอนโวลูชัน โดยสกัดค่าที่สำคัญเพื่อลดขนาดของภาพและลดซับซ้อนในการคำนวณ
  4. Fully-Connected Layer (เลเยอร์การเชื่อมต่อแบบเต็ม): เป็นเลเยอร์ที่คล้ายกับโครงข่ายประสาทเทียมแบบแบบ (Feedforward Neural Network) ซึ่งใช้ในการรวมลักษณะที่สกัดได้จากเลเยอร์ก่อนหน้าและให้ผลลัพธ์ที่สอดคล้องกับเป้าหมายของการจำแนกหรือการทำนาย

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

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

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

ภาพจาก http://makeyourownneuralnetwork.blogspot.com/2020/02/calculating-output-size-of-convolutions.html

https://deepai.org/machine-learning-glossary-and-terms/stride

ในบริบทของโครงข่ายประสาทเทียมแบบคอนโวลูชัน (Convolutional Neural Networks หรือ CNNs) คำว่า “kernel” และ “filter” มักถูกใช้แลกเปลี่ยนกัน แต่จริงๆ แล้วมีความแตกต่างเล็กน้อย

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

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

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

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

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

Padding (การเพิ่มพื้นที่ว่าง) เป็นเทคนิคหนึ่งที่ใช้ในโครงข่ายประสาทเทียมแบบคอนโวลูชัน (Convolutional Neural Networks หรือ CNNs) เพื่อปรับขนาดของภาพหรือข้อมูลนำเข้าให้เหมาะสมกับการคำนวณของตัวกรอง (filter) หรือเคอร์นัลที่ใช้ในกระบวนการคอนโวลูชัน

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

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

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

ภาพจาก https://saturncloud.io/blog/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way/

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Speaker recognition and branches
  • Zero-shot learning, One-shot learning and Few-shot learning คืออะไร
  • Federated learning คืออะไร ใช้ในวงการไหนบ้าง
  • Is there any difference between large language models and pre-trained language models?
  • Convolution Neural Network คืออะไร

Recent Comments

  1. 200 keywords เกี่ยวกับ Machine Learning – Tiya AI on Machine learning คืออะไร มีกี่ประเภท
  2. A WordPress Commenter on Hello world!

Archives

  • August 2023

Categories

  • Blog
  • English AI
  • Thai AI
©2025 Tiya AI | Design: Newspaperly WordPress Theme