Deep learning คืออะไร ?

Deep learning คือ ?

deep learning คือ ซอฟแวร์คอมพิวเตอร์ที่่เลียนแบบการทำงานของระบบโครงข่ายประสาท(neurons )ในสมองมนุษย์ ถือเป็นซับเซ็ตของ machine learning

Algorithm ของ deep learning ถูกสร้างขึ้นจากการนำเอา neural network หลายๆ layer มาต่อกัน โดย layer แรกสุดจะทำหน้าที่ในการรับข้อมูล ( Input layer ) layer สุดท้ายจะทำหน้าที่ส่งผลลัพธ์การประมวลผลออกมา ( Output layer ) ส่วน layer ระว่าง layer แรกสุด เเละ layer สุดท้าย จะถูกเรียกว่า Hidden layer

คำว่า deep learning มีที่มาจากการที่ใช้ layer ของ neural network หลายอันๆมาต่อกัน(มี Hidden layer มากกว่า 2 layer ก็ถือเป็น deep learning แล้ว )  เนื่องจาก layer เหล่านี้เป็นโครงสร้างที่ถูกจัดเก็บแบบเป็นกองซ้อน (stack) จึงเปรียบได้ว่า layer ที่่จะนวนเยอะๆ ก็จะทำให้มีโครงสร้างที่ลึก(deep) ยิ่งขึ้นนั่นเอง

โดย Hidden layer ของแต่ละ layer จะเปรียบเสมือนว่าประกอบด้วย เซลล์ประสาท (neural ) จำนวนมาก ซึ่งมีหน้าที่ในการประมวลผล รับข้อมูลจาก layer ที่อยู่เหนือกว่า  และส่งข้อมูลที่ประมวลผลเสร็จเเล้วไปยัง layer ที่อยู่ล่างกว่า , ข้อดีของการส่งข้อมูลแบบนี้ก็คือ layer เเต่ละ layer สามารถที่จะมี  ค่าถ่วงน้ำหนัก (weight), ค่าความเอนเอียงของข้อมูล ( bias ) และ วิธีการประมวลผลทางคณิตศาสตร์ (activation function) ที่เป็นอิสระต่อกันได้

ยิ่งเราป้อนข้อมูลให้กับ model มากเท่าไหร่ , layer เเต่ละ layer ก็จะสามารถสกัด feature ที่มีความซับซ้อนมากยิ่งขึ้น

เนื้อหาของบทความนี้

  • อะไรคือ deep learning (What is Deep learning? )
  • กระบวนการของ deep learning (Deep learning Process )
  • การจัดหมวดหมู่ของ deep learning (Classification of Neural Networks )
  • ชนิดของโครงข่าย deep learning (Types of Deep Learning Networks )
  • โครงข่ายประสาทแบบป้อนไปหน้า (Feed-forward neural networks )
  • โครงข่ายแบบวนซ้ำ (Recurrent neural networks (RNNs)  )
  • โครงข่ายประสาทแบบคอนโวลูชัน ( Convolutional Neural Network )
  •  การเรียนแบบเสริมกำลัง ( Reinforcement Learning )
  • ตัวอย่างการประยุกต์ใช้ deep learning (Applications/ Examples of deep learning applications )
  • Deep learning สำคัญอย่างไร ?(Why is Deep Learning Important?)
  • ข้อจำกัดของ Deep learning (Limitations of deep learning )

กระบวนการทำงานของ deep learning

model ที่ใช้ deep learning ให้ความแม่นยำ (accuracy) ที่สูงในหลายๆปัญหา ตั้งเเต่การตรวจจับวัตถุ (object detection) ไปจนถึงการรู้จำเสียงพูด (speech recognition)  โดยที่เราไม่จำเป็นต้องให้ความรู้พื้นฐานใดๆกับมันใว้ล่วงหน้าเลย เพียงเเค่ให้ข้อมูลตัวอย่าง (input data) มันก็จะทำการเรียนรู้จากข้อมูลและสังเคราะห์เป็นองค์ความรู้ออกมาได้อย่างอัตโนมัติ อาทิเช่น การใช้ deep learning ในวงการเกม เราไม่จำเป็นต้องบอกมันว่าเล่นยังไง เเค่ให้มันเรียนรู้จากผู้เล่นที่เก่งๆเป็นจำนวนมาก มันก็เรียนรู้วิธีการเล่นเกมได้อย่างอัตโนมัติ

