วิถีการได้มาของ AI ด้วย Keras , TensorFlow and PyTorch

chengz
3 min readSep 7, 2019

--

ในการที่เราจะพัฒนา Model แบบจำลองที่ช่วยในการทำนาย ได้นั้น สามารถทำได้โดยใช้ Keras หรือ TensorFlow ซึ่งเป็น deep-learning library ที่เรานำมาใช้พัฒนา

https://www.quora.com

Tensorflow คือ Programming Platform ที่ทาง Google พัฒนาขึ้นด้วยตนเองมีประสิทธิภาพสูง รวมทั้งคุณภาพของเอกสารการใช้งานต่างๆ ที่เพียบพร้อม

อย่างไรก็ดี การใช้งาน Tensorflow นั้นค่อนข้างซับซ้อนและต้องอาศัยเวลาในการเรียนรู้พอสมควร ในเวลาต่อมา Francois Chollet ซึ่งก็เป็นนักวิจัยที่ Google Lab จึงได้คิดพัฒนา platform ใหม่ที่เรียกว่า Keras ขึ้นมาเพื่อเอาไว้เรียกใช้งาน Tensorflow ในเบื้องหลังและให้พวกเราเขียนโปรแกรมผ่าน Keras ได้โดยแทบจะไม่ต้องยุ่งกับ Tensorflow อนึ่ง ปัจจุบัน Google ประกาศสนับสนุน Keras อย่างเป็นทางการทำให้ Keras จะพัฒนาควบคู่ไปพร้อมกับ Tensorflow ทำให้ผู้ใช้ไม่ต้องกลัวว่าจะล้าสมัย

Pytorch นั้นก็เป็นอีกทางเลือกนึงที่ใช้พัฒนาด้าน AI โดยทางฝั่งของ Pytorch ถูกพัฒนาขึ้นโดย facebook เทียบกับ tensorflow แล้ว pytorch มีลักษณะที่ค่อนข้างสำเร็จรูป ใช้งานง่ายกว่ามาก จึงเหมาะสำหรับผู้ที่ฝึกหัดใหม่มากกว่า แต่ก็จะไม่ได้สำเร็จรูปเท่า keras ยังปรับแต่งอะไรได้อิสระกว่า

ในครั้งนี้จะเป็นการนำ Keras และ Pytorch มาใช้สร้างโมเดลที่จะทำนาย อุณหภูมิสูงสุด จาก อุณหภูมิต่ำสุด โดยวิธีคิดแบบ regression ซึ่งค่าที่ออกมาจะเป็นทศนิยม

ตัวอย่างชุดข้อมูล Weather

โดยเราจะทำ Data Preprocessing เพื่อที่จะนำข้อมูลที่เรามีใส่เข้าไปใน model

โดยครั้งนี้ข้อมูลจะถูกแบ่งเป็น 2 ส่วนคือ

1 ข้อมูลที่ใช้ในการเทรน 80%

2 ข้อมูลที่ใช้ในการทดสอบ 20%

จากนั้นทำการ เทรน model ของเราจากข้อมูลที่เราใส่เข้าไป ได้เป็น Model ที่เราจะนำมา Predict

Keras

ค่าจริง และ ค่าที่ทำนายได้จาก Keras

Model (สมการเส้นตรง)

เห็นได้ว่าค่าที่ได้ใกล้เคียงกับค่าจริงในระดับนึง

Pytorch

สร้าง Model สำหรับ เทรนมาก่อน

เทรนข้อมูล

ค่าที่ได้ และ ค่าที่ทำนายได้ด้วย Pytorch

เห็นได้ว่าค่าที่ทำนายออกมานั้นยังไม่ใกล้เคียงกับค่าจริงในบางกรณี เราสามารถพัฒนา model ของเราเพื่อเพิ่มความแม่นยำ ในครั้งนี้จะเป็นการเพิ่มค่า Learning Rate ( lr ) โดยครั้งแรก lr = 0.0001 ได้ค่า MSE ( Mean Square Error ค่าเฉลี่ยของความคลาดเคลื่อนยกกำลังสอง ) ประมาณ 73

แต่ในครั้งที่ 2 เราทำการปรับค่า lr = 0.001

จากการปรับค่า lr ทำให้ model มีความแม่นยำเพิ่มมากขึ้น ค่า MSE ลดลงมาเหลือ30

ทั้งนี้สามารถเพิ่มจำนวนรอบการเทรนเพื่อให้ค่า loss ลดลง ซึ่งส่งผลต่อประสิทธิภาพในการทำนายให้ดียิ่งขึ้น

สุดท้ายนี้ เราสามารถศึกษาเพิ่มเติมได้ทั้ง Keras และ Pytorch สำหรับการทำ Deep Learning

ขอบคุณที่เข้ามาอ่านนะครับ

ส่วนหนึ่งของวิชา AI-CPSU

--

--