MinAI - Về trang chủ
Lý thuyết
3/153-4 giờ
Đang tải...

Tuần 1: Giới thiệu Machine Learning

Tổng quan về ML, các loại học máy, và workflow chuẩn

0

🎯 Mục tiêu bài học

TB5 min

Sau bài này, bạn sẽ:

Hiểu chính xác Machine Learning là gì và phân biệt với AI, Deep Learning

Nắm vững sự khác biệt giữa ML và lập trình truyền thống (có công thức)

Phân biệt 3 loại ML: Supervised, Unsupervised, Reinforcement Learning

Thực hành case study dự đoán giá nhà từ đầu đến cuối (step-by-step)

Hiểu rõ workflow 9 bước chuẩn của một ML project

Thời gian: 45-60 phút | Độ khó: Beginner

1

📖 Bảng Thuật Ngữ Quan Trọng

TB5 min
Thuật ngữTiếng ViệtGiải thích đơn giản
Machine LearningHọc máyMáy tính học từ dữ liệu mà không lập trình tường minh
Artificial IntelligenceTrí tuệ nhân tạoPhạm vi rộng nhất, bao gồm ML
Deep LearningHọc sâuML sử dụng mạng neural nhiều lớp
FeatureĐặc trưngThuộc tính/biến số đầu vào
LabelNhãnKết quả/đầu ra cần dự đoán
TrainingHuấn luyệnQuá trình học từ dữ liệu
ModelMô hìnhHàm đã học để dự đoán
OverfittingQuá khớpModel học quá chi tiết, kém generalize

Checkpoint

Bạn đã đọc qua bảng thuật ngữ? Hãy ghi nhớ các khái niệm này!

2

🧠 Machine Learning là gì?

TB5 min

1.1 Phân biệt AI - Machine Learning - Deep Learning

Artificial Intelligence (AI)Search engines, Expert systems, Robotics, NLP...Machine Learning (ML)Regression, SVM, Decision Tree, Random Forest...Deep Learning (DL)CNN, RNN, Transformer, ResNet...Generative AIGPT, DALL·E, Stable Diffusion, Gemini...🤖🧠💡📝🎨AI ⊃ Machine Learning ⊃ Deep Learning ⊃ Generative AI
Khái niệmĐịnh nghĩaVí dụ
AI (Trí tuệ nhân tạo)Máy tính mô phỏng trí thông minh con ngườiChatbot, game AI, xe tự lái
ML (Học máy)Máy tính học từ dữ liệu mà không lập trình tường minhDự đoán giá nhà, spam filter
DL (Học sâu)ML dùng mạng neural nhiều lớp (deep networks)Nhận diện khuôn mặt, ChatGPT

1.2 Định nghĩa chính xác Machine Learning

Machine Learning (Học máy) là một nhánh của AI cho phép máy tính tự động cải thiện hiệu suất trên một tác vụ thông qua kinh nghiệm (dữ liệu), mà không cần lập trình tường minh từng trường hợp cụ thể.

"A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E."
— Tom Mitchell

1.3 So sánh với lập trình truyền thống

Công thức:

Lập trình truyền thống: Data+Rules (Code)Output\text{Data} + \text{Rules (Code)} \rightarrow \text{Output}

Machine Learning: Data+OutputRules (Model)\text{Data} + \text{Output} \rightarrow \text{Rules (Model)}

Khía cạnhLập trình truyền thốngMachine Learning
InputDữ liệu + Quy tắc cố định (code)Dữ liệu + Kết quả mong muốn (labels)
OutputKết quảQuy tắc/Model (f(X)f(X))
UpdateThủ công sửa codeTự động re-train với data mới
Độ phức tạpGiới hạn bởi if-else rulesHọc được pattern phi tuyến phức tạp
Ví dụif "free" in email: spamModel học từ 10,000 emails

🏠 Case Study: Dự đoán Giá Nhà (Step-by-Step)

Bài toán thực tế: Bạn là Data Scientist tại công ty bất động sản. Nhiệm vụ: xây dựng hệ thống dự đoán giá nhà tự động.

Bước 1: Hiểu vấn đề