เพื่อที่จะเข้าใจหลักการของ deep learning มากยิ่งขึ้น , ให้คุณจินตนาการถึงครอบครัวที่มี พ่อแม่ และ ลูกน้อยวัยละอ่อน , ลูกน้อยคนนั้นมักจะชี้สิ่งต่างๆเเละพูดขึ้นพูดว่า " นี่คือเจ้าแมว" ซึ่งไม่ว่าจะชี้ไปที่ ทีวี ตู้เย็น หรือ สุนัข ก็มักจะพูดประโยคนี้ออกมา ในฐานะพ่อเเม่ ทุกครั้งที่ลูกกำลังคิดผิดก็ควรมีการบอกกล่าว  " ไม่ใช่ นั้นไม่ใช่เจ้าเเมว "  เเต่หากสิ่งที่ลูกชี้นั้นเป็นเเมวจริงๆ บอกลูกว่า "ถูกต้อง นั้นเเหละแมว "  เมื่อทำเช่นนี้ไปเรื่อยๆ เด็กคนนั้นก็จะสามารถแยกแยะได้เองโดยอัตโนมัติว่าสิ่งไหนคือเเมวสิ่งไหนไม่ใช่เเมว โดยที่อาจไม่ทันได้สังเกตุด้วยซ้ำว่าใช้เราใช้อะไรเป็นเกณฑ์เเยกแยะว่าสิ่งเป็นเเมวหรือไม่ใช่เเมว ซึ่งมันก็อาจจะเป็น หาง , สี , หนวดของมัน หรืออะไรที่ซับซ้อนกว่านั้นก็เป็นได้ (สิ่งเหล่านี้คือตัวอย่างของ feature ที่นำมาใช้เป็นเกณฑ์แยกแยะของ model ในการแยกแยะว่าเป็นเเมวหรือไม่ )  , neural network ก็มีหลักการทำงานเช่นเดียวกันกับตัวอย่างข้างต้น  โดยหากมี layer ที่เยอะเท่าไหร่ ก็จะสามารถสังเคราะห์ feature ที่มีความซับซ้อนได้มากยิ่งขึ้น ตัวอย่างเช่น neural network ที่มี 4 layer ย่อมสามารถสังเคราะห์ feature และ ทำงานได้ซับซ้อนมากว่า neural network ที่มีเพียง 2 layer

การเรียนรู้นั้น เกิดขึ้นจาก 2 เฟส

เฟสแรกคือ การประยุกต์ใช้ การแปลงแบบไม่เป็นเชิงเส้น (nonlinear transformation ) กับข้อมูลที่ได้รับ (input) ได้ผลลัพธ์ (output) ออกมาอยู่ในรูปของโมเดลทางสถิติ (statistical model)

เฟสที่สอง คือ การนำโมเดลมาผ่านวิธีการทางคณิตศาสตร์ อย่าง derivative หรือ การดิฟ นั้นเอง

โดยทั้ง 2 เฟสนี้จะถูกทำซ้ำแล้วซ้ำเล่าจนกว่าจะได้มาซึ่งโมเดลที่ความเเม่นยำ(accuracy)ในระดับที่น่าพึงพอใจ ซึ่ง การทำซ้ำๆของ 2 เฟสนี้ มีชื่อว่า iteration

ขอยกตัวอย่างการใช้งาน deep learning , ภาพข้างล่าง คือ โมเดลที่พยายามจะเรียนรู้ว่าจะเต้นได้อย่างไร ซึ่งใช้ระยะเวลาในการ train เพียงเเค่ 10 นาที ผลลัพธ์ที่ได้คือ โมเดลยังไม่สามารถที่จะสังเคราะห์ท่าเต้นออกมาได้ มันเลยเเสดงผลออกมาแบบมั่วๆ

หลังจาก 48 ชั่วโมงของการ train , อาจเรียกได้ว่าเจ้า model ตัวนี้เป็นนักเต้นตัวยงเลยก็ว่าได้

