แผนการเรียนรู้
/

Introduction to Deep Learning

neural networks - activation - learning - tools

ผลลัพธ์การเรียนรู้

1. อธิบายความแตกต่างระหว่าง Machine Learning กับ Deep Learning ได้
2. อธิบายโครงสร้างของ neural network ง่ายๆ ได้
3. อธิบายว่าโมเดล "เรียนรู้" ได้อย่างไร (loss, gradient descent)
4. รู้จักเครื่องมือที่จะใช้ตลอดคอร์ส (Keras, PyTorch)
สัปดาห์ที่ 1 -- 1145208 การเรียนรู้เชิงลึก

เส้นทางของวันนี้

Part 1 - ภาพรวม
Deep Learning คืออะไร?
ML vs DL, ทำไมถึง Hot, neural network คืออะไร
Part 2 - พื้นฐาน
โครงสร้างของ Neural Network
perceptron, activation function, layers
Part 3 - ลงมือทำ
เครื่องมือที่ใช้
Keras / TensorFlow, PyTorch, ทำไมต้องสองตัว
Part 4 - ทิศทาง
ภาพรวมของคอร์สนี้
สิ่งที่จะเรียน 15 สัปดาห์ + การบ้าน

Part 1: Deep Learning คืออะไร?

Machine Learning

  • - ให้เครื่องเรียนรู้จากข้อมูล แทนที่จะเขียน rule เอง
  • - ต้อง สร้าง feature เอง (feature engineering)
  • - ข้อมูลน้อย + model เล็ก = ทำงานได้ดี
  • - ตัวอย่าง: linear regression, decision tree, SVM

Deep Learning

  • - เป็น subset ของ ML ที่ใช้ neural network หลายชั้น
  • - เรียนรู้ feature เอง จาก raw data (ไม่ต้องสร้างเอง)
  • - ต้องการ ข้อมูลมาก + compute แรง
  • - ตัวอย่าง: CNN, RNN, Transformer, GPT

Deep Learning = Machine Learning + Neural Network หลายชั้น ("deep")

ทำไม Deep Learning ถึง Hot ตอนนี้?

[Data]

ข้อมูลมหาศาล

อินเทอร์เน็ต, social media, IoT -- มีข้อมูลให้ฝึกมากกว่าเดิม หลายร้อยเท่า

[GPU]

compute แรงขึ้น

GPU คำนวณ matrix ได้พร้อมกันหลายพันตัว -- เหมาะกับ neural network มาก

[Algo]

algorithm ดีขึ้น

Backpropagation, ReLU, Dropout, BatchNorm -- แก้ปัญหา vanishing gradient ได้

3 ปัจจัยนี้มารวมกัน = Deep Learning ยุคใหม่ เริ่มประมาณ 2012

Neural Network คืออะไร?

y = f(w * x + b)

นิวรอนหนึ่งตัว = คำนวณ weighted sum แล้วผ่าน activation function

Input (x)

ข้อมูลที่ป้อนเข้าไป เช่น รูปภาพ 3x3 = 9 pixels = vector ขนาด 9

Weight (w) + Bias (b)

ตัวเลขที่โมเดลจะเรียนรู้-- ยิ่ง w มาก feature นั้นยิ่งสำคัญ

Activation

แปลงผลลัพธ์ให้อยู่ในช่วงที่ต้องการ เช่น sigmoid = ช่วง (0,1)

شبี้เดียว = "perceptron" / หลายตัวต่อกัน = "neural network"

ทำไมเรียก "Deep" Learning?

neurone หลายตัว = ชั้นเดียว (shallow) / neurone หลายชั้น = deep

Input     Hidden 1    Hidden 2    Output
Layer       Layer       Layer       Layer
 [x1] --> [h1] -----> [h3] ----> [y]
 [x2] --> [h2] -----> [h4]
 [x3] -->

Shallow Network (1 hidden layer)

- แก้ปัญหาที่ linearly separable ได้เท่านั้น

- ปัญหา XOR, รูปซับซ้อน = ทำไม่ได้

Deep Network (หลาย hidden layers)

- ชั้นลึก = learns feature ระดับสูงขึ้น

- รูป: edge -> texture -> part -> object

- ข้อความ: word -> phrase -> sentence -> meaning

ยิ่งลึก ยิ่ง learn ได้ซับซ้อน -- แต่ก็ยิ่งต้องการ ข้อมูล + compute มากขึ้น

Part 2: โมเดล "เรียนรู้" ได้อย่างไร?

1. Forward Pass

ใส่ข้อมูล -> โมเดลคำนวณ -> ได้คำตอบ (y^)

ตอนแรก w สุ่ม = คำตอบผิดหมด

2. Compute Loss

วัดว่าคำตอบผิดแค่ไหน

Loss มาก = ผิดมาก, Loss น้อย = ใกล้ถูก

3. Update Weights

ใช้ gradient descent ปรับ w ให้ loss ลดลง

ทำซ้ำ 100-1000 ครั้ง -> loss ค่อยๆ ลด

Repeat: Forward -> Loss -> Backward -> Update

Loss Function: วัดว่าผิดแค่ไหน

Regression (ทำนายตัวเลข)

\(L = \frac{1}{N} \sum (\hat{y}_i - y_i)^2\)

MSE = ระยะห่างกำลังสองระหว่างทำนาย vs จริง

Classification (ทำนายคลาส)

\(L = -[y \log \hat{y} + (1-y) \log(1-\hat{y})]\)

BCE = ทำนายผิดฝั่ง = ลงโทษหนักมาก

Goal: ปรับ w, b ให้ L ต่ำที่สุด

