top of page
  • Writer's pictureSertis

ถาม-ตอบ data แบบบ้านๆ ภาค 2



จากบทความที่แล้วที่ผมได้รวบรวมคำถามที่มักจะถูกถามหรือขอคำปรึกษาบ่อยๆ เกี่ยวกับการนำข้อมูล (data) และเทคโนโลยีปัญญาประดิษฐ์ หรือเอไอ (Artificial Intelligence/ AI) ไปใช้ในบริษัทหรือองค์กรทั้งภาครัฐและเอกชน ในบทความนี้ผมขอยกตัวอย่างคำถามเพิ่มเติมซึ่งเน้นไปในเรื่องที่เกี่ยวข้องกับคุณสมบัติที่ควรมีของผู้ที่สนใจทำงานในด้านนี้ ไว้ให้ผู้อ่านได้ลองศึกษาทำความเข้าใจกันครับ

1. มีคำกล่าวว่า “คนทำ data ต้องคิดเป็น” แล้วการคิดเป็นต้องมีลักษณะอย่างไร?

โดยทั่วไปคนเราเมื่อตัดสินใจหรือคิดจะลงมือทำอะไร จะมีหลักการในการคิดบางอย่างที่เหมาะสมกับสถานการณ์และโจทย์ที่เจอ บางคนพูดคุยแลกเปลี่ยนความรู้กับผู้เชี่ยวชาญและหาข้อมูลเพิ่มเติมก่อนลงมือทำ บางคนใช้หลักคิดเศรษฐศาสตร์หาความคุ้มค่า หรือบางคนมักจะคิดถึงข้อเสียเพื่อรองรับความผิดพลาดที่อาจเกิดขึ้น ในขณะที่บางคนคิดวางแผนการเดินทางไว้ล่วงหน้าเพื่อจะไปให้ถึงก่อนเวลาที่นัดหมาย ถ้าเป็นการลงทุนก็จะคิดเผื่อล่วงหน้าว่าควรลงทุนเท่าไหร่ อย่างไร ส่วนบางคนก็มีแนวคิดต่างหรือกลับกัน (Inversion) ซึ่งการคิดแบบนี้เป็นการช่วยขยายความคิดของเราที่ดีอย่างหนึ่ง ยกตัวอย่างนักคณิตศาสตร์ชาวเยอรมัน Carl Jacobi ที่เชื่อว่าวิธีที่ช่วยให้เขาคิดได้อย่างแตกฉาน คือการตั้งโจทย์คณิตศาสตร์ในทางตรงข้ามหรือกลับกัน แทนการคิดว่าควรจะทำอะไรที่จะแก้ปัญหาที่เจออยู่ให้เปลี่ยนไป แต่ให้คิดใหม่ว่าจะทำอย่างไรเพื่อที่จะ “ไม่ต้องทำอะไร” เพื่อแก้ปัญหาเหล่านั้น ดังนั้นรูปแบบวิธีคิดเกิดขึ้นได้จากประสบการณ์ และการเรียนรู้ที่หล่อหลอมออกมาเป็นโลกทัศน์ (Worldview) สรุปคือคนที่คิดเป็นจะมีหลักการคิดและรูปแบบวิธีคิด (Mental model) ที่หลากหลาย ทำให้สามารถคิดได้อย่างรอบด้าน ซึ่งการไม่มีหลักการคิดอาจทำให้เกิดการตัดสินใจหรือการแก้ปัญหาบางอย่างที่ฉาบฉวยไม่รอบคอบ ผมเคยพูดถึงหัวข้อนี้ในบทความอื่นๆ สามารถอ่านย้อนหลังได้ครับ (ถามทำไม, คิดหลายด้าน 1 2)

2. คนทำ data จำเป็นต้องเขียนโปรแกรมเก่งไหม

สิ่งเหล่านี้ขึ้นอยู่กับลักษณะงานและเครื่องมีที่ใช้ในการทำงาน ถ้าทำ Visualization ก็จะมีเครื่องมือที่ช่วยจัดการ โดยไม่จำเป็นต้องเขียนโปรแกรม เช่น Tableau, PowerBI และ DataStudio ถ้าหากต้องการทำนาย คาดการณ์ หรือประมวลข้อมูลที่เป็นภาพหรือข้อความ ก็มีเครื่องมือที่ใช้ทำ ML/AI model เบื้องต้นโดยไม่จำเป็นต้องเขียนโปรแกรมด้วยตัวเอง (ผู้อ่านสามารถศึกษาข้อมูลเพิ่มเติมโดยค้นหาคำว่า AutoML หรือ RapidMiner, Weka, Orange และ KNIME) แต่ถ้าคนทำข้อมูลมีความเชี่ยวชาญในการเขียนโปรแกรมภาษาหนึ่งได้ดี บวกกับมีหลักการคิดแบบ algorithm (Computational Thinking) และมีความเข้าใจเรื่อง Software engineering ว่าจะวางโครงสร้างหรือจัดระเบียบของโปรแกรมให้ใช้ซ้ำให้ได้มากที่สุดหรือต้องดูแลในภายหลังให้น้อยที่สุด ก็จะช่วยทำให้งานที่ซับซ้อนเป็นงานที่ง่ายขึ้น เช่น การนำ algorithm มาช่วยในการจัดสรรให้โรงงานมีการจัดเรียงวัตถุดิบในการผลิตที่เหมาะสม

3. ถ้าจะทำงานด้าน Data Science จำเป็นต้องเรียนต่อไหม