Classification of Neural Networks

1 ) โครงข่ายประสาทแบบตื้น (Shallow neural network) : มี Hidden layer เเค่ 1 layer (เเต่ยังมี input layer และ output layer ประกบเหมือนเดิม )

2) โครงข่ายประสาทแบบลึก (Deep neural network) : มี Hidden layer มากกว่า 1 layer  , ยกตัวอย่างเช่น LeNet model ของ Google ที่ใช้สำหรับ การรับรู้ภาพ (image recognition) มี hidden layer มากถึง 22 layer

ทุกวันนี้ เราได้นำ deep learning มาประยุกต์ใช้อย่างเเพร่หลาย เช่น รถยนต์ไร้คนขับ (driverless car)  สมาร์ทโฟน  search engine ของgoogle  เครื่องจับเท็จ (Fraud detection)  โทรทัศน์ และอื่นๆอีกมากมาย

ชนิดของโครงข่าย deep learning (Types of Deep Learning Networks)

โครงข่ายประสาทแบบป้อนไปหน้า (Feed-forward neural networks )

Feed-forward neural networks ถือเป็นโมเดลที่มีโครงสร้างที่เรียบง่ายที่สุด เพราะว่า การดำเนินการของข้อมูลจะเป็นไปในทิศทางเดียว ก็คือ รับข้อมูลจาก input layer แล้วส่งไปต่อไปยัง hidden layer เลื่อยๆ จนกระทั้งถึง output layer ก็จะหยุด (สังเกตุได้ว่าจะไม่มีวงวน(loop) เกิดขึ้นเลย )

โครงข่ายแบบวนซ้ำ (Recurrent neural networks : RNN )

Recurrent neural networks คือ neural networks หลายเลเยอร์ที่สามารถเก็บ(store)ข้อมูล(information)ไว้ที่ node จึงทำให้มันสามารถรับข้อมูลเป็นเเบบลำดับ (data sequences ) และให้ผลลัพธ์ออกเป็นลำดับของข้อมูลได้ อธิบายอย่างง่ายๆ RNN ก็คือ neural network เชื่อมต่อกันหลายๆอันเเละยังสามารถต่อกันเป็นวงวน(loop)ได้นั่นเอง  เพราะฉะนั้น RNN จึงเหมาะสมในการประมวลผลข้อมูลที่เป็นลำดับอย่างมาก

ตัวอย่างการใช้งาน : การทำนายคำต่อไปจากประโยค "Do you want a…………?

  • neural ใน RNN จะได้รับสัญญาณบอกว่าจุดไหนเป็นจุดเริ่มต้นของการรับข้อมูล
  • หลังจากที่  model ได้รับคำว่า "Do" เป็น input มันจะทำการสร้างเวกเตอร์ของตัวเลขที่ใช้แทนคำๆนั้น  ซึ่ง vector นี้เเหละที่เปรียบเสมือน memory ของ model RNN
  • model จะทำรับ input จากคำต่อๆไปตามลำดับ  "you"  ,"want" ,"a"
  • โดยเมื่อ model ได้รับ input สุดท้ายของลำดับ ("a")  , neural network จะส่งคำที่น่าจะสามารถเข้ากับประโยคได้(output) ออกมาพร้อมกับค่าความน่าจะเป็นของเเต่ละคำ เช่น ถ้าหาก train model ออกมาดี มันอาจจะส่งคำว่า "café" หรือ "drink" หรือ "burger"  เป็น output ที่มีความน่าจะเป็นสูงๆนั่นเอง

การใช้งานโดยทั่วไปของ RNN

  • ช่วยเทรดเดอร์ในการวิเคราะห์หลักทรัพท์ต่างๆ (Help securities traders to generate analytic reports)
  • ตรวจสอบความผิดปกติในสัญญาการเงินต่างๆ(Detect abnormalities in the contract of financial statement)
  • ตรวจสอบการปลอมแปลงบัตรเครดิตร(Detect fraudulent credit-card transaction)
  • เขียนคำบรรยายให้รูปภาพ(Provide a caption for images)
  • สร้าง chatbot ที่มีประสิทธิภาพ (Power chatbots)
  • การใช้งานในงานประเภทที่ต้องอาศัยเวลาทำกับข้อมูลอย่างตัวเนื่อง(time-series data or sequences) เช่น การอัดเสียง (audio record)

