การจำแนกตัวเลขด้วยลายมือนั้นเป็นปัญหาสุดเบสิคขอการทำ Machine Learning อยู่แล้วซึ่งสามาถแก้ไขได้หลายวิธีมากๆ แต่ในหลากหลายวิธีในการแก้ไขปัญหานี้เราจะใช้ TensorFlow (tf.keras) ซึ่งเป็นการใช้อัลกอริทึม Linear Classifier
Linear Classifier คืออะไร? ตอบได้ว่ามันคือ อัลกอริธึมที่แยกวัตถุทั้งสองประเภทออกจากกันโดยใช้เส้น และ Hyperplane
Hyperplane คือ พื้นที่ขนาดย่อยที่จะเล็กกว่ามิตินั้น 1 มิติ สมมติเป็น 2 มิติ hyperplane จะมี 1 มิติหรือเส้นตรงก็ได้ ในสามมิติ hyperplane ก็จะมี 2 มิติ โดยมันคือตัวแบ่งพื้นที่ให้แบ่งออกเป็นสองซีก
ขั้นตอนการทำ
ขั้นตอนที่ 1 import library ที่ต้องใช้เข้ามา
ขั้นตอนที่ 2 น้ำเข้าข้อมูลที่ต้องการใช้เข้ามาโดยนำเข้ามาจาก library TensorFlow keras ซึ่งเป็น Api online เข้ามา
อันนี้คือการนำเข้าข้อมูลมากจากตัว TensorFlow keras
ต่อมาคือการปรับpixel ของรูปที่นำข้อมูลเข้ามา ให้อยู่ในขอบเขตของ 0 ถึง 1 โดยนำมาหารกับ 255 ซึ่งเป็นเลขที่สูงสุดของค่าสี(สีขาว)
จากนั้นทำการแปลงข้อมูลของตัวข้อมูลตัวเลขให้การเป็น array โดยนำเข้าข้อมูลมาแค่ 1 หมื่นตัวแรกเท่านั้น
ขั้นตอนที่ 3 กำหนดตัวข้อมูลสูงสุดที่นำเข้ามา และ แบ่งตัวข้อมูลเป็นสองแบบเป็นรูปและตัวหนังสือ
ขั้นตอนที่ 4 Train ตัว Model AI ของเราให้อ่านตัวเลขที่เป็นตัวเขียนออก
ขั้นตอนที่ 5 มาเช็คความแม่นยำของ model
ซึ่งมีความแม่นยำถึง
ขั้นตอนสุดท้ายมาลองเล่นตัว AI กันดีกว่า
เราจะ Display รูปเพือทำนายด้วยคำสั่งนี้
ใช้งานด้วยการใส่ตัวเลขเข้าไปป
จะออกเป็นแบบนี้
ทีนี้มาลองทำนายกันซึ่งโค้ดเป็นปบบนี้
จากโค้ด เราจะนำข้อมูลรูปเข้ามาซึ่งเป็นตัวแปร array โดยให้ใส่เลขตรงนี้
ทีนี้เราจะมาเทียบกับเฉลยซึ่งคือตัวนี้
ถ้ามันถูก จะoutput ข้อมูลแบบนี้
ตัวอย่างเพิ่มเติม
สรุปผล
จากที่ทำมาแล้วข้อมูลมีความแม่นยำเป็นอย่างมากแต่อาจจะเนื่องจากเป็นโจทย์ที่ง่ายซึ่งการเขียนมีความชัดเจนซึ่งอาจจะลองเขียนลายมือให้อ่านยากมากขึ้นเพื่อทดสอบ model ให้มีความซับซ้อนและเก่งมากขึ้นยิ่งกว่านี้ไปอีก
อ้างอิง
1.https://www.geeksforgeeks.org/python-classifying-handwritten-digits-with-tensorflow/?ref=lbp
2.https://deepai.org/machine-learning-glossary-and-terms/hyperplane
Top comments (0)