CNN คืออะไร . . .

PasuJ
4 min readNov 24, 2019

--

ยินดีที่ได้รู้จัก CNN (Convolutional Neural Network)

สวัสดีท่านผู้อ่านทุกท่านที่ได้หลงเข้ามาอ่านนะฮะ :D

ในส่วนของบทความนี้จะมาเล่าถึงเรื่องของเจ้า CNN แบบพยายามเข้าใจง่าย (มั้ง)

เริ่มเลยละกัน Let’s gooooo ~~~

ก่อนจะไปรู้จัก CNN แวะมาทำความรู้จักแบบพบสังเขปกับสิ่งเหล่านี้กันก่อน ก็คือ . . .

Artificial Intelligence > Machine Learning> Deep Learning

Source: https://thomaswdinsmore.com/2016/10/13/machine-learning-roundup-10142016/ai-vs-ml/

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

Artificial Intelligence (AI) — การนำความฉลาดของมนุษย์ไปใช้กับเครื่องจักร

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

Machine Learning (ML) — การสร้างกระบวนการคิดให้กับเครื่องจักร

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

โดยมีเทคนิคในการสอนคอมพิวเตอร์มากมาย เช่น Supervised Learning, Unsupervised Learning, Reinforcement Learning หรือ Artificial Neuron Networks เป็นต้น รวมไปถึง “Deep Learning”

Deep Learning (DL) — เทคนิคการสร้างกระบวนการคิดที่จะนำไปใช้กับเครื่องจักร

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

พักชมงานศิลป์สักครู่

ตัวอย่างของโครงข่ายประสาทที่เชื่อมต่อกัน

หลังจากรู้จัก AI > ML > DL กันมาแล้ว

ต่อไปเราจะไปทำความรู้จักกับกระบวนการคิดรูปแบบหนึ่งของ “Deep Learning

ตามข้าพเจ้ามา . . .

Convolutional Neural Network Architecture

Convolutional Neural Network คืออะไร

Convolutional Neural Network (CNN) หรือโครงข่ายประสาทแบบคอนโวลูชัน~ จัดเป็น “Deep learning” ประเภทหนึ่ง (เพราะมันมีหลาย layer เหตุผลที่เรียกว่า deep มีแค่นั้นแหละฮะ)

Source: https://verneglobal.com/news/blog/deep-learning-at-scale

CNN เก่งในการแก้ปัญหาด้าน Classification (การจำแนกประเภท) ที่เป็นรูปภาพ

แต่ทั้งนี้ทั้งนั้นมนุษย์ก็ยังต้องเป็นผู้ออกแบบ architecture ของ Neural Network (NN)ในการแก้ปัญหาใดปัญหาหนึ่งนั้นอยู่ดี(Feature & Layer)

CNN จะจำลองการมองเห็นของมนุษย์ที่มองพื้นที่เป็นที่ย่อยๆ และนำกลุ่มของพื้นที่ย่อยๆมาผสานกัน เพื่อดูว่าสิ่งที่เห็นอยู่คืออะไร . . . ดูต่อด้านล่างเพื่อความไม่งง 5555

กรอบสีเหลืองแทนตำแหน่งการโฟกัสที่เรามองอยู่ อาจบอกได้ว่าในภาพนี้มี “คน” อยู่

แยกคุณลักษณะของสิ่งที่มองอยู่ (Feature Extraction)

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

Hidden Layer อันแสนลึกลับ

เป็นส่วนที่สอน “Model” ให้เรียนรู้ และ ทำการแยกคุณลักษณะของข้อมูล (Feature Extraction)

เช่น แยกลักษณะเฉพาะของรูปเพื่อหาประเภทของรถ

ภายในของ Hidden Layers

และนี่คือภายในของ Hidden Layer (เชิญรับชมงานศิลป์ได้)

Convolution Layer จะเริ่มจาก Input to Layer ไปสู่ Convolution Stage และเริ่มจะบวนการต่างๆ

จากรูปด้านบนนี้ เราจะพูดถึงในส่วนของ Convolution Layer

ซึ่งแบ่งเป็น 3 ส่วนหลักๆ ด้วยกัน คือ

1. Convolution state

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

สมมุติว่าถ้าเราต้องการหาเส้นตรงทะแยงสีขาว ตัวกรองของเราอาจจะอยู่ในลักษณะนี้

ตัวกรอง 3x3 สำหรับหาเส้นตรงทะแยงสีขาว

ตำแหน่งสีฟ้าคือ Anchor มีหน้าที่วิ่งเอาตัวเองไปทาบกับพิกเซลบนภาพทีละส่วน และเลื่อนไปในส่วนของพิกเซลต่อไปเรื่อยๆจนครบภาพ และสิ่งที่เราได้นั้นจะเป็นสิ่งที่เรียกว่า ผังคุณลักษณะ (feature map)

ซ้าย: filter เลื่อนไปบน input. ขวา: ผลลัพธ์การคำนวณซึ่งออกมาเป็น Feature map. Source: https://towardsdatascience.com/applied-deep-learning-part-4-convolutional-neural-networks-584bc134c1e2

