Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Week 5 Neural Network Fundamentals

พื้นฐานโครงข่ายประสาทเทียม

จากแนวคิดสู่การประยุกต์ใช้

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

🎯 Learning Objectives

  • เข้าใจหลักการทำงานของ Perceptron และข้อจำกัด
  • อธิบาย Multi-Layer Perceptron (MLP) ได้
  • เข้าใจ Forward Propagation และ Backpropagation
  • เลือกใช้ Activation Functions ได้เหมาะสม
  • แก้ปัญหา Vanishing/Exploding Gradients
  • Implement Neural Network ได้อย่างมีประสิทธิภาพ
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

🧠 ทำไมต้อง Neural Network?

Traditional Programming vs Neural Network

แบบเดิม (Rule-based)

if หูแหลม:
    return "แมว"
elif หูตก:
    return "สุนัข"
elif เห่า:
    return "สุนัข"
# ... อีกนับพันกฎ

Neural Network

# ให้ตัวอย่างเยอะๆ
model.fit(รูปภาพ, ป้ายกำกับ)

# ระบบเรียนรู้กฎเอง!
prediction = model.predict(รูปใหม่)
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

📊 เปรียบเทียบ ML Algorithms

Algorithm ข้อดี ข้อจำกัด เหมาะกับ
Linear Regression เข้าใจง่าย, เร็ว แก้ปัญหา linear เท่านั้น ความสัมพันธ์เชิงเส้น
Decision Tree อธิบายได้ Overfitting ง่าย กฎการตัดสินใจ
Random Forest แม่นยำ, robust Black box ข้อมูล tabular
Neural Network แก้ปัญหาซับซ้อน ต้องการข้อมูลเยอะ รูปภาพ, เสียง, ข้อความ
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

1. 🔵 Perceptron เซลล์ประสาทเทียมเซลล์แรก

แนวคิดพื้นฐาน

สมองมนุษย์
Dendrites (รับสัญญาณ) → Cell Body (ประมวลผล) → Axon (ส่งสัญญาณ)

Perceptron
Inputs (x₁, x₂) → Weighted Sum + Bias → Activation → Output
💡 Perceptron = การจำลองเซลล์ประสาทของมนุษย์อย่างง่าย
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

🎯 ตัวอย่าง ระบบตัดสินใจไปเที่ยวทะเล

ปัจจัยการตัดสินใจ

  • x₁ = อากาศดี (1) หรือไม่ดี (0)
  • x₂ = มีเพื่อนไปด้วย (1) หรือไม่มี (0)

การคำนวณ

การตัดสินใจ = (อากาศดี × 0.7) + (มีเพื่อน × 0.5) + (-0.8)

ถ้าผลรวม > 0 → ไปเที่ยว ✓
ถ้าผลรวม ≤ 0 → ไม่ไป ✗
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

📐 สูตร Perceptron

สูตรหลัก y = f(w₁x₁ + w₂x₂ + b)

ความหมายแต่ละส่วน

  • x₁, x₂ = inputs (ปัจจัยที่พิจารณา)
  • w₁, w₂ = weights (ความสำคัญของแต่ละปัจจัย)
    • w₁ = 0.7 → "อากาศดี" สำคัญ 70%
    • w₂ = 0.5 → "มีเพื่อน" สำคัญ 50%
  • b = bias = -0.8 (ระดับความยากในการตัดสินใจ)
  • f(z) = Activation function (f(z) = Step y = 1 if z ≥ 0 else 0)
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Perceptron (Single Neuron)

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

ตัวอย่างการคำนวณ Perceptron

กรณี 1 อากาศดี(1) + มีเพื่อน(1)

= (1 × 0.7) + (1 × 0.5) + (-0.8)
= 0.7 + 0.5 - 0.8 
= 0.4 > 0 → ไปเที่ยว ✓

กรณี 2 อากาศไม่ดี(0) + มีเพื่อน(1)

= (0 × 0.7) + (1 × 0.5) + (-0.8)
= 0 + 0.5 - 0.8 
= -0.3 < 0 → ไม่ไป ✗
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Perceptron Learning Algorithm

สูตรการปรับ Weight

