Cheat sheet · ทุกบทในหน้าเดียว

Data Science รอบก่อนสอบ DS-CEDT Cheat sheet

01สอบวันอาทิตย์: โครงข้อสอบและคำใบ้ของอาจารย์

สอบ อา. 1 พ.ย. 3 ชม. 30%: Q1 EDA · Q2 Data prep (ยาวสุด) · Q3 ML · Q4 ทฤษฎี (ปรนัย) · แต่ละข้อเป็นอิสระต่อกัน
ส่งต่อข้อ 2 ไฟล์: Q_student_ans.py + Q_student_code.ipynb ส่งไม่ครบ = 0 คะแนนข้อนั้น
Q2 ต้องเชื่อมเป็น Pipeline: SimpleImputer, OneHotEncoder, StandardScaler, ColumnTransformer, Pipeline, train_test_split (อาจารย์ใบ้ว่าออกแน่)
เข้าห้องสอบ 30 นาทีก่อนเริ่ม · ห้ามมือถือ/USB · ถือ A4 ได้ 1 แผ่น 2 หน้า · เปิดได้แค่ grader กับ resource link (ต้อง Chula VPN)

อ่านบทเต็ม →

02งาน ML 3 ประเภท และการเลือกเครื่องมือ

Rule-based AI: คนเขียนกฎ · ML: เครื่องหากฎจากข้อมูล (ใช้ ML เมื่อกฎซับซ้อนจนคนคิดไม่ได้)
Supervised = มี target/label → ทำนาย (predictive) · Unsupervised = ไม่มี target → อธิบาย/เข้าใจข้อมูล เช่น clustering (descriptive) · RL = ลองทำ + reward ซ้ำจนเก่ง (optimization)
ผลลัพธ์ของ Unsupervised คือ insight/knowledge ไม่ใช่ความแม่นยำ
Supervised/Unsupervised เรียนจากตาราง/ชุดข้อมูล · RL เรียนจากการจำลองหรือทดลองทำจริง

อ่านบทเต็ม →

03K-means clustering และ Silhouette score

K-means: สุ่ม centroid k จุด → จัดสมาชิกเข้า centroid ที่ใกล้สุด → อัปเดต centroid = ค่าเฉลี่ยของสมาชิก → ทำซ้ำจน converge (สมาชิกไม่เปลี่ยน) หรือครบ max iter
ตัวแปรต้องเป็นตัวเลข + อยู่ช่วงเดียวกัน → One-hot + StandardScaler ก่อน (เพราะใช้ distance)
k ผู้ใช้กำหนดเอง (ไม่มีกฎตายตัว) · sklearn: KMeans(n_clusters=8, max_iter=300) · fit ใส่เฉพาะ X · .predict(X_new), .labels_, .cluster_centers_
Silhouette \\( s=\\frac{b-a}{\\max(a,b)} \\) · a = intra (ระยะเฉลี่ยในกลุ่มตัวเอง) ต่ำดี · b = inter (ระยะเฉลี่ยถึงกลุ่มใกล้สุด) สูงดี · ยิ่งใกล้ 1 ยิ่งดี
silhouette_score สูงสุด ≠ ต้องเลือก k นั้น เป็นแค่ guideline · เลือก k ที่อธิบายและใช้ประโยชน์ได้

อ่านบทเต็ม →

04Deep Learning คืออะไร และ Embedding vector

ML ทั่วไป (sklearn) ทำงานกับตาราง · DL เหมาะกับข้อมูลที่ไม่ใช่ตาราง (ภาพ เสียง ข้อความ) เพราะสกัด feature + สร้างโมเดลไปพร้อมกัน
Back-propagation ทำให้ \"นิยามโครงสร้างอะไรก็ได้ แล้วให้เครื่องหา weight เอง\" · โจทย์ยังเป็น 3 ประเภทเดิม (supervised / unsupervised / RL)
Embedding vector = เวกเตอร์ตัวแทนข้อมูลที่โมเดลสกัดเอง (ไม่รู้ความหมายแต่ละมิติ) · ออกมาจาก DL ทุกตัวเสมอ · ตาราง 1 แถว = เวกเตอร์ที่คนกำหนด · DL = เวกเตอร์ที่เครื่องสกัด
ทำไม DL เกิดตอนนี้: ข้อมูลไม่ใช่ตารางเยอะขึ้น (มือถือ) + GPU + เทคนิค/โมเดลลึกขึ้น

