ไอเดียการเลือก Mode...
 
Notifications
Clear all

ไอเดียการเลือก Model และ parameters (ตอบคุณ @nanoniix)

6 ข้อความ
2 Users
1 Likes
39.1 K Views
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 399
Topic starter  

ขออนุญาตย้ายคำถามคุณ @nanoniix จากกระทู้ workshop มาไว้ที่นี่นะครับ

Posted by: nanoniix

ขอบคุณมากครับ ผมรอลงคอร์ส เรียนด้วยนะครับ แต่อยากเน้นเรื่อง  

เราจะรู้ได้อย่างไร ว่า model ไหนเหมาะกับปัญหาของเรา และ เราจะรู้ได้อย่างไร ว่าเราควรใช้ dence  ใน hidden layer กี่ตัว 

นะครับ

ขออนุญาตให้แนวทางคร่าวๆ ดังนี้นะครับ

1) ในเบื้องต้น ต้องเลือก โมเดลหลัก ให้เหมาะสมกับ “inputs” ของปัญหานั้นก่อน เช่น ถ้า inputs เป็น

  • images เราก็ต้องเลือก Model CNN
  • sequential เช่น signal, ข้อมูลยอดขายที่มีเวลามาเกี่ยวข้อง ก็เลือกตระกูล RNN เช่น LSTM/GRU
  • ประโยคภาษามนุษย์ ก็ต้องแปลงความหมายของแต่ละคำด้วย word embedding ก่อนใช้ Sequential model
  • ข้อมูลเป็นตารางตัวเลข แบบ excel อาจใช้โมเดลคลาสสิกเช่น Decision Trees หรือ 2-layers Neural Networks เป็นต้น

2) เมื่อเลือก โมเดลหลัก ได้แล้ว ก็จะมีตัวเลือกย่อยๆ อีก เช่น CNN จะเลือก VGG, ResNet, Inception, หรืออะไรดี??  ก็จะมีสองแนวทางคร่าวๆ คือ เลือกโมเดลที่เรา “เข้าใจ” ดีที่สุด (เผื่อปรับปรุงเพิ่มเติม) หรือเลือกโมเดลที่ได้รับการยอมรับมากที่สุดว่าแม่นยำ (เช่น ทราบกันดีว่า ResNet/Inception จะแม่นยำมากกว่า VGG)

ให้เลือกโมเดลที่เราเข้าใจดีบวกกับ parameters ที่ตั้งง่ายๆ มาเป็น baseline ก่อนครับ

3) เมื่อถึงคราวที่เราจะปรับปรุงโมเดล เราอาจต้องมีการปรับ parameters ต่างๆ เช่น จำนวน Hidden nodes ใน Dense Layer ดังที่ถามมา  ตรงนี้เบื้องต้นอาจคำนึงถึงความซับซ้อนของปัญหาก่อนครับ ถ้าปัญหาดูซับซ้อนมาก เราจำเป็นต้องเพิ่มขีดความสามารถของ Networks เราก็จำเป็นต้องเพิ่มจำนวน Hidden nodes ให้มากขึ้น

อย่างไรก็ดี โดยทั่วไป เราจะปรับ parameters / hyperparameters ง่ายๆ จาก “validation performances” ครับ โดยพยามปรับให้ validation performance นั้นมีค่ามากที่สุด

ซึ่ง validation performance คืออะไรขออธิบายโดยยกคำตอบจาก kaggle ที่ได้ตอบคุณ @nanoniix ไป มาอธิบายเพิ่มเติมในกระทู้ข้างล่างเผื่อผู้สนใจท่านอื่นด้วยครับ

 

This topic was modified 5 years ago 3 times by The Neural Engineer

   
อ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 399
Topic starter  

เนื่องจากกระทู้ข้างต้นอธิบายเรื่องการจูน parameters ด้วยการใช้ validation performance จึงอยากขอถอยหลังกลับมาเรื่องกระบวนการสร้างโมเดลสำหรับปัญหาใดๆ ก่อนนะครับ เพื่อความเข้าใจว่าการวัดผล validation นั้นมีความสำคัญมาก

โดยข้อความต่อไปนี้เป็นข้อความที่ตอบคุณ @nanoniix ใน Quora workshop ไป แต่นำมาลงที่นี่อีกครั้งเผื่อจะเป็นประโยชน์กับเพื่อนๆ ท่านอื่นครับ

สำหรับเรื่องการสร้าง Model ใดๆ (รวมทั้ง sentiment analysis) ขออนุญาตแนะนำว่าให้ยึดหลักสำคัญสองอย่างนี้ก่อนครับผม

1) สร้างตัววัดผลที่เชื่อถือได้