w_new = w_old + α × (y_true - y_pred) × x
  • w_old = น้ำหนักเดิม
  • α = learning rate (0.01-0.1)
    • 0.01 = ปรับทีละนิด (แม่นยำแต่ช้า)
    • 0.1 = ปรับเยอะ (เร็วแต่อาจเลย)
  • y_true - y_pred = error
  • x = input ที่ทำให้ตอบผิด
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

ตัวอย่างการปรับ Weight

สถานการณ์

  • w₁ = 0.5, α = 0.1, x₁ = 1
  • ตอบผิด คาดว่า 1 แต่ได้ 0 → error = 1

การคำนวณ

w₁_new = 0.5 + 0.1 × 1 × 1
       = 0.5 + 0.1
       = 0.6 (ปรับเพิ่มขึ้น)

ความหมาย: "อากาศดี" สำคัญมากขึ้น (จาก 50% เป็น 60%)

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

⚠️ ข้อจำกัด XOR Problem ของ Perceptron

AND Gate ✅ (แก้ได้)

AND
● = 0, ○ = 1 — เส้นเดียวแบ่งได้

XOR Gate ❌ (แก้ไม่ได้)

XOR
● = 0, ○ = 1 — ต้องใช้หลายเส้น
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

2. 🔗 Multi-Layer Perceptron (MLP)

ทำไมต้องมีหลายชั้น? (ตัวอย่าง การจำแนกผลไม้)

  • Layer 1 สกัดคุณสมบัติพื้นฐาน

    • Neuron 1 ตรวจจับสีแดง
    • Neuron 2 ตรวจจับรูปร่างกลม
    • Neuron 3 ตรวจจับขนาดเล็ก
  • Layer 2 รวมคุณสมบัติ

    • Neuron A สีแดง + กลม + เล็ก → เชอร์รี่
    • Neuron B สีแดง + กลม + ใหญ่ → แอปเปิ้ล
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

ทำไม MLP ต้องมี Sigmoid
(Activation Function)?

ปัญหาของ Linear Transformation

ถ้าไม่มี Activation Function

Layer 1: h₁ = W₁x + b₁
Layer 2: h₂ = W₂h₁ + b₂ = W₂(W₁x + b₁) + b₂
        = W₂W₁x + W₂b₁ + b₂
        = Wx + b  (ยังคงเป็น linear!)

ปัญหา ต่อ layers กี่ชั้นก็ยังเป็นเส้นตรง!

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

บทบาทของ Sigmoid ใน MLP

Linear (ไม่มี sigmoid)

Layer 1: h₁ = W₁x + b₁
Layer 2: h₂ = W₂h₁ + b₂
        = W₂(W₁x + b₁) + b₂
        = W₂W₁x + W₂b₁ + b₂
        = Wx + b
→ ยังเป็นเส้นตรง
→ XOR แก้ไม่ได้

แปลงเป็น Non-linear
(มี sigmoid)

Layer 1: h₁ = σ(W₁x + b₁)
Layer 2: h₂ = σ(W₂h₁ + b₂)
→ ไม่สามารถย่อเป็น Wx + b ได้
→ เกิดการโค้งของ decision boundary
→ XOR แก้ได้!
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Universal Approximation Theorem

"MLP ที่มี hidden layer เพียง 1 ชั้น สามารถประมาณฟังก์ชันต่อเนื่องใดๆ ได้ ถ้ามี neurons เพียงพอ"

อธิบายง่ายๆ

sigmoid 1 ตัว      ___/‾‾‾
sigmoid 2 ตัว      ___/‾‾\___
sigmoid หลายตัว    ___/‾\/‾\___  (ประมาณเส้นโค้งได้)

⚠️ ระวัง: neurons มาก = อาจ overfitting!
💡 มองอีกมุมได้ว่า Sigmoid ช่วยแปลง XOR จากปัญหา 2D ที่แก้ไม่ได้ → ปัญหาใน higher dimension ที่แก้ได้!

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

📐 Sigmoid Function

สูตร σ(x) = 1/(1+e^(-x))