อ่านบทเต็ม →

05CNN: Convolution, Pooling, Fully-connected

CNN = Conv (+ReLU) สกัดฟีเจอร์ → Pooling ลดขนาด → Flatten = embedding vector → Fully-connected (= Neural Network)
Conv: dot & sum ด้วย kernel/filter · ค่าใน kernel ได้จาก back-propagation (ไม่ใช่คนออกแบบ) · 4 พารามิเตอร์: filter size, #filters, stride, padding
Output size \\( = \\frac{N+2P-F}{S}+1 \\) · 1 filter → 1 feature map · k filters → k feature maps
Pooling (max): ลดขนาด เลือกค่าเด่นสุดในแต่ละช่อง · พารามิเตอร์: filter size, stride (ไม่มีค่าให้เรียนรู้)
Output layer: 2 คลาส → sigmoid (BCE loss) · หลายคลาสแยกกัน → softmax (CCE loss, ผลรวม prob = 1) · loss ถูกส่งกลับ (backprop) อัปเดตทั้ง FC และ kernel
BCE y=1, p=0.9 → \\( -\\ln 0.9 = 0.105 \\) · Softmax ของ [2,1,0] = [0.665, 0.245, 0.090]

อ่านบทเต็ม →

06Pretrained model และ Fine-tuning

Pretrained model = โมเดลที่เทรนมาก่อนแล้วกับข้อมูลมหาศาล (เช่น ImageNet 14M รูป) → ได้ weight = ความรู้ตั้งต้น · ผลของการเทรน = weight
Fine-tune = pretrained weight + เทรนเพิ่มกับงานใหม่ → ใช้ข้อมูลน้อย/เวลาน้อยกว่าเทรนจากศูนย์ (from scratch = สุ่ม weight)
จำนวนคลาส output ต่างจากเดิม → ต้องต่อ head (output layer) ใหม่ · ท่า 1 freeze feature extractor เทรนแค่ head (เบา เร็ว ไม่ต้อง backprop ทั้งโมเดล) · ท่า 2 fine-tune ทั้งหมด (ข้อมูลต่างจากเดิมมาก)
Zero-shot: โมเดลใหญ่มาก (VLM/foundation) เรียก API โยนรูปถามได้เลย ไม่ต้องเทรน
โมเดลใหญ่มาก (DINOv3 7B param, 1.7B รูป) ไม่มีใคร fine-tune → freeze ใช้เป็น feature extractor + ต่อ head เล็ก ๆ
เครื่องมือ: โหลดโมเดลจากชื่อ (torchvision / Hugging Face) · framework หลักตอนนี้คือ PyTorch (TensorFlow ลดความนิยมแล้ว)

อ่านบทเต็ม →

07ตระกูล DL และงานภาพ: classify, detect, segment

3 ตระกูล DL: CNN → ภาพ · RNN/LSTM → ข้อมูลเรียงลำดับ (time series, เสียง, text เก่า) · Transformer (2017) → ทำได้ทุกงาน ใช้ใน LLM · ทุกตระกูลให้ embedding vector
Transformer = Encoder + Decoder · Encoder-only (BERT, Google 2018) · Decoder-only/generative (GPT, OpenAI) · Transformer ใหญ่กว่า CNN มาก
Image classification: ResNet (ง่าย/เล็ก) · EfficientNet (เก่งสุด ใหญ่กว่า) · MobileNet (เบา ใช้บนมือถือ) · ViT = Vision Transformer
Object detection: output = กรอบ (x, y, w, h) + class · YOLO (You Only Look Once, one-stage, real-time, เป็น CNN เล็ก ติดบนกล้อง/ชิปได้) · DETR/RT-DETR = ตระกูล Transformer (ใหญ่กว่า)
Semantic segmentation = จัดกลุ่มทุกพิกเซล ไฮไลต์เป็น region (ไม่ใช่กรอบ) · U-Net = encoder-decoder (+ skip connection) · YOLO-seg ก็ได้ · SAM = foundation model
YOLO pretrain ด้วย COCO (80 คลาส) → ถ้าโจทย์ต่างจาก COCO ต้อง fine-tune ลึกถึง backbone ไม่ใช่แค่ head

อ่านบทเต็ม →

08LLM และ Prompt Engineering