โครงข่ายประสาทแบบคอนโวลูชัน (Convolutional neural networks :CNN )

CNN คือ  neural network หลายเลเยอร์ที่มีโครงสร้างเฉพาะตัว โดยถูกออกแบบมาเพื่อการเพิ่มความสามารถในการสกัดเอา feature ที่มีความซับซ้อนมากยิ่งขึ้นจากข้อมูล  โดย CNN นั้นตอบโจทย์ปัญหาประเภทการรับรู้ (perceptual tasks) อย่างมาก

CNN นั้น มักจะถูกใช้เพื่อการสกัด feature จากข้อมูลประเภทที่ไม่ค่อยเป็นระเบียบหรือไม่ได้มีโครงสร้างเป็นรูปแบบเฉพาะตัว (unstructured data) อย่างเช่น รูปภาพ (image) เป็นต้น

ตัวอย่างการใช้งาน CNN : การคิดคำบรรยายให้รูปภาพ ( predict an image caption )

  • สมมติ CNN รับรูปภาพ input เป็นรูปเเมว , รูปภาพเหล่านี้จะถูกจัดเก็บในรูปแบบของ pixel ซึ่งโดยทั่วไปเเล้ว จะใช้ 1 layer ในการเก็บข้อมูลในรูปแบบเชดสีขาวดำ (greyscale) และจะใช้อีก 3 layer ในการเก็บข้อมูลในรูปแบบเชดสีต่างๆ
  • ระหว่างที่ model ทำการเรียนรู้(learn) ( สกัด feature นั่นเเหละ ) ที่ hidden layer , model จะทำการหา feature ที่มีความเฉพาะเจาะจงต่อข้อมูล input ที่ได้รับ อย่างเช่น ในกรณีนี้ อาจได้เป็น feature ที่ตรวจสอบหางของเเมว เป็นต้น
  • เมื่อ model ทำการเรียนรู้(learn)เสร็จเเล้ว มันจะสามารถให้คำตอบแก่เเต่ละรูปภาพเป็นความน่าจะเป็น  และหากรูปภาพนั้นๆมีความน่าจะเป็นเเบบใดสูงที่สุด model จะตอบเป็นสิ่งนั้น เช่น หากโมเดลวิเคราะห์เเล้วว่า รูปภาพนั้นมีความน่าจะเป็นว่าจะเป็นแมวสูง model ก็จะให้คำตอบว่ารูปภาพนั้นคือภาพเเมวนั่นเอง

การเรียนรู้แบบเสริมกำลัง (Reinforcement Learning )

Reinforcement learning จัดเป็นรูปแบบหนึ่งของ machine learning โดยใช้รูปแบบของการ ให้รางวัล (reward) เเละ ลงโทษ (punishments)  จากการเรียนรู้เเบบลองผิดลองถูก (trial and error)  Google's DeepMind ก็ใช้ Reinforcement Learning ในการ train model ในการเล่นหมากล้อมจนชนะเเชมป์โลกมาเเล้ว นอกจากนี้ยังมีการนำ Reinforcement Learning มาใช้ในวงการเกมเพื่อ train ให้ bot มีความฉลาดมากยิ่งขึ้น โดยมีการใช้ algorithm ที่น่าสนใจได้แก่ Q-learning , Deep Q network , State-Action-Reward-State-Action (SARSA) และ Deep Deterministic Policy Gradient (DDPG)

การประยุกต์ใช้ deep learning

บทบาทของ AI ในการเงิน ( finance) : ปัจจุบันเทคโนโลยีการเงินได้มีการนำเอา AI มาเข้ามาใช้เพื่อประหยัดเวลา ลดต้นทุน เเละเพิ่มมูลค่า , deep learning ได้ทำการปฏิวัติระบบการกู้ยืมเงินเเบบดั่งเดิม โดยการให้ AI เป็นผู้ประมวลผลถึงเครดิตของผู้กู้ยืม

