TextLogo-low-qualTextLogo-low-qualTextLogo-low-qualTextLogo-low-qual
    • หน้าแรกและบทความต่างๆ
      • AI ไกด์ทัวร์
      • เซ็ตอัพระบบ AI
      • งานวิจัยล่าสุดในวงการ AI
      • รีวิวแหล่งเรียนรู้ชั้นนำ
    • พูดคุยกับ Community
      • คุยกันภาษา AI
      • ชมรม Kaggle ประเทศไทย
    • คอร์ส: Deep Learning สำหรับนักปฏิบัติ (ยังไม่สมบูรณ์)
      • Workshop
    ML WordCloud
    คำถามที่พบบ่อยเกี่ยวกับพื้นฐานของ AI, Deep Learning และ Keras (อัพเดต 2021)
    November 12, 2018

    เตรียมทุกอย่างให้พร้อม เพื่อสร้างระบบ AI (อัพเดตสิงหาคม 2021)

    Published by The Neural Engineer at November 8, 2018
    Categories
    • AIGuideTour
    • AISetup
    Tags
    • AI
    • Artificial Intelligence
    • Deep Learning
    • Kaggle
    • Machine Learning
    • Neural Networks
    • ปัญญาประดิษฐ์
    how to setup ai system

    ถ้าอยากเริ่มสร้างระบบ AI ต้องรู้อะไรบ้าง? ต้องเตรียม Software หรือ Hardware อะไรบ้าง? บทความนี้จะช่วยให้ทุกคนเริ่มต้นได้อย่างถูกต้องครับ :)

    ไม่ว่างานของเพื่อนๆ จะเป็นงานแบบ Stand alone ที่โฟกัสที่ระบบ AI โดยตรง หรืองานด้าน Business หรือเป็นการประยุกต์เข้ากับงานวิจัยต่างๆ อาทิเช่น งานทางด้านวิทยาศาสตร์ วิศวกรรมศาสตร์ การเงินหรือเศรษฐศาสตร์ก็ตาม การเตรียมตัวก็จะมีภาพใหญ่ที่เหมือนกันครับ

    ในบทความนี้จะลิสต์ภาพใหญ่หรือสิ่งที่จำเป็นทั้งหมดเอาไว้ และลิงก์รายละเอียดเพิ่มเติมที่จำเป็นไว้ในแต่ละส่วนของบทความครับ เข้าเรื่องกันเลย ในภาพใหญ่นั้นสิ่งที่เราต้องเตรียมให้พร้อมหลักๆ มี 4 เรื่องใหญ่ดังต่อไปนี้

    1. Fundamental knowledge คือความรู้ ความเข้าใจพื้นฐานเกี่ยวกับ AI และ Deep Learning เพื่อให้ออกแบบระบบ และเขียนโปรแกรมได้อย่างถูกต้อง

    2. Hardware คือตัวเครื่องคอมพิวเตอร์ที่ต้องมีประสิทธิภาพสูง ในยุคของ Deep Learning

    3. Software หรือ Programming Platform คือตัวอำนวยความสะดวกทั้งหลายในการเขียนโปรแกรม ซึ่งหนึ่งใน Platform ที่สำคัญ มีชื่อว่า Keras

    4. Your goal & data  คือเป้าหมายหรือปัญหาที่ต้องการแก้ที่ชัดเจน รวมถึง“ชุดข้อมูล”ที่จะใช้สอนให้ระบบเรียนรู้ปัญหาของคุณด้วย


    1. Fundamental Knowledge

    ก่อนที่เราจะเริ่มเซ็ตอัพ Hardware หรือเขียนโปรแกรมนั้น ผมเชื่อว่าสิ่งที่สำคัญที่สุดยิ่งกว่าคือความเข้าใจพื้นฐานที่ถูกต้องเกี่ยวกับ AI ในยุคของ Deep Learning นี้ซึ่งเป็นเทคโนโลยีที่ปฏิวัติวงการ AI เมื่อไม่กี่ปีที่ผ่านมาทำให้ความรู้ ความเข้าใจ และผลงานที่บริษัทหรือนักวิจัยทำออกมามีความก้าวหน้าแบบก้าวกระโดด — แล้วเราควรจะเข้าใจอะไรบ้างล่ะ?

    ก่อนอื่นเลยควรจะทราบว่า AI, Machine Learning และ Deep Learning คืออะไร สำคัญอย่างไร และต่างกันอย่างไรบ้าง กล่าวโดยสรุปก็คือในปัจจุบัน (ปี 2018 และอนาคตอีกอย่างน้อยสิบปี) วงการ AI จะถูกขับเคลื่อนด้วยสาขาย่อยที่ชื่อว่า Deep Learning เป็นศูนย์กลาง ดังนั้นใครก็ตามที่อยากเข้าใจและสร้างระบบ AI จึงจำเป็นต้องทำความเข้าใจเรื่อง Deep Learning อย่างหลีกเลี่ยงไม่ได้

    ลำดับถัดมา ความรู้ที่ต้องมี คือการเขียนโปรแกรมขั้นพื้นฐานครับ ซึ่งเราแนะนำให้เริ่มจากภาษา Python ซึ่งเป็นภาษามาตรฐานของวงการนี้ และเริ่มต้นได้ค่อนข้างง่ายครับ โดยสามารถเริ่มต้นได้ที่ DataCamp หรือ CodeAcademy ก็ได้ครับ คอร์สเหล่านี้ผู้ที่ไม่เคยเขียนโปรแกรมมาก่อนเลยก็สามารถเริ่มได้ไม่ยากครับ ส่วนผู้ที่มีพื้นฐานอยู่แล้วก็สามารถเรียนหรือทบทวนได้เร็วๆ เลย

    หมายเหตุ: มีน้องๆ หลายท่านสอบถามเข้ามาว่าเริ่มฝึก Python จาก FreeCodeCamp ได้หรือเปล่า ทีมเราได้เข้าไปดูการสอนแล้ว (สค 2021) คิดว่าไม่แนะนำครับ เพราะที่นี่เค้าไม่มีภาคปฏิบัติการเขียนโปรแกรมจริงให้ทำขณะเรียน เหมือนอีกสองแหล่งด้านบน (FreeCodeCamp จะให้เราทำแบบทดสอบปรนัยแทน) ซึ่งการเขียนโปรแกรมนั้นภาคปฏิบัตินั้นขาดไม่ได้ ในการเรียนรู้การเขียนโปรแกรมครับ

    เมื่อเขียนโปรแกรมขั้นพื้นฐานได้แล้ว ก็ต้องต่อด้วยการเขียนโปรแกรมที่จำเป็นต้องใช้คณิตศาสตร์ของ Deep Learning มากขึ้น ซึ่งเราอธิบายรายละเอียดไว้ในหัวข้อที่ 3 ด้านล่างครับ

    เมื่อเขียนโปรแกรมได้ดีแล้ว การจะทำความเข้าใจ Deep Learning ในระดับพื้นฐานให้กระจ่างนั้น ในยุคปัจจุบันเพื่อนๆ สามารถลงเรียนหลักสูตร online ได้อย่างสะดวกครับในหลักสูตร online นี้มีหลายรูปแบบไม่ว่าจะเป็น หลักสูตร intensive เน้นพื้นฐานรวมทั้งคณิตศาสตร์ของ Deep Learning รวมทั้งการทำการทดลองต่างๆ ให้ถูกต้องตามกระบวนการวิทยาศาสตร์ที่สอนโดยอาจารย์และนักวิจัยชั้นนำระดับโลก เช่น Andrew Ng หรือ Andrej Karpathy หรือหลักสูตรเร่งรัดต่างๆ สำหรับโปรแกรมเมอร์ที่ต้องการเขียนโปรแกรมให้ได้เร็วที่สุด อาทิเช่นหลักสูตรของ fast.ai, udemy ซึ่งเราได้ survey หลักสูตรระดับโลกต่างๆ ไว้ในบทความนี้ครับ

    เมื่อทฤษฎีแน่นแล้วสามารถศึกษาที่ workshop ของ ThAIKeras เองได้ครับ

    สำหรับเพื่อนๆ ที่อยากศึกษาคณิตศาสตร์ เพื่อที่จะเป็น Master หรือ Expert ด้าน AI สำหรับคณิตศาสตร์ที่ขาดไม่ได้ในการศีกษาโมเดลต่างๆ ของ AI และ Deep Learning ก็คือ Linear Algebra, Probability, Statistics และ Calculus ทั้งสี่ตัวนี้เป็นขั้นต่ำที่ต้องรู้ครับ

    การจะเป็นผู้เชี่ยวชาญหรือ AI Master นั้นแน่นอนว่าไม่มีทางลัด แต่การหมั่นฝึกฝนในพื้นฐานเป็นทางตรงที่สั้นที่สุด ดั่งคำกล่าวด้านล่างครับ :

    “Get the fundamentals down and the level of everything you do will rise.” – Michael Jordan

    ปัจจุบันทุกคนสามารถเข้าถึงสื่อการสอนระดับโลกได้ง่ายๆ (โดยต้องเตรียมวิชาภาษาอังกฤษกันให้ดีนะคร้าบ) ลองเรียนกับผู้สอนชั้นนำเหล่านี้ครับ เราจะตกใจเลยว่าหลายๆ เรื่องที่ดูซับซ้อนนั้นเข้าใจได้ง่ายขนาดนี้เลยหรือ

    best AI courses

    แหล่งเรียนรู้ระดับโลกมากมายที่สมัยก่อนคนทั้งโลกต้องแย่งกันเข้าไปเรียนโดยมีเพียงคนเพียงหยิบมือเท่านั้นที่ฝ่าฟันการแข่งขันการสอบเข้ามหาวิทยาลัยชั้นนำระดับโลกได้ ในปัจจุบันหลายๆ ที่เปิดสอนฟรี หรือราคาถูกมากๆ (อาทิเช่นไม่กี่ร้อยบาท) นับเป็นโชคดีอย่างมากของพวกเราในยุคนี้

    Ng teaching 1

    ด้วยเทคโนโลยีปัจจุบัน เราสามารถเรียนจากอาจารย์ระดับโลกได้เพียงแค่คลิกเดียว ในรูปนี้คือศาสตราจารย์ Andrew Ng สอนที่มหาลัย Stanford และสอนให้เราเรียนฟรีๆ ที่ Coursera.org


    2. Hardware

    Hardware ขั้นต่ำที่ผู้ใช้ทุกคนควรมีในยุคของ AI ที่มี Deep Learning เป็นจุดศูนย์กลางนั้น ได้เปลี่ยนแปลงไปมากจากช่วงปี 2000-2010 (ยุค AI ก่อนที่จะมาเป็น Deep Learning) มาก ในสมัยนั้นเราสามารถใช้เครื่อง PC หรือ Notebook ส่วนตัวเพื่อรันโปรแกรมของเราได้อย่างไม่ยากเย็นนักเนื่องจาก CPU ของเครื่องส่วนตัวของเรา นั้นมีประสิทธิภาพเทียบเคียงกับ CPU ของเครื่อง Server ขนาดใหญ่ในระดับที่ยอมรับได้

    หลังจากนั้นไม่นานทุกอย่างก็เปลี่ยนไป เนื่องจากบริษัท NVidia ผู้ผลิต GPU หรือ Graphic Card ที่เดิมเคยใช้เป็นอุปกรณ์ประสิทธิภาพสูงที่ใช้ในการประมวลผลภาพกราฟฟิกหรือเล่นเกมส์เป็นหลักได้พัฒนา API (เรียกว่า CUDA) เพื่อให้การเขียนโปรแกรมทั่วๆ ไปสามารถใช้งาน GPU ได้ และเมื่อราวปี 2014 ทาง Nvidia ก็พัฒนา Programming Library สำหรับ Deep Learning โดยเฉพาะ (เรียกว่า CUDNN) ซึ่งทำให้การประมวลผลของ Deep Learning ด้วย GPU ตัวท้อปๆ นั้นเร็วขึ้นในระดับ 30-50 เท่าเมื่อเทียบกับ CPU เลยทีเดียว (อ้างอิงปี 2018) ในปี 2020 นั้นมี GPU รวมทั้งเทคนิกใหม่ๆ เช่น mixed precision ออกมาเรื่อยๆ ซึ่งอาจทำให้ GPU ที่ใช้ในปี 2020 เช่น GTX 2080ti และ V100 เร็วกว่าที่นิยมใช้เมื่อปี 2018 (เช่น GTX 1080ti, K80 หรือ P100) ไปอีกเป็นเท่าตัว

    ล่าสุดซีรีย์ 3090 ในปี 2021 ก็ยังเพิ่มประสิทธิภาพให้เหนือกว่า 2080 ขึ้นไปอีก รวมทั้งเพิ่ม memory ใน GPU เป็นเท่าตัวทำให้สามารถสร้างโมเดลขนาดใหญ่กว่าเดิมได้สองเท่า นับว่ามีประโยชน์มากๆ ครับ

    ด้วยเหตุนี้เอง นักวิจัยรวมทั้งนักพัฒนาทั่วโลกต่างก็ใช้ศักยภาพของ GPU กันอย่างเต็มที่ ทำให้ Software หรือ Programming Platform ต่างๆ ที่พัฒนาขึ้นมาในช่วงหลังต่างก็มีสมมติฐานว่าทุกคนล้วนมี GPU ตัวท้อปไว้ใช้งาน ดังนั้นโปรแกรมของเราก็จะทำงานช้ามากๆ ถ้าเราไม่มี GPU ดังกล่าว

    กล่าวโดยสรุปก็คือถ้าจะใช้ Deep Learning เราต้องหา GPU ขึ้นมาใช้งานให้ได้ ซึ่งมี 3 วิธีที่คนส่วนใหญ่เลือกใช้กันคือ

    1. การเซ็ตอัพ server เป็นของตนเอง ด้วยการลงทุนอุปกรณ์ทุกอย่างรวมทั้ง GPU ซึ่งมีราคาค่อนข้างแพง (รวมทั้งหมดหลักแสนสำหรับเครื่องส่วนบุคคล หรือหลักล้านสำหรับบริษัทขนาดใหญ่) แต่ก็อาจจะคุ้มค่าในระยะยาวสำหรับคนหรือบริษัทที่ใช้งานหนักมาก
    2. การเช่า Virtual Machine จาก cloud server ผ่านผู้ให้บริการอย่าง Amazon, Microsoft หรือ Google ใน option นี้เราไม่จำเป็นต้องลงทุนอุปกรณ์เอง ใช้เพียง Browser หรือ SSH ในการ connect ไปทำงานบน server นั้นๆ ครับ Option นี้ปัจจุบันน่าสนใจมากขึ้นมาก เนื่องจากผู้ให้บริการเหล่านี้เริ่มคิดราคาที่ถูกลงมากขึ้นเรื่อยๆ เราสามารถหยุดเครื่องไว้ชั่วคราวและไม่ถูกคิดค่าใช้จ่ายเมื่อเราไม่ใช้งาน นอกจากนี้ยังมี Preemptible Mode บน Google GCP ที่ราคาถูกลงจากราคาปกติมากกว่าครึ่ง แต่ก็เสี่ยงต่อการถูกสั่งปิดจาก Google โดยไม่แจ้งล่วงหน้า
    3. การใช้ Google Colab ซึ่งเป็นบริการ GPU Virtual Machine ฟรีสำหรับคนทั่วไป ซึ่งเป็นสิ่งดีๆ ที่ Google มอบให้กับสังคม (จำกัดระยะเวลาและ resource ที่ให้ใช้ เช่น รันต่อเนื่องได้ไม่เกิน 12 ชม. หรือ 24 ชม. สำหรับ Colab Pro) ในปี 2020 นั้น Colab ได้ถูกพัฒนาให้ใช้งานง่ายขึ้นมากๆ และมีตัวอย่างหลายพันตัวอย่างทั่วอินเตอร์เน็ตให้เราลองเล่นฟรีๆ นอกจากนี้ยังมี Colab Pro เพียง 300 บาทต่อเดือน ที่อัพเกรดสเปคและความเสถียรขึ้นอีกมาก เป็น option ที่แนะนำสำหรับนักวิจัยทั่วไปเลยครับ เข้าพูดคุยกับกลุ่ม Colab Thailand ได้ที่นี่ครับ

    nvidia logo

    ลงทุนหลักแสนบาทเพื่อซื้อ Server ที่มี GPU มาใช้เอง ซึ่งประหยัดกว่า Cloud ในระยะยาวในกรณีที่ใช้งานเยอะมาก แต่ต้องดูแล Maintenance ระบบและ Backup ข้อมูลด้วยตนเอง

    cloud servers

    ใช้บริการ Cloud Server จากผู้ให้บริการรายใหญ่ (ณ เมษายน 2020 ราคา Server ที่มี GPU ขั้นต่ำของ GCP อยู่ราว $0.45 / ชม. และ Amazon AWS จะมีราคาแพงกว่าราว 10-30%)

    colab logo

    Colab บริการฟรี! จาก Google โดยมีข้อจำกัดในการใช้งานได้ไม่เกิน 12 ชั่วโมง (หรือ 24 ชั่วโมงสำหรับ Colab Pro) และการเชื่อมใช้งาน Data ที่ต้องผ่าน Google Drive หรือ Google Cloud Storage

    ทั้งสามทางเลือกนี้เป็นตัวเลือกที่น่าสนใจ นอกจากนี้ยังมีทางเลือกที่ 4 ซึ่งเหมาะกับนักเรียน นักศึกษา หรือนักวิจัย (ไม่เหมาะสำหรับบริษัท) ที่เพิ่งเปิดให้ใช้งานราว 2018 นั่นคือ Kaggle Virtual Machine ซึ่งให้ใช้บริการได้ฟรีเช่นเดียวกับ Colab แต่ใช้งานง่ายและมี environment ที่เหมาะสมกับการทำ Project มากกว่า (เช่นเชื่อมกับ datasets นับหมื่นและโหลดได้เพียงคลิ้กเดียว รวมทั้งพูดคุยสอบถามและเรียนรู้ไปพร้อมๆ กับเพื่อนๆ เก่งๆ ทั่วโลก) โดยสามารถใช้ CPU-VM ได้ 10 VMs พร้อมกันไม่มีข้อจำกัด และ GPU-VMs ได้ 40 ชม++ .ต่อสัปดาห์ ดูรายละเอียดเบื้องต้นได้ในบทความนี้ครับ

    เพิ่มเติมในปี 2020 Kaggle ได้ให้พวกเราใช้ TPU ฟรีสัปดาห์ละ 30 ชม. ซึ่งตัว TPU นี้มีความเร็วเทียบเท่า GPU V100 ที่แรงมากๆ ที่สุด 8 ตัวรวมกัน (ราคานับล้าน)!!! นับว่าเป็น resource ที่ยอดเยี่ยมมากๆ สำหรับนักศึกษาและนักวิจัย เพื่อนๆ ดูรายละเอียดเกี่ยวกับ Kaggle ได้ที่นี่ครับ

    ล่าสุด บทความเดือนกันยายน 2020 เราได้แนะนำวิธีใช้ Colab และ Kaggle ร่วมกันอย่างละเอียดซึ่งเทียบเท่ากับการเช่าเครื่องราคาเหยียบแสนบาทต่อเดือน สรุปแล้วสำหรับเพื่อนๆ ที่มีหัวใจที่จะเรียนรู้และพัฒนาตัวเอง ถึงแม้จะมีงบน้อย การได้มี Colab และ Kaggle ใช้งานพร้อมๆ กันทำให้การเรียนรู้ของเราแทบจะไม่มีข้อจำกัดอีกต่อไปแล้วครับ บทความและ workshop ทั้งหมดของทีมงานที่เพื่อนๆ สามารถทดลองทำได้ทันทีจะอยู่บน 2 platforms นี้เช่นกัน ขอให้สนุกให้เต็มที่!!


    3. Programming Platform

    การจะเขียน software ด้าน AI หรือ Deep Learning ขึ้นมานั้นมี Programming Platform หรือ tools ที่อำนวยความสะดวกต่างๆ ที่เราใช้งานจริงเยอะพอสมควร (ดูรูปซ้าย) สำหรับผู้เริ่มต้น ผมขอเสนอสูตร minimalist ที่ที่จำเป็นจริงๆ และเพียงพอต่อการใช้งาน Deep Learning ครับ ซึ่ง tools ที่เพื่อนๆ ควรรู้จักประกอบไปด้วย 5 tools ด้วยกัน (รูปขวา) คือ Python, Numpy, Jupyter, Keras และ Pandas ซึ่งขอเรียกทั้ง 5 tools นี้รวมๆ ว่า Deep Learning Programming Platform ครับ (+1 น้องใหม่ HuggingFace Transformer ในปี 2020)

    All python resources

    Programming Tools ที่เหล่า Deep Learning Programmers นิยมใช้งาน

    5 ทหารเสือ + 1 น้องใหม่ไฟแรงของ Programming Tools ที่เราจะใช้งานเป็นหลัก

    1. Python : เป็นภาษาคอมพิวเตอร์ที่โปรแกรมเมอร์หรือนักวิจัย Deep Learning นิยมใช้มากที่สุด ดังนั้นจึงมีแหล่งเรียนรู้มากที่สุด
    2. Jupyter : คือ Editor ที่เอาไว้ใช้เขียนโปรแกรมและแสดงผลลัพธ์แบบ Interactive ทำให้การเขียนโปรแกรมเป็นขั้นเป็นตอนมาก นอกจากนี้ยังอนุญาตให้เราเขียนบันทึกในรูปแบบที่สวยงามระดับเดียวกับ word processor ชั้นนำเช่น Latex
    3. Numpy : คือ Library สำหรับคณิตศาสตร์โดยเฉพาะของ Python ที่อัพเกรดให้ Python มีความสามารถในการเขียนโปรแกรมคณิตศาสตร์ได้ระดับเดียวกับภาษาชื่อดังอย่าง Matlab
    4. Keras บน Tensorflow : คือ Opensource Library ที่พัฒนาโดย Google เพื่อใช้เขียนโปรแกรม Deep Learning โดยเฉพาะ จึงทรงพลังมาก อย่างไรก็ดีแม้ Tensorflow จะทรงพลังแต่ใช้งานค่อนข้างยากสำหรับมือใหม่ Keras จึงเป็น API library ที่มาครอบ Tensorflow อีกชั้นนึง เพื่อให้การเขียนโปรแกรม Deep Learning ง่ายเหมือนกับปอกกล้วย ปัจจุบัน 2020 Tensorflow ได้สนับสนุน Keras อย่างเป็นทางการ ดังนั้นเราไม่ต้องกลัวล้าสมัยแน่นอน
    5. Pandas : ซึ่งเป็น tools ที่ใช้จัดการข้อมูลในรูปแบบตาราง excel ได้มีประสิทธิภาพมากๆ เมื่อใช้รวมกับ Numpy ทำให้เราจัดเก็บและแปลงข้อมูลได้ง่ายดุจพลิกฝ่ามือ

    สำหรับการเซ็ตอัพ Deep Learning Programming Platform นั้นถ้าเราเลือกใช้ Hardware ข้างต้นคือ Kaggle Virtual Machine, Colab หรือ Cloud Virtual Machine ชั้นนำนั้นเราแทบจะไม่ต้องทำอะไรเลยครับเพราะ servers เหล่านี้เตรียม tools ไว้ให้เราทั้งหมดเรียบร้อยแล้ว อย่างไรก็ดีกรณีที่เราจะเซ็ตอัพ server ของเราขึ้นมาเองก็จะมีขั้นตอนมากขึ้นครับเพราะต้องเริ่มตั้งแต่ลง OS เช่น Linux ใหม่เลยครับ

    อัพเดต 2020 ถ้าเพื่อนๆ เชี่ยวชาญทั้ง 5 tools ดังกล่าวแล้ว ถัดมาที่ควรเรียนรู้คือ Huggingface's transformer ซึ่งเป็น Deep Learning tool ที่ทรงพลังที่สุดสำหรับจัดการข้อมูล text files ซึ่งปฏิวัติวงการ NLP ในช่วงปลายปี 2018 ครับ และได้รับการพิสูจน์ตลอดปี 2019-2020 ว่ามีประสิทธิภาพสูงกว่า tools เดิมๆ ที่เราใช้กันคือ LSTM / GRU มากดังนั้นจึงกลายเป็นมาตรฐานใหม่ของงาน NLP โดย Huggingface library นั้นใช้งานกับ Keras ได้ทันทีและอยู่ใน Kaggle VM อยู่แล้วเช่นกัน import มาใช้ได้โดยไม่ต้องติดตั้งอะไรเพิ่มเติม


    4. Goals & Data

    Most practising scientists focus on 'bite-sized' problems that are timely and tractable. The risk is then to lose sight of the big picture — Martin Rees

    ในสามหัวข้อที่ผ่านมาเราพูดถึงการเตรียมตัวความรู้รวมทั้ง tools ต่างๆ ที่มีอยู่แล้วในโลกสาธารณะ ในหัวข้อสุดท้ายนี้ถึงเวลาที่เราต้องกลับมาเตรียมตัวเองให้ชัดเจนว่าเราต้องการนำ AI หรือ Deep Learning ไปใช้งานด้านไหนกันแน่ เป้าหมายของเราอยู่ในขอบข่ายความสามารถของ AI หรือไม่ ทำได้ยากแค่ไหน และต้องเตรียมข้อมูลหรือทรัพยากรอะไรให้กับระบบ AI บ้าง

    เรื่องแรกที่ต้องทำความเข้าใจก่อนก็คือ ระบบ AI ที่มีศูนย์กลางที่ Deep Learning นั้น

    • ถึงแม้ Deep Learning จะทรงพลังและแก้ปัญหาได้หลายอย่าง (ดังเช่นที่ยกตัวอย่างในท้ายบทความนี้) แต่เราอาจจำเป็นต้องซอยปัญหาให้ย่อยลง และมีขอบเขตที่เหมาะสม กำหนดเป้าหมายให้ชัดเจนว่า Input คืออะไรและ Output คืออะไร เนื่องจากการกำหนด Input และ Output ที่เหมาะสมคือหัวใจสำคัญที่จะบอกว่าระบบ Deep Learning ที่พัฒนาจะใช้งานได้จริงหรือไม่ (ดูคอร์ส Deep Learning สำหรับนักปฏิบัติ) ยกตัวอย่างเช่น ถ้าเรามีหนังสือภาษาอังกฤษ (input) แล้วเราอยากพัฒนาระบบ “ที่อ่านออกเสียงในภาษาไทย” (output) เราอาจจำเป็นต้องแบ่งปัญหาเป็นสองส่วน โดย ส่วนแรกคือส่วนแปลภาษา เราจำเป็นต้องมีข้อมูลสอนเป็นตัวหนังสือประโยคภาษาอังกฤษและภาษาไทยจำนวนมาก และส่วนที่สองคือส่วนอ่านออกเสียงซึ่งเราจำเป็นต้องมีตัวอย่างคำในภาษาไทย และการอ่านออกเสียงคำต่างๆ เพื่อสอนให้ระบบสามารถอ่านออกเสียงภาษาไทยได้
    • อย่างที่เกริ่นไว้ข้างต้น เราจำเป็นต้อง “สอน” ระบบ Deep Learning ของเราเพื่อให้มันเรียนรู้การแก้ปัญหาที่เราต้องการด้วย “ข้อมูล” จำนวนมาก ซึ่งเป็นตัวตัดสินว่าระบบของเราจะทำงานได้ดีหรือไม่ การเรียนรู้จากข้อมูลจำนวนมหาศาลได้อย่างมีประสิทธิภาพนี่เองคือจุดที่ทำให้ Deep Learning ปฏิวัติวงการ AI และเหนือกว่า Machine Learning ในยุคก่อนหน้าที่ไม่สามารถนำข้อมูลมาใช้ได้อย่างเต็มรูปแบบ
    DL vs. ML Performance by A.Ng

    สไลด์ของ Andrew Ng ที่เปรียบเทียบประสิทธิภาพของ Deep Learning ที่เหนือกว่าวิธี Machine Learning ประเภทอื่นๆ เมื่อเราเพิ่มชุดข้อมูลสอนมากขึ้นเรื่อยๆ ซึ่งแสดงให้เห็นความสำคัญของปริมาณและคุณภาพของชุดข้อมูลสอน

    How Deep Learning is Superior to Others

    สไลด์ของ Jeff Dean จาก Google Brain ที่พูดถึงพลังของ Deep Learning (ซึ่งมีอีกชื่อคือ Neural Networks) ในทำนองเดียวกัน

    ประเด็นแรกเรื่องการกำหนดปัญหาให้ชัดเจนนั้น เพื่อนๆ จำเป็นต้องมี Fundamental Knowledge เพื่อที่จะได้เข้าใจพลัง ขอบเขต และวิธีการออกแบบสถาปัตยกรรมต่างๆ ของ Deep Learning อย่างที่กล่าวไว้ในหัวข้อแรกของบทความนี้ครับ

    สำหรับประเด็นที่สองคือเรื่องของ “ข้อมูลสอน” นั้นเป็นเรื่องที่สำคัญมากและมักถูกมองข้ามไป และทำให้ระบบ AI มักไม่ประสบความสำเร็จเท่าที่ควรในทางปฏิบัติ ในปัจจุบันมีเว็บสาธารณะมากมายที่ให้เราดาวน์โหลด “ข้อมูลสอน” แบบไม่มีค่าใช้จ่ายซึ่งขั้นตอนสำคัญคือเราจำเป็นต้องเลือกข้อมูลเหล่านั้นให้ตรงหรือใกล้เคียงกับการใช้งานจริงของเรา จากประสบการณ์ส่วนตัวชุดข้อมูลสอนที่อาจจะหาได้ยากและเพื่อนๆ อาจจำเป็นต้องเตรียมชุดข้อมูลด้วยตัวเองคือ

    • ระบบ AI ที่เกี่ยวกับ Business ต่างๆ (ทั้งนี้เพราะ “ชุดข้อมูล” ถือเป็นเคล็ดลับทางธุรกิจที่จะทำให้บริษัทหนึ่งประสบความสำเร็จมากกว่าที่อื่น) และ
    • ระบบ AI ที่เกี่ยวข้องกับ “ภาษาไทย” โดยตรง ซึ่งยังถือว่ามีชุดข้อมูลที่เผยแพร่แบบสาธารณะน้อยมาก และส่วนใหญ่เป็นความลับทางธุรกิจ

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


    สรุป

    บทความนี้เป็นการสรุปภาพใหญ่สำหรับเรื่องที่เพื่อนๆ จำเป็นต้องเตรียมตัวในการเซ็ตอัพระบบ AI / Deep Learning ขึ้นมา สำหรับรายละเอียดปลีกย่อยต่างๆ สามารถกดดูเพิ่มเติมได้ในลิงก์ของแต่ละหัวข้อครับเพื่อนๆ สามารถพูดคุยและติดตามบทความล่าสุดที่อัพเดตทุก 10 วันได้ที่ facebook ของเราคร้าบผม


    The Neural Engineer
    The Neural Engineer
    คุณพ่อลูกหนึ่งที่หลงใหลในสถาปัตยกรรมนิวรอนและงานด้าน Machine Understanding — ติดตามบทความล่าสุดและพูดคุยกันได้ที่ https://www.facebook.com/thaikeras คร้าบ

    Related posts

    Deep Learning Intuition
    November 13, 2020

    กำเนิด Deep Learning : จากงานวิจัยในห้องแล็บ กลายเป็นเทคโนโลยีพลิกโลก (อัพเดต 2020)


    Read more
    AI ML DL
    November 10, 2020

    AI, Machine Learning และ Deep Learning เกี่ยวข้องกันอย่างไร


    Read more
    March 8, 2019

    เชิญชวนเพื่อนๆ ที่สนใจ Kaggle มารวมกลุ่นกันครับ!


    Read more
    © 2018 ThAIKeras.com All Rights Reserved.