ทำไมใช้ Sigmoid?

  • แปลงค่าใดๆ ให้อยู่ระหว่าง 0-1 (แปลงค่าต่อเนื่องเป็นความน่าจะเป็น)
  • e ≈ 2.718 (ค่าคงที่ออยเลอร์)

ตัวอย่างการคำนวณ

σ(0.44) = 1/(1+e^(-0.44)) 
        = 1/(1+0.64) 
        = 0.61

ความหมาย Neuron นี้ "active" 61%
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Matrix Operations

Loop (ช้า)

for neuron in neurons:
    for input in inputs:
        sum += weight * input
    add bias
    apply activation

ถ้ามี 100 นิวรอน และแต่ละนิวรอนมี 1,000 อินพุต จะมี 100 × 1,000 = 100,000 operations

Matrix (เร็ว)

Output = activation(
    Input × Weights + Bias
)

1 operation ใหญ่
(GPU ทำพร้อมกันได้!)

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

📐 Matrix Multiplication

วิธีคูณ แถว × คอลัมน์

[0.8, 0.3] × [[0.5, -0.3],
              [0.4,  0.7]]

= [(0.8×0.5 + 0.3×0.4), (0.8×-0.3 + 0.3×0.7)]
= [0.52, -0.03]

ทำไมเร็วกว่า? (GPU มี cores หลายพันตัว!)

  • Loop คำนวณทีละค่า (sequential)
  • Matrix คำนวณพร้อมกัน (parallel), core1 คำนวนค่า (0.8×0.5 + 0.3×0.4),
    core2 คำนวนค่า (0.8×-0.3 + 0.3×0.7)
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

3. ⬅️ Backpropagation

🎯 อุปมา สอนเด็กขว้างบาสเก็ตบอล

  1. เด็กขว้างลูก (Forward Propagation)
  2. ลูกไม่เข้า (Forward Propagation) คำนวน Error/Loss
  3. วิเคราะห์ผิดตรงไหน (Backpropagation)
    • มือปล่อยเร็วไป? → ปรับ timing
    • แรงน้อยไป? → ปรับแรง
    • มุมผิด? → ปรับมุม
  4. ปรับแต่ละส่วน (Backpropagation) Update weights
  5. ลองใหม่ กลับไปทำข้อ 1.
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Chain Rule

สูตรพื้นฐาน

ถ้า z = f(g(x))
แล้ว dz/dx = dz/dg × dg/dx

ตัวอย่างง่ายๆ

ราคาขนม = ราคาแป้ง × 2 + 10
- ถ้าแป้งแพงขึ้น 1 บาท 
- ขนมแพงขึ้น 2 บาท
- Gradient = 2 (ราคาขนมเปลี่ยนเร็วแต่ไหนเมื่อราคาแป้งเปลี่ยน)
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

📐 Derivative (อนุพันธ์)

คืออะไร?

"อัตราการเปลี่ยนแปลง (Gradient)" - บอกว่าถ้า input เปลี่ยน output จะเปลี่ยนเท่าไหร่

ตัวอย่างในชีวิตจริง (เวลา คือ input ระยะทาง คือ output)

ความเร็ว = อนุพันธ์ของ ระยะทาง/เวลา
- ขับรถเร็ว 60 km/hr (Gradient)
- หมายความว่า ทุกๆ 1 ชั่วโมง ระยะทางเปลี่ยน 60 km
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Chain Rule ใน Neural Network

Loss → Output Layer → Hidden Layer → Input

ตัวอย่าง 3 ชั้น
Loss หรือ Error = (y_pred - y_true)²
y_pred = σ(z)
z = wx + b

∂ คือ อนุพันธ์ย่อย

∂Loss/∂w = ∂Loss/∂y_pred × ∂y_pred/∂z × ∂z/∂w
         = 2(y_pred - y_true) × σ'(z) × x
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

ตัวอย่างการคำนวณ Gradient

Given

  • y_true = 1, y_pred = 0.7, σ(z)=0.7
  • σ′(z) = σ(z) × (1−σ(z))
  • σ'(z) = 0.21, x = 0.8

คำนวณ

∂Loss/∂w = 2(0.7 - 1) × 0.21 × 0.8
         = 2(-0.3) × 0.21 × 0.8
         = -0.1008

