# การเลือก Algorithms ให้ AI (1/5)

โดยปรกติก่อนที่เราจะเขียน AI ได้ เราจะต้องตั้งโจทย์ก่อนว่า **เราอยากจะแก้ปัญหาเรื่องอะไร?** ซึ่งเชื่อไหมว่าปัญหาทุกปัญหาในวงการนี้มันถูกแบ่งออกเป็นแค่ 5 กลุ่มเท่านั้นเอง ดังนั้นหลักการในการเลือก **Algorithm** นั้นก็แสนจะง่าย เพียงแค่เราดูว่าปัญหาของเรามันไปตรงกับกลุ่มไหน เราก็จะเลือก Algorithms จากกลุ่มนั้นมาลองใช้ แล้วเอาผลลัพท์ที่ดีที่สุดมาใช้เพียงเท่านี้เอง ดังนั้นในรอบนี้เราจะมาทำความเข้าใจ**ปัญหาทั้ง 5 กลุ่มของวงการ AI** กันครัช

{% hint style="success" %}
**แนะนำให้อ่าน**\
บทความนี้เป็นส่วนหนึ่งของบทความ [**👶 Data Scientist**](https://saladpuk.gitbook.io/learn/basic/data-scientist) หากเพื่อนๆสนใจอยากรู้หลักการของพวก Data science ทั้งหมดแนะนำให้ไปอ่านบทความหลักได้โดยการจิ้มชื่อสีฟ้าๆนั้นเลยนะครับ ส่วนใครที่อยากลองสร้าง AI เป็นของตัวเองก็สามารถดูตัวอย่างได้จากบทความด้านล่างนี้ครับ\
[**สร้าง AI ตัดสินใจอนุมัติบัตรเครดิต 💳**](https://saladpuk.gitbook.io/learn/cloud/machine-learning-studio/credit-risk)\*\*\*\*
{% endhint %}

## 🔥 ถามหาคำตอบเป็น A หรือ B

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LtpUJKIQ8IPeApBjaS-%2Fimage.png?generation=1583529173205491\&alt=media)

เวลาที่เราต้องการจะสร้าง AI ที่ต้องตอบ**คำถามที่มีคำตอบเพียง 2 คำตอบ** เช่น เป็นหมาหรือแมว, ชอบหรือไม่ชอบ, เป็นเพศชายหรือเพศหญิง ไรงี้ และรวมถึง**คำถามที่มีคำตอบมากกว่า 2 คำตอบ**ด้วย เช่น หน้าตาดีหรือหน้าตาธรรมดาหรือหน้าตาขี้เหร่, เป็น A หรือ B หรือ C หรือ D ... Z บลาๆ ซึ่งถ้าเราเจอโจทย์ที่ถามลักษณะนี้ แสดงว่าเราต้องเลือกใช้ Algorithm ในหมวดที่ชื่อว่า **`Classification`** นั่นเอง

{% hint style="info" %}
**คำถามที่มีคำตอบเพียง 2 ข้อ**\
จะอยู่ในหมวด **Classification** และมีกลุ่มย่อยเป็นตระกูล **Two-class classification**
{% endhint %}

เราลองไปดูกลุ่มของ **Two-class classification algorithms** กันบ้างนะว่ามีอะไรให้เล่นบ้าง ซึ่งให้ไล่จากกจุดเหลืองๆว่าโจทย์ของเราตรงกับลักษณะไหน ก็ให้เลือกใช้ algorithm ตัวนั้นได้เลย

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LpTgoEx285i2B-mD4N6%2Fimage.png?generation=1583529096327423\&alt=media)

{% hint style="info" %}
**คำถามที่มีคำตอบมากกว่า 2 ข้อ**\
จะอยู่ในหมวด **Classification** และมีกลุ่มย่อยเป็นตระกูล **Multi-class classification**
{% endhint %}

เราลองไปดูกลุ่ม **Multi-class classification algorithms** กันบ้างนะว่ามีอะไรให้เล่นบ้าง ซึ่งให้ไล่จากกจุดเหลืองๆว่าโจทย์ของเราตรงกับลักษณะไหน ก็ให้เลือกใช้ algorithm ตัวนั้นได้เลย

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LnPjOt4jRkzAOoIsSi7%2Fimage.png?generation=1583529169598665\&alt=media)

## 🔥 ถามหาของที่ผิดปรกติ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-Lughnki8debCMsSWNQP%2Fimage.png?generation=1583529178593000\&alt=media)

เวลาที่เราต้องการจะสร้าง AI ที่ต้องหาว่ามันมีของที่ผิดปรกติอยู่ในนั้นหรือเปล่า เช่น การใช้จ่ายเงินมีอะไรผิดแปลกไปหรือเปล่า, มีการโกงบัญชีเกิดขึ้นหรือเปล่า, เซ็นเซอร์ต่างๆยังทำงานเป็นปรกติดีหรือเปล่า บลาๆ ซึ่งถ้าเราเจอโจทย์ที่ถามลักษณะนี้ แสดงว่าเราต้องเลือกใช้ Algorithm ในหมวดที่ชื่อว่า **`Anomaly detection`** นั่นเอง

เราลองไปดูกลุ่ม **Anomaly detection** กันบ้างนะว่ามีอะไรให้เล่นบ้าง ซึ่งให้ไล่จากกจุดเหลืองๆว่าโจทย์ของเราตรงกับลักษณะไหน ก็ให้เลือกใช้ algorithm ตัวนั้นได้เลย

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LnICumrIIPf6PNOki83%2Fimage.png?generation=1583529173040061\&alt=media)

