มาสร้าง AI ของแท้ตัวแรกของเรากัน

สมัยนี้ AI มันง่ายจนเด็กประถมก็สามารถสร้างได้แล้วนะ

หลายคนที่เคยได้ยินว่า AI มันทำยาก ต้องเรียนจบคณิตศาสตร์ชั้นสูง ต้องนั่นนู่นนี่ บลาๆ ซึ่งที่ว่ามามันก็เป็นเรื่องจริงในสมัยก่อน แต่ในปัจจุบันเราสามารถสร้าง AI ได้เพียงแค่ลากวางแล้วนะ ซึ่งในบทความนี้เราจะมาลองสร้าง AI ที่สามารถใช้งานได้จริงกันโดยใช้สิ่งที่เรียกว่า Machine Learning Studio หรือเรียกย่อๆว่า MLS กันครับ

แนะนำให้อ่าน บทความนี้เป็นหนึ่งในซีรี่ Machine Learning ดังนั้นถ้าเพื่อนสนใจของสนุกๆ เช่นการสร้าง AI เพื่อทำนายราคารถยนต์ ทำนายว่าฝนจะตกหรือไม่ และอื่นๆ สามารถดูเนื้อหาทั้งหมดได้จาก Side menu ในหมวดของ Machine Learning Studio ครับ ซึ่งถ้ามีบทความเกี่ยวกับ machine learning ก็จะมาลงในหมวดนี้เรื่อยๆ แต่ถ้าอยากรู้ว่า AI สำเร็จรูปของ Microsoft Azure มีอะไรน่าเล่นบ้าง ไปอ่านกันได้จากลิงค์นี้เลยครัช 👶 Azure Cognitive Services เชื่อผมเต๊อะ AI ไม่ได้ยากแบบที่คิด

😗 ทำความเข้าใจกันก่อน

ในรอบนี้ผมจะสร้าง AI ให้มันบอกราคารถยนต์กับเรา เพียงแค่เราบอกขนาดเครื่องยนต์ ขับเคลื่อนกี่ล้อ บลาๆ และเมื่อทำเสร็จผมจะเอามันไปสร้างเป็น API ให้แอพอื่นๆของผมสามารถเรียกใช้งานได้ครับ

🤔 อยากสร้าง AI ต้องเริ่มยังไง ?

สำหรับการใช้งาน Machine Learning Studio นั้นง่ายมาก เพียงแค่ Login ในเว็บไซต์ด้านล่างนี้ ก็สามารถใช้งานได้เลยโดยที่ไม่ต้องติดตั้งโปรแกรมอะไรในเครื่องเลย

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

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

ซึ่งพอเข้ามาปุ๊ปนี่คือหน้าของตัว Machine Learning Studio เขาครับ ซึ่งถ้าเราเข้ามาใช้งานครั้งแรกเราจะยังไม่มี project อะไรไว้เลยเป็นหน้าโล่งๆ ดังนั้นเราจะลองสร้างโปรเจคตัวแรกกันโดยกดที่ปุ่ม NEW ด้านล่างซ้ายสุดเลย

พอกดปุ่ม new แล้วเขาก็จะเปิดรายการตัวอย่างในการสร้าง Machine Learning ขึ้นมาให้เราลองเล่นเต็มไปหมดเลย ซึ่งจากจุดนี้ก็มีหลายๆอย่างที่น่าสนใจครับ เช่น พยากรว่าเรามีโอกาสเป็นโรคหัวใจขนาดไหน ราคาหุ้นเป็นยังไง บลาๆ แต่ในรอบนี้เราจะสร้าง Machine Learning ตั้งแต่เริ่มต้นให้ ดังนั้นให้เลือกเป็น Blank Experiment ตัวแรกสุดเลยครับ

ในตอนนี้เราก็จะได้หน้าที่พร้อมในการเขียน Machine Learning ของเรากันละ ซึ่งในหน้านี้เขาจะแบ่งเป็น 4 กลุ่มตามรูปด้านล่าง