Predictive AI: input → prediction (classify, regression, detect) เป็น discriminative · Generative AI: prompt → เนื้อหาใหม่ (text, code, image) · generative ต้องใหญ่กว่ามาก
Language model (LM) = ทำนายคำถัดไป เทรนจากข้อความมหาศาลโดย ไม่ต้องมี label (ข้อความเองคือเฉลย)
LLM = LM ขนาดใหญ่ + (post-training) RL ด้วย reward model + safety policy → ChatGPT (GPT-3 = 175B) · LLM ยุคใหม่ไม่ได้ดูแค่จำนวนพารามิเตอร์: pretrain + architecture + post-training + reasoning + tools
System prompt = กำหนดบทบาท/พฤติกรรมพื้นฐาน · User prompt = คำถาม/คำสั่งของผู้ใช้
ICIO: Instruction · Context · Input data · Output indicator/specification
Zero-shot (ไม่ให้ตัวอย่าง) vs Few-shot (ให้ตัวอย่างใน prompt) · Structured output (JSON) ใช้กับ API/pipeline/agent · แตกงานยากเป็นขั้น (decomposition) · CoT, self-consistency (ถามหลายรอบ), ReAct

อ่านบทเต็ม →

09RAG และ Fine-tuning เทียบกับ RAG

Hallucination: LLM ตอบจากความจำ ไม่มีข้อมูลที่ไม่เคยเห็น (ข้อมูลภายในองค์กร/ใหม่) → prompt ดีแค่ไหนก็ไม่ช่วย
RAG = ค้นเอกสารที่น่าเชื่อถือก่อน แล้วใส่เป็น context ให้ LLM ตอบ (Augment → Generate) · RAG เปลี่ยน context ตอน inference ไม่ได้เปลี่ยน weight
Offline: Parse → Chunk → Embed → Vector DB · Online: Question → embed → vector search (cosine) top-k → (rerank) → LLM + context → Answer
Chunk เล็กเกิน = ขาด context · ใหญ่เกิน = noisy · Dense (vector) เข้าใจความหมาย · Sparse (BM25) เจอคำ/ชื่อ/รหัสเป๊ะ → Hybrid ใช้ทั้งสอง · Retrieve กว้าง (top 50) → Rerank แม่น (top 5)
cos(q,d) = (q·d)/(‖q‖‖d‖)
Fine-tune = ปรับ พฤติกรรม/สไตล์ (แพง เทรนใหม่เมื่อข้อมูลเปลี่ยน, ใช้งานเร็ว) · RAG = เพิ่ม ความรู้ (ถูก อัปเดตแค่ข้อมูล, ช้ากว่า) · ใช้ร่วมกันได้ · นิยมลอง prompt/RAG ก่อน
เลือกโมเดลต้องดูว่า pretrain มากับโดเมนอะไร (MedGemma = ปรับจาก Gemma ด้วยข้อมูลแพทย์, WeatherNext = pretrain ข้อมูลอากาศ)

อ่านบทเต็ม →

10Tool use, Agent, MCP และชุดทวนรวม

RAG ช่วย LLM รู้ · Tool ให้ LLM ทำ (Python, SQL, web search, API, email) · Agent = Model + Instructions + Tools + Memory/State + Loop (Goal → Decide → Act → Observe → Decide again)
ยุค Agentic AI: จาก \"ถามแล้วตอบ\" เป็น \"สั่งแล้วทำจนบรรลุเป้า\" (ให้ goal) · ข้างหลังคือการเขียนโค้ด/เรียก tool
ReAct = Reason + Act: เหตุผล → action → observation วน
Workflow = ทางที่กำหนดไว้ล่วงหน้า (A→B→C→D) คาดเดาง่าย ทดสอบง่าย autonomy ต่ำ · Agent = ทางไดนามิก ยืดหยุ่น ทดสอบยาก autonomy สูง · ถ้ารู้ขั้นตอนแน่นอน (CSV → รวม → รายงาน → อีเมล) ใช้ workflow ไม่ต้องใช้ agent
Multi-agent ไม่ได้ดีกว่าเสมอ (เพิ่ม cost, latency)
MCP (Model Context Protocol) = มาตรฐานเชื่อม AI กับ tool/ข้อมูล: AI Host/Client ↔ MCP Server ↔ Tools/Resources แทนการเขียน connector เองทีละตัว
Framework: LangChain (ต่อ LLM+ข้อมูล), LangGraph (ต่อ agent เป็นกราฟ), LangSmith (ดู trace / evaluate)

อ่านบทเต็ม →