> For the complete documentation index, see [llms.txt](https://www.saladpuk.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.saladpuk.com/cloud/machine-learning-studio/ml101.md).

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

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

{% hint style="success" %}
**แนะนำให้อ่าน**\
บทความนี้เป็นหนึ่งในซีรี่ **Machine Learning** ดังนั้นถ้าเพื่อนสนใจของสนุกๆ เช่นการสร้าง AI เพื่อทำนายราคารถยนต์ ทำนายว่าฝนจะตกหรือไม่ และอื่นๆ สามารถดูเนื้อหาทั้งหมดได้จาก Side menu ในหมวดของ **Machine Learning Studio** ครับ ซึ่งถ้ามีบทความเกี่ยวกับ machine learning ก็จะมาลงในหมวดนี้เรื่อยๆ แต่ถ้าอยากรู้ว่า AI สำเร็จรูปของ Microsoft Azure มีอะไรน่าเล่นบ้าง ไปอ่านกันได้จากลิงค์นี้เลยครัช\
[👶 Azure Cognitive Services](https://saladpuk.gitbook.io/learn/cloud/azure-cognitive-services) เชื่อผมเต๊อะ AI ไม่ได้ยากแบบที่คิด
{% endhint %}

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

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

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

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

{% embed url="<https://studio.azureml.net>" %}
<https://studio.azureml.net>
{% endembed %}

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

![](/files/-M-i5R7Pc_01R-K8xnED)

สำหรับเพื่อนๆที่อยากลองเล่นแบบไวๆก็ [กดตรงนี้เพื่อนเข้าไปลองเล่นโดยไม่ต้องสมัครสมาชิก](https://studio.azureml.net/Home/Anonymous) ได้เลยครัช

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

![](/files/-LoQF51NtSp_tEWeiWSA)

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

![](/files/-LoQGiEtRSqF5vDPeyA0)

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

![](/files/-Lw4m_hdcUwKm47VPAQs)

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

* **กลุ่ม A** - เป็นเครื่องมือในการจัดการกับข้อมูลว่าจะให้มันทำอะไรบ้าง
* **กลุ่ม B** - เป็นหน้าที่แสดงให้เราเห็นว่าข้อมูลจะมีการวิ่งไปยังไงบ้าง
* **กลุ่ม C** - เป็นหน้ารายละเอียดของข้อมูลที่เรากำลังเลือก ซึ่งมันจะแสดงผลต่างกันไปตามของที่เลือก
* **กลุ่ม D** - เป็นเมนูในการจัดการโปรเจคที่กำลังทำงานอยู่

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

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

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

![](/files/-Ln0sIU144SPhdGm0gyg)

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

![](/files/-Lo4FD2LecYOu0PrZNEF)

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

![](/files/-LnNB_sUThnJLKcUD3dB)

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

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

![](/files/-LsoK_nB6Ho15HP7N_Xq)

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

![](/files/-Lo6IejLHYPBhyKsXEg2)

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

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

![](/files/-Lo6aqKnCmobJogTo6HH)

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

![](/files/-LsXGfNcMV27TPNn0pUI)

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

![](/files/-Lo5mt3GO4caEE85g23G)

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

![](/files/-LsorMEEovsMxDQx3eP2)

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

![](/files/-LtpMibYEQHRg2-pBtoa)

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

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

![](/files/-Lo5t2kxJ4hHmgP75uub)

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

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

![](/files/-LsZfUdRzGzLuPB2i63b)

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

![](/files/-Lqpkxh4uhf0jswo-e5O)

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

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

![](/files/-LqktPxUivEyUefA3C4Z)

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

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

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

![](/files/-LoQORodpaoa_hqX5JgQ)

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

![](/files/-LofU0FS5TCsWmp-xnt5)

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

![](/files/-LoQgH_p3sOfbjCojjzS)

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

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

![](/files/-LnHXr9_NIRCCbtn6RAS)

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

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

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

![](/files/-LrKPL-xJsuxcr5QXKq0)

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

![](/files/-LoBbx1XMkT9-WQdyUsi)

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

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

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

![](/files/-Lvsd6yXbTQ4xQ2UGsYC)

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

![](/files/-LsoSzwItjwPM9KK0IV1)

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

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

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

![](/files/-LoQhhT68xHdZoDYmiGy)

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

![](/files/-LokiMkCi7ad8Jl5dn7H)

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

![](/files/-Lpw6Mq-1kOd55GXjZIx)

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

![](/files/-LrKO-gpjVQtc19ICr4L)

![](/files/-LpK5xOzAaNcCWSKZKbm)

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

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

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

![](/files/-LwiTkQeD8C87XpSrjrY)

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

## 🎯 บทสรุป

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