แต่ละกลุ่มคืออะไรอ่ะ ?

  • กลุ่ม A - เป็นเครื่องมือในการจัดการกับข้อมูลว่าจะให้มันทำอะไรบ้าง

  • กลุ่ม B - เป็นหน้าที่แสดงให้เราเห็นว่าข้อมูลจะมีการวิ่งไปยังไงบ้าง

  • กลุ่ม C - เป็นหน้ารายละเอียดของข้อมูลที่เรากำลังเลือก ซึ่งมันจะแสดงผลต่างกันไปตามของที่เลือก

  • กลุ่ม D - เป็นเมนูในการจัดการโปรเจคที่กำลังทำงานอยู่

พอทำมาถึงตรงนี้ เราก็พร้อมที่จะสร้าง AI ของเราเองกันแล้วครับ

🤔 แล้วจะทำให้มันทายราคารถได้ยังไง ?

จุดแรกที่เราจะต้องทำก็คือเอาข้อมูลของรถยนต์มาให้กับตัว ML กัน เจ้า Machine Learning Studio เขาก็เตรียมตัวอย่างข้อมูลไว้ให้เราลองเล่นหลายๆแบบอยู่ใน กลุ่ม A ด้านซ้ายมือ ซึ่งในรอบนี้เราจะเอาข้อมูลที่ชื่อว่า Automobile price data (Raw) มาลองเล่นดู ดังนั้นก็ให้พิมพ์ลงในช่องค้นหาว่า auto ก็จะเจอครับ แล้วก็ลากมันเข้าไปใน กลุ่ม B เลย

ถัดมาเราลองไปดูตัวอย่างข้อมูลราคารถยนต์ที่เขาเตรียมมาให้เราบ้างว่าเป็นยังไง โดยการกดที่ด้านใต้ของ Automobile price data (Raw) ในกลุ่ม B แล้วเลือก Visualize ครับ

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

โดยปรกติในเชิง Data science ถ้าเราเอาข้อมูลที่เป็นขยะเข้าไป ผลลัพท์ของเราก็จะออกมาเป็นขยะด้วย ดังนั้นก่อนที่เราจะเริ่มสร้าง AI จริงๆเราจะต้องเอาสิ่งที่เป็นขยะออกเสียก่อน ซึ่งเราเรียกขั้นตอนนี้ว่า Cleaning Data ครับ

ถัดมาเราก็จะทำการ Cleaning Data กัน โดยเลือกเครื่องมือที่ชื่อว่า Select Columns in Dataset จากเมนูด้านซ้าย แล้วลากเข้ามาเหมือนเดิมครับ

ถัดไปให้กดที่วงกลมเล็กๆใต้ Automobile price data (Raw) แล้วลากไปใส่วงกลมที่อยู่บนหัว Select Columns in Dataset ครับ เพื่อเป็นการบอกว่าจะให้ข้อมูลจากกล่อง Automobile วิ่งเข้าไปที่กล่อง Select Columns ตามรูปเลย

แล้วเมื่อทำเสร็จให้กดที่กล่อง Select Columns แล้วเมนูในกลุ่ม C ก็จะเปลี่ยนไป ให้เราเลือกคำสั่ง Launch column selector เพื่อเลือกว่าเราจะไม่เอาข้อมูลใน column ไหนนั่นเอง

ถัดมาเขาก็จะถามว่าเราจะไม่เอาข้อมูลจาก column ไหนให้เลือกตามรูปด้านล่างเลยครับ ซึ่ง column ที่เราจะไม่เอานั่นก็คือ normalized-losses เพราะมันมีข้อมูลขาดๆหายๆเยอะครับ มันจะทำให้ข้อมูลมีขยะปน

