ตำราวิธีพิชิตค่าย Super AI ฉบับสมบูรณ์
จากกระทู้ก่อนหน้านี้ที่เราอธิบายเรื่อง การแข่งขันในค่าย Super AI เป็นอย่างไร ทำให้คนที่สนใจอยากแข่งขันเริ่นสนใจว่าวิธีการเอาชนะกันในค่ายทำอย่างไร ซึ่งบทความนี้เราจะนำมาเรียบเรียงให้แบบสมบูรณ์ครบถ้วน หากอยากเป็นฝ่ายชนะรู้เขารู้เรารบร้อยครั้งชนะร้อยครั้งด้วย วิธีพิชิตค่าย Super AI Engineer
เนื้อหาจะแบ่งออกเป็น 5 ส่วนดังนี้
- การแบ่งทีม และการทำงานเป็นทีม
- การทำ Exploration Data Analysis / Pre-processing
- การเลือกใช้ Model ที่เหมาะสม
- การนำไปใช้งานจริง Application
- การ Pitching
อาจจะคิดว่าต้องทำเยอะขนาดนี้เลยหรอ จากประสบการณ์การแข่งขันทั้งหมด 11 สัปดาห์เราจึงได้ทำบทสรุปออกมาให้ และบอกได้ว่า Super AI Engineer ทุกคนสามารถทำเรื่องพวกนี้ได้ ย้ำว่าทำได้ทุกคน แต่ทุกคนจะเริ่มคล่องกันในสัปดาห์ที่ 10 – 11 จบค่ายไปทำเป็นทุกอย่างที่บอกมา
ในสัปดาห์แรกๆ จะมีคนเด่นๆที่เอาทักษะพวกนี้มาใช้งาน แต่ในสัปดาห์ถัดไป ทีมอื่นจะตามมาทันและสามารถทำตามทักษะที่ขาดของสัปดาห์ก่อนหน้าได้ สำหรับใครที่กำลังศึกษาว่าจะทำอย่างไรจึงจะชนะ ขอให้ศึกษาบทนี้ให้ดี
การแบ่งทีม และการทำงานเป็นทีม
วิธีพิชิตค่าย Super AI เริ่มจากเรื่องแรก การจัดทีม หรือแบ่งทีม สามารถไปดูข้อมูลเพิ่มเติมได้ที่ การบริหารทีม แบบปังปุริเย่ ให้ประสบความสำเร็จ จะช่วยให้คุณเข้าใจได้ว่าก่อนบ้านปังปุริเย่ นั้นมีการจัดทีมแบบไหน
วิธีการแบ่งทีมโดยสำคัญแล้วต้องมีคนที่มีลักษณะดังนี้
- เขียนโปรแกรมเป็น อันนี้สำคัญมากถ้าทั้งทีมไม่มีคนเขียนโปรแกรมเป็นเลย จะทำผลงานได้ช้ากว่าทีมอื่น และไม่สามารถทดลองการใช้งาน Model ต่างๆได้เลย
- มีคนเคยทำงานในลักษณะนี้มา หรือมีประสบการณ์มาแล้ว อันนี้จะช่วยย้นระยะเวลาการค้นคว้า วิจัยให้สั้นลงมาก จนเราสามารถได้คำตอบที่ถูกใจได้ไวขึ้น
- มีคนพร้อมทำงาน ถ้าทั้งทีมติดเรียน ติดงานนอก ป่วย หรือไม่สามารถทำงานสัปดาห์นั้นได้ ทีมไม่สามารถสู้ที่ที่คนพร้อมกว่าได้แน่นอน
จาก 3 ปัจจัยที่ให้มา ต่อไปก้เป็นเรื่องของการจัดทีมว่าต้องการทีมแบบไหน ทีมที่ทุกคนสามารถดูแลกันได้ หรือทีมที่มีไว้เพื่อล่ารางวัลให้บ้าน หรือทีมที่ความสามารถทัดเทียมกัน (แบบบ้านปังปุริเย่ อิอิ)
การทำ Exploration Data Analysis / Pre-processing
การทำ Machine Learning ในยุคปัจจบันนั้นมีสิ่งที่เรียกว่า Deep Learning อยู่ซึ่งช่วยให้การทำ AI เป็นเรื่องที่ง่ายขึ้นมา บางคนมีประสบการณ์การทำงานที่ดีพอเข้าใจว่าต้องใช้ Model ไหนในการทำงาน แต่เรารู้ได้อย่างไรว่าเราต้องใช้วิธีนี้ถ้าไม่มีคนที่มีประสบการมานั่งบอก
เรื่องนี้เป็นเรื่องที่สอนทุกคนในค่ายว่าคะแนนสูงที่สุด อาจจะไม่ชนะ ถ้าคุณไม่สามารถอธิบายได้ว่าทำไมคุณถึงเลือกใช้ Model อะไรในการแก้ไขปัญหา มีทีมหนึ่งสามารถทำคะแนนการทายผลได้ถึง 99% เป็นค่าะแนนที่ปีศาจมาก แบบว่าเยอะมากที่จะทำกันได้ ทั้ง Model ที่ใช้ก็ถือว่าเป็นปีศาจเช่นเดียวกัน โจทย์ 1 สัปดาห์ เขาใช้ไป 24 Models เป็นอะไรที่อลังการณ์มาก แต่เชื่อไหมว่าเขาแพ้ทีมที่ได้คะแนน้อยกว่า (98%) เพราะเขาขาดการทำ Data Science การวิเคราะห์ข้อมูล
ดูข้อมูลก่อนว่าได้อะไรมา
เป็นเรื่องแรกที่ควรทำก่อน Pre-processing หรือเอาข้อมูลไปเข้า Model ดูให้แน่ใจก่อนว่าข้อมูลนี้ไม่ใช่ขยะ หรือบางทีอาจจะเป็นข้อมูลที่ใช้งานไม่ได้ด้วยซ้ำ เฉลยผิดหรือเปล่า ดูให้แน่ใจว่าข้อมูลนั้นใช้ประโยชน์ได้จริงๆ ต้องมาแปะเฉลยใหม่หรือไม่ (Lebel)
Check Balance ตรวจให้ดีว่าข้อมูลมีเยอะเพียงพอที่จะสอน
บางทีข้อมูลที่เราได้มาอาจจะ Bias เกินไป ให้ข้อมูลบางอย่างมาเยอะเกินไป บางอย่างน้อยเกินจน AI ไม่สามารถเรียนรู้ให้เข้าใจได้ ต้องตรวจให้มั่นใจว่าข้อมูลสมดุลไหม ถ้าใช่แล้วถึงจะเอาไปทำงานต่อได้
สามารถไปศึกษาต่อได้ 10 วิธี จัดการกับข้อมูลไม่สมดุล
ทำ Graph มาอธิบายข้อมูล
เพื่อใช้ในการอธิบายว่าเราทำอะไรไป แล้วเป็นให้เหตุผลว่าทำไมเราต้องทำอะไรต่อไป
เมื่อเรารู้แล้วว่าปัญหาของข้อมูลอยู่ตรงไหนเราจึงจะสามารถจัดการได้ถูกต้อง เป็นที่มาว่าทำไมเราต้องทำ Pre-Processing
Cleansing Data จัดการทำความสะอาดข้อมูล
ถ้าเรารู้ว่ามีขยะ เราอย่านำไปสอน AI เพราะจะทำให้ AI เรียนรู้แบบผิดๆไป เราอาจจะแก้ไขด้วยการทำเฉลยใหม่ หรือลบข้อมูลนั้นทิ้งไปเลย เราควรนำข้อมูลที่ดีที่สุดไปสอน AI ข้อมูลที่ไม่ดีอาจจะทำให้ AI สับสน (แต่ Deep Learning อาจจะเข้าใจ)
Data Augmentation การเสริมข้อมูลให้มีคุณสมบัติเหมือนคำตอบ
วิธีนี้มักใช้งานกับข้อมูลที่ Imbalance แล้วมี Class ใดที่น้อยกว่า Class ทั่วไป วิธีการนี้เราต้องการเพิ่มข้อมูล Class ที่มีน้อยให้มีจำนวนทัดเทียมกับ Class อื่นๆ โดยเรามักจะใช้ข้อมูลเดิมที่มีอยู่มาเสริมตกแต่ง ให้มีลักษณะเปลี่ยนไปจากเดิม เช่นรูปภาพ ปรับเอียง ใส่ Effect ฝนตก แดดออก สายรุ้ง สลับด้าน แต่ให้คงคุณลักษณะไว้
โดยทุกวันนี้มี Library สำหรับทำ Auto Augmentation ให้ใช้งานเยอะพอสมควร เช่น ImgAug เพื่อใช้ปรับแต่งภาพ
Transform แปรรูปข้อมูล
ข้อมูลบางอยู่ยังอยู่ในจุดที่ยังไม่สามารถนำไปใช้งานได้ จำเป็นต้องแปลงรูปให้สามารถใช้งานได้เหมาะสม หรือนำเข้าไปใช้งานกับ Model ที่มีอยู่ได้ เพราะ Model บางอย่างเก่งกับรูป บางอย่างเก่งกับสัญญาณ หรือบางอย่างเก่งกับ Vector นั้นจึงเป็นเหตุผลที่เราต้องแปลงข้อมูลเพื่อนำไปใช้งานให้เหมาะสม
อาจจะดูเหมือนยุ่งยากวุ่นวาย แต่จริงๆล้วมีเครื่องมือ Auto ช่วยเราอยู่เยอะเราอาจจะต้องศึกษาวิธีการใช้งานก่อนในสัปดาห์แรกๆเราอาจจะยังไม่คุ้นชิน แต่พอเราทำเป็นประจำแล้วเราจะใช้เวลาเพียงไม่นาน และนี่เป็นคุณสมบัติขั้นต้นของ Super Ai Engineer ที่ทุกคนสามารถทำได้ เมื่อจบค่ายไป
การเลือกใช้ Model ที่เหมาะสม หนึ่งใน วิธีพิชิตค่าย Super AI
การเลือกใช้ Model ที่เหมาะสมนั้น เป็นเหตุผลสำคัญที่จะทำให้เรามีคะแนนที่ดีได้ และอาจนำไปสู้ชัยชนะได้ ซึ่งเป็นผลมาจากการทำ EDA ขั้นตอนก่อหน้านี้ของเรา โดยตำราวิธีพิชิตค่าย Super AI ฉบับสมบูรณ์ นี้จะไม่ได้พูดถึง Model ต่างๆ เพราะมีสอนในคาบเรียนในแต่ละสัปดาห์ และระบบ MOOC ให้เยอะพอสมควร หรือจะค้นคว้าหาเพิ่มเติมได้
เราสามารถค้นคว้าได้จาก Google เช่น techtalkthai แนะนำ 10 โมเดลของ Deep Learning สำหรับงานด้าน Computer Vision
หรือ Model ล้ำๆด้าน NLP จาก ดร. กอบกฤตย์ วิริยะยุทธกร ที่เขียนบทความลง Medium อยู่เสมอๆ
หรือจากทาง NVIADIA Advancing the State of the Art in AutoML, Now 10x Faster with NVIDIA GPUs and RAPIDS
เหตุผลที่การเลือกใช้ Model จะทำให้เราชนะได้คือ ลองให้เยอะครับ ยิ่งทดลองเยอะยิ่งรู้ว่าตัวไหนดีกว่าอะไร เพราะการที่เราทดสอบเยอะอาจจะทำให้เราค้นพบบางอย่างที่สามารถเอาชนะคู่แข่งได้ เช่น Performance ความเร็ว ขนาดของ Model ซึ่งเราสามารถนำไปนำเสนอเพื่อเกทับคู่แข่งได้ หรือแม้กระทั้งนำไปทำ Ensemble เพื่อโหวตหามติจาก Model เก่งๆช่วยกันตัดสินได้ นั้นคือหนึ่งในวิธีพิชิตค่าย Super AI
การนำไปใช้งานจริง Application
เป็นการนำเสนอและแสดงให้เห็นถึงศักยภาพอันโดดเด่นของแต่ละทีม ที่สามารถทำงานที่นอกจากจะทำคะแนนได้เป็นอย่างดีแล้ว ยังแสดงให้เห็นถึงความสามารถที่นำไปใช้งานจริงได้ด้วย
Deployment
การนำไปใช้งานจริง เป็นบทพิสูจน์ความสามารถของ Model ในสภาพแวดล้อมต่างๆ ต้องใช้ความสามารถในการ Convert Model ที่มีขนาดใหญ่ไปอยู่ในระบบที่สภาพแวดล้อมจำกัดให้สามารถใช้งานได้จริง จำเป็นต้องเรียนรู้ และใช้ทักษะมากกว่าที่มีใช้ค่ายสอน
API
การติดต่อส่งข้อมูลประสานงานของระบบ หน้าบ้านหลังบ้าน การประมวลผลส่งข้อมูลผ่าน Internet จำเป็นจะต้องออกแบบให้สอดคล้องจากหลายทีม และความรู้หลายศาสตร์เข้าด้วยกัน
Front-end interactive developer
ลูกเล่น หน้าต่างความสวยงาม ซึ่งจะดึงดูดให้ผู้ใช้งานสนใจ และเป็นคะแนนเสริมสำหรับผู้ที่มีทักษะโดดเด่นกว่าทีมอื่น
การ Pitching
ส่วนนี้เป็นส่วนที่สำคัญน้อยสุดในวิธีพิชิตค่าย Super AI แต่ตัดสินกันให้แพ้ชนะได้เลย ที่บอกว่าสำคัญน้อยสุดคืออะไร ทั้งๆที่การนำเสนอน่าจะเป็นส่วนที่เรียกคะแนนให้เราได้ใช่ไหมครับ แต่ความจริงแล้วถ้าเราทำคะแนนไม่ได้สูง ไม่ติดอันดับ 1 ใน 10 หรือ 1 ใน 5 เราก็ไม่มีโอกาสไป Pitching ดังนั้นแล้วเราควรใส่เต็มกับการทำผลงานออกมาให้ได้คะแนนสูงติดอันดับก่อน แล้วจึงเริ่มทำการซ้อม Pitching ถ้าเรามัวแต่ซ้อมหรือทำ Presentation ให้สวยปาน Hollywood แล้วแต่ผลงานเราย่ำแย่ สิ่งที่เราทำก็สูญเปล่า ไม่เกิดประโยชน์เท่าที่ลงแรงส่วนนี้ไป
ตีโจทย์ให้แตก
ข้อนี้สำคัญมากเพราะ เราต้องทำการวิเคราะห์โจทย์ให้ดีว่า วันที่เรานำเสนอต้องเสนอแบบวิชาการ หรือการใช้จริงกับธุรกิจ ซึ่งแต่ละแบบวิธีการนำเสนอแต่ต่างกัน โดยของ Season 1 มักเป็นแบบ ธุรกิจ แต่ Season 2 เป็นแบบวิชาการ โดยการเสนอแบบวิชาการก็ใช้วิธีการต่างข้างบนที่เล่าไว้ก่อนหัวข้อที่ 1-4 มาใช้ให้ครบ โดยจะเน้นตัวเลข สถิติเป็นตัวตัดสินใจเป็นหลัก ถ้าธุรกิจเราจะเอาไปใช้งานกับใครขายใครต้องศึกษาให้ดี
อย่าลืมตั้งชื่อผลิตภัณฑ์ของคุณ
สิ่งที่คุณตั้งใจทำมาเสนอ และนำเสนอนั้นควรเป็นผลงานของงานคุณ และควรมีชื่อ เพราะสิ่งที่คุณทำไม่ใช่แค่การบ้าน หรือแบบฝึกหัด แต่เป็นผลงานที่ใช้งานได้จริง แข่งขันได้จริง เป็นเหตุผลที่ผลงานของคุณควรมีชื่อ
นำข้อมูลที่ได้ศึกษามาประกอบการทำเสนอ
จำได้ไหมว่าคุณทำ EDA ทำ Graph ออกมา และก็มีการทำลองหลากหลาย Model นั้นแหละคือข้อมูลที่ช่วยบอกได้ว่าคุณได้ทำการทดลองและศึกษาอะไรมาบ้าง คุณเห็นไหมว่าผลงานของคุณดีอย่างไรเสียอย่างไร และดีกว่าชาวบ้านอย่างไร อันนี้ก็สำคัญเพราะเอาไปดักคอ และเกทับทีมอื่นได้อย่างเต็มที่ ยิ่งถ้าคุณมั่นใจว่าทีมอื่นทำไม่ได้นั้นแหละคือจุดขายของคุณ
Pitching Deck
Presentation ของคุณไม่ว่าจะทำด้วยอะไร Power Point, Canva, Google Slide คุณจำเป็นต้องทำงานร่วมกันต้องฝึกการทำ Theme และทำงานแบบ Online ร่วมกันจะทำให้ช่วยกันทำงานได้โดยไม่หนักมาก
เขียนบทพูด Script
อาจจะดูเป็นเรื่องตลก แต่บทพูดของคุณนี่แหละจะช่วยให้คุณทำเวลาได้ดี ฝึกเขียนบทพูดแล้วซ้อมจับเวลา ว่าบทของคุณยาวหรือเปล่าเพราะเวลาที่คุณได้จะอยู่ที่ 7-10 นาที แต่ไม่ใช่คุณคนเดียวที่จะขึ้นพูดส่วนใหญ่จะบังคับให้ขึ้นพูดครั้งละ 3-4 คน ซึ่งจะทำให้คุณมีบทพูดประมาณ 1 นาทีกว่าๆเท่านั้นเอง การที่คุณไม่มีบทพูดที่กระชับ นั้นคือหายนะของเพื่อนๆที่รอพูดต่อจากคุณ
ซ้อมจริงต่อหน้าเพื่อนในบ้าน
อย่ากลัว และอย่าอายต่อหน้าเพื่อนในบ้าน เพราะนี้คือคนที่ช่วยคุณได้เต็มที่แม้คุณผิดพลาดก็ไม่ทำให้คุณเสียคะแนน คุณจะได้รับคำชม คำแนะนำจากเพื่อนๆที่เป็นยอด Super AI Engineer ด้วยกันเสริม และจะทำให้การนำเสนอของคุณดูทรงพลังยิ่งขึ้น
ไม่ต้องกลัวว่าจะไม่ได้ขึ้นพูด และไม่ต้องกลัวว่าจะได้พูดน้อย
เพราะระบบการ Pitching ถ้าคุญเคยขึ้นแล้ว ในสัปดาห์ถัดไปคุณจะต้องให้คนอื่นพูด เพื่อเป็นการพัฒนา Super AI Engineer ท่านอื่นให้มีความสามารถทัดเทียมกัน และได้ทำงานหลายๆอย่างไม่ใช่แค่การเขียนโปรแกรม ในสัปดาห์นี้คุณเขียนโปรแกรม สัปดาห์หน้าอาจจะเป็นคุณถึงคิวที่ต้องขึ้นพูดแล้ว เพราะคนอื่นขึ้นพูดหมดแล้ว
ทั้งหมดนี้เป็นบทสรุปที่ Super AI Engineer ทุกคนสามารถทำกันได้ทุกคน อาจจะดูเหมือนยาก แต่เชื่อเถอะเมื่อคุณออกมาแล้ว Hard Skills, Soft Skills ของคุณจะล้นเหลือไปแข่งที่ไหนต่อก็ได้ใครปรับตัวได้ก่อนก็คว้ารางวัลก่อน ใครปรับตัวช้าปรับตัวไม่ทัน ก็ต้องปรับตัวเพราะยิ่งนานไปเพื่อนๆจะยิ่งพัฒนาล้ำไปทุกๆคน
คุณสามารถไปดูบทความเพิ่มเติมต่อได้ การบริหารทีม แบบปังปุริเย่ ให้ประสบความสำเร็จ จะทำให้คุณสามารถ Set ทีมที่ดีกว่า Pangpuriye Season2 ได้หากคุณได้เรียนรู้และศึกษาจากบทเรียนเก่าๆที่เรามอบให้