ก่อนจะเริ่มจริงจังกับการทำโมเดล ให้ design การวัดผล ซึ่งอย่างน้อยต้องประกอบไปด้วย validation set และ metric ครับ สำหรับ validation set ที่ดีนั้น ควรออกแบบให้คล้ายกับการเอาไปใช้งานจริง (มีข้อมูลทดสอบที่หลากหลายเพียงพอ) และห้ามเอามายุ่งกับกระบวนการ train เด็ดขาด ส่วนเรื่อง metric การวัดผลให้ระวังเรื่อง accuracy ตามที่กล่าวใน workshopนี้ครับ https://www.kaggle.com/ratthachat/workshop-text-classification-quora/

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

2) เริ่มจากโมเดลที่ simple และเราถนัด

ให้หาโมเดลที่เราเข้าใจดีมากๆ มาเริ่มก่อนครับ ให้ได้ผลลัพทธ์ที่เชื่อถือได้ และเพื่อเป็น baseline ในการพัฒนาเบื้่องต้น และแก้ข้อผิดพลาดหรือความเข้าใจผิดที่อาจเกิดขึ้นก่อนทดลองจริง ถ้าเข้าใจโมเดลใน workshop นี้ดีแล้วก็อาจยึดเป็น baseline ได้

เมื่อมั่นใจว่าระบบการ train ข้อมูลและพัฒนาโมเดล และระบบวัดผลดีพอแล้ว ก็ค่อยๆ ปรับปรุงโมเดลให้มีความซับซ้อนขึ้นทีละขั้นๆ เช่น อาจจะเพิ่ม POS tag, หรือ เทคนิกอื่นๆ ก็ได้ครับ แล้วค่อยๆ ดูว่าความซับซ้อนที่เราทยอยเพิ่มไปนั้นคุ้มค่าหรือไม่ (ได้ผลแม่นยำขึ้นแค่ไหน เทียบกับการคำนวนที่เพื่มขึ้น)

This post was modified 5 years ago 2 times by The Neural Engineer

   
ตอบกลับอ้างอิง
penrudee
(@penrudee)
New Member
เข้าร่วมเมื่อ: 4 years ago
ข้อความ: 2
 

word embedding ก่อนใช้ Sequential model

สวัสดีคะ สนใจเรื่องการใช้ ML เกี่ยวกับบทความ กำลังเริ่มต้นเองคะมีอะไรแนะนำใหมคะเช่น ขั้นที่ 1 เรียนอะไร ขั้นที่2...3...4

ขอบคุณมากคะ


   
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 399
Topic starter  

สวัสดีครับคุณ @penrudee  สำหรับในภาพรวม เรามีบทความเริ่มต้นสองบทความนี้ครับผม

https://thaikeras.com/2018/aisetup/

https://thaikeras.com/2019/onlinecourses/

นอกเหนือไปจากภาพใหญ่ในสองบทความแล้วถ้าคุณ @penrudee อยากเจาะไปทางไหนเป็นพิเศษลองเล่าดูได้ครับผม เพื่อทีมงานจะได้ลองแนะนำลำดับขั้นตอนได้เหมาะสมขึ้นครับ 😀 


   
penrudee reacted
ตอบกลับอ้างอิง
penrudee
(@penrudee)
New Member
เข้าร่วมเมื่อ: 4 years ago
ข้อความ: 2
 

@neural-engineer

สนใจเอาไปประยุกต์ใช้​กับพวก​ articles​ งานวิจัย​ คะ​ เช่นช่วยรวบรวมงานวิจัยหัวข้อที่สนใจ

 

ต้องเรียนรู้​พวก​ NLP​  รึเปล่าคะ


   
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 399
Topic starter  

@penrudee ต้องขออภัยคุณ penrudee มากๆ ครับที่ตอบช้า พอดีเพิ่งสังเกตเห็นว่าคำตอบของคุณ penrudee ไม่ขึ้นอัตโนมัติ (ไม่รู้ทำไม)

ไม่ทราบเข้าใจถูกหรือเปล่าครับ คุณ penrudee หมายถึงว่า  ในงานที่อยากทำนั้น

มีบทความวิจัยเยอะๆๆ  (เช่นหลายพันฉบับ) แล้วก็ใช้ model มาคัดกรอง งานวิจัยที่ตนสนใจออกมา (เช่น query จาก keywords ที่ เราสนใจ)

——- ตรงนี้เราสามารถทำเองพอได้โดยใช้ NLP ครับ เพียงแต่ว่า โดยทั่วไปเรามี scholar.google.com ให้ใช้งานซึ่งใช้ได้ดีอยู่แล้ว

ไม่ทราบคุณ penrudee มีความต้องการแตกต่างจาก scholar.google.com อย่างไร หรืออยากได้ features อะไรเพิ่มเติมครับ?

This post was modified 4 years ago by The Neural Engineer

   
ตอบกลับอ้างอิง
Share: