/ Data Science

Machine Learning ตอนที่ 3: Deep Learning

ปัญหาของข้อมูลที่ไม่มีโครงสร้าง

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

รูปภาพประกอบด้วย pixel จำนวนมาก และเราไม่รู้แน่ชัดว่าแต่ละ pixel สื่อถึงความหมายอะไรในรูป เราจึงเรียกข้อมูลประเภทรูปภาพว่า Unstructured data

ตัวอย่างปัญหาที่เราจะพูดถึงกันในตอนนี้คือ ให้รูปถ่ายของใบหน้าคนมา จากนั้นให้คอมพิวเตอร์บอกว่าเป็นผู้หญิงหรือผู้ชาย โดยใช้ Machine Learning

gender prediction

ข้อมูลที่ตีความยาก

รูปภาพประกอบด้วย pixel จำนวนมาก การดูแต่ละ pixel จะไม่สามารถบอกอะไรเราได้ เราจำเป็นต้องดูทั้งภาพพร้อมกัน ซึ่งก็คือการดูทุก pixel พร้อมกัน

วิธีหนึ่งในการให้ Machine Learning model เรียนรู้จากภาพว่าเป็นผู้หญิงหรือผู้ชาย คือการเรียนรู้จากข้อมูลตัวอย่างโดยใช้ input เป็นความเข้มสีของ pixel ทั้งหมดของรูป ป้อนให้กับ Neural Network ที่เราพูดถึงในตอนที่แล้ว

ตอนที่ 2: Neural Network

สมมุติว่ารูปที่เราใช้มีขนาด 128 x 128 pixels เท่ากับว่าเรามี input ทั้งหมด 128 x 128 = 16,384 ตัว

neural network

สังเกตว่ารูปขนาด 128 x 128 pixels นั้นเล็กนิดเดียว แต่มีค่าเทียบเท่ากับ input เกิน 10,000 ตัวใน Machine Learning

ถ้าเราลองสอน Neural Network ตามรูปด้านบน โดยใช้ hidden node 2 ตัวจะพบว่าใช้งานไม่ได้ เพราะว่าการตีความหมายของ input จำนวนมาก (รูปภาพ) เพื่อบอกให้ได้ว่าเป็นผู้หญิงหรือผู้ชาย จำเป็นต้องใช้ model ที่สามารถเข้าใจข้อมูลได้อย่างลึกซึ้ง ซึ่ง Neural Network ด้านบนทำไม่ได้

เราต้องการ Neural Network ที่ทรงพลังมากกว่านี้

เพิ่มจำนวน node ใน Neural Network

วิธีหนึ่งที่ทำได้คือเพิ่มจำนวน node ใน hidden layer ของ Neural Network เช่น เราอาจจะเพิ่มเป็น 4 node

neural network with more nodes

เราจะเพิ่มเป็น 20 node หรือมากกว่านี้ก็ยังได้ ทว่า วิธีนี้ยังไม่ดีพอสำหรับปัญหานี้ เพราะการเพิ่มจำนวน node เหมือนการเพิ่มจำนวนของมุมมองการดูรูป เพื่อให้เข้าใจส่วนสำคัญต่างๆในรูป แต่ความจริงเราไม่เพียงต้องการมุมมองที่มากขึ้น เราต้องการให้ model เข้าใจส่วนต่างๆของรูปลึกซึ้งยิ่งขึ้น

เราต้องเพิ่มประสิทธิภาพของ Neural Network ด้วยวิธีอื่น

เพิ่มจำนวน hidden layer ใน Neural Network

อีกวิธีคือการเพิ่ม hidden layer ให้กับ Neural Network เช่น เพิ่มเป็น 3 hidden layer (output layer ยังเหมือนเดิม)

deep learning

หลักการทำงานของ Neural Network ที่มีหลายชั้น ยังมีลักษณะเหมือนเดิม ข้อมูลจะไหลจากซ้ายไปขวา (Forward Propagation)

  • pixel ของรูป เป็น input ให้กับ hidden layer ที่ 1
  • output ของ hidden layer ที่ 1 เป็น input ให้กับ hidden layer ที่ 2
    ไปเรื่อยๆจนไปถึง output layer ได้คำตอบออกมาเป็นความน่าจะเป็นที่รูปจะเป็นของผู้หญิง

Neural Network ที่มีจำนวน hidden layer มากๆ เราเรียกว่า Deep Neural Network

การเพิ่ม layer ช่วยให้ Neural Network เข้าใจ input ได้ลึกยิ่งขึ้น โดย hidden layer แรกๆ จะเรียนรู้ลักษณะของรูปที่ค่อนข้างง่าย ส่วน hidden layer หลังๆ จะเรียนรู้ลักษณะของรูปที่ซับซ้อนขึ้น โดยอาศัยความรู้จาก hidden layer ก่อนหน้า ตัวอย่างเช่น

  • hidden layer ที่ 1 พยายามเรียนรู้ลายเส้นต่างๆ จาก input ที่เป็น pixel
  • hidden layer ที่ 2 พยายามเรียนรู้รูปทรงขนาดเล็กต่างๆ เช่น ตา จมูก ปาก จาก input ที่เป็นลายเส้น
  • hidden layer ที่ 3 พยายามเรียนรู้โครงหน้าในภาพรวม จาก input ที่เป็นรูปทรงขนาดเล็กต่างๆ
  • output layer จะบอกว่าโอกาสที่รูปนี้จะเป็นผู้หญิง โดยใช้ความรู้จาก hidden layer ที่ 3