Input (Features - X):

  • Diện tích (m²)
  • Số phòng ngủ
  • Tuổi nhà
  • Khoảng cách đến trung tâm (km)

Output (Label - y):

  • Giá nhà (triệu VND)

Mục tiêu: Tìm hàm ff sao cho: Giaˊ nhaˋ=f(Diện tıˊch, Soˆˊ phoˋng, Tuổi nhaˋ, Khoảng caˊch)\text{Giá nhà} = f(\text{Diện tích, Số phòng, Tuổi nhà, Khoảng cách})

Bước 2: Thu thập dữ liệu

IDDiện tích (m²)Số phòngTuổi (năm)Khoảng cách (km)Giá (triệu)
1502510500
260238600
37031015550
480325750
5100413900
..................

→ Tổng: 1000 ngôi nhà (dữ liệu training)

Checkpoint

Bạn đã hiểu sự khác biệt giữa ML và lập trình truyền thống chưa?

3

📊 Các loại Machine Learning

TB5 min

Machine Learning Types

Machine Learning
Supervised Learning
Regression
Classification
Unsupervised Learning
Clustering
Dimensionality Reduction
Reinforcement Learning
Agent-Environment Interaction

2.1 Supervised Learning (Học có giám sát)

💡 Dữ liệu có nhãn (label) - biết trước kết quả đúng.

Công thức tổng quát:

y=f(X)+ϵy = f(X) + \epsilon

Trong đó:

  • XX: Features (đặc trưng đầu vào)
  • yy: Labels (nhãn/kết quả)
  • ff: Hàm mà model cần học
  • ϵ\epsilon: Nhiễu

Ví dụ:

  • Regression: Dự đoán giá nhà (giá là số liên tục)
  • Classification: Phân loại email spam/không spam

2.2 Unsupervised Learning (Học không giám sát)

Dữ liệu không có nhãn - model tự tìm pattern/cấu trúc.

Ví dụ:

  • Clustering: Phân nhóm khách hàng
  • Dimensionality Reduction: Giảm số features (PCA, t-SNE)

2.3 Reinforcement Learning (Học tăng cường)

Model học thông qua thử và sai, nhận reward/penalty.

Ví dụ: AlphaGo, xe tự lái, game AI

2.4 Bảng tóm tắt các loại ML

LoạiInputOutputVí dụ
Supervised - RegressionX, y (liên tục)Model dự đoán giá trịGiá nhà, doanh thu
Supervised - ClassificationX, y (rời rạc)Model phân loạiSpam detection, bệnh
Unsupervised - ClusteringX (không nhãn)Nhóm tương tựCustomer segmentation
Unsupervised - Dim. ReductionX (nhiều chiều)X (ít chiều)PCA, t-SNE
ReinforcementState, ActionPolicy tối ưuGame AI, Robotics

Checkpoint

Bạn có thể phân biệt được Supervised, Unsupervised và Reinforcement Learning chưa?

4

🔄 Workflow chuẩn của ML Project

TB5 min

ML Pipeline - End to End

1. Data Collection
2. EDA & Visualization
3. Data Preprocessing
4. Feature Engineering
5. Train/Test Split
6. Model Selection & Training
7. Evaluation
8. Hyperparameter Tuning
9. Deployment

3.1 ML Pipeline Chi tiết

BướcTênMô tảCông cụ
1Data CollectionThu thập từ DB, API, FilesSQL, API, Pandas
2EDAKhám phá, visualizePandas, Matplotlib, Seaborn
3PreprocessingMissing values, Outliers, ScalingPandas, Scikit-learn
4Feature EngineeringTạo features mớiDomain knowledge
5Train/Test SplitChia data 70-30 hoặc 80-20train_test_split
6Model SelectionChọn model phù hợpScikit-learn
7TrainingFit model với training datamodel.fit()
8EvaluationĐánh giá trên test dataMetrics (Accuracy, RMSE)
9TuningGridSearchCV, tuningHyperparameter tuning
10DeploymentĐưa vào productionFlask, FastAPI, Docker
5

📐 Các khái niệm quan trọng

TB5 min

4.1 Features và Labels