บทบาทของ AI ในการจัดการทรัพยากรมนุษย์ (Human result) : Under Armour บริษัทขายอุปกรณ์การกีฬาได้ปฏิวัติวิธีการรับคนเข้าทำงาน นอกจากนี้ Under Armour ยังลดเวลาจ้างงานในการทำสต๊อกสินค้า (retail stores) ได้มากถึง 35 เปอร์เซนต์ , Under Armour เติบโตเเละเป็นที่รู้จักอย่างมากในช่วงปี 2012 ถึงขนาดที่ว่ามีใบสมัครเข้ามาถึง 30000 ใบต่อเดือน , การที่จะไล่อ่านใบสมัครทั้ง 30000 ใบทุกเดือนจะเป็นการเสียเวลาและทรัพยากรด้านบุคคลมากเกินไป  , Under Armour จึงหันมาสนใจ AI ที่ช่วยงานด้านทรัพยากรมนุษย์ โดยเลือกที่จะใช้ "HireVue" ซึ่งเป็น AI ที่ตอบโจทย์ปัญหาด้านทรัพยากรมนุษย์อย่างมาก โดยการคัดกรองผู้สมัครที่มีคุณสมบัติตามความต้องการ เเละ ทำการสัมภาษณ์ (live interview)

บทบาทของ AI ในการตลาด : AI ถือเป็นเครื่องมือที่มีประโยชน์อย่างมากในการจัดการเรื่องของการให้บริการลูกค้าเป็นรายบุคคล การพัฒนาของ speech recognition  ใน call-center management และ ติดต่อไปยังฝ่ายที่เกี่ยวข้องกับสิ่งที่ลูกค้าต้องการ ก็ถือเป็นการตอบโจทย์ลูกค้าอย่างหนึ่ง

ตัวอย่างเช่น : การใช้ deep learning ในการวิเคราะห์โทนเสียงของลูกค้า ทำให้รับรู้ถึงอารมณ์ขณะนั้นๆของลูกค้าได้ ถ้าการพูดคุยกับลูกค้ามีทิศทางที่จะเเย่ขึ้นเรื่อยๆ เราจะต้องจูนอารมณ์ของลูกค้ากลับมา

จาก 3 ตัวอย่างข้างต้น จะเห็นได้ว่า AI ถูกนำมาใช้ในหลายวงการรวมถึงอุตสาหกรรม

Deep learning สำคัญอย่างไร ???

Deep learning ถือเป็นเครื่องมือที่ทรงพลังในการทำนาย(prediction)ผลลัพธ์ต่างๆ อีกทั้งยังสามารถหา pattern หรือ สังเคราะห์ข้อมูล ได้เหนือกว่าองค์ความรู้เดิมที่มีอยู่ (unsupervised learning )

ฺBig data ก็เปรียบเสมือนเชื้อเพลิงของ deep learning  การผสมผสานระหว่างทั้งสองอย่างเรียกได้ว่าสามารถทำให้มนุษยชาติก้าวไปขึ้นอีกขั้น ไม่ว่าจะเป็นด้านของ ผลผลิต การขาย การบริหาร เเละนวัตกรรม

อีกทั้ง deep learning ยังทำงานได้มีประสิทธิภาพได้ดีกว่าวิธีการดั่งเดิม กล่าวคือ deep learning algorithm ให้ความเเม่นยำมากว่า machine learning algorithm ในด้านของจำแนกภาพ (image classification) มากถึง 41% ด้านของการรู้จำใบหน้า(face recognition)มากถึง  27% เเละ การรู้จำเสียง (voice recognition) มากถึง 25%

ข้อจำกัดของ deep learning (Limitation of deep learning)

1 ) ต้องการระบุชื่อหรือจัดประเภทข้อมูล ( Data labeling)

