NORMSTrading Platform
← สารบัญหนังสือ

3.5 — คณิตเบื้องหลัง ML
Linear Algebra & Optimization แบบเข้าใจ

ภาค 3 · คณิต-สถิติ · อ่าน ~7 นาที · ไม่ต้องเป็นนักคณิต — แค่รู้ว่า ML จัดการข้อมูลยังไง
ทุกครั้งที่ได้ยินว่า "ML ใช้ linear algebra" หรือ "neural network train ด้วย gradient descent" — ฟังแล้วก็ผ่าน ไม่รู้ว่ามันหมายถึงอะไรจริงๆ
บทนี้ไม่ได้สอนให้คำนวณ — แต่สอนให้ "เห็นภาพ" ว่า ML จัดการข้อมูลในหัวมันยังไง · พอเห็นภาพแล้ว จะไม่กลัวคำศัพท์พวกนี้อีกเลย

1. Vector — ราคาไม่ใช่ตัวเลขเดี่ยวๆ แต่คือจุดในอวกาศ

เริ่มจากสิ่งที่ง่ายที่สุด: เราเห็นราคา "42,350" — แต่ ML ไม่เห็นแค่นั้น · ML เห็นว่าแท่งนี้มี หลายคุณสมบัติพร้อมกัน เช่น:

แท่งเทียนหนึ่งแท่ง ในสายตา ML:
[ 42350, 41200, 42800, 41100, 85000, 1.82 ]
^ปิด ^เปิด ^สูง ^ต่ำ ^volume ^RVOL

นั่นคือ vector ขนาด 6 — ตัวเลข 6 ตัวที่อธิบายแท่งนี้ครบ

Vector คือแค่ "รายการตัวเลขที่อธิบายสิ่งหนึ่งๆ" — ไม่มีอะไรน่ากลัว · ในโลก ML ข้อมูลทุกอย่างถูกแปลงเป็น vector ก่อน เพราะคอมพิวเตอร์เข้าใจเลขได้ ไม่เข้าใจ "กราฟสีเขียว"

ลองนึกภาพ: ถ้าแท่งเทียนมีแค่ 2 คุณสมบัติ (volume กับ spread) เราวาดได้บนกระดาษ XY · ถ้ามี 3 คุณสมบัติ วาดได้ใน 3D · ถ้ามี 100 คุณสมบัติ — มนุษย์วาดไม่ได้ แต่คอมพิวเตอร์ยังคำนวณในอวกาศ 100 มิติได้สบาย · ML เก่งตรงนี้พอดี: หาแพทเทิร์นในอวกาศที่มนุษย์มองไม่เห็น

2. Matrix — ตารางข้อมูลคือ Matrix ที่ ML อ่าน

ถ้า vector คือ "แท่งเดียว" แล้ว 100 แท่งเรียงกัน = ตาราง 100 แถว × 6 คอลัมน์ = Matrix

Matrix ข้อมูล 4 แท่ง × 3 คุณสมบัติ (ปิด · volume · RVOL):

[ 42350 85000 1.82 ] ← แท่งวันจันทร์
[ 42100 63000 1.21 ] ← แท่งวันอังคาร
[ 43200 120000 2.43 ] ← แท่งวันพุธ (volume พุ่ง!)
[ 43050 71000 1.35 ] ← แท่งวันพฤหัส

ML อ่านข้อมูลทั้งหมดนี้พร้อมกัน หาความสัมพันธ์ระหว่างทุกคอลัมน์

ทุกอย่างที่ ML ทำ ทำบน matrix — การคูณ matrix คือวิธีที่ ML "รวม" ข้อมูลหลายมิติเข้าด้วยกัน · ไม่ต้องรู้วิธีคูณ matrix ด้วยมือ แต่รู้ว่ามันคือ "การผสมข้อมูลเพื่อหาแพทเทิร์น" ก็พอ

3. สิ่งที่ ML "หา" จริงๆ คืออะไร?

ML ไม่ได้ "똑똑" ด้วยตัวเอง — มันทำงานง่ายมาก: หาชุดตัวเลข (เรียกว่า weights/parameters) ที่ทำให้ความผิดพลาดน้อยที่สุด