X=[x1(1)x2(1)xn(1)x1(2)x2(2)xn(2)x1(m)x2(m)xn(m)],y=[y(1)y(2)y(m)]X = \begin{bmatrix} x_1^{(1)} & x_2^{(1)} & \cdots & x_n^{(1)} \\ x_1^{(2)} & x_2^{(2)} & \cdots & x_n^{(2)} \\ \vdots & \vdots & \ddots & \vdots \\ x_1^{(m)} & x_2^{(m)} & \cdots & x_n^{(m)} \end{bmatrix}, \quad y = \begin{bmatrix} y^{(1)} \\ y^{(2)} \\ \vdots \\ y^{(m)} \end{bmatrix}

  • m: Số samples (observations)
  • n: Số features

4.2 Training vs Testing

Training SetTest Set
Mục đíchHuấn luyện modelĐánh giá model
Tỷ lệ70-80%20-30%
Model thấyCó (khi train)Không (khi train)
Python
1from sklearn.model_selection import train_test_split
2
3# Chia data
4X_train, X_test, y_train, y_test = train_test_split(
5 X, y, test_size=0.2, random_state=42
6)

4.3 Overfitting vs Underfitting

Total Error=Bias2+Variance+Irreducible Error\text{Total Error} = \text{Bias}^2 + \text{Variance} + \text{Irreducible Error}

Trạng tháiTrain ErrorTest ErrorVấn đề
UnderfittingCaoCaoModel quá đơn giản (High Bias)
Good FitThấpThấpLý tưởng ✅
OverfittingRất thấpCaoModel quá phức tạp (High Variance)

Checkpoint

Bạn đã hiểu về Overfitting, Underfitting và train/test split chưa?

6

💻 Thực hành: Thiết lập môi trường

TB5 min

5.1 Cài đặt thư viện

Mô tả: Cài đặt các thư viện Python cần thiết cho Machine Learning.

Bash
1# Cài đặt các thư viện cần thiết
2pip install numpy pandas scikit-learn matplotlib seaborn

Giải thích:

  • numpy: Thư viện tính toán số học, xử lý ma trận và arrays
  • pandas: Xử lý và phân tích dữ liệu dạng bảng (DataFrame)
  • scikit-learn: Thư viện ML chính, chứa các thuật toán chuẩn
  • matplotlib: Trực quan hóa dữ liệu (vẽ biểu đồ)
  • seaborn: Trực quan hóa đẹp hơn, dựa trên matplotlib

Import các thư viện:

Python
1# Import thư viện
2import numpy as np
3import pandas as pd
4from sklearn.model_selection import train_test_split
5from sklearn.linear_model import LinearRegression
6import matplotlib.pyplot as plt
7import seaborn as sns

Giải thích import:

  • numpy as np: Alias np để gọi ngắn gọn (np.array() thay vì numpy.array())
  • train_test_split: Hàm chia data thành training và test set
  • LinearRegression: Class chứa thuật toán Linear Regression
  • plt: Alias cho matplotlib.pyplot để vẽ biểu đồ

Bước 3: Train model (Linear Regression)

Công thức Linear Regression:y^=β0+β1x1+β2x2+β3x3+β4x4\hat{y} = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \beta_3 x_3 + \beta_4 x_4

Trong đó:

  • y^\hat{y}: Giá dự đoán
  • x1,x2,x3,x4x_1, x_2, x_3, x_4: Diện tích, Số phòng, Tuổi, Khoảng cách
  • β0,β1,...,β4\beta_0, \beta_1, ..., \beta_4: Hệ số mà model cần học

Bước 4: Code Python hoàn chỉnh

Mô tả: Xây dựng mô hình Linear Regression để dự đoán giá nhà California. Code bao gồm 6 bước: Import → Load data → Split → Train → Predict → Evaluate → Visualize.