คราวนี้เราก็ลองกดเจ้าวงกลมเล็กๆใต้กล่อง Select Columns เพื่อที่จะดูผลลัพท์ดูบ่าง ซึ่งเราจะพบว่าเราไม่สามารถดูข้อมูลได้ เพราะตัว ML มันยังไม่รู้ว่าข้อมูลที่เข้ามาจริงๆมันจะเป็นยังไง ดังนั้นให้เรากดปุ่ม RUN ด้านล่าง 1 ครั้งเพื่อให้ตัว ML มันลองเอาข้อมูลวิ่งเข้ามาเล่นจริงๆซักรอบดูครับ ซึ่งพอกดแล้วต้องรับมันประมวลผลซักแป๊ปนึงก่อน ถึงจะสามารถกด Visualize ดูต่อได้

เรียบร้อยละในตอนนี้เราก็จะพร้อมดูผลลัพท์ของเรากันแล้ว อย่ารอช้ากดมันเข้าไปเลย

ในตอนนี้เราก็จะเห็นว่า column normalized-losses นั้นหายไปแล้ว แต่ถ้าเราเลื่อนๆไปดูข้อมูลอื่นก็จะพบว่าบางทีมันแหว่งๆนิดๆหน่อยเท่านั้นเอง

ซึ่งก็อย่างเคยครับ ถ้าข้อมูลมีขยะ เราก็จะได้งานที่มีขยะปนอยู่ ซึ่งจะทำให้ AI ของเราไม่แม่น ดังนั้นเราก็จะทำการเอาขยะออกด้วยการลากกล่องที่ชื่อว่า Clean Missing Data เข้ามาใส่ในกลุ่ม B แล้วลากเส้นเชื่อมต่อกันเช่นเคยครับ

และในรอบนี้เราก็จะเลือกกล่อง Clean Missing Data แล้วกำหนดว่าถ้าเจอข้อมูลที่แหว่งๆ ให้ทำการลบแถวนั้นออกไปเลยตามรูปด้านบนครับ แล้วก็ลองกด Run + Visualize ดูนะ เราก็จะพบว่าข้อมูลของเราไม่มีจุดไหนแหว่งๆละ

ในตอนนี้ข้อมูลของเราก็พร้อมเอาไปสร้าง AI ละ ดังนั้นขั้นตอนถัดไปเราก็จะเลือก Column ที่มีผลในการประคำนวณราคารถกัน ซึ่งเจ้า column พวกนั้นคือพวก ยี่ห้อ รูปร่าง จำนวนล้อ ขนาดเครื่องยนต์ บลาๆ ดังนั้นเราก็จะเอาเจ้ากล่อง Select Columns in Dataset อีกตัวเข้ามา พร้อมกับเชื่อมต่อกันเหมือนเดิม และเจ้ากล่อง select column ก็ให้กด Launch column selector เหมือนเดิมครับ

คราวนี้เราก็จะเลือกเอาเฉพาะ column ที่มีผลกับราคารถยนต์โดยเลือกตามรูปนี้เลยครับ ส่วนในช่องขวาสุดให้ copy ชื่อ columns ที่อยู่ด้านล่างเอาไปวางแล้วกด Enter ได้เลย

make, body-style, wheel-base, engine-size, horsepower, peak-rpm, highway-mpg, price

หลังจากที่เลือก columns ที่มีผลต่อราคารถยนต์แล้ว ถัดไปเราก็จะทำการแบ่งข้อมูลออกเป็น 2 ส่วน โดยส่วนที่หนึ่งเราจะเอาไปให้ AI มันวิเคราะห์เพื่อสร้างสิ่งที่เรียกว่า model ออกมา แล้วข้อมูลส่วนที่สองเราจะเอามาทดสอบว่าเจ้า model ที่ AI ได้มานั้นมีความแม่นยำขนาดไหนนั่นเอง โดยการลากกล่องที่ชื่อว่า Split Data เข้ามาแล้วลากเส้นเชื่อมโยงให้เรียบร้อย

หลังจากที่เอากล่อง Split Data เข้ามาแล้ว ถัดไปเราก็จะกำหนดว่าจะทำการแบ่งข้อมูลให้ส่วนที่ 1 กับ 2 กี่เปอร์เซ็นต์ ซึ่งผมจะแบ่งให้ส่วนที่ 1 ที่จะเอาไปสร้าง model 70% ดังนั้นเราก็จะใส่ในช่อง Fraction เป็น 0.7 ตามรูปด้านบนครับ

คราวนี้ก็มาถึงส่วนที่สำคัญของเราแล้วนั่นก็คือการเอาข้อมูลไปสร้าง model ซึ่งเจ้า model นี้แหละคือตัวที่จะบอกว่า AI เราเก่งขนาดไหน โดยเราจะลากกล่องที่ชื่อว่า Train Model เข้าใส่ครับ ซึ่งเจ้ากล่องตัวนี้มันจะรับของได้ 2 อย่างตามรูปเลย

โดยช่องรับของด้านซ้ายจะเป็น Algorithms ที่เราจะเอามาใช้สร้าง model ส่วนช่องรับของด้านขวาคือข้อมูลที่เราจะเอามาให้มันเอาไปสร้าง model

จากที่ว่ามาเราก็จะลากเส้นจากกล่อง Split Data มาใส่ช่องรับของด้านขวาของกล่อง Train Model ครับ

ส่วน Algorithms ที่เราจะใช้ในรอบนี้ ให้เราลากกล่อง Linear Regression เข้ามาแล้วลากเส้นไปใส่ช่องรับด้านซ้ายของกล่อง Train Model ตามรูปนี้เลยครับ

ถัดมาเราก็จะบอก AI ว่าเราจะให้มันทำนายข้อมูลอะไร โดยการเลือกที่ Train Model แล้วเลือก Launch Columns Selector ตามรูปครับ

ถัดมาเราก็จะเลือกว่าเราจะให้ AI มันทำนายข้อมูลของ column ราคา ตามรูปครับ

เพียงเท่านี้มันก็จะสามารถสร้าง Model ออกมาได้ละ

ในขั้นตอนถัดไปเราก็จะลองทดสอบว่าเจ้า model ที่มันสร้างออกมานั้นมีความแม่นยำขนาดไหน ดังนั้นเราก็จะลากกล่องที่ชื่อว่า Score Model เข้ามาครับ

ซึ่งเจ้า Score Model ก็จะมีช่องรับของ 2 อันเหมือนกัน เพราะมันจะได้สามารถเปรียบเทียบได้ว่า ผลลัพท์จากที่ AI ทำการทำนายมา กับ ผลลัพท์ที่เรารู้อยู่แล้วมันแม่นยำขนาดไหนนั่นเอง

ดังนั้นเราก็จะลากผลลัพท์ที่ AI มันทำนายมาจาก Train Model ลากไปใส่ช่องซ้ายของ Score Model

และเราก็จะเอาผลลัพท์ของราคารถยนต์ที่เรารู้คำตอบอยู่แล้วจาก Split Data ลากเข้าไปใส่ในช่องขวาของ Score Model ตามรูปครับ

คราวนี้เราก็จะลองดูว่ามันทำนายราคารถเป็นยังไงบ้าง โดยการลองกด Visualize ที่กล่อง Score Model ดูครับ (ถ้ากดไม่ได้ให้กด Run ก่อนซักทีแล้วลองดูใหม่นะ) ซึ่ผลลัพท์ก็จะได้ออกมาตามรูปด้านล่าง

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

🤔 แล้วเราจะรู้ได้ยังไงว่า AI มันแม่นยำขนาดไหน

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

คราวนี้เราก็จะลองกด Visualize ของเจ้ากล่อง Evaluate Model เพื่อดูผลลัพท์กันครับ (อย่าลืมกด Run ก่อนนะ) ซึ่งก็จะได้ผลลัพท์ตามด้านล่างนี้เลย