ปัจจุบัน AI ส่วนมากอาศัยการ train โดยใช้หลักการของ supervise learning ซึ่งนั้นก็หมายความว่า มนุษย์จะต้องตั้งชื่อเเละจัดประเภทของข้อมูล( data labeling ) ด้วยตัวเองก่อนจะนำไป train (Data labeling professionals :  ถูกคาดว่าจะเป็นอาชีพที่ popular ในอนาคต เมื่อเข้าสู่ยุคของ AI ) ซึ่งข้อมูลเหล่านี้ก็มีจำนวนมาก จึงไม่เเปลกที่อาจเกิดความผิดขึ้นได้ ตัวอย่างเช่น รถยนต์ขับเคลื่อนอัตโนมัติ ( self - driving car ) จ้างคนหลายร้อยคนเพื่อที่จะ labeling วิดีโอที่จะใช้ในการ train ระบบ

2 ) ต้องการชุดข้อมูลจำนวนมาก(Obtain huge training datasets)

deep learning นั้นต้องข้อมูลจำนวนมากในการ train ข้อมูล ยกตัวเช่น ต้องการข้อมูลจำนวน 1000 ตัวอย่าง เพื่อจะทำให้ได้โมเดล classification ที่มีประสทธิภาพ เเละในบางกรณีก็ต้องการมากกว่า 1 ล้านตัวอย่างเพื่อที่จะทำให้ model ทำงานได้อย่างมีประสิทธิภาพใกล้เคียงกับมนุษย์  , แน่นอนว่า deep learning นั้นเป็นที่นิยมในบริษัทเทคโนโลยีชั้นนำทั่วโลก ซึ่งพวกเขาใช้ big data ที่สะสมข้อมูลที่มีเนื้อที่ไม่น้อยกว่า petabytes  ( 1 ล้าน gigabytes ) นั้นเป็นเหตุผลว่าทำไม บริษัทเทคโนโลยีชั้นนำจึงสามารถสร้าง deep learning model ที่มีประสิทธิภาพ เเละ มีความแม่นยำสูง

3 ) ปัญหาในการอธิบาย (Explain a problem)

ไม่ใช่เรื่องง่ายที่มนุษย์เราจะอธิบาย AI model ที่ซับซ้อนได้  ยกตัวอย่างเช่น คำถามว่าที่ทำไมmodel ถึงเกิดการตัดสินใจแบบนั้น ?(why a particular decision was obtained?) นี่ก็เป็นอีกเหตุผลหนึ่งที่ทำไม AI ถึงได้รับการยอมรับช้านัก ก็เพราะบางอย่างมันยากที่มนุษย์เราจะสามารถอธิบายนั่นเอง

สรุป

Deep learning ถือ เป็นแนวทางใหม่ของวงการ AI , โดย deep learning มีโครงสร้างที่ประกอบด้วย input layer , hidden layer และ output layer  โดยคำว่า deep นั้นหมายถึงการที่มี hidden layer มากกว่า 2 layer

อีกทั้งยังมี neural networks หลากหลายประเภท ซึ่งแต่ละประเภทมีโครงสร้างที่ถูกออกเเบบมาเพื่อทำงานที่เเตกต่างกันไป ตัวอย่างเช่น CNN จะทำงานได้ดีกับรูปภาพ ส่วน RNN จะทำงานได้ดีข้อมูลประเภทลำดับเวลา(time series) และ การพิสูจน์อักษร (text analysis)

deep learning ถูกนำมาประยุกต์ใช้ในหลากหลายวงการ ตั้งเเต่การเงิน(finance) ไปถึงการตลาด(marketing)  ห่วงโซ่อุปทาน(supply chain) และ บริษัทยักษ์ใหญ่จะเป็นบริษัทแนวหน้าที่่สามารถใช้ deep learning ได้อย่างมีประสิทธิภาพ เพราะว่าพวกเขามีข้อมูลมากพอที่จะทำใช้ในการ train model นั่นเอง

PRACTICAL AI DEVELOPMENT BOOTCAMP
จะช่วยเปิดมุมมองพัฒนาการของเทคโนโลยีและงานวิจัยที่เกี่ยวข้องกับ AI
ให้แก่ผู้เรียนในหลายๆแง่มุม พร้อมทั้งให้ผู้เรียนได้ฝึกพัฒนา AI เพื่อใช้งานได้จริง
รายละเอียดเพิ่มเติมและสมัครที่นี่Ai