Python
1# Bước 4.1: Import libraries
2import numpy as np
3import pandas as pd
4from sklearn.datasets import fetch_california_housing
5from sklearn.model_selection import train_test_split
6from sklearn.linear_model import LinearRegression
7from sklearn.metrics import mean_squared_error, r2_score
8import numpy as np
9
10# 1. Load data
11housing = fetch_california_housing()
12X, y = housing.data, housing.target
13
14# Xem thông tin
15print(f"Số samples: {X.shape[0]}")
16print(f"Số features: {X.shape[1]}")
17print(f"Feature names: {housing.feature_names}")
18
19# 2. Train/Test split
20X_train, X_test, y_train, y_test = train_test_split(
21 X, y, test_size=0.2, random_state=42
22)
23
24print(f"Training set: {X_train.shape}")
25print(f"Test set: {X_test.shape}")
26
27# 3. Train model
28model = LinearRegression()
29model.fit(X_train, y_train)
30
31# 4. Predict
32y_pred = model.predict(X_test)
33
34# 5. Evaluate
35mse = mean_squared_error(y_test, y_pred)
36rmse = np.sqrt(mse)
37r2 = r2_score(y_test, y_pred)
38
39print(f"\n📊 Model Performance:")
40print(f"MSE: {mse:.4f}")
41print(f"RMSE: {rmse:.4f}")
42print(f"R² Score: {r2:.4f}")
43
44# 6. Visualize predictions
45import matplotlib.pyplot as plt
46
47plt.figure(figsize=(10, 6))
48plt.scatter(y_test, y_pred, alpha=0.5)
49plt.plot([y_test.min(), y_test.max()],
50 [y_test.min(), y_test.max()],
51 'r--', lw=2)
52plt.xlabel('Actual Price')
53plt.ylabel('Predicted Price')
54plt.title('Actual vs Predicted House Prices')
55plt.grid(alpha=0.3)
56plt.show()

Giải thích chi tiết từng bước:

Bước 1: Load data

Python
1housing = fetch_california_housing() # Tải dataset California housing
2X, y = housing.data, housing.target # Tách features (X) và labels (y)
  • X: Ma trận 20,640 x 8 (20,640 ngôi nhà, 8 features)
  • y: Vector 20,640 giá trị (giá nhà từng ngôi)
  • shape[0]: Số rows (samples), shape[1]: Số columns (features)

Bước 2: Train/Test split

Python
1train_test_split(X, y, test_size=0.2, random_state=42)
  • test_size=0.2: 20% data cho test, 80% cho training
  • random_state=42: Seed để kết quả tái tạo được (reproducible)
  • Output: X_train, X_test, y_train, y_test (4 arrays)

Bước 3: Train model

Python
1model = LinearRegression() # Khởi tạo model
2model.fit(X_train, y_train) # Học từ training data
  • fit(): Model tự tìm hệ số β\beta tối ưu
  • Sau fit(), model đã học xong và sẵn sàng dự đoán

Bước 4: Predict

Python
1y_pred = model.predict(X_test) # Dự đoán trên test set
  • Input: X_test (data chưa thấy)
  • Output: y_pred (giá dự đoán)

Bước 5: Evaluate

Python
1mse = mean_squared_error(y_test, y_pred) # Trung bình bình phương sai số
2rmse = np.sqrt(mse) #Can bậc 2 của MSE
3r2 = r2_score(y_test, y_pred) # Hệ số xác định
  • MSE: Sai số bình phương trung bình (nhỏ hơn = tốt hơn)
  • RMSE: Sai số trung bình cùng đơn vị với y (dễ hiểu hơn MSE)
  • : % variance giải thích được (0-1, gần 1 = tốt)

Bước 6: Visualize

Python
1plt.scatter(y_test, y_pred) # Vẽ scatter plot: actual vs predicted
2plt.plot([min, max], [min, max], 'r--') # Đường chéo (ideal line)
  • Nếu điểm nằm gần đường chéo → Dự đoán tốt
  • Nếu điểm phân tán xa → Dự đoán kém

Output mẫu:

Ví dụ
1Số samples: 20640
2Số features: 8
3Feature names: ['MedInc', 'HouseAge', 'AveRooms', ...]
4
5Training set: (16512, 8)
6Test set: (4128, 8)
7
8📊 Model Performance:
9MSE: 0.5558
10RMSE: 0.7455 ← Sai số trung bình ±74,550 USD
11R² Score: 0.5757 ← Model giải thích 57.57% variance

Bước 5: Giải thích kết quả

