Kaggle.com คือ สนามแข่งขัน AI / Machine Learning / Data Science ระดับโลก
มี Google อยู่เบื้องหลัง จินตนาการง่ายๆ ว่า Kaggle นั้นคล้ายๆ องค์กร PGA ที่เป็นผู้จัดแข่งขันกอล์ฟสำหรับมืออาชีพในระดับนานาชาติ และผู้เข้าแข่งขันใน Kaggle ก็เปรียบเสมือนนักกอล์ฟชั้นนำจากทั่วโลก ที่จะลงแข่งพร้อมๆ กัน และเก็บคะแนน สะสมแต้ม ชิงเงินรางวัล จัดอันดับโลก เพียงแต่นี่ไม่ใช่การแข่งกอล์ฟ แต่เป็นการแข่งเขียนโปรแกรม AI ที่เข้มข้น ดุเดือด ตื่นเต้น สนุกสนาน ชิงรางวัล พร้อมทั้งเป็นแหล่งเรียนรู้สายปฏิบัติที่ดีที่สุด ที่ทุกคนเข้าร่วมได้โดยไม่มีข้อจำกัดและไม่มีค่าใช้จ่าย!
อัพเดต ตุลาคม 2020: เลื่อนลงไปจะเจอบทความที่เพิ่มเนื้อหาใหม่ คู่มือเริ่มต้น Kaggle เพื่อเติบโตในเส้นทาง DS / ML! ในเดือนตุลาคม 2020 ครับ
อัพเดต 2022: แอดมินได้มีโอกาส live talk เกี่ยวกับการเติบโตในสายงาน Data Science ด้วย Kaggle สำหรับน้องๆ มัธยมและปริญญาตรี-โท สามารถดูได้ฟรีที่นี่ครับ https://www.facebook.com/thaikeras/posts/pfbid02HaoBubu8d55oJ2V19rotMTMRTQHfidZuBKoNyXMyne7bvxP4EocA6WwToud4p86jl
จุดเด่นของ Kaggle
ซึ่งผมจะทยอยขยายความ มีดังนี้ครับ
1) เป็นการเรียนรู้ภาคปฏิบัติ เขียนโปรแกรมของจริง ปัญหาจริงจากองค์กรระดับโลก
2) เลือกเรียนรู้ได้หลายรูปแบบ ตามความถนัด เช่น
- โหมดแข่งจริง ลงแข่งในสนามระดับโลก แข่งกับนักวิทยาศาสตร์ และนักวิจัย AI มือวางระดับโลก แบบหมัดต่อหมัด
- โหมดฝึกซ้อม สามารถเอาการแข่งขันในอดีต ทั้งข้อมูล หรือศึกษา solution ต่างๆ ที่นักวิทยาศาสตร์ AI เก่งๆ ท่านอื่นได้ทำไว้แล้ว
3) สามารถเรียนรู้ได้ฟรี โดยไม่มีค่าใช้จ่าย มิหนำซ้ำ Kaggle ยังให้ใช้เครื่องที่มี GPU ประสิทธิภาพสูง (ปกติต้องซื้อหรือเช่าราคาแพง) อย่างฟรีๆ โดยมีข้อจำกัด คือ รัน 1 ครั้งได้ 9 ชม. (ข้อมูล ณ สิ้นปี 2018 ซึ่งอาจเปลี่ยนแปลงในอนาคต) ซึ่งเพียงพอมากสำหรับโหมดฝึกซ้อม และโหมดแข่งขันบางประเภท ซึ่งการได้ใช้งาน GPU ฟรีๆ นั้นสุดยอดมากๆ
Workshop และ Lab ของ ThAIKeras เองก็ใช้ทรัพยากรของ Kaggle เช่นเดียวกันครับ
4) ไม่เพียงแข่งขันเท่านั้น ยังพูดคุยแลกเปลี่ยนความรู้กับนัก AI ระดับโลกนี้ได้อีกด้วย นับว่าเป็น AI Community ที่ดีที่สุดในโลกแห่งหนึ่ง และการพูดคุยกับนัก AI ระดับโลกเหล่านี้เป็นประสบการณ์ที่หาได้ยากยิ่ง
5) Kaggle เป็นแหล่งรวม Datasets หรือ ชุดข้อมูล สำหรับฝึกสอน Machine Learning ที่ใหญ่ที่สุดในโลกแห่งหนึ่ง มีข้อมูลทุกประเภทไม่ว่าจะเป็น Datasets ในหมวดหมู่ Finance, Business, Physics, Biology, Sports, News, และ Datasets ทุกๆ อย่างที่เราคิดได้ เพื่อนๆ จะเจออะไรเด็ดๆ แน่นอน 🙂
เราสามารถใช้ข้อมูลเหล่านี้เพื่อฝึกสอนระบบ AI ของเราได้ฟรีๆ (สมัยก่อนข้อมูลดีๆ นั้นหาได้ยาก หรือต้องจ่ายเงินแสนแพงเพื่อซื้อข้อมูลมาฝึก AI) โดยจะใช้ข้อมูลหลายชุดมารวมกันก็ได้ และข้อมูลส่วนใหญ่ยังมี Script ที่ใช้จัดการข้อมูลเหล่านี้เบื้องต้น (Load & Clean) เสร็จเรียบร้อยหมดแล้ว (หรืออาจมี starter model ไว้เรียบร้อย) ประหยัดเวลาของเราไปอย่างมาก
เป็นแหล่งเรียนรู้ภาคปฏิบัติ ของจริง แก้ปัญหาจริงจากองค์กรระดับโลก
ผู้อยู่เบื้องหลัง Kaggle. Kaggle ก่อตั้งโดยสองหนุ่มหัวใส Anthony Goldbloom และ Ben Hamner ซึ่งมีไอเดียที่จะสร้างเว็บไซต์ที่จะเป็นคนกลางในการจัดการแข่งขันด้าน AI ประเภทต่างๆ โดยผู้เกี่ยวข้องทุกฝ่าย ต่างก็ Win-Win ดังนี้
1) Sponsor ผู้จัดการแข่งขัน จะเป็นผู้นำปัญหา AI ในองค์กรของตนเอง ที่ต้องการแก้ด้วยปัญญาประดิษฐ์ มาสร้างเป็นปัญหาที่เหมาะสมในการแข่งขัน Sponsor จะเป็นผู้กำหนดและจ่ายเงินรางวัล (โดยปกติเงินรางวัลจะอยู่ที่ราวๆ หลักล้านบาท แบ่งให้กับผู้ชนะการแข่งขันลำดับต้นๆ)
นั่นก็คือ Sponsor จะทำหน้าที่จ่ายเงินให้กับ Kaggle และให้รางวัลผู้เข้าแข่งขัน เตรียมการแข่งขัน ออกกติกา ในขณะเดียวกัน เมื่อจบการแข่งขันก็จะได้ Solution ของปัญหาจากนัก AI เก่งๆ ทั่วโลกไปเป็นการตอบแทน
2) ผู้เข้าแข่งขัน จะได้เขียนโปรแกรม AI เพื่อแก้ปัญหาจริง บนข้อมูลจำนวนมหาศาลที่ปกติแล้ว จะไม่สามารถเข้าถึงได้ (ข้อมูลมักเป็นความลับของแต่ละบริษัท) นับเป็นโอกาสทองที่หาได้ยากยิ่ง
นอกจากนี้ระบบการแข่งขันบน Kaggle จะเป็นลักษณะแข่งตลอดทั้งปี เพื่อเก็บคะแนน และจัดอันดับโลกเหมือนเทนนิส และกอล์ฟ ซึ่งก็เหมือนวงการเหล่านั้นที่นักกีฬาระดับโลกต่างแข่งกันเพื่อเป็นที่หนึ่ง นักวิจัย AI ระดับโลกทั้งหลายต่างก็ต้องการท้าทายตัวเอง เพื่อจะขึ้นไปให้ถึงมือวางอันดับต้นๆ ของโลกกันทั้งสิ้น
หลักจากที่ Kaggle ประสบความสำเร็จอย่างมากมาย ดึงดูด Sponsor ดังๆ และ นักวิจัย AI ระดับสุดยอดได้จากทั่วโลก Google ก็เข้ามา take over เว็บ Kaggle ไปในปี 2017 นี่เองครับ
เรียนรู้จากคอร์สออนไลน์อื่นๆ กับเรียนรู้จาก Kaggle เลือกอันไหนดี ?
ไม่อยากให้มองว่าต้องเลือกเลยครับ แหล่งเรียนรู้ระดับสุดยอดอย่าง Coursera.org หรือ Cs231n นั้นจะเติมพื้นฐานด้าน Concepts เราให้แน่น (ดูรีวิวที่นี่ครับ : https://thaikeras.com/2018/11/11/onlinecourses/ ) และทำให้เรามาลงมือภาคปฏิบัติที่ Kaggle ได้อย่างเต็มรูปแบบครับ
ตัวอย่างการแข่งขันบน Kaggle
A) เรียนรู้จำภาพวาด Doodle 50 ล้านภาพที่วาดโดยผู้เล่น Doodle ทั่วโลก https://www.kaggle.com/c/quickdraw-doodle-recognition
การแข่งขันครั้งนี้ เป็นการแข่งที่เน้นกระบวนท่า 1 ในแก่นหลักของ Deep Learning นั้นคือการ “ทำให้ AI เข้าใจรูปภาพได้” โดย Deep Learning นั้นก็มีจุดกำเนิดมาจากกระบวนท่าไม้ตายนี้นี่เอง (ดูรายละเอียดในบทความ https://thaikeras.com/2018/11/13/rise-of-dl/ ) เดิม Deep Learning นั้นมักถูกฝึกให้เข้าใจรูปภาพวัตถุในโลกความเป็นจริง การแข่งขันครั้งนี้มีจุดประสงค์เพื่อท้าทาย ความเป็นไปได้ใหม่ๆ ว่า “แล้ว AI สามารถเข้าใจรูปภาพ(ห่วยๆ) ที่เกิดจากลายมือของมนุษย์ที่แทบดูไม่รู้เรื่อง และประกอบไปด้วยเส้นไม่กี่เส้นได้หรือไม่” การแข่งขันคร้ังนี้ประสบความสำเร็จ โดยมีผู้เข้าแข่งขันทั้งหมด 1300 กว่าทีมจากทั่วโลก และเหล่าผู้ชนะลำดับต้นๆ (100 อันดับแรก) ต่างก็สามารถเข้าใจรูปวาดเหล่านี้ได้มากกว่าหรือเท่ากับ 94%
ทีม ThAIKeras เองก็ลงแข่งในการแข่งขันนี้ด้วย เป็นการแข่งขันครั้งแรกของทีมเรา และได้อันดับ 94 ของโลกครับ
ดูผลการแข่งขันได้ที่นี่ครับ https://www.kaggle.com/c/quickdraw-doodle-recognition/leaderboard
เหรียญรางวัลบน Kaggle.com
Kaggle นอกจากจัดอันดับโลกของนักวิจัย AI ที่เข้าร่วมแข่งขันจากทั่วโลกแล้ว ยังมีการมอบเหรียญและป้ายเกียรติยศให้กับผู้ที่เข้าร่วมแข่งขันอีกด้วย โดยเหรียญและป้ายจะมีทั้งหมดสามหมวดหมู่ ได้แก่
1) หมวดการแข่งขัน (Competition)
2) หมวดการสอน (Kernel)
3) หมวดการพูดคุยแลกเปลี่ยนความรู้ (Discussion)
รูปข้างล่างเป็นตัวอย่างของนักวิจัย AI มือวางระดับท้อปของโลกชาวสิงคโปร์ (Heng Cherkeng) ซึ่งจะเห็นว่าปัจจุบันในแง่การแข่งขัน Heng อยู่อันดับที่ 50 ของโลก (ระดับ Master) ในแง่หมวดการสอนนั้น Heng ไม่ได้ถูกจัดอันดับ ส่วนในแง่หมวดพูดคุยแลกเปลี่ยนความรู้นั้นอยู่อันดับสองของโลก (ระดับ Grandmaster)
อันดับ เหรียญรางวัลและป้ายเกียรติยศมีไว้เพื่ออะไร?
ก็เหมือนนักกีฬาระดับโลก ไม่ว่าจะเป็น Roger Federer, Rafael Nadal, Tiger Woods หรือแม้แต่น้องเมย์ รัชนก อินทนนท์ (นักแบดมินตันสาวมือวางระดับต้นของโลกชาวไทย) เกียรติยศและเหรียญรางวัลเหล่านี้แสดงถึงความสามารถ ประสบการณ์ และความภูมิใจในสาขาอาชีพตนเอง นักกีฬาทุกคนต่างก็ฝึกฝนเพื่อให้ไต่อันดับขึ้นไปในให้ถึงจุดสูงสุดของวงการ ในวงการ Data Science และ AI นั้นก็เช่นเดียวกัน
แน่นอนครับ ข้อมูลเหล่านี้จะแสดงถึง Profile อันยอดเยี่ยมของนักวิจัย AI แต่ละคน เป็น Resume ที่ดีที่สุดที่ไม่จำเป็นต้องไปตกแต่งให้ดูสวยงามกว่าความเป็นจริง ถ้าคุณได้สักเหรียญรางวัลหนึ่งบน Kaggle.com ก็แสดงถึงความยอดเยี่ยมในสาขาอาชีพนี้เรียบร้อยแล้ว และบริษัทยักษ์ใหญ่ทั่วโลกต่างก็มองหามือวิจัยชั้นเยี่ยมบน Kaggle.com แห่งนี้ (สังเกตว่า Heng ก็ระบุตนเองว่าเป็น Freelancer ที่พร้อมจะรับทุกงาน)
จะได้เกียรติยศเหล่านี้มาได้อย่างไร
Kaggle จะแบ่ง Level ของนักวิจัย AI เป็น 5 ระดับ คือ Novice (มือใหม่) Contributor (ผู้เข้าร่วม) Expert (ผู้เชี่ยวชาญ) Master (ระดับอาจารย์) และ GrandMaster (ระดับปรมาจารย์) โดยในโลกนี้มีนักวิจัย AI ที่ลงทะเบียนกับ Kaggle กว่า 1 แสนคน มีระดับ Master ขึ้นไปเพียงราว 1% นิดๆ เท่านั้น (ข้อมูลเดือนกรกฎาคม 2019) นับว่าเป็น Rank ที่สูงมากๆ
สำหรับทั้งสามหมวดหมู่นั้น จะมีกติกาที่จะได้เหรียญรางวัลสะสมมาแตกต่างกันออกไป โดยมีรายละเอียดในหน้านี้ครับ
https://www.kaggle.com/progression
สำหรับหมวดหมู่การแข่งขันนั้น สรุปคร่าวๆ ได้ดังนี้
ผู้เข้าแข่งขันที่ติด Top 10% จะได้เหรียญทองแดง Top 5% จะได้เหรียญเงิน และเพียง Top 0.5%-1% เท่านั้นที่จะได้เหรียญทอง (หลายๆ ครั้ง Top1% ก็ยังไม่ได้ทอง และไม่กี่คนแรกของเหรียญทอง ที่จะได้เงินรางวัล แล้วแต่ Sponsor ผู้จัดการแข่งขันจะกำหนด)
ถ้าคุณสะสมได้อย่างน้อย 2 เหรียญทองแดง Kaggle จะถือว่าคุณเป็นระดับ Expert ถ้าคุณได้อย่างน้อย 1 เหรียญทองและ 2 เหรียญเงินคุณก็ถือว่าเป็นระดับ Master ส่วนระดับ Grandmaster นั้นคุณต้องเคยได้อย่างน้อย 5 เหรียญทอง และ 1 ในนั้นต้องเป็นการได้เหรียญทองแบบเดี่ยวๆ โดยที่ไม่ได้ร่วมมือกับคนอื่นอีกด้วย ซึ่งตั้งแต่ก่อตั้ง Kaggle มาราว 10 ปีมีการแข่งขันหลายร้อยการครั้ง Grandmaster ในโลกมีราวๆ 0.1% เท่านั้น ดูมือวางอันดับโลกปัจจุบันได้ที่นี่ครับ
ระบบ Kernel บน Kaggle
Kernel คืออะไร?
Kernel เป็นทั้ง programming editors ที่คุณสามารถใช้เขียนโปรแกรมได้ เป็นทั้ง Word Processor ที่คุณก็สามารถเขียนเอกสารสวยๆ ได้
นอกจากนี้ Kernel ยังเป็น AI Virtual Machine ประสิทธิภาพสูงแบบมี GPU ในตัว ที่คุณสามารถรันโปรแกรมที่เขียนไว้ได้อย่างมีประสิทธิภาพ ทั้งหมดนี้ให้คุณใช้งานได้ฟรีๆ
ใครสามารถใช้ได้?
ทุกคนสามารถใช้ Kaggle Kernel ได้ เพียงแค่สมัครสมาชิกเว็บ Kaggle.com เท่านั้น
Resources บน Kernel
VM ของ Kaggle นั้นประกอบไปด้วย GPU รุ่น P-100 RAM 13GB Input-HDD 100GB Output-HDD 5GB
นอกจากนี้ เจ้า VM ตัวนี้ยังมี machine learning และ data science library อย่างเพียบพร้อม เช่น Tensorflow, Keras, Pytorch, Panda, Gensim, Plotly, Bokeh, etc. เรียกได้ว่ามีทุก libraries ที่สำคัญๆ ครบแน่นอน ไม่ต้องเสียเวลามาลงโปรแกรม
คุณสมบัติสุดเจ๋ง อีกอย่างก็คือ kernel จะลิงก์กับ kaggle datasets และ databases โดยตรง นั่นคือเราสามารถเลือกนำ datasets อันทรงคุณค่านับหมื่นรายการมาใช้งานได้ทันที โดยไม่ต้องเสียเวลาค้นหาและโหลดมาจากแหล่งข้อมูลภายนอก
Limitation
อย่างไรก็ดี ในปัจจุบันการใช้งาน Kernel ยังมีข้อจำกัดอยู่เช่นกัน เนื่องจากว่าเราสามารถใช้งาน Kernel ได้ต่อเนื่องเพียง 9 ชั่วโมงเท่านั้น (เพิ่มจาก 6 ชม. ในปีก่อนหน้า) ก็หวังว่าในอนาคต ข้อจำกัดนี้จะน้อยลงเรื่อยๆ นะครับ
(ล่าสุด กรกฎาคม 2019 ทาง Kaggle ได้อีเมลติดต่อทีมงานเราซึ่งเป็นหนึ่งในทีมที่ใช้งาน Kernels เยอะมากๆ ว่าอาจจะลดเวลาลง ก็นับว่าเป็นข่าวร้ายนิดๆ แบบไม่เป็นทางการครับ)
การแชร์ความรู้ด้วย Kernel และเหรียญรางวัลเกียรติยศ
Kaggle เป็นสังคมที่สนับสนุนการเรียนรู้อย่างจริงจัง ดังนั้นเหรียญรางวัลและเกียรติยศจึงไม่ได้มีเพียงแต่ประเภทการแข่งขันเท่านั้น แต่ยังมีเหรียญรางวัล อันดับโลก และ user level สำหรับผู้ที่เผยแพร่ความรู้ระดับสุดยอดด้วย kernel อีกด้วย
สังเกตว่าในรูปกระทู้ข้างบน Heng นั้นแม้นจะเป็นมือวางอันดับต้นๆ ของโลกในแง่การแข่งขันและการพูดคุยแลกเปลี่ยนความรู้ แต่ไม่ถูกจัดอันดับในการสอนหรือแชร์ความรู้ด้วย kernel รูปข้างบนในกระทู้นี้คือ Heads or Tails (ชื่อเล่นที่คนเรียกกันคือ H/T ) ผู้ซึ่งเป็น kernel grandmaster คนแรกของโลก (ปัจจุบันณ เวลาที่เขียนกระทู้นี้มี Grandmaster เพียง 5 คนเท่านั้น)
การเผยแพร่ความรู้บน kernel นั้นทำได้ง่ายๆ เหมือนการเขียนโปรแกรมปกติเลยครับ เพียงแต่ทำให้เป็นลักษณะของบทความที่มีคำอธิบายประกอบเพื่อสอนได้ ทั้งนี้ด้วยความสามารถของ kernel ที่เป็น word processor ในตัว
การจะได้เหรียญรางวัลในการเผยแพร่ความรู้ Kernel นั้นหลักๆ คือต้องได้รับการโหวตจากเพื่อนๆ ใน kaggle ด้วยกัน ณ เวลาที่เขียนมีกติกาดังนี้ครับ
เหรียญทองแดง - 5 votes เหรียญเงิน - 20 votes เหรียญทอง - 50 votes
และถ้าเราได้รับเหรียญทองแดงทั้งหมด 5 เหรียญทองแดงเราจะได้เลื่อน level เป็น Kernel Experts, 10 เหรียญเงินเป็น Kernel Masters, และ 15 เหรียญทองเพื่อเป็นระดับปรมาจารย์ Kernel Grandmaster ซึ่งมีเพียงไม่กี่คนในโลกเท่านั้น