ต้องถามก่อนว่าเราขาดทักษะอะไรที่จะส่งเสริมให้เราทำงานทางด้านนี้ให้ได้ดีหรือไม่ เพราะคนที่ทำงานทางด้าน Data Science มีหลายระดับ ตั้งแต่ช่วยเตรียมข้อมูล ใช้ ML/AI model จนถึงการพัฒนา ML algorithm ซึ่งหลักๆ ควรดูว่าเรามีความรู้ด้านคณิตศาสตร์ (probability, statistics, linear algebra, multvariable calculus) Optimization, Programming (Python, R), Software Engineering และ Machine Learning หรือไม่ นอกจากนี้ควรพิจารณาว่าเรามีความรู้ทางด้านการสร้าง data pipeline (Data engineering) และ data manipulation (SQL) ไหม เพราะทักษะเหล่านี้เป็นสิ่งที่มีประโยชน์ กล่าวได้ว่าเราควรมองหาจุดที่เราอ่อนแล้วดูว่ามีทางเลือกที่คุ้มค่ากับการลงทุนและเวลาที่จะต้องใช้ไปกับการเรียนเพิ่มเติมทักษะจุดนี้หรือไม่ โดยพิจารณาตามหลัก mental model แบบเศรษฐศาสตร์ ซึ่งปกติผมมักจะแนะนำว่า ถ้าพอมีพื้นฐานก็ให้ลองเรียนและไปแข่ง Kaggle เพื่อสร้างประสบการณ์และได้เรียนรู้ว่าคนเก่งๆ เค้าสร้างโมเดลอย่างไร โดยสามารถอ่านได้จาก discussion board ซึ่งในส่วนของทางเลือกการเรียนในปัจจุบันมีหลากหลายมาก ไม่ว่าจะเป็น Bootcamp ใช้ระยะเวลาประมาณ 6-12 สัปดาห์ มีหลายประเทศ เช่น สิงคโปร์คอร์สเรียนออนไลน์ เช่น Coursera, EdX, และ Udacity ไปจนถึงระดับปริญญา ซึ่งส่วนตัวผมคิดว่าถ้าทำงานไปด้วย เรียนไปด้วยจะคุ้มค่ากว่าครับ ส่วนคำถามที่ว่าจะเรียนต่อในประเทศหรือต่างประเทศ ผมคิดว่าถ้าอยากเรียนต่างประเทศเพื่อหาประสบการณ์อันนี้ก็ห้ามยาก แค่ต้องพิจารณาว่าคุ้มค่าในการลงทุนหรือไม่ แต่ถ้าจะเรียนต่อในไทยก็มีหลักสูตรที่ดีหลายแห่ง แต่สุดท้ายแล้วไม่มีอะไรดีเท่ากับการสร้างโอกาสให้ตัวเองได้ประสบการณ์ในการลงมือทำจริง

4. การที่จะสร้าง ML/AI model มีองค์ประกอบอื่นๆ ที่ควรคำนึงอะไรบ้าง

โดยส่วนมากลูกค้ามักจะเข้าใจว่า การทำ ML/AI model แค่ทำสำเร็จก็สามารถนำไปใช้งานได้ แต่ในความเป็นจริง ยังต้องมีงาน Data engineering การต่อท่อ data pipeline เพื่อที่จะนำข้อมูลจากต้นทางแหล่งต่างๆ แปลงให้อยู่ในรูปแบบที่เหมาะสม แล้วจึงทำการป้อนให้ model ประมวลผล โดยในขั้นตอนพัฒนา model ก็ต้องสร้างอยู่ใน development environment ที่แยกออกจากตอนที่เอาไปใช้จริงในขั้นตอนการผลิต (production) เพื่อไม่ให้สิ่งที่ใช้อยู่ได้รับผลกระทบกับสิ่งที่กำลังพัฒนาหรือทดลอง เพราะฉะนั้นการวางระบบเชื่อมต่อท่อ เชื่อมต่อ environment รวมทั้งการดูแลหลังจากที่ model เริ่มใช้งานก็เป็นสิ่งสำคัญ ต้องคำนึงถึงการพัฒนา ทดลองและตรวจสอบ ซึ่งในปัจจุบันระบบที่ก้าวหน้าจะมีการใช้กระบวนการอัตโนมัติ (automation) เพื่อตรวจสอบและดูแลให้ระบบมีการทำงานที่เสถียร นอกจากนี้ สิ่งที่ลูกค้าเข้าใจผิดคือ มองว่าโปรเจ็ค data เป็นเหมือนโปรเจ็ค IT ซึ่งเราต้องทำความเข้าใจ และปรับเปลี่ยนแก้ไขข้อมูลให้สามารถใช้กับ model ได้ ซึ่งใช้ระยะเวลาไม่แน่นอน ขึ้นอยู่กับปัจจัยหลายด้าน เช่น ความพร้อมของข้อมูล ความสามารถของทีมงานของลูกค้าที่เข้ามาช่วยจัดการกับข้อมูล และโครงสร้างพื้นฐาน (infrastructure) ที่ใช้ ดังนั้นการทำงานกับลูกค้าต้องได้รับความร่วมมือที่ดี และมีความพร้อมที่จะทดลองร่วมกันจึงจะประสบความสำเร็จ

คำถามข้างต้นนี้เป็นเพียงบางส่วนเท่านั้น ยังมีคำถามอยู่อีกหลายคำถามที่ผมอยากตอบ หากท่านผู้อ่านมีคำถามเพิ่มเติมสามารถเข้าไปถามได้ที่เฟซบุ๊กเพจ “ถาม-ตอบ data แบบบ้านๆ” นะครับ https://www.facebook.com/askdataquestion/

bottom of page