MENU

261499 Selected Topic in Computational Intelligence

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

 

สำหรับตัวอย่างเนื้อหาของวิชานี้ จะศึกษาโมเดลแบบต่าง ๆ ดังนี้

 

Supervised learning - โมเดลการเรียนรู้แบบมีผู้สอน ได้แก่ โมเดลที่ใช้สำหรับจำแนกข้อมูล (classification) หรือโมเดลที่ใช้สำหรับประมาณค่าต่าง ๆ (Regression) ฯลฯ รูปแบบของโมเดล ได้แก่

- Feedforward neural network (FNN) โมเดลสำหรับข้อมูลแบบตารางทั่วไป

- Convolutional neural network (CNN) โมเดลสำหรับข้อมูลภาพ/เสียง

- Recurrent neural network (RNN) โมเดลสำหรับข้อมูลประเภท Time series

- Transformer โมเดลที่กำลังมาแรงในขณะนี้ ที่ดีกว่า RNN ที่มากับ Self-attention mechanism

- Graph neural network (GNN) โมเดลสำหรับเรียนรู้ข้อมูลที่มีความสัมพันธ์เป็นกราฟ เช่น Social network หรือ โมเลกุลทางเคมี

 

Generative model – โมเดลที่มีเป้าหมายเพื่อสร้างข้อมูล เช่นจะทำให้ม้าไม่ลาย กลายเป็นม้าลายยังไง หรือจะสร้างหน้าคนปลอม ๆ ยังไง เป็นต้น โดยรูปแบบของโมเดล ได้แก่ โมเดลแบบ Variational autoencoder (VAE) และ Generative adversarial network (GAN)

 

Reinforcement learning (RL) – การเรียนรู้ที่อยู่บนพื้นฐานของการลองผิดลองถูก เช่น Deep Q-learning network โมเดลที่ Deepmind ใช้เล่นเกม Breakout ของ Atari หรือ Policy gradient method ที่เป็นโมเดลอีกรูปแบบหนึ่งที่ใช้แก้ปัญหา RL

 

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

 

สิ่งที่จำเป็นสำหรับเรียนวิชานี้ก็คือ

- Python ควรมีมาก่อนครับ โดยในวิชานี้ จะมีการใช้ Tensorflow, Pytorch, Numpy, Pandas, Scipy ตามแต่สมควรครับ

- Probability theory ก็ต้องมีมาก่อนครับ อย่างน้อยนักศึกษาจะต้องรู้จักคำว่า Probability density function, Bernoulli distribution, Conditional probability เป็นต้น ครับ เนื่องจากมีความสำคัญในการทำความเข้าใจบางคอนเซปต์ เช่น KL-divergence รวมถึง Reinforcement learning พื้นฐานด้วยครับ

- Calculus เบื้องต้น อย่างน้อยต้องสามารถหาอนุพันธ์ของฟังก์ชัน 1 ตัวแปรได้ ซึ่งสิ่งที่จะสอนในเนื้อหาของวิชาจะเป็น Vector calculus เพื่อใช้ทำความเข้าใจการคำนวณ Backpropagation (แบบ Batch) ซึ่งก็จะใช้แค่นั้นครับ การนำไปใช้จริง พวกไลบรารี Tensorflow/Pytorch จะทำ Automatic differentiation ให้เราอัตโนมัติ โดยไม่ต้องหาอนุพันธ์ด้วยมือเองครับ

- Linear algebra ต้องสามารถคำนวณเมทริซ์พื้นฐานได้ครับ

 

 

 

Cr.รูป https://www.itbakery.net/.../03/22/deep-learning-tensorflow/