✅ Model đã học được gì?

  • Với R² = 0.5757 → Model giải thích được 57.57% sự thay đổi giá nhà
  • RMSE = 0.7455 → Sai số trung bình khoảng ±$74,550
  • Model đã tìm ra được mối quan hệ giữa 8 features với giá nhà 📈 Có thể cải thiện:- Thu thập thêm dữ liệu (hiện có 20,640 samples)
  • Thêm features mới (ví dụ: số tầng, có sân vườn không)
  • Thử models phức tạp hơn (Random Forest, XGBoost)
  • Feature Engineering (tạo feature mới từ features cũ) 💡 Bài học:
  • ML không phải "ma thuật" - chỉ là tìm pattern từ dữ liệu
  • Model tốt hay không phụ thuộc vào: Chất lượng data > Algorithm
  • Cần đánh giá model trên test set (không phải training set)

📊 Tóm tắt: Flow ML Project (9 bước)

ML Workflow - Complete Pipeline

1. Problem Definition
2. Data Collection
3. EDA & Visualization
4. Data Preprocessing
5. Train/Test Split
6. Model Training
7. Evaluation
8. Hyperparameter Tuning
9. Deployment

Chi tiết từng bước:

BướcTênCâu hỏi cần trả lờiCông cụ
1Problem DefinitionBài toán gì? Supervised/Unsupervised? Regression/Classification?Domain knowledge
2Data CollectionData ở đâu? Đủ không? Chất lượng thế nào?SQL, API, CSV
3EDAData có missing values? Outliers? Distribution?Pandas, Matplotlib
4PreprocessingLàm sạch data, scaling, encoding categoricalScikit-learn
5Train/Test SplitChia 80-20 hoặc 70-30train_test_split()
6Model TrainingChọn algorithm nào? Linear Regression? Decision Tree?Scikit-learn
7EvaluationModel tốt không? MSE? R²? Accuracy?Metrics
8Hyperparameter TuningCó thể cải thiện không?GridSearchCV
9DeploymentĐưa model lên productionFlask, FastAPI

Checkpoint

Bạn đã chạy thử code dự đoán giá nhà chưa?

7

⚖️ Ưu và nhược điểm của ML

TB5 min
✅ Ưu điểm❌ Nhược điểm
Tự động học từ dữ liệuCần nhiều dữ liệu chất lượng
Phát hiện pattern phức tạpKhó giải thích (black box)
Tự cải thiện theo thời gianCần nhiều tính toán (GPU)
Xử lý được bài toán phi tuyếnDễ bị overfitting
Không cần lập trình rules cụ thểPhụ thuộc vào chất lượng data

Tóm tắt: ML mạnh ở khả năng tự học pattern phức tạp, nhưng cần dữ liệu tốt và phải cẩn thận với overfitting.

Checkpoint

Bạn đã hiểu ưu nhược điểm của ML? Khi nào nên và không nên dùng ML?

8

🎯 Quiz: Kiểm tra hiểu biết

TB5 min

Câu 1: Sự khác biệt chính giữa ML và lập trình truyền thống là gì?

Xem đáp án

Đáp án:

  • Lập trình truyền thống: Data + Rules → Output
  • Machine Learning: Data + Output → Rules (Model học từ data)

Câu 2: Bài toán "Phân nhóm khách hàng theo hành vi mua sắm" thuộc loại ML nào?

Xem đáp án

Đáp án: Unsupervised Learning - Clustering
Vì không có nhãn sẵn, model tự tìm nhóm khách hàng tương tự.

Câu 3: Trong case study dự đoán giá nhà, R² = 0.5757 có nghĩa là gì?

Xem đáp án

Đáp án: Model giải thích được 57.57% sự thay đổi của giá nhà.
Còn 42.43% do các yếu tố khác (features chưa có, noise).

Câu 4: Tại sao phải chia Train/Test set?

Xem đáp án

Đáp án: Để đánh giá model trên data chưa thấy (test set), tránh overfitting.
Nếu đánh giá trên training set → kết quả quá lạc quan, không đáng tin.

Câu 5: Trong 9 bước ML workflow, bước nào QUAN TRỌNG NHẤT?

Xem đáp án

Đáp án: Bước 1-2: Hiểu vấn đề & Thu thập data
Nếu data kém chất lượng hoặc không đủ → Model tốt đến đâu cũng thất bại.
"Garbage in, garbage out"