ความหมาย ควรลด weight ลง 0.1008 × learning_rate

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Gradient Descent

อุปมา คนตาบอดหาทางลงจากภูเขา

Learning Rate ต่างกัน

  • lr = 0.001 เดินช้ามาก (ปลอดภัยแต่นาน)
  • lr = 0.01 เดินพอดี (สมดุล)
  • lr = 0.1 เดินเร็ว (เสี่ยงข้ามจุดต่ำสุด)
  • lr = 10 กระโดด (อาจตกเหว!)
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

📐 สูตร Gradient Descent

สูตรหลัก θ_new = θ_old - α∇J(θ)

  • θ = parameters ทั้งหมด (weights & biases)
  • α = learning rate (ขนาดก้าว)
  • ∇J(θ) = gradient ของ loss function
    • ∇ = gradient (ความชันทุกทิศทาง)
    • J = loss function
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

📐 สูตร Gradient Descent (ต่อ)

สูตรหลัก θ_new = θ_old - α∇J(θ) (ต่อ)

ทำไมต้องลบ?

  • gradient บวก = ภูเขาขึ้น → เดินลง (ตรงข้าม)
  • gradient ลบ = ภูเขาลง → เดินตาม
AI Course | พื้นฐานโครงข่ายประสาทเทียม
center
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

ตัวอย่าง Weight Update

Epoch 1: w = 5.0, gradient = 3.0, lr = 0.1
w_new = 5.0 - (0.1 × 3.0) = 4.7

Epoch 2: w = 4.7, gradient = 2.1, lr = 0.1
w_new = 4.7 - (0.1 × 2.1) = 4.49

Epoch 3: w = 4.49, gradient = 1.5, lr = 0.1
w_new = 4.49 - (0.1 × 1.5) = 4.34

→ ค่า weight ค่อยๆ ลดลงจนถึงจุดต่ำสุด (minimum)

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

4. 🎭 Activation Functions

ทำไมต้องมี?

ถ้าไม่มี

Layer 1: y = W₁x
Layer 2: z = W₂y = W₂(W₁x) = (W₂W₁)x
Result: ยังคงเป็น linear!

ถ้ามี

Layer 1: y = σ(W₁x)
Layer 2: z = σ(W₂σ(W₁x))
Result: Non-linear! ✓
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Sigmoid Function

สูตร σ(x) = 1/(1+e^(-x))

คุณสมบัติ

  • Output: (0, 1)
  • เมื่อ x → ∞, σ(x) → 1
  • เมื่อ x → -∞, σ(x) → 0
  • เมื่อ x = 0, σ(0) = 0.5

อนุพันธ์ σ'(x) = σ(x) × (1 - σ(x))

  • สูงสุดที่ x = 0 → σ'(0) = 0.25
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Sigmoid Function (ต่อ)

สูตร σ(x) = 1/(1+e^(-x)) (ต่อ)

✅ ดี Output เป็น probability
❌ แย่ Vanishing gradient
📍 ใช้ที่ Output layer (binary classification)

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

ReLU (Rectified Linear Unit)

สูตร ReLU(x) = max(0, x)

คุณสมบัติ

if x > 0:
    return x
else:
    return 0

อนุพันธ์ ReLU'(x) = 1 if x>0, else 0

✅ ดี คำนวณเร็ว, ไม่ vanishing gradient
❌ แย่ Dying ReLU (neurons ตาย)
📍 ใช้ที่ Hidden layers ทั่วไป

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Tanh Function

สูตร tanh(x) = (e^x - e^(-x))/(e^x + e^(-x))

คุณสมบัติ

  • Output: (-1, 1)
  • Zero-centered (mean = 0)
  • ความสัมพันธ์ tanh(x) = 2σ(2x) - 1

อนุพันธ์ tanh'(x) = 1 - tanh²(x)

✅ ดี Zero-centered
❌ แย่ ยัง vanishing gradient
📍 ใช้ที่ RNN, LSTM

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

เปรียบเทียบ Activation Functions

Function Range ข้อดี ข้อเสีย ใช้เมื่อ
Sigmoid (0,1) Probability Vanishing gradient Output layer
ReLU [0,∞) เร็ว, ไม่ vanishing Dying ReLU Hidden layers
Tanh (-1,1) Zero-centered Vanishing gradient RNN/LSTM
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Vanishing Gradient Problem

