Deep Learning vs. ฟาร์มแตงกวา (1/2)

บทความนี้เขียนโดย ผศ.ดร.ฐิติรัตน์ ศิริบวรรัตนกุล เผยแพร่ครั้งแรก ที่นี่ ในชื่อเรื่อง “5 คำถามกับ Deep Learning: ระบบคัดแยกแตงกวาอัตโนมัติจากรูปภาพ @ฟาร์มแตงกวา ประเทศญี่ปุ่น (ตอนที่ 1/2)” เมื่อ 11 กันยายน 2016 โดยคอลัมน์ Intelligence and Information ของ Manager Online


เมื่อสัปดาห์ที่ผ่านมาวันที่ 1-2 กันยายน พ.ศ. 2559 คณะสถิติประยุกต์ของเราร่วมกับ Data Science Thailand ได้จัดงานประชุมและการแข่งขัน The First NIDA Business Analytics and Data Sciences Contest/Conference ขึ้น โดยนอกจากการแบ่งปันความรู้และประสบการณ์จากผู้ทรงคุณวุฒิทั้งภาครัฐและเอกชนแล้ว ความสำเร็จของงานนี้ยังต้องขอบคุณการสนับสนุนจากภาคเอกชนอาทิ SAS, Tableau, Oracle, Microsoft, IMC Institute และ M-Focus ด้วย สำหรับผู้เขียนนั้นอยู่ในสาขาวิชาเอก Interactive Media Science ซึ่งดูแลในแทร็กการวิเคราะห์เชิงภาพหรือ Visual Analytics โดยมีเวลาประมาณ 3 ชั่วโมงสำหรับปูพื้นให้ผู้เข้าฟังได้รู้จักกับศาสตร์แห่งการวิเคราะห์ภาพตั้งแต่พื้นฐานวิธีคิด การประยุกต์ใช้ รวมถึงเรื่องที่กำลังฮิตสุด ๆ อย่างการใช้เทคนิค Deep Learning (บรรยายโดย ดร. สรรพฤทธิ์ มฤคทัต NECTEC) เพื่อรู้จำและแยกแยะรูปภาพอัตโนมัติด้วย

จากกระแสตอบรับที่ดีในหัวข้อ Deep Learning จึงเป็นที่มาของการถามตอบเบื้องต้นเกี่ยวกับ Deep Learning ในครั้งนี้ และ เพื่อให้เห็นภาพชัดจึงจะใช้การอธิบายผ่านข่าวล่าสุดที่ Makoto Koike วิศวกรหนุ่มชาวญี่ปุ่นเห็นว่าเวลากว่า 8 ชั่วโมงต่อวัน (ในช่วงการเก็บเกี่ยวผลผลิต) ที่คุณแม่ของเขาต้องใช้ไปกับการคัดแยกเกรดของแตงกวาเพื่อส่งขายนั้นมากเกินไป เวลาอันมีค่าเหล่านั้นควรจะถูกใช้ไปกับการทำให้ผลิตผลของฟาร์มออกมามีคุณภาพดีมากกว่าการมายืนแยกเกรดของผลิตผล คิดดังนี้เขาจึงตัดสินใจลองนำเทคนิค Deep Learning มาสร้างระบบคัดแยกเกรดของแตงกวาอัตโนมัติจากรูปภาพให้กับกิจการฟาร์มแตงกวาของทางบ้าน ซึ่งผลที่ได้แม่นยำไม่แพ้ฝีมือคนเลยค่ะ