ตัวอย่างง่ายสุด — ML พยากรณ์ราคาพรุ่งนี้:

กฎของ ML: ราคาพรุ่งนี้ = (w1 × ราคาวันนี้) + (w2 × volume) + (w3 × RVOL) + ค่าคงที่

ML ไม่รู้ว่า w1, w2, w3 ควรเป็นเท่าไร · มันเดาตัวเลขเหล่านี้ ลองกับข้อมูลจริง ดูว่าผิดพลาดเท่าไร แล้วปรับ · ทำซ้ำหมื่นรอบ จนผิดพลาดน้อยที่สุดเท่าที่ทำได้

นั่นคือทั้งหมด · สูตรซับซ้อนแค่ไหน หรือ neural network ลึกกี่ชั้น — สุดท้ายทำแค่ "หาตัวเลขที่ทำให้ผิดพลาดน้อยที่สุด" ทั้งนั้น · เปลี่ยนแค่ว่าตัวเลขที่หา ซับซ้อนขึ้นและมีเป็นล้านตัว

4. Gradient Descent — เดินลงเขา ไม่ใช่บินข้ามเขา

คำถามคือ: ML หา "ตัวเลขที่ผิดพลาดน้อยที่สุด" ยังไง ในเมื่อมีตัวเลขเป็นล้านตัวที่เป็นไปได้?

ลองนึกภาพ: คุณถูกวางไว้บนเทือกเขา ตาบอด อยากหาหุบเขาที่ต่ำที่สุด (= ความผิดพลาดต่ำสุด) · คุณทำได้แค่ — เอาเท้าสัมผัสพื้นรอบๆ ตัว แล้วเดินไปทางที่ลาดลง · ทำซ้ำๆ ทีละก้าว จนพื้นแบนราบ = ถึงหุบเขาแล้ว

Gradient Descent ในชีวิตจริง:

รอบที่ 1: weights เดิม → ความผิดพลาด = 0.82 · ปรับ weights ไปทาง "ลด error"
รอบที่ 2: weights ใหม่ → ความผิดพลาด = 0.74 · ดีขึ้น · ปรับต่อ
รอบที่ 3: weights ใหม่ → ความผิดพลาด = 0.68 · ดีขึ้นอีก · ปรับต่อ
...
รอบที่ 5000: ความผิดพลาด = 0.21 · แบนแล้ว · หยุด — นี่คือ "trained model"

"Gradient" แปลว่าความชัน — ชันมากขึ้นไป ชันน้อยลง · Descent แปลว่าลง · รวมกัน = "ลงตามความชัน" · ทำซ้ำจนถึงก้นหุบเขา

💡 Hyperparameter ที่สำคัญที่สุดตัวหนึ่ง: Learning Rate
ก้าวของการเดินลงเขา — ใหญ่เกินไป: กระโดดข้ามหุบเขาต่ำ แล้วไปติดในหุบเขาที่ไม่ใช่ต่ำสุด (local minimum) · เล็กเกินไป: เดินช้ามาก training ใช้เวลานานเป็นล้านรอบ · ต้องปรับให้พอดี — เป็นหนึ่งในสิ่งที่ quant ต้องตั้งด้วยมือ ไม่ใช่ ML คิดให้เอง

5. Overfitting — หุบเขาเล็กกับหุบเขาใหญ่

กลับมาที่เปรียบเทียบเขา: ระหว่างทางลงเขา บางทีเจอ "หุบเขาเล็กๆ" ก่อน — ดูเหมือนลงต่ำแล้ว แต่จริงๆ ยังมีหุบเขาใหญ่กว่า (ต่ำกว่า) ข้างหน้า · นี่คือ local minimum และเป็นปัญหาของ ML ในทางปฏิบัติ

ในโลกเทรด หุบเขาเล็กที่น่ากลัวสุดคือ overfitting: ML หาหุบเขาต่ำสุดในข้อมูล ที่ฝึกมา ได้เป๊ะ แต่นั่นเป็นหุบเขาที่ถูกแกะสลักตามข้อมูลอดีต — พอลองกับข้อมูลใหม่ ภูเขามีรูปร่างต่างออกไป ก็ตกหน้าผาทันที