ปัญหา gradient ลดแบบ exponential

10 layers, แต่ละ layer มี gradient = 0.25
Layer 1: 0.25
Layer 5: 0.25^5 = 0.00098
Layer 10: 0.25^10 = 0.0000009

→ Layers แรกๆ แทบไม่เรียนรู้!
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

📐 สาเหตุ Vanishing Gradient

Chain Rule

∂L/∂w₁ = ∂L/∂a₁₀ × ∂a₁₀/∂a₉ × ... × ∂a₂/∂a₁ × ∂a₁/∂w₁

เปรียบเทียบ

Sigmoid: 0.25 × 0.25 × 0.25 = 0.015625 (ลดเร็ว!)
ReLU:    1 × 1 × 1 = 1 (คงที่ ✓)
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

วิธีแก้ Gradient Problems

  1. ใช้ ReLU แทน Sigmoid

    • gradient = 1 สำหรับ x > 0
  2. Batch Normalization

    • Normalize inputs แต่ละ layer
  3. Residual Connections (ResNet)

    • ข้าม layers H(x) = F(x) + x
  4. Better Initialization

    • He Init (ReLU) W ~ N(0, √(2/n_in))
    • Xavier Init W ~ N(0, √(2/(n_in+n_out)))
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

5. Weight Initialization

❌ ปัญหาถ้า Init ผิด

All zeros

ทุก neuron: z = 0×x + 0 = 0
→ output เหมือนกัน
→ gradient เหมือนกัน
→ เหมือนมี neuron เดียว!

Too large

Layer 1: variance = 100
Layer 2: variance = 10,000
Layer 3: variance = 1,000,000
→ Exploding!
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

📐 Xavier/Glorot Initialization

เป้าหมาย Var(output) = Var(input)

พิสูจน์

Var(y) = n × Var(w) × Var(x)
ถ้าต้องการ Var(y) = Var(x):
n × Var(w) × Var(x) = Var(x)
→ Var(w) = 1/n
→ std(w) = √(1/n)

ปรับปรุง

std(w) = √(2/(n_in + n_out))
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

He Initialization (for ReLU)

ปัญหา ReLU ตัดค่าลบทิ้ง

  • เหลือแค่ครึ่งเดียวของ signal
  • ต้องชดเชยด้วยการคูณ 2

สูตร

std(w) = √(2/n_in)

สรุป

  • Sigmoid/Tanh ใช้ Xavier
  • ReLU ใช้ He
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

6. 🔧 TensorFlow/Keras

ทำไมใช้ Framework?

ทำเอง

  • เข้าใจลึก
  • ยืดหยุ่น
  • Debug ยาก
  • ช้า

Framework

  • พัฒนาเร็ว
  • Optimized
  • Tools เยอะ
  • GPU support
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Keras Sequential API

from tensorflow import keras
from tensorflow.keras import layers

# สร้าง model
model = keras.Sequential([
    layers.Dense(16, activation='relu', 
                 input_shape=(2,)),
    layers.Dropout(0.2),  # ป้องกัน overfitting
    layers.Dense(1, activation='sigmoid')
])

# Compile
model.compile(
    optimizer='adam',
    loss='binary_crossentropy',
    metrics=['accuracy']
)
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Callbacks ที่สำคัญ

EarlyStopping

"หยุดเมื่อไม่ดีขึ้น" - ป้องกัน overfitting

ReduceLROnPlateau

"ลด learning rate เมื่อติด" - ปรับละเอียดขึ้น

ModelCheckpoint

"บันทึก model ที่ดีที่สุด" - ไม่ใช่ model สุดท้าย

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

7. เมื่อไหร่ใช้อะไร?

Traditional ML

  • ข้อมูลน้อย (<1,000)
  • ต้องอธิบายได้
  • Features ชัดเจน
  • Training เร็ว
  • Tabular data

Neural Network

  • ข้อมูลเยอะ (>10,000)
  • ต้องการแม่นยำสูง
  • Features ซับซ้อน
  • มี GPU
  • Images, Audio, Text
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Trade-offs