จากภาพด้านบนเราก็จะเห็นว่าตัว model ที่เราได้นั้น มีความแม่นยำ 91% ครับผม (เย่) ดังนั้นถ้าเราลองส่งข้อมูลรถยนต์เข้าไปให้ AI ตัวนี้ของเรา เขาก็จะสามารถคาดเดาราคารถยนต์ออกมาได้ใกล้เคียงกับความเป็นจริง 91% เลยทีเดียวนั่นเอง

🤔 อยากเอา AI ที่สร้างไปใช้งานทำไง ?

ถ้าเราได้ AI ที่มีความแม่นยำตามที่เราพอใจแล้ว แต่คราวนี้อยากเอาไปให้แอพของเราหรือคนอื่นเรียกใช้งานได้บ้าง เราก็สามารถกดที่เมนูในกลุ่ม D ได้เลย โดยเลือก SET UP WEB SERVICE แล้วเลือก Predictive Web Service แล้วก็รอสักครู่ครับ

ในขั้นตอนนี้ถ้าใครใช้ Machine Learning Studio โดยไม่ได้ Login จะทำไม่ได้นะครับ จะต้อง Login ให้เรียบร้อยเสียก่อน

ซึ่งถ้าทำเสร็จเรียบร้อยแล้วเขาจะให้เรากด RUN อีกครั้งนึง แล้วถึงจะกด DEPLOY WEB SERVICE ได้ครับ

พอกด deploy เสร็จเราก็จะเจอกับหน้ารายละเอียดต่างๆของตัว API เรา ซึ่งเราสามารถกดดาวโหลดดูข้อมูล AccessKey และ Endpoint ในการเรียกใช้ REST API ครับ

ดังนั้นจากตรงนี้เราก็สามารถที่จะเรียกใช้งานตัว AI ของเราจากที่ไหนบนโลกและจากแอพอะไรก็ได้ผ่าน REST API นั่นเองครับ

🤔 ถ้าไม่รู้เรื่อง Algorithms เลยแล้วจะสร้าง AI ได้ไหม ?

พูดง่ายๆคือไม่มีความรู้ทางด้านสถิติหรือ Data science เลยแล้วจะทำ AI ยังไงดี ในจุดนี้ทาง Microsoft เขาแนะนำง่ายๆว่าให้ลองไล่ต่ำรูปด้านล่างนี้ดู เราก็จะพอรู้แล้วว่าเราควรเลือก algorithms ไหนดี ซึ่งคนที่เรียน data science สายตรงมาเขาก็จะเลือกของพวกนี้ได้เร็วกว่าเราเฉยๆ (ไม่นับเรื่องหลักการคิดต่างๆนะ จุ๊ฟๆ) และสุดท้ายของที่เราทำมาก็ต้องเอาไปตรวจสอบความแม่นยำอยู่ดี ดังนั้นเลือกๆไปเถอะอย่างมากก็เลือกผิดก็เปลี่ยนตัวใหม่ไปเรื่อยๆเดี๋ยวก็เจอตัวที่ถูกเอง ฮ่าๆ

การเลือก Algorithms เว็บไซต์แนะนำหลักการเลือกใช้ algorithms และการทำงานกับ ML สามารถดูได้จากลิงค์นี้เลยครับ https://docs.microsoft.com/en-us/azure/machine-learning/studio/algorithm-cheat-sheet

🎯 บทสรุป

เหมือนว่ามันจะยาวมาก แต่เชื่อมไหว่าถ้าทำจนเข้าใจจริงๆแล้วนั่งจิ้มไม่ถึง 3 นาทีเลยทั้งหมดนั่น แต่ถ้าให้เราไปเขียนโค้ดเพื่อสร้าง AI ให้มันออกมาทำงานได้แบบนี้แล้วล่ะก็ผมคิดว่าอย่างต่ำก็ใช้เป็นหลัก ชั่วโมงเป็นแน่ ซึ่งตัว tools ต่างๆใน Machine Learning Studio นั้นเขาอัดมาเพียบ