เริ่มต้น Set Up และทดลอง NumPy Workshop ที่ Kaggle.com
November 14, 2018รีวิวและแชร์ประสบการณ์หลักสูตร Deep Learning Online
January 9, 2019“Try not. Do or do not. There is no try.” — Master Yoda, the Jedi Grand Master
กราบสวัสดีเพื่อนๆ ชาว AI และ Deep Learning ครับ สำหรับชุดบทความนี้ ทีมงานมีความตื่นเต้นและภูมิใจที่จะนำเสนอคอร์ส “Deep Learning สำหรับนักปฏิบัติ” ที่เราตั้งใจออกแบบโดยยึดหัวใจสองข้อครับคือให้มีความ “เข้าใจง่าย” (Intuitive) และ “มีตัวอย่างครอบคลุมการใช้งานจริง” (Practical) เราพยายามออกแบบคอร์สให้รวบรัดสำหรับเพื่อนๆ ที่ยังมีประสบการณ์ไม่มากแต่มีความตื่นเต้นและตั้งใจที่จะพัฒนาระบบ AI หรือ Deep Learning ด้วยตนเอง โดยคอร์สนี้จะพยายามให้มีส่วนทฤษฎีและคณิตศาสตร์เล็กน้อยที่สุดเท่าที่จำเป็นต่อความเข้าใจพื้นฐาน ซึ่งเพื่อนๆ ที่สนใจสามารถเรียนส่วนทฤษฎีและคณิตศาสตร์ได้ใน Course Online ระดับโลก (หรืออาจจะเป็นคอร์สของเว็บเราเองในอนาคตครับ)
แท้จริงแล้วคอร์สนี้ได้รับอิทธิพลและแรงบันดาลใจจากสุดยอด Course Online ต่างๆ ที่มีอยู่แล้ว เพียงแต่เรานำมาปรับให้รวบรัดเป็นภาษาไทยให้หมาะสำหรับเพื่อนๆ ที่เป็นนักปฏิบัติตัวยง ผ่านเวทมนตร์ของ Keras และระบบของ Kaggle ที่จะทำให้การทำงานบน Deep Learning Project ง่ายขึ้นอย่างไม่น่าเชื่อครับ
สิ่งที่จะได้เรียนรู้จากคอร์สนี้
- ไอเดียพื้นฐานของ AI, Machine Learning และ Deep Learning เพื่อความเข้าใจที่ถูกต้องในการออกแบบและสร้างระบบ AI ของตนเอง
- ไอเดียและการเขียนโปรแกรม Neural Architectures ที่สำคัญของ Deep Learning สำหรับนักปฏิบัติในการออกแบบเพื่อแก้ปัญหาที่ตนสนใจ
- Workshop ที่ให้เพื่อนๆ ได้ทดลองและเขียนโปรแกรมผ่าน GPU Virtual Machine ที่มีประสิทธิภาพเทียบเคียงการเขียนโปรแกรมในแล็บชั้นนำของโลกโดยไม่มีค่าใช้จ่าย
- ทดลองทำ Projects สนุกๆ และท้าทายจากข้อมูลจริงของแล็บหรือบริษัทระดับโลก อาทิเช่น
Project A. สร้างระบบ AI ที่เป็นผู้เชี่ยวชาญเรื่องหมาๆ นั่นคือเมื่อดูรูปแล้ว AI สามารถตอบได้ว่าสุนัขในรูปคือสายพันธุ์อะไร
Project B. สร้างระบบ AI ที่เป็นผู้เชี่ยวชาญในการดูฟิล์ม X-Ray ของปอด โดยสามารถทำนายว่าคนไข้ในรูปปอดติดเชื้อหรือไม่
Project C. สร้างระบบ AI ที่เป็นผู้เชี่ยวชาญด้านการแต่งเพลง โดยมีไอเดียไม่จำกัดที่จะแต่งเนื้อร้องเพลงใหม่ได้เสมอ
Project D. สร้างระบบ AI ซึ่งเป็นผู้เชี่ยวชาญเรื่องการวิจารณ์ภาพยนต์ โดยอ่านรีวิวผู้ชมทางบ้านแต่ละคนแล้วแปลความหมายได้ว่าผู้ชมคนนั้นชอบหนังเรื่องนี้หรือไม่
Project E. สร้างระบบ AI ซึ่งเป็นผู้เชี่ยวชาญเรื่อง transaction ของบัตรเครดิต โดยสามารถทำนายได้ว่า Transaction ใดมีแนวโน้มที่จะไม่ปกติหรือมีการทุจริต
Project F. สร้างระบบ AI ซึ่งเป็นผู้เชี่ยวชาญในบทหนัง โดยเมื่อดูบทพูดแล้วสามารถทำนายได้ว่าบทพูดนั้นเป็นของตัวละครใด
Project G. สร้างระบบ AI ที่เป็นผู้เชี่ยวชาญเรื่องเสียง นั่นคือเมื่อฟังเสียงต่างๆ แล้วสามารถแยกแยะได้ว่าเป็นเสียงของอะไร เช่น เสียงเปียโน เสียงรถยนต์ เสียงหัวเราะ หรือเสียงแมว เป็นต้น
Project H. สร้างระบบ AI ที่เป็นผู้เชี่ยวชาญทั้งเรื่องรูปภาพและการบรรยาย ไม่เพียงแยกแยะได้ว่าวัตถุในภาพคืออะไร แต่สามารถบรรยายเหตุการณ์ต่างๆ ในภาพได้อีกด้วย
ในภาพรวมนั้น คอร์สสั้นนี้จะประกอบไปด้วย 3 ส่วนใหญ่ๆ นั่นคือ
พื้นฐานของ Neural Networks — ซึ่งก็คือพื้นฐานของ Deep Learning นั่นเอง ในส่วนนี้เราจะมาเรียนรู้สถาปัตยกรรมของ Neural Networks ที่ตรงไปตรงมาที่สุดกันก่อน มีชื่อเรียกว่า Feed-forward Neural Networks รวมทั้งความรู้พื้นฐานต่างๆ เกี่ยวอาทิเช่น ปัญหาแบบใดบ้างที่ Neural Networks สามารถแก้ได้, ไอเดียที่ทำให้ Neural Networks นั้น “ฉลาด” ได้อย่างที่เราออกแบบ และการออกแบบการทดลองเพื่อสร้างระบบ AI อย่างมีมาตรฐานเป็นต้น Neural Networks สำหรับข้อมูลรูปภาพ — ในการใช้งานจริง หนึ่งในข้อมูลที่เราหวังให้ AI มีความรู้ ความฉลาดมากที่สุดคือการเข้าใจเกี่ยวกับรูปภาพ เช่นรู้ว่ารูปภาพแต่ละรูปคือรูปของอะไร ซึ่งการรับรู้รูปภาพนี้จำเป็นต้องใช้ Neural Networks ประเภทพิเศษที่เรียกว่า “Convolutional Neural Networks (CNN)” Neural Networks สำหรับข้อมูลลำดับ — ในการใช้งานจริง อีกหนึ่งในข้อมูลที่เราพบเจอบ่อยก็คือ “ภาษามนุษย์” ที่มีลักษณะเป็นลำดับ นั่นคือข้อมูลที่เกี่ยวกับตัวหนังสือหรือเสียงที่คนเราต้องอ่านหรือฟังทีละประโยค หรือทีละคำ การจะจัดการภาษามนุษย์หรือข้อมูลลำดับประเภทอื่นๆ เราก็จำเป็นต้องใช้ Neural Networks ประเภทพิเศษที่เรียกว่า “Recurrent Neural Networks (RNN)” สำหรับหัวข้อถัดไปเป็นพื้นฐานโปรแกรมมิ่งที่จำเป็น ซึ่งผู้ที่เชี่ยวชาญ Python หรือ Numpy อยู่แล้วสามารถข้ามไปได้เลย หรือจะลองทำ Workshop เพื่อเป็นการปัดฝุ่นก็ได้ครับ
หัวข้อ 0. Programming & System Requirements
ก่อนที่จะเริ่มเรียน Deep Learning ไปด้วยกัน เพื่อนๆ ต้องมีความพร้อมสองเรื่องต่อไปนี้ครับ
- ทักษะการเขียนโปรแกรม — Keras นั้นเป็น Programming Platform ที่มีพื้นฐานอยู่ที่ภาษา Python และไลบรารีคณิตศาสตร์ของ Numpy ดังนั้นจึงจำเป็นอย่างยิ่งที่เพื่อนๆ ต้องมีพื้นฐานของ Python และ Numpy
- อุปกรณ์สำหรับเขียนโปรแกรม Deep Learning — การเขียนโปรแกรม Deep Learning ในทางปฏิบัตินั้นจำเป็นต้องใช้อุปกรณ์ที่มีความสามารถสูง รวมทั้งยังต้องการไลบรารีและโปรแกรมต่างๆ มากมาย อาทิเช่น Tensorflow หรือ Jupyter Notebook
ความตื่นเต้นและภูมิใจหนึ่งของเราก็คือ ในคอร์สนี้เราได้ค้นพบแหล่งที่เพื่อนๆ จะสามารถใช้อุปกรณ์และไลบรารีทั้งหลายที่จำเป็นในการเขียนโปรแกรมได้ฟรี อย่างไม่มีค่าใช้จ่าย บนระบบของ Kaggle (กราบขอบคุณทีมงานของ Kaggle ที่ได้เปิดโอกาสให้คนทั่วโลกเรียนรู้อย่างแทบไม่มีข้อจำกัด) ซึ่งเพื่อนๆ สามารถดู
วิธีการเซ็ตระบบ ใช้งานเบื้องต้นของ Kaggle รวมทั้งเรียนรู้ Python และ Numpy ผ่าน Jupyter Workshop ของเรา ได้ที่นี้ครับหัวข้อ 1. Feed Forward Architectures
ไปยัง Module นี้
- AI คืออะไร : ประวัติย่อของ AI
- ประเภทของ AI
- ส่วนประกอบของ AI
- AI, Machine Leanring และ Deep Learning เกี่ยวข้องกันอย่างไร
- ประวัติย่อของ Deep Learning และ Neural Networks
- ทักทาย Neural Networks
- สรุปคำศัพท์ที่สำคัญ
- ROADMAP : เราต้องรู้อะไรบ้าง
- รู้จักกล่องดำ หรือโมเดลสมองกล AI
- แนวคิดและการเตรียมข้อมูลเพื่อสร้างโมเดล
- คณิตศาสตร์และการสร้างโมเดล
- การวัดผลโมเดล
- สรุปภาพรวม กระบวนการทั้งหมดในการสร้างโมเดลสมองกล
โมดูล 1.2 : สถาปัตยกรรม Feed Forward
- นิวรอน “ฉลาด” ได้ขนาดไหน? ทำความรู้จักจำนวน Layers และ Bias / Variance
- นิวรอน “ฉลาดขึ้น” ได้อย่างไร? ยิ่งเรียนรู้ ยิ่งฉลาดขึ้น
- นิวรอนเรียนเท่าไรถึงจะพอในการแก้ปัญหาที่เราสนใจ?
โมดูล 1.3 : Keras Magic Workshop
2. Convolution Architectures
3. Recurrent Architectures
คุณพ่อลูกหนึ่งที่หลงใหลในสถาปัตยกรรมนิวรอนและงานด้าน Machine Understanding — ติดตามบทความล่าสุดและพูดคุยกันได้ที่ https://www.facebook.com/thaikeras คร้าบ