9

📝 Bài tập thực hành

TB5 min

Bài tập 1: Phân loại bài toán (5 phút)

Phân loại các bài toán sau là Supervised (Regression/Classification) hay Unsupervised:

Bài toánLoại MLLý do
Dự đoán doanh thu tháng sauSupervised - RegressionCó label (doanh thu), output liên tục
Gợi ý sản phẩm cho khách hàngUnsupervised - Clustering hoặc SupervisedTùy approach
Nhận diện khuôn mặtSupervised - ClassificationCó label (tên người), phân loại
Phát hiện bất thường trong giao dịchUnsupervised - Anomaly DetectionKhông có label "bất thường"
Dự đoán khách hàng rời bỏ (churn)Supervised - ClassificationCó label (churn/not churn)

Bài tập 2: Code thực hành (20 phút)

Yêu cầu: Chạy lại code dự đoán giá nhà California và trả lời:

  1. Model predict giá nhà có diện tích trung bình 6.0 rooms là bao nhiêu?
  2. Feature nào có hệ số (coefficient) lớn nhất?
  3. Nếu tăng test_size từ 0.2 lên 0.3, R² thay đổi thế nào?

Bài tập 3: Tìm hiểu (10 phút)

Tìm hiểu thêm về Reinforcement Learning và cho 2 ví dụ thực tế:

  • Gợi ý: AlphaGo, xe tự lái, game AI, robot
  • Hiểu khái niệm: Agent, Environment, Reward, Policy

Bài tập 4: Case study thực tế (Nâng cao)

Tình huống: Bạn làm Data Scientist cho ngân hàng. Nhiệm vụ: dự đoán khách hàng có vay nợ không trả (default loan).

Câu hỏi:

  1. Đây là bài toán gì? (Regression/Classification/Clustering)
  2. Features nào bạn cần? (ít nhất 5 features)
  3. Metric nào quan trọng nhất? (Accuracy? Precision? Recall? F1?)
  4. Nếu model dự đoán sai → Hậu quả gì cho ngân hàng?
Gợi ý đáp án
  1. Classification (binary: default/not default)
  2. Features: Thu nhập, Lịch sử tín dụng, Số nợ hiện tại, Tuổi, Nghề nghiệp, Số tiền vay, Thời gian vay...
  3. Recall quan trọng nhất! (Không muốn bỏ sót khách hàng có nguy cơ default)
  4. False Negative (dự đoán "OK" nhưng thực tế default) → Mất tiền

Checkpoint

Bạn đã hoàn thành các bài tập thực hành chưa?

10

� Tổng Kết

TB5 min

Key Takeaways:

  • 🧠 ML = máy tính học từ dữ liệu, khác với lập trình truyền thống
  • 📊 3 loại ML: Supervised (có nhãn), Unsupervised (không nhãn), Reinforcement (reward)
  • 🔄 ML Workflow: 9 bước chuẩn từ hiểu vấn đề đến triển khai
  • 💻 Thực hành: Đã xây dựng model dự đoán giá nhà với Scikit-learn

Tài liệu tham khảo

NguồnLink
Scikit-learn User Guidescikit-learn.org
Google ML Crash Coursedevelopers.google.com
Kaggle Learn - Intro to MLkaggle.com/learn

Câu hỏi tự kiểm tra

  1. Machine Learning khác với lập trình truyền thống như thế nào? Hãy giải thích bằng công thức.
  2. Phân biệt Supervised Learning, Unsupervised Learning và Reinforcement Learning — cho ví dụ mỗi loại.
  3. Workflow chuẩn của một ML project gồm bao nhiêu bước? Bước nào quan trọng nhất và tại sao?
  4. Trong case study dự đoán giá nhà, Feature và Label tương ứng là gì?

🎉 Tuyệt vời! Bạn đã hoàn thành bài học Giới thiệu Machine Learning!

Tiếp theo: Cùng tìm hiểu Nền tảng Toán học cho ML — kiến thức nền tảng quan trọng!

Checkpoint

Bạn đã sẵn sàng sang bài tiếp theo — Nền tảng Toán học cho ML?