Machine Learning(EP.10) — การจดจำตัวอักษร (Character Recognition)

KongRuksiam Studio
2 min readApr 17, 2020

--

หัวข้อนี้จะเป็นหัวข้อส่งท้ายเนื้อหา Python Machine Learning เบื้องต้น
เราจะมาตะลุยการทำระบบจดจำและทำนายผลตัวอักษรโดยใช้ Neural Network แบบ Multi-Layer Perceptron (MLP) เพื่อเรียนรู้และสร้างโมเดลสำหรับทำนายผลตัวอักษร

โครงข่ายประสาทเทียม (Neural Network) เป็นสาขาหนึ่งของปัญญาประดิษฐ์ Artificial Intelligence (AI) เป็นแนวคิดที่ออกแบบระบบโครงข่ายคอมพิวเตอร์
ให้เลียนแบบการทำงานของสมองมนุษย์ มนุษย์มีกระบวนการเรียนรู้โดยจดจำรูปแบบ คือ มนุษย์สังเกตุเห็นสิ่งของที่ไม่รู้จักเมื่อเกิดการเห็นบ่อยๆมากขึ้น เห็นในรูปแบบที่แตกต่างมากขึ้นก็จะเกิดการเรียนรู้และจดจำในสิ่งที่คล้ายๆกัน และเมื่อเห็นสิ่งนั้นอีกครั้งก็จะสามารถบอกได้ว่าสิ่งที่เห็นนี้คืออะไร

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

Neural Network แบบ Multi-Layer Perceptron (MLP)

รูปแบบของ Neural Network จะแบ่ง Perceptron ออกเป็นชั้น โดยแต่ละชั้นจะเรียกเป็น Layer โดยข้อมูลที่เข้ามาจะไหลไปในทิศทางเดียว ไม่ไหลย้อนกลับจาก Layer นึงสู่อีก Layer นึง

โครงสร้างของNeural Network แบบเพอร์เซ็ปตรอนหลายชั้น(Multi-Layer Perceptron : MLP)จะประสานการทำงานผ่านส่วนที่เรียกว่าโหนด (Node) ประกอบไปด้วย 3 ชั้นมีการเชื่อมต่อการทำงานของโหนดอย่างสมบูรณ์ (Fully-Connected) ได้แก่

  • Input Layer ชั้นนี้จะเป็นส่วนที่จัดการข้อมูล input จำนวนของโหนดขึ้นอยู่กับจำนวนของ input ว่าข้อมูลอะไรบ้างที่จะนำเข้ามาคิดในโมเดล (ใน ML เรียกส่วนนี้ว่า Feature)
  • Hidden Layer ชั้นที่อยู่ตรงกลางมีผลต่อประสิทธิภาพในการเรียนรู้ของโมเดล ซึ่งชั้นนี้จะมีกี่ชั้นก็ได้ มีจำนวนของ Neuron เท่าไหร่ก็ได้ การเพิ่มชั้นและจำนวน neuron ก็จะส่งผลต่อการทำงานของโมเดลมากๆ มีการเรียนรู้ข้อมูลในเชิงลึกเรียกว่า Deep Learning
  • Output Layer ชั้นนี้จะนำเอาข้อมูลจากการคำนวณใน Hidden Layer ไปใช้งานจำนวนของโหนดที่ส่งออกมาในชั้นนี้ขึ้นอยู่กับรูปแบบของ output ที่จะเอาไปใช้

ใช้งานร่วมกับการจดจำตัวอักษรใน MNIST Dataset

MNIST Dataset เป็น Dataset ที่เก็บข้อมูลรูปภาพขนาด 28 x 28 pixels

  • Input Layer จะมี Node คือ 28 x 28 = 784 Node
  • Hidden Layer จะคำนวนหาจำนวนโหนดที่เหมาะสมกับชุดข้อมูล
  • Output Layer คือคำตอบที่ส่งออกมาทั้งหมด 10 โหนด คือหมายเลข 0–9

ช่องทางการสนับสนุน
🎓คอร์สเรียน Udemy | 🛒ซื้อของผ่าน Shopee

🌎 ติดตามข่าวสารเพิ่มเติมได้ที่
Facebook | YouTube | TikTok

--

--

KongRuksiam Studio

🚀 เรียนรู้การเขียนโปรแกรมนอกห้องเรียน