การเรียนรู้ของ Machine Learning ในรูปแบบนี้เรียกว่า Deep Learning

Deep Learning

Deep Learning เป็น Machine Learning ชนิดหนึ่ง ที่ใช้การเรียนรู้ของข้อมูลโดยอาศัยความเข้าใจเป็นลำดับชั้น เพื่อให้ model เรียนรู้ความสัมพันธ์ที่มีความซับซ้อนได้ ซึ่งสามารถทำได้โดยการใช้ Deep Neural Network (Neural Network ที่มี hidden layer จำนวนมาก)

ตัวอย่างที่กล่าวมาถูกเขียนขึ้นเพื่อให้เข้าใจง่าย ในความเป็นจริง งานด้าน Machine Learning กับรูปภาพ เรามักใช้ model ที่เรียกว่า Convolutional Neural Network (CNN) ซึ่งใช้พื้นฐานความเข้าใจในเรื่อง Deep Learning อีกทีหนึ่ง และต้องใช้จำนวน layer กับจำนวน node เยอะกว่ารูปด้านบนมาก สำหรับเรื่อง CNN นี้ เราจะพูดถึงอีกครั้งโอกาสต่อไป

ทำไมเพิ่งมี Deep Learning?

แนวคิดเรื่องการใช้ Neural Network ที่มีจำนวน layer เยอะๆ (Deep Learning) ดูเหมือนไม่มีอะไรยาก น่าจะคิดออกกันนานแล้ว ทำไมถึงเพิ่งถูกนำมาใช้มากขึ้นในภายหลัง?

Neural Network มีมาตั้งแต่ปี 1960 โดยประมาณ และ Deep Learning ถูกนำมาใช้อย่างจริงจังหลังจากนั้นนานมาก (ตั้งแต่ปี 2000 โดยประมาณ) ด้วยเหตุผลหลายอย่าง

  • เราเพิ่งมีข้อมูลเยอะพอ จำนวน parameter ของ Deep Neural Network มีเยอะขึ้นมากตามจำนวน layer และ node ทำให้ต้องใช้ข้อมูลมากขึ้นในการสอน model
    ในช่วงหลัง ธุรกิจและอุตสาหกรรมส่วนใหญ่เก็บข้อมูลในรูป digital มากขึ้น ทำให้เรามีข้อมูลเพียงพอที่จะใช้ Deep Learning ในการแก้ปัญหาต่างๆ
  • เราเพิ่งมีพลังประมวลผลดีพอ การสอน Neural Network ขนาดใหญ่จำเป็นต้องใช้พลังประมวลผลของคอมพิวเตอร์สูง เพื่อให้การสอน model ใช้เวลาไม่นานเกินไป ในช่วงหลังเรามีคอมพิวเตอร์ที่ทรงพลังในราคาที่จับต้องได้ ทำให้นักวิจัยจำนวนมากสามารถสอน model ใหญ่ๆได้
  • เรามีเทคนิคที่ดีขึ้น นอกจากเรื่องข้อมูลและพลังประมวลผลแล้ว เรายังมีงานวิจัยสำคัญที่เพิ่งเกิดขึ้น ที่เกี่ยวข้องกับการสอน Neural Network ขนาดใหญ่ ทำให้การสอน model ขนาดใหญ่เป็นไปได้มากขึ้น เช่นการใช้ Relu เป็น activation function ของ hidden node แทน Sigmoid ซึ่งช่วยลดเวลาการสอน Neural Network

ยิ่งมี node เยอะยิ่งดี จริงรึเปล่า?

การมีจำนวน node ใน Neural Network มาก ทำให้ model เรียนรู้สิ่งต่างๆได้ลึกขึ้นจริง แต่ในภาพรวมนั้นไม่ได้ดีกว่าเสมอไป เพราะถ้าเราใช้ Neural Network ขนาดใหญ่เกินไปเพื่อแก้ปัญหาหนึ่ง (ที่ความจริง Neural Network เล็กกว่านั้นแก้ได้) จะมีปัญหาตามมาคือ

  • เราต้องใช้ข้อมูลเยอะกว่าที่จำเป็น เพื่อสอน model และในกรณีที่เรามีข้อมูลไม่มากพอ จะทำให้เกิดปัญหา Overfitting ซึ่งเป็นปัญหาสำคัญมากใน Machine Learning ที่จะกล่าวถึงในตอนถัดไป
  • เราต้องใช้เวลาสอน model นานขึ้นโดยไม่จำเป็น

Deep Learning การเรียนรู้ที่เติบโตไปกับข้อมูล

เหตุผลหนึ่งที่ Deep Learning เป็นที่นิยม เพราะ model สามารถเรียนรู้ความสัมพันธ์ที่ซับซ้อนมากขึ้น ด้วยการเพิ่ม node และ layer อีกเท่าไหร่ก็ได้ ตราบเท่าที่เรามีข้อมูลและพลังประมวลผลมากพอ ซึ่งโลกเรามีแนวโน้มที่จะมีข้อมูลมากขึ้นและพลังประมวลผลที่ดีขึ้นตามพัฒนาการของเทคโนโลยี

ในตอนต่อไป เราจะพูดถึงวิธีการจัดชุดข้อมูลเพื่อใช้ Machine Learning และปัญหาทั่วไปที่มักพบในการสอน model

Machine Learning ตอนที่ 3: Deep Learning
Share this

Subscribe to Code on the Hill