Stride เป็นตัวกำหนดว่าเราจะเลื่อนตัวกรอง (filter) ไปด้วย Step เท่าไร (ตัวอย่างด้านล่างกำหนด Stride เท่ากับ 1)

Source: https://towardsdatascience.com/applied-deep-learning-part-4-convolutional-neural-networks-584bc134c1e2

2. Detector stage

คือ ส่วนที่รับoutput มาจาก ข้อที่ 1 และแปลงให้อยู่ในรูปของ “nonlinear” และเป็นส่วนที่ต้องระบุ “อัลกอริทึ่ม” (Activation) ที่จะใช้ในการจำแนกคุณลักษณะของข้อมูล

เช่น Rectified Linear Units (ReLU) เป็นต้น

3. Pooling stage

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

Source: https://towardsdatascience.com/applied-deep-learning-part-4-convolutional-neural-networks-584bc134c1e2

ขอเพิ่มเติมในส่วนของ Max Pooling อีกนิ้ดนึง

ตัวกรอง 3x3 สำหรับหาเส้นตรงทะแยงสีขาว

ในบางครั้งเราต้องการตัวกรองหลายขนาดเพราะขนาดรูปที่ใส่เข้ามาทาง Input มีขนาดที่หลากหลาย

รูปภาพที่มีขนาดหลากหลาย

คนเราจำแนกสิ่งต่างๆโดยอาศัยทั้งการดูที่รายละเอียดเล็ก ๆ และ การดูแบบคร่าวๆ บนพื้นที่ใหญ่ เช่น

Source: https://ew.com/movies/2019/04/24/avengers-chris-hemsworth-thor/

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

https://www.business-standard.com/article/international/avengers-endgame-displaces-avatar-to-become-highest-grossing-film-119072200039_1.html

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

จากปัญหาเหล่านี้เราสามารถแก้ไขได้ด้วยเจ้า

Pooling ที่มีความสามารถในการย่อรูปแบบหนึ่ง แต่ยังคงคุณลักษณะเด่นของข้อมูลไว้ได้

ซึ่งมีสองประเภทหลักๆ ที่นิยมกันคือ max pooling และ mean pooling

สรุปแบบสั้นๆ (มั้ง)

  1. AI ก็เหมือนกับร่างกาย ที่ประกอบไปด้วยสติปัญญา การใช้เหตุผล ความรู้สึก ทักษะความคิดสร้างสรรค์ อวัยวะรับสัมผัส เช่น ตา หู จมูก ลิ้น ผิว หนัง เป็นต้น ประกอบขึ้นเป็นหน่วยเดียว เช่นเดียวกับมนุษย์สามารถทำได้หรือทำได้เหนือกว่า
  2. ML เปรียบเหมือนระบบๆหนึ่ง ที่ทำหน้าที่ในร่างกายโดยเฉพาะ เช่น ระบบการมองเห็น ที่สามารถทำการรับรู้ด้วยการเห็นและทำให้เกิดการตอบสนองเนื่องด้วยข้อมูลทางตา เป็นต้น
  3. DL เปรียบเหมือนการสร้างการรับรู้โดยการส่งผ่านเซลประสาทต่างๆในร่างกายที่ส่งกันเป็นทอดๆและเลือกใช้เซลล์ตามความเหมาะสมของการรับรู้นั้นๆ เพื่อให้ได้ผลลัพธ์ที่ถูกต้อง
  4. CNN คือ จะจำลองการมองเห็นของมนุษย์ที่มองพื้นที่เป็นที่ย่อยๆ และนำกลุ่มของพื้นที่ย่อยๆมาผสานกัน เพื่อดูว่าสิ่งที่เห็นอยู่เป็นอะไรกันแน่

สุดท้ายนี้. . .

มาถึงส่วนนี้ คาดว่าน่าจะพอรู้จัก AI, ML และ DL เบื้องต้นกันแล้ว รวมถึง Concept การทำงานของ CNN ก็จบลงเพียงเท่านี้นะครับ หากผิดพลาดประการใด หรือผิดพลาดตรงส่วนไหนก็ติชมไว้ได้เลยนะครับ สำหรับวันนี้ . .สวัสดีครับ /\

Reference

  1. Deep Learning with Python by Francois Chollet
  2. https://towardsdatascience.com/applied-deep-learning-part-4-convolutional-neural-networks-584bc134c1e2
  3. Pinyo Taeprasartsit, Research Tools class, Silpakorn University
  4. https://medium.com/@thebear19/neural-network-101-cnn-with-tensorflow-fd5d515e979b
  5. https://cs231n.github.io/convolutional-networks/
  6. https://medium.com/@thebear19/neural-network-101-cnn-with-tensorflow-fd5d515e979b
  7. https://medium.com/@athivvat/artificial-intelligence-machine-learning-%E0%B9%81%E0%B8%A5%E0%B8%B0-deep-learning-%E0%B9%81%E0%B8%95%E0%B8%81%E0%B8%95%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B8%81%E0%B8%B1%E0%B8%99%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%84%E0%B8%A3-68a8aa6f56f0

--

--

PasuJ
PasuJ

Written by PasuJ

Developer X Data Analytics

No responses yet