## 🔥 ถามหาตัวเลข

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LoASaD54bIJsD8TRk0y%2Fimage.png?generation=1583529148821431\&alt=media)

เวลาที่เราต้องการจะสร้าง AI ที่ต้องหาคำตอบเป็นตัวเลข เช่น อุณหภูมิพรุ่งนี้จะเป็นยังไง, หุ้นมีโอกาสจะขึ้นกี่เปอร์เซ็นต์, ราคาควรจะเป็นเท่าไหร่ บลาๆ ซึ่งถ้าเราเจอโจทย์ที่ถามลักษณะนี้ แสดงว่าเราต้องเลือกใช้ Algorithm ในหมวดที่ชื่อว่า **`Regression`** นั่นเอง

เราลองไปดูกลุ่ม **Regression** กันบ้างนะว่ามีอะไรให้เล่นบ้าง ซึ่งให้ไล่จากกจุดเหลืองๆว่าโจทย์ของเราตรงกับลักษณะไหน ก็ให้เลือกใช้ algorithm ตัวนั้นได้เลย

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-Lv9LT5Pdkjx2DveYOso%2Fimage.png?generation=1583529145762862\&alt=media)

## 🔥 ถามหาว่ามันอยู่กลุ่มไหน

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LsX8ZNltRBQDSU5xl3j%2Fimage.png?generation=1583529147858146\&alt=media)

เวลาที่เราต้องการจะสร้าง AI ที่ต้องหาว่าของพวกนั้นมันควรจะจัดไว้กลุ่มไหน เช่น เป็นหนังแนวไหน, อาการป่วยแบบนี้อยู่ในระยะไหน, สัตว์แบบนี้อยู่ในตระกูลไหน โดยในบางครั้งเราอาจจะไม่รู้ด้วยซ้ำว่ามันจะมีกลุ่มอะไรบ้าง แล้วเราอยากให้คอม AI แบ่งกลุ่มออกมาให้ก็รวมอยู่ในนี้ด้วย ซึ่งถ้าเราเจอโจทย์ที่ถามลักษณะนี้ แสดงว่าเราต้องเลือกใช้ Algorithm ในหมวดที่ชื่อว่า **`Clustering`** นั่นเอง

เราลองไปดูกลุ่ม **Clustering** กันบ้างนะว่ามีอะไรให้เล่นบ้าง (มีอยู่อันเดียว)

![เหงาจุง](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-LtrtO5dFJcYf33dOGvS%2Fimage.png?generation=1583529166617222\&alt=media)

## 🔥 ถามว่าต้องตัดสินใจทำอะไรต่อ

![](https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-M1lfqlFTvI3gmheTI_q%2F-M0i2TjsnBleF-9GrXly%2Fimage.png?generation=1583529171580752\&alt=media)

เวลาที่เราต้องการจะสร้าง AI ที่ต้องหาว่าถ้าเราได้ผลลัพท์ออกมาแบบนี้ แล้วเราจะต้องทำอะไรต่อดี เช่น รถกำลังวิ่งด้วยความเร็วเท่านี้แล้วเห็นทางเลี้ยวควรทำอะไรต่อดี, น้ำขึ้นถึงระดับนี้แล้วควรทำอะไรต่อดี, ไม่มีคนอยู่บ้านแล้วควรทำอะไรต่อดี บลาๆ ซึ่งถ้าเราเจอโจทย์ที่ถามลักษณะนี้ แสดงว่าเราต้องเลือกใช้ Algorithm ในหมวดที่ชื่อว่า **`Reinforcement Learning`** นั่นเอง

ลักษณะของ **Reinforcement Leaning** จะต้องใช้ผลลัพท์ของขั้นตอนก่อนหน้ามาเป็น input เพื่อใช้ในการตัดสินใจว่าควรจะต้องทำอะไรต่อ ซึ่งในตอนที่เขียนบทความนี้ Machine Learning Studio นั้นยังไม่มี algorithms ในหมวดนี้ออกมาให้เราใช้งานครับ

## 🤔 มีแบบสรุปสรุปสั้นๆเลยไหม ?

ถ้าบทความนี้ยังสรุปไม่สั้นสะใจพอ เอาแผนผังการเลือก Algorithms นี่ไปดูเลย

{% file src="<https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-Loky6AgxezwXa-wXMm7%2F-Lol-7_M9cTFxe65Ehlp%2FML%20Algorithm%20Cheat%20Sheet.pdf?alt=media&token=82778104-9fb8-42bf-a0de-b94699c46374>" %}
Algorithm cheat sheet
{% endfile %}

ส่วนอันนี้เป็นการเลือก Algorithm แบบเป็น Infographic

{% file src="<https://479516123-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lm0_idNbY6k1lwp6hm4%2F-Loky6AgxezwXa-wXMm7%2F-Lol-L6wjiDjqmcdKbTT%2FML%20infographic%20algorithms.pdf?alt=media&token=a34ad029-a978-45d7-97b7-2ce6613f2a05>" %}
Algorithms infographic
{% endfile %}

## 🎯 บทสรุป

เราก็จะเห็นว่าจริงๆแล้วการเลือกใช้ Algorithms ให้กับ AI นั้นไม่ได้ยากอะไรเลย เพียงแค่ดูว่าปัญหาที่เราต้องการจะแก้ มันไปตรงกับหมวดไหน แล้วเราก็แค่เลือก algorithms ที่ตรงกับลักษณะของ data ที่เรามีก็พอ เพียงเ่ทานี้เราก็จะสามารถเลือก Algorithms ได้แบบง่ายๆแล้วครับ
