Series: Machine Learning Fundamentals – Bài 31
Ở các bài viết trước, chúng ta đã đi qua bức tranh toàn cảnh về Machine Learning truyền thống: từ Học có giám sát (Supervised Learning – Logistic Regression, Decision Tree, Random Forest, Boosting, SVM, KNN) đến Học không giám sát (Unsupervised Learning – K-Means, DBSCAN, PCA).
Bước sang Bài 31, chúng ta sẽ đặt chân vào cây cầu nối giữa Machine Learning cổ điển và Học sâu (Deep Learning). Nền tảng cốt lõi của toàn bộ kỷ nguyên AI hiện đại (từ nhận diện hình ảnh, xử lý ngôn ngữ tự nhiên đến LLMs) chính là Neural Network (Mạng nơ-ron nhân tạo).
Neural Network là gì?
Neural Network (viết tắt là ANN – Artificial Neural Network) là mô hình tính toán lấy cảm hứng từ cấu trúc và cơ chế hoạt động của hệ thần kinh sinh học trong não bộ con người.
Sinh học (Biological) Nhân tạo (Artificial)
Tế bào Nơ-ron (Neuron) ───> Nút / Node (Perceptron)
Sợi nhánh (Dendrite) ───> Đầu vào (Input Features)
Tín hiệu điện (Synapse) ───> Trọng số (Weights)
Ngưỡng kích hoạt ───> Hàm kích hoạt (Activation Function)
Tài liệu chính thức mô tả Neural Network bao gồm các nút tính toán (Neurons) liên kết chặt chẽ với nhau theo các tầng (Layers) để học các hàm phi tuyến tính phức tạp từ dữ liệu. Xem thêm tại TensorFlow Neural Networks Guide.
Cấu trúc của Neural Network
Một mạng nơ-ron cơ bản (Multilayer Perceptron – MLP) bao gồm 3 loại tầng (Layers) chính:
[Input Layer] ──> [Hidden Layer(s)] ──> [Output Layer]
(Dữ liệu đầu vào) (Học đặc trưng ẩn) (Kết quả dự đoán)
-
Input Layer (Tầng đầu vào): Tiếp nhận các đặc trưng (Features) từ tập dữ liệu. Số lượng node ở tầng này đúng bằng số lượng Feature đầu vào.
-
Hidden Layer (Tầng ẩn): Nằm giữa tầng đầu vào và đầu ra. Đây là nơi diễn ra các phép tính toán biến đổi phi tuyến tính để trích xuất đặc trưng sâu. Một mạng có thể có từ $1$ đến hàng trăm tầng ẩn (Deep Neural Network).
-
Output Layer (Tầng đầu ra): Đưa ra kết quả dự đoán cuối cùng (giá trị liên tục cho bài toán Regression hoặc xác suất cho bài toán Classification).
Nơ-ron nhân tạo (Perceptron) hoạt động như thế nào?
Mỗi nơ-ron nhân tạo tiếp nhận nhiều đầu vào $x_1, x_2, …, x_n$ và thực hiện 2 phép tính liên tiếp:
1. Tổng có trọng số (Weighted Sum)
-
$w_i$: Trọng số (Weight) thể hiện mức độ quan trọng của từng đầu vào.
-
$b$: Độ lệch (Bias) giúp dịch chuyển đường quyết định.
2. Kích hoạt (Activation)
Giá trị $z$ được đưa qua một Activation Function (Hàm kích hoạt) $f(z)$ để tạo ra tính phi tuyến tính cho mô hình.
Vai trò của Activation Function (Hàm kích hoạt)
Nếu không có hàm kích hoạt, một Neural Network dù có hàng trăm tầng ẩn cũng chỉ tương đương với một phép biến đổi tuyến tính đơn giản (như Linear/Logistic Regression).
Các hàm kích hoạt phổ biến:
-
ReLU (Rectified Linear Unit): $f(z) = \max(0, z)$ – Hàm phổ biến nhất cho các Hidden Layers nhờ tốc độ tính toán nhanh và hạn chế Triệt tiêu Gradient (Vanishing Gradient).
-
Sigmoid: Nén đầu ra về khoảng $[0, 1]$ – Thường dùng cho tầng Output của bài toán Phân loại nhị phân (Binary Classification).
-
Softmax: Chuyển đổi đầu ra thành phân phối xác suất cho bài toán Phân loại nhiều lớp (Multi-class Classification).
-
Tanh: Nén đầu ra về khoảng $[-1, 1]$.
Cơ chế huấn luyện: Forward Propagation & Backpropagation
Quá trình học của Neural Network diễn ra theo vòng lặp 2 bước liên tục:
Forward Propagation (Truyền xuôi) ──> Tính Loss (Sai số)
│
Backward Propagation (Truyền ngược) <─────────┘ (Cập nhật Trọng số W, B)
-
Forward Propagation (Truyền xuôi): Dữ liệu đi từ Input Layer qua các Hidden Layers đến Output Layer để tạo ra dự đoán $\hat{y}$.
-
Tính toán Loss Function: So sánh dự đoán $\hat{y}$ với nhãn thực tế $y$ để tính mức độ sai sót.
-
Backpropagation (Truyền ngược): Sử dụng quy tắc đạo hàm chuỗi (Chain Rule) để tính Gradient của hàm Loss theo từng trọng số $w$ và bias $b$.
-
Tối ưu hóa (Optimization): Thuật toán như Gradient Descent hay Adam cập nhật trọng số:
$$w_{new} = w_{old} – \eta \cdot \frac{\partial \text{Loss}}{\partial w}$$
Dữ liệu có cần Feature Scaling không?
CỰC KỲ BẮT BUỘC.
Trọng số $w$ trong Neural Network thường được khởi tạo ngẫu nhiên xung quanh điểm 0. Nếu các Feature có vạch quy mô quá chênh lệch, Gradient Descent sẽ mất rất nhiều thời gian để hội tụ hoặc gây ra bùng nổ/triệt tiêu Gradient (Exploding/Vanishing Gradient). Bắt buộc phải áp dụng StandardScaler hoặc MinMaxScaler.
So sánh Machine Learning truyền thống và Neural Network
| Tiêu chí | Machine Learning truyền thống | Neural Network (Deep Learning) |
| Phụ thuộc dữ liệu | Hoạt động tốt trên Dataset vừa và nhỏ | Cần lượng dữ liệu cực lớn để đạt hiệu quả cao |
| Feature Engineering | Bắt buộc con người tự tạo thủ công | Tự động học trích xuất đặc trưng từ dữ liệu thô |
| Tài nguyên phần cứng | Chạy tốt trên CPU | Bắt buộc dùng GPU/TPU cho dữ liệu lớn |
| Tính giải thích | Dễ giải thích (Interpretable) | Mô hình hộp đen (Black-box), khó giải thích |
Ưu điểm và Nhược điểm của Neural Network
Ưu điểm
-
Học được các mối quan hệ phi tuyến tính cực kỳ phức tạp.
-
Tự động trích xuất đặc trưng từ dữ liệu thô (Hình ảnh, Âm thanh, Văn bản).
-
Hiệu suất liên tục tăng khi lượng dữ liệu lớn lên.
Nhược điểm
-
Yêu cầu lượng dữ liệu huấn luyện và tài nguyên tính toán (GPU) rất lớn.
-
Khó giải thích nguyên lý ra quyết định bên trong (Hộp đen).
-
Cực kỳ dễ bị Overfitting nếu không dùng các kỹ thuật Regularization (Dropout, Early Stopping).
Tóm tắt
-
Neural Network gồm Input Layer, Hidden Layers và Output Layer.
-
Activation Function (ReLU, Sigmoid, Softmax) mang lại tính phi tuyến cho mô hình.
-
Backpropagation và Gradient Descent là trái tim giúp mạng nơ-ron cập nhật trọng số và học từ sai số.
-
Bắt buộc Feature Scaling trước khi huấn luyện Neural Network.
Tài liệu tham khảo
-
TensorFlow Documentation: Neural Networks with Keras
-
PyTorch Tutorials: Deep Learning with PyTorch
-
Goodfellow, Bengio, Courville (2016): Deep Learning Book – Cuốn sách kinh điển về Deep Learning.
Khóa học tại MCNA Technology School
Nếu bạn muốn thực hành Machine Learning, Python và xây dựng các mô hình trên dữ liệu thực tế, có thể tham khảo:
-
🤖 Combo 5 khóa AI & Power BI: Xem khóa học AI & Power BI
-
🐍 Combo Python: Xem Combo Python
Tác giả: Bùi Đình Tuyển – Data Analyst tại MCNA Technology School
📞 Hotline: 0939.866.825 (Mr. Khang)
🌐 Website: MCNA Technology School
📍 Hà Nội: 30 Trung Liệt, Đống Đa | Liền kề 44B TT2 Văn Quán, Hà Đông
📍 TP.HCM: 50B Phan Tây Hồ, Cầu Kiệu