Makoto Koike (คนกลาง) และคุณพ่อคุณแม่ที่ฟาร์มแตงกวาของทางบ้านในประเทศญี่ปุ่น (ที่มาของภาพ: https://cloud.google.com/blog/big-data/2016/08/how-a-japanese-cucumber-farmer-is-using-deep-learning-and-tensorflow)
Makoto Koike (คนกลาง) และคุณพ่อคุณแม่ที่ฟาร์มแตงกวาของทางบ้านในประเทศญี่ปุ่น (ที่มาของภาพ: https://cloud.google.com/blog/big-data/2016/08/how-a-japanese-cucumber-farmer-is-using-deep-learning-and-tensorflow)

Q1: อะไรคือ Machine Learning หรือการเรียนรู้ของเครื่อง?

A1: Machine Learning เป็นเทคนิคหนึ่งของปัญญาประดิษฐ์ (AI: Artificial Intelligence) หรือการสอนคอมพิวเตอร์ให้ฉลาดคิดหรือฉลาดตัดสินใจได้เหมือนหรือใกล้เคียงกับมนุษย์ วิธีการสร้างระบบปัญญาประดิษฐ์นั้นมีอยู่หลายวิธี สมมติถ้าต้องการสร้างระบบที่แยกแยะได้ว่าภาพที่กล้องเห็นอยู่ใช่แตงกวาหรือไม่ วิธีหนึ่งคือการสอนเซตของกฎให้คอมพิวเตอร์ใช้พิจารณาว่าอะไรคือภาพของแตงกวา เช่น มันต้องเป็นสีเขียวเข้ม มันต้องเป็นรูปทรงรี ๆ ยาว ๆ มันต้องมีหน้าตัดเป็นรูปวงกลม ฯลฯ ทีนี้เมื่อคอมพิวเตอร์พบอะไรในภาพที่มีคุณลักษณะครบตามเกณฑ์ก็จะตัดสินได้ว่ามันคือแตงกวา แต่หากเป็นวิธีของ Machine Learning (โดยเฉพาะ Deep Learning) เราจะไม่มานั่งคิดกฎและสอนกฎทีละข้อให้กับคอมพิวเตอร์ แต่จะเตรียมภาพตัวอย่างของแตงกวาจำนวนมากเอาไว้ นำภาพเหล่านั้นป้อนเข้าตัว Machine Learning และ ปล่อยที่เหลือเป็นหน้าที่ของ Machine Learning ในการเรียนรู้เอาเองจากตัวอย่างว่าภาพแบบไหนที่จะเรียกว่าแตงกวา

หากมองที่ผลลัพธ์ปลายทาง ทั้งสองวิธีที่ยกตัวอย่างไปได้ผลไม่ต่างกัน คือ ได้ระบบปัญญาประดิษฐ์ที่สามารถระบุได้ว่ามีแตงกวาอยู่ในภาพหรือไม่ แต่ความต่างที่ชัดเจนคือขั้นตอนในการสอนคอมพิวเตอร์ โดยวิธีแรกจะเหนื่อยกับการคิดเซตของกฎเพื่ออธิบายความเป็นแตงกวาออกมาในรูปแบบที่คอมพิวเตอร์สามารถเข้าใจและประมวลผลตามได้ ในขณะที่วิธี Machine Learning จะเหนื่อยกับการเตรียมภาพแตงกวาจำนวนมากมาป้อนให้คอมพิวเตอร์และในกรณีที่ภาพตัวอย่างมีจำนวนมากหรือแบบจำลอง Machine Learning ที่ใช้มีความซับซ้อนสูง การประมวลผลเพื่อสร้างแบบจำลองอาจต้องใช้เวลานานเป็นวัน เป็นอาทิตย์ หรือแม้แต่เป็นเดือน

Q2: อะไรคือ Deep Learning?

A2: Deep Learning คือรูปแบบหนึ่งของ Machine Learning ซึ่งจะว่าไปแล้วทั้งสองก็ไม่ใช่เรื่องใหม่อะไรถูกนำเสนอมาแล้วหลายสิบปี ไอเดียตั้งต้นของ Deep Learning มาจากแบบจำลอง Machine Learning ชนิดโครงข่ายประสาทเทียม (Artificial Neural Network) ที่เลียนแบบการทำงานของโครงข่ายเซลล์สมองของคนเรา ซึ่งแบบจำลองที่ว่านี้ได้รับการพิสูจน์ทางทฤษฎีมาในอดีตว่า ในกรณีที่โครงข่ายภายในลึก (Deep) และมีจำนวนโหนดหรือเซลล์มากพอ ระดับความซับซ้อนของแบบจำลองจะเพียงพอสำหรับแก้ปัญหาที่เราโยนเข้าไปได้ทุกชนิด

dnn

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

Q3: ทำไมตอนนี้ Deep Learning ถึง(กลับมา)ดัง?

A3: ความดังของ Deep Learning ในปัจจุบันน่าจะพูดได้ว่าเป็นเรื่องของการ “ถูกที่ถูกเวลา” เพราะ (1) ในปัจจุบันโลกของเรามีข้อมูลมากพอ (Big data) สำหรับเอามาป้อนสอนให้แบบจำลองที่ซับซ้อนอย่าง Deep Learning (2) ปัจจุบันเรามีเครื่องคอมพิวเตอร์พร้อม GPU (Graphics Processing Unit) พลังแรงที่ช่วยย่นเวลาในการประมวลผลสร้างแบบจำลองลงได้อย่างมีนัยสำคัญ และ (3) ประมาณปี ค.ศ.2006 มีการนำเสนอวิธีการทำ Deep Learning ที่เอาชนะขีดจำกัดเรื่องความซับซ้อนจนแก้ไม่ออกในอดีตมาได้

รวมความประจวบเหมาะทั้งสามแล้ว ทำให้พลังที่แท้จริงของ Deep Learning เริ่มแสดงออกมาเป็นที่ประจักษ์ มีตัวอย่างการใช้งานเพื่อแก้ปัญหายาก ๆ ของจริง และ มีเครื่องมืออำนวยความสะดวกในการใช้งานถูกนำเสนอออกมาอย่างต่อเนื่อง ทำให้แม้แต่คนทั่วไปเองก็สามารถเริ่มใช้ Deep Learning ได้ไม่ยากเย็นนัก อย่าง Makoto Koike เขาเพิ่งจะได้ทดลองเทคโนโลยี Machine Learning เป็นครั้งแรก แต่ก็สามารถนำภาพแตงกวาจากฟาร์มที่บ้านไปทดลองสร้างระบบคัดแยกด้วย Deep Learning ได้ และ เนื่องจากการทดสอบเบื้องต้นได้ผลเป็นที่น่าพอใจมากเขาจึงตัดสินใจเดินหน้าทำงานนี้ต่อ โดยในที่นี้ Makoto Koike ใช้ TensorFlow ไลบรารี Open source ในการทำ Deep Learning จากค่าย Google ซึ่งผู้ใช้ไม่จำเป็นต้องมีความรู้เรื่องคณิตศาสตร์ สถิติ หรือ Machine Learning มาก่อนก็สามารถเอาชุดข้อมูลมาลองทำ Deep Learning ดูได้

ครั้งนี้ขอตัดจบแต่เพียงเท่านี้ คำถามที่เหลือเน้น ๆ เกี่ยวกับ Deep Learning และ Visual Analytics (การวิเคราะห์เชิงภาพ) ขอยกยอดไปไว้หนหน้าค่ะ

 
 
เอกสารที่เกี่ยวข้อง

  1. How a Japanese cucumber farmer is using deep learning and TensorFlow (31 August, 2016) https://cloud.google.com/blog/big-data/2016/08/how-a-japanese-cucumber-farmer-is-using-deep-learning-and-tensorflow
  2. http://www.slideshare.net/BAINIDA/face-recognition-and-deep-learning-nectec สไลด์บรรยายเรื่อง “Face Recognition & Deep Learning” โดย ดร. สรรพฤทธิ์ มฤคทัต จาก NECTEC
  3. http://www.slideshare.net/BAINIDA/face-recognition-and-modeling สไลด์บรรยายเรื่อง “Face Recognition and 3D Face Modeling” โดย ผศ.ดร.ธนาสัย สุคนธ์พันธุ์ หลักสูตรวิทยาศาสตรมหาบัณฑิตวิทยาการคอมพิวเตอร์และระบบสารสนเทศ สาขาวิชาเอก Interactive Media Science คณะสถิติประยุกต์ สถาบันบัณฑิตพัฒนบริหารศาสตร์ (นิด้า)
  4. http://www.slideshare.net/BAINIDA/image-analytics-and-its-application สไลด์บรรยายเรื่อง “Image Analytics and Applications” โดย ผศ.ดร.ฐิติรัตน์ ศิริบวรรัตนกุล หลักสูตรวิทยาศาสตรมหาบัณฑิตวิทยาการคอมพิวเตอร์และระบบสารสนเทศ สาขาวิชาเอก Interactive Media Science คณะสถิติประยุกต์ สถาบันบัณฑิตพัฒนบริหารศาสตร์ (นิด้า)