Gradient Descent: ลงเนินหา loss ต่ำสุด

\(w \leftarrow w - \eta \cdot \frac{\partial L}{\partial w}\)

ขยับ weight ทีละน้อย ตามทิศทางที่ loss ลดลง

\(\frac{\partial L}{\partial w}\)

Partial derivative = ทิศทาง + ความชัน ที่บอกว่า loss จะแยก/ดีขึ้นถ้าขยับ w

\(\eta\) (learning rate)

ก้าวใหญ่ไป = กระโดดข้ามหลุม / ก้าวเล็กไป = ช้ามาก

Backpropagation

ใช้ chain rule คำนวณ \(\frac{\partial L}{\partial w}\) ทุกตัวอัตโนมัติ

Types of Deep Learning Tasks

Supervised Learning

  • - มี label (คำตอบ) กำกับทุกจุด
  • - Classification: แมว vs หมา
  • - Regression: ทำนายราคาบ้าน
  • - ใช้ loss: Cross-Entropy, MSE

Unsupervised Learning

  • - ไม่มี label ให้
  • - Clustering: จัดกลุ่มข้อมูล
  • - Dimensionality Reduction: ลดมิติ
  • - Generative: สร้างข้อมูลใหม่ (GAN, VAE)

Self-Supervised Learning

  • - สร้าง label จากข้อมูลเอง (pretext task)
  • - BERT, GPT: predict next word
  • - ไม่ต้องมีคน label

Reinforcement Learning

  • - Agent ลองทำ -> ได้ reward/penalty
  • - AlphaGo, Robotics, Game AI
  • - เรียนจากผลลัพธ์ของการกระทำ

คอร์สนี้เน้น Supervised Learning เป็นหลัก

Part 3: เครื่องมือที่จะใช้

Keras / TensorFlow

  • - TensorFlow = library จาก Google
  • - Keras = API ที่ใช้ง่าย
  • - เหมาะสำหรับผู้เริ่มต้น , API สำเร็จรูป
  • - model.fit() = เทรนด้วย 1 บรรทัด
  • - ใช้ช่วงครึ่งแรกของคอร์ส (wk 1-8)

PyTorch

  • - PyTorch = library จาก Meta (Facebook)
  • - Pythonic, debug ง่าย
  • - เป็นที่นิยมใน research
  • - เขียน training loop เอง = เข้าใจทุกขั้นตอน
  • - ใช้ช่วงครึ่งหลังของคอร์ส (wk 9-15)

เริ่มจาก Keras (ง่าย) -> ต่อยอด PyTorch (ยืดหยุ่น)

Keras: ตัวอย่างโค้ด ( lookahead )

import keras
from keras import layers

# 1. สร้างโมเดล
model = keras.Sequential([
    layers.Dense(64, activation='relu',
                 input_shape=(10,)),
    layers.Dense(32, activation='relu'),
    layers.Dense(1, activation='sigmoid')
])

# 2. คอมไพล์
model.compile(
    optimizer='adam',
    loss='binary_crossentropy',
    metrics=['accuracy']
)

# 3. เทรน
model.fit(X_train, y_train,
          epochs=10,
          batch_size=32,
          validation_split=0.2)

- Sequential = stacking ชั้นๆ ต่อกัน

- Dense = ชั้น fully connected (neuron ทุกตัวเชื่อมกับทุกตัว)

- activation='relu' = ฟังก์ชันที่จะเรียนรู้ในสัปดาห์หน้า

- model.fit() = ทุกอย่างจัดการให้ (forward, loss, backward, update)

[Tip] แค่ 3 ขั้นตอน = สร้าง -> คอมไพล์ -> เทรน -- Keras ทำให้ ML เป็นเรื่องง่าย

Part 4: เราจะเรียนอะไรบ้าง 15 สัปดาห์?

Weeks 1-8 (Keras/TensorFlow)

  • - Wk 1: Introduction to Deep Learning (สัปดาห์นี้)
  • - Wk 2: Mathematical building blocks
  • - Wk 3: Introduction to Keras/TF
  • - Wk 4: Neural networks: Classification/Regression
  • - Wk 5: Fundamentals of ML + Keras
  • - Wk 6: Deep learning for computer vision
  • - Wk 7: Quiz
  • - Wk 8: Midterm exam

Weeks 9-15 (PyTorch)

  • - Wk 9: Intro to PyTorch + Perceptron
  • - Wk 10: Dataset, DataLoader, classification
  • - Wk 11: Timeseries with PyTorch
  • - Wk 12: Text: embeddings + sequence models
  • - Wk 13: GenAI for text: RNN -> Transformer
  • - Wk 14: GenAI for image: GAN + Diffusion
  • - Wk 15: Project presentation + Final exam

สรุป + การบ้าน

สิ่งที่ทำวันนี้

  • - Deep Learning = ML + Neural Network หลายชั้น
  • - Neural network คือ weighted sum + activation
  • - เรียนรู้ด้วย loss + gradient descent + backpropagation
  • - เครื่องมือ: Keras (ง่าย) -> PyTorch (ยืดหยุ่น)

การบ้าน (ส่งสัปดาห์หน้า)

  • - ติดตั้ง Python + Keras บนเครื่องตัวเอง
  • - รัน uv init --no-package wk01 tensorflow
  • - รัน cd wk01/
  • - รัน uv add tensorflow + ทดสอบ import
  • - อ่าน Chapter 1: Chollet, F. Deep Learning with Python
  • - ดูวิดีโอ: 3Blue1Brown: But what is a Neural Network?

สัปดาห์หน้า: Mathematical building blocks of neural networks