Traditional ML
Interpretability: ████████░░ (80%)
Speed:            ████████░░ (80%)
Accuracy:         ██████░░░░ (60%)
Data Needed:      ███░░░░░░░ (30%)

Neural Network
Interpretability: ██░░░░░░░░ (20%)
Speed:            ████░░░░░░ (40%)
Accuracy:         █████████░ (90%)
Data Needed:      ████████░░ (80%)
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

8. 🐛 Debugging Neural Networks

ปัญหาที่พบบ่อย

ปัญหา สาเหตุ วิธีแก้
Loss = NaN Exploding gradients ลด learning rate
Loss ไม่ลด LR ต่ำเกิน เพิ่ม LR, เปลี่ยน optimizer
Train ดี Val แย่ Overfitting Dropout, Early stopping
ทั้งคู่แย่ Underfitting เพิ่ม neurons/layers
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Debugging Checklist

□ 1. Overfit small dataset ก่อน (sanity check)
   → ถ้าไม่ได้ = bug ใน code

□ 2. เริ่มจาก model ง่ายๆ
   → 2 layers → 3 layers → ...

□ 3. Monitor metrics
   → Loss ลดลงไหม?
   → Train vs Val แตกต่างมากไหม?
   → Gradients ปกติไหม?

□ 4. Visualize everything
   → Loss curves, Weight distributions
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

9. 🎯 Best Practices (Part 1)

  1. Always normalize inputs

    อายุ (20-60) vs เงินเดือน (20,000-100,000)
    ถ้าไม่ normalize → gradient ต่างกัน 1000 เท่า!
    
  2. Start simple - Occam's Razor

  3. Use ReLU for hidden layers (default)

  4. Batch size 32 - memory alignment

  5. Learning rate 0.001 for Adam

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Best Practices (Part 2)

  1. Monitor validation ตลอดเวลา

    • val_loss ขึ้น + train_loss ลง = overfit!
  2. Save best model ไม่ใช่ model สุดท้าย

  3. Ensemble สำหรับความแม่นยำสูงสุด

    • Var(avg) = Var(x)/n
  4. Data > Algorithm

    • ไม่มี patterns = เรียนไม่ได้
  5. Reproducibility - set random seeds

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

สรุป Key Takeaways

✅ สิ่งที่ต้องเข้าใจ

  1. Perceptron = พื้นฐานของทุกอย่าง
  2. MLP = แก้ปัญหาซับซ้อนได้
  3. Forward Propagation = คำนวณ output
  4. Backpropagation = เรียนรู้ด้วย chain rule
  5. Activation Functions = สร้าง non-linearity
  6. Gradient Problems = ความท้าทายหลัก
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

🎯 ทักษะที่ควรมี

  • อธิบายการทำงานของ Neural Network ได้
  • เลือก architecture ที่เหมาะสม
  • Debug เมื่อ model ไม่ work
  • ใช้ framework (Keras/TensorFlow)
  • รู้ว่าเมื่อไหร่ควรใช้/ไม่ควรใช้ NN
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

📖 Resources

แหล่งเรียนรู้

Papers สำคัญ

  • Rosenblatt (1958) - The Perceptron
  • Rumelhart et al. (1986) - Backpropagation
  • Glorot & Bengio (2010) - Understanding difficulty
AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Quote of the Week

"Neural Networks are like cooking - you need the right ingredients (data), proper preparation (preprocessing), correct temperature (learning rate), and patience (epochs). Master the basics before attempting the fancy dishes!"

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

🚀 Next Week Preview

Week 6 Deep Learning & CNN

  • Convolution layers สำหรับ images
  • Pooling และ feature maps
  • Transfer Learning
  • Image Classification Projects

Prepare Review matrix operations และ image processing basics!

AI Course | พื้นฐานโครงข่ายประสาทเทียม
Week 5 Neural Network Fundamentals | ผศ.ดร.ณัฐโชติ พรหมฤทธิ์

Q&A และ Discussion

🎓 End of Week 5 Neural Network Fundamentals

AI Course | พื้นฐานโครงข่ายประสาทเทียม

_style