สัญญาณ Overfitting ที่เห็นได้ชัด:
ผล in-sample ดีมาก (accuracy 85%) → ผล out-of-sample แย่ (accuracy 52%) = ML จำข้อมูลเก่า ไม่ได้เรียนรู้กฎ · ยิ่ง feature เยอะ (คอลัมน์เยอะ) ยิ่ง overfit ง่าย โดยเฉพาะถ้าข้อมูลน้อย

6. สิ่งที่ ML ทำได้ดี และทำได้ไม่ดีในตลาด

ML ทำได้ดีML ทำได้ไม่ดี
จับแพทเทิร์นในข้อมูลเยอะๆ ที่มนุษย์มองไม่เห็นทำนายเหตุการณ์ที่ไม่เคยเกิดในข้อมูลเก่า (black swan)
ประมวลผลพร้อมกันหลายร้อยตัวแปรอธิบายว่า "ทำไม" ตัดสินใจแบบนั้น (black box)
ไม่เหนื่อย ไม่มีอารมณ์ ทำงาน 24/7รู้ตัวเองว่ากำลัง overfit หรือเปล่า (ต้องคนดูแล)
ปรับ weights ล้านตัวพร้อมกันได้รวดเร็วตลาดเปลี่ยน regime — model ที่ train ไว้อาจหมดอายุ

7. พอรู้เรื่องนี้แล้ว — อ่านโลก ML ได้ยังไง

เวลาได้ยินศัพท์ต่อไปนี้ ตอนนี้รู้แล้วว่าหมายถึงอะไรจริงๆ:

"Train the model" = ปล่อยให้ gradient descent วิ่งหาหุบเขาต่ำสุด

"Features" = คอลัมน์ใน matrix ข้อมูล (RVOL · spread · ATR etc.)

"Parameters / Weights" = ตัวเลขที่ ML ปรับระหว่าง training (w1, w2, w3...)

"Loss function" = ตัววัดความผิดพลาด — "ความสูงของเขา" ที่เราอยากลดให้น้อยสุด

"Epoch" = รอบการ train — 1 epoch = ML ดูข้อมูลทั้งหมดครบรอบหนึ่ง

"Overfitting" = model จำข้อมูลเก่าแทนที่จะเรียนรู้กฎ = ใช้กับข้อมูลใหม่ไม่ได้

8. เหตุผลที่ต้องรู้เรื่องนี้ แม้ไม่ได้เขียน ML เอง

เหตุผลที่ 1: ถ้าวันหนึ่งใช้ ML tools (มีเยอะมากที่เปิดให้ใช้ฟรี) จะไม่ตกหลุม "accuracy 95% ในข้อมูล train = ระบบเทพ" — รู้ว่าต้องดู out-of-sample ก่อนเชื่อ

เหตุผลที่ 2: เวลาอ่านงานวิจัย paper ต่างๆ หรือฟังใครอธิบาย model ของเขา จะตั้งคำถามถูกจุดได้: "ใช้ feature อะไร · train กับข้อมูลช่วงไหน · ทดสอบ out-of-sample ยังไง"

เหตุผลที่ 3: ML กับ Wyckoff ไม่ได้ขัดกัน — Wyckoff ของหลิวบอกว่า "ราคา+volume มีแพทเทิร์นที่สม่ำเสมอ" · ML คือเครื่องมือที่ช่วยหาแพทเทิร์นเหล่านั้นในข้อมูลเยอะๆ โดยไม่ต้องนั่งดูด้วยตาเอง

📌 ใจความทั้งบทในสามบรรทัด:
Vector = ข้อมูลแท่งหนึ่ง · Matrix = ข้อมูลทั้งหมด · ML หาตัวเลขที่ผิดพลาดน้อยสุด
Gradient Descent = เดินลงเขาทีละก้าว จนถึงหุบเขา = model ที่ train แล้ว
Overfitting = หุบเขาที่แกะสลักตามข้อมูลเก่า ใช้กับอนาคตไม่ได้ — วิธีป้องกัน: out-of-sample เสมอ
บทถัดไป → 3.6 · สถิติเอาตัวรอด — streak, sample size, p-hacking
บทก่อนหน้า → 3.4 · Bayesian Thinking
← สารบัญหนังสือ