เข้าใจ Neural Network ให้ลึกจริง — ทำไมต้อง Convolution, ทำไม ReLU ต้องตามหลัง Conv2d และทำไมเลเยอร์ลึกขึ้นถึงเรียนรู้ฟีเจอร์ซับซ้อนขึ้น

หลายคนที่เริ่มศึกษา Deep Learning มักสงสัยว่า

  • ทำไมเลเยอร์แรกถึงเรียนรู้ “ขอบภาพ (edges)” ก่อน “รูปร่าง (shapes)”?
  • ทำไมงานด้านภาพต้องใช้ Conv2d แทบทุกครั้ง?
  • Convolution คืออะไรแน่?
  • ทำไมต้องใส่ ReLU หลัง Conv2d ทุกครั้ง?
  • แล้วทำไมยิ่งเพิ่มเลเยอร์ ความสามารถในการทำนายถึงดีขึ้น?

บทความนี้จะอธิบายแบบลึก แต่เข้าใจง่าย เหมาะสำหรับทั้งผู้เริ่มต้นและผู้ที่อยากเข้าใจแก่นการทำงานของ Neural Network จริง ๆ


🔥 ส่วนที่ 1 — ทำไมเลเยอร์ลึกขึ้นถึงเรียนรู้อะไรที่ซับซ้อนขึ้น?

Neural Network เรียนรู้แบบ "ลำดับชั้น" (Hierarchy) โดยธรรมชาติ:

เลเยอร์ สิ่งที่เรียนรู้ เหตุผล
1 ขอบภาพ (Edges) ง่ายที่สุดและข้อมูลเด่นที่สุด
2 รูปร่างพื้นฐาน (Shapes) รวมขอบหลาย ๆ แบบเข้าด้วยกัน
3 ลายพื้นผิว (Textures) รวมรูปร่างกลายเป็น pattern
4+ ส่วนประกอบของวัตถุ เช่น ตา ล้อ ใบไม้ ฯลฯ
สุดท้าย วัตถุ เช่น แมว รถ คน ฯลฯ

❗ สำคัญ:

เรา ไม่ได้เขียนโค้ด บังคับให้เลเยอร์เรียนสิ่งเหล่านี้

ไม่มีคำสั่งเช่น:

layer1.learn_edges()
layer2.learn_shapes()

Neural Network มีเป้าหมายเพียงอย่างเดียว:

\text{ลดค่า Loss ให้ต่ำที่สุด}

เมื่อ Backpropagation ปรับน้ำหนักของเลเยอร์ต่าง ๆ
มันจะเรียนรู้สิ่งที่ดีที่สุดสำหรับการลด Loss

ขอบภาพจึงเกิดขึ้นก่อน เพราะเป็นฟีเจอร์ง่ายและสำคัญที่สุด
รูปร่างเกิดตามมาเพราะต้องรวมขอบหลาย ๆ จุดเข้าด้วยกัน

นี่เรียกว่า Hierarchical Feature Learning (ฟีเจอร์แบบลำดับชั้น)


🔍 ส่วนที่ 2 — Convolution คืออะไร?

Convolution คือการใช้ “ฟิลเตอร์เล็ก ๆ” เช่นขนาด 3×3
ไปไล่สแกนรูปภาพเพื่อ ตรวจจับแพทเทิร์น

ตัวอย่างฟิลเตอร์ตรวจจับขอบแนวตั้ง:

[ 1  0 -1 ]
[ 1  0 -1 ]
[ 1  0 -1 ]

มันทำงานแบบ:

  1. ครอบฟิลเตอร์ลงภาพ
  2. คูณค่าพิกเซลกับค่าฟิลเตอร์
  3. รวมผล
  4. เลื่อนตำแหน่งหนึ่งช่อง
  5. ทำซ้ำทั่วภาพ

สิ่งที่ Convolution ตรวจจับได้:

  • ขอบภาพ
  • มุม
  • เส้นโค้ง
  • ลายพื้นผิว
  • รูปร่าง
  • ส่วนประกอบของวัตถุ

ทั้งหมดเกิดจากฟิลเตอร์ที่เรียนรู้จากข้อมูลผ่าน backprop


🟦 ส่วนที่ 3 — ทำไมงานด้านภาพต้องใช้ Conv2d?

Conv2d เป็นเลเยอร์ที่เหมาะกับงานภาพที่สุด เพราะ:

✔ 1. ภาพมีโครงสร้างเชิงพื้นที่ (Spatial Structure)

พิกเซลข้าง ๆ กันมีความเกี่ยวข้องกัน → Conv2d ใช้พื้นที่แบบ local ได้ดี

✔ 2. ใช้น้ำหนักซ้ำทั่วภาพ (Weight Sharing)

ฟิลเตอร์ 3×3 หนึ่งตัวถูกใช้ทั่วทั้งภาพ
→ จำนวนพารามิเตอร์น้อยกว่า Linear หลายร้อยเท่า

✔ 3. มีคุณสมบัติ Translation Invariance

วัตถุอยู่ตำแหน่งไหน ฟิลเตอร์จะตรวจจับได้เหมือนเดิม

✔ 4. ประสิทธิภาพสูง

Linear ต้องใช้พารามิเตอร์ 150,000+ สำหรับภาพหนึ่งภาพ
Conv2d ใช้แค่ 9 ค่าในฟิลเตอร์ 3×3

✔ 5. เรียนรู้แบบลำดับชั้นได้ดี

Conv2d + ReLU ซ้อนกันหลายครั้ง
ทำให้เกิด Hierarchy ของฟีเจอร์อัตโนมัติ

จึงไม่น่าแปลกใจที่ CNN ทุกรุ่นใช้ Conv2d เช่น:

  • LeNet
  • AlexNet
  • VGG
  • ResNet
  • MobileNet

แม้แต่ Vision Transformer (ViT) ก็ยังใช้ Conv-like embedding ตอนต้น


⚙️ ส่วนที่ 4 — เข้าใจพารามิเตอร์ของ nn.Conv2d

รูปแบบคำสั่ง:

nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding)
พารามิเตอร์ หมายถึง
in_channels จำนวนช่องของอินพุต (เช่น RGB=3)
out_channels จำนวนฟิลเตอร์ที่ต้องการเรียนรู้
kernel_size ขนาดฟิลเตอร์ เช่น 3×3
stride ระยะเลื่อนของฟิลเตอร์
padding เติมขอบภาพเพื่อไม่ให้ขนาดลดลง

ตัวอย่าง:

nn.Conv2d(3, 64, 3, stride=1, padding=1)

หมายถึง:

  • อินพุต 3 ช่อง (RGB)
  • เรียนรู้ฟิลเตอร์ 64 ตัว ขนาด 3×3

🔥 ส่วนที่ 5 — ทำไมต้อง ReLU หลัง Conv2d?

ReLU ถูกวางหลัง Conv2d เพราะ:

✔ 1. Conv2d เป็นฟังก์ชันเชิงเส้น

ซ้อน Conv หลายเลเยอร์ = ยังเป็นฟังก์ชันเชิงเส้นเดียว
→ เรียนรู้ฟีเจอร์ซับซ้อนไม่ได้

✔ 2. ReLU เพิ่มความไม่เป็นเชิงเส้น (Nonlinearity)

ReLU(x) = \max(0, x)

นี่ทำให้โมเดลเรียนรู้:

  • ขอบที่ซับซ้อน
  • ลายพื้นผิว
  • รูปร่าง
  • วัตถุ

✔ 3. แก้ปัญหา vanishing gradient

ReLU ให้ gradient = 1 สำหรับค่าบวก
→ training เร็วมาก

✔ 4. ทำให้ฟีเจอร์ชัดเจนขึ้น

ค่าที่ไม่สำคัญถูกตัดเป็น 0
เหลือเฉพาะ activation สำคัญ

โครงสร้างพื้นฐานของ CNN จึงเป็น:

Conv → ReLU → Conv → ReLU → Conv → ReLU → …

🧠 สรุปภาพรวม

Neural Network ดูลึกลับ แต่ทำงานตามหลักการง่าย ๆ:

  • Convolution → ตรวจจับ pattern
  • ReLU → เพิ่มความไม่เชิงเส้นให้เรียนรู้เรื่องยาก
  • Backpropagation → ปรับฟิลเตอร์อัตโนมัติ
  • เลเยอร์ลึก → รวมฟีเจอร์จากง่าย → ซับซ้อน

ความจริงคือ เราไม่ต้องบังคับให้เลเยอร์เรียน edge หรือ shape
มันเกิดขึ้นเอง เพราะมันคือวิธีที่ดีที่สุดในการลด loss

ถ้าเข้าใจฐานรากเหล่านี้ คุณจะเข้าใจ Deep Learning เกือบทั้งหมดแล้ว


Get in Touch with us

Chat with Us on LINE

iiitum1984

Speak to Us or Whatsapp

(+66) 83001 0222

Related Posts

Our Products