Machine Learning(EP.10) — การจดจำตัวอักษร (Character Recognition)
หัวข้อนี้จะเป็นหัวข้อส่งท้ายเนื้อหา 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
บทความที่เกี่ยวข้อง
EP.1 — ชุดข้อมูล (DataSet)
EP.2 — รู้จักกับข้อมูลชุดเรียนรู้และข้อมูลชุดทดสอบ
EP.3 — Linear Regression
EP.4 — Binary Classifier
EP.5 — K-nearest Neighbors
EP.6 — Naive Bayes
EP.7 — การวิเคราะห์องค์ประกอบหลัก (PCA)
EP.8 — การจัดกลุ่มด้วย K-Means(K-Means Clustering)
EP.9 — การจดจำใบหน้า (Face Recognition)
EP.10 — การจดจำตัวอักษร (Character Recognition)