Multilayer Perceptron
MLP: xếp nhiều perceptron thành mạng
Bạn có một đám điểm hình hai vầng trăng đan vào nhau. Một perceptron đơn sẽ phân loại được bao nhiêu điểm đúng?
Một lớp = một chuyên gia. Nhiều lớp = một hội đồng.
Bạn thử tuyển dụng bạn mới vào quán bún. Một người quản lý chỉ dám kết luận “ứng viên này hợp hay không” dựa trên một tiêu chí duy nhất, ví dụ kinh nghiệm. Nếu tuyển theo mỗi tiêu chí này, nhiều ứng viên tốt sẽ bị bỏ lỡ.
Thêm vài chuyên gia nữa (một người đánh giá thái độ, một người đánh giá sức khoẻ, một người quan sát giao tiếp) và cuối cùng có một người điều phối tổng hợp ý kiến. Đó chính là MLP: mỗi nơ-ron ẩn là một chuyên gia “nhỏ” nhìn vào dữ liệu theo một góc, lớp cuối tổ hợp ý kiến lại thành kết luận.
Nhận đặc trưng thô: toạ độ điểm, pixel ảnh, giá trị cảm biến. Chưa làm gì phức tạp.
Mỗi nơ-ron vẽ một đường thẳng nhỏ. Lớp tiếp theo gom các đường ấy thành hình hài phức tạp hơn.
Ra quyết định cuối: xác suất “thuộc nhóm A”, giá nhà, hay con số cần đoán.
Hình minh họa
Tự xây MLP và xem đường biên phân loại biến đổi
Kéo hai thanh bên dưới để thay đổi số lớp ẩn và số nơ-ron mỗi lớp. Mạng đang cố tách hai vầng trăng: đám điểm đỏ và đám điểm xanh xếp xen kẽ theo hình lưỡi liềm. Khi bạn tăng hidden units, đường biên sẽ mềm dần, ôm lấy từng vầng trăng.
Kiến trúc mạng
Kiến trúc: 2 → 4 → 4 → 1
Dạng đường biên: Đường cong bao được từng vầng trăng
Điểm phân loại đúng: 34/48 (heuristic).
Vùng xanh: mạng nghiêng về nhãn 1. Vùng đỏ: mạng nghiêng về nhãn 0. Đường chuyển giao chính là đường biên.
Mẹo tương tác
- Giảm nơ-ron xuống 1, giữ 1 lớp thì đường biên trở lại kiểu “một đường thẳng chéo”, đủ để nhắc bạn về perceptron.
- Tăng lên 3 lớp × 8 nơ-ron thì đường biên uốn lượn quanh cả hai vầng trăng. Đây là “đường cong phức tạp” mà HOOK đã hứa ở đầu bài.
- Quan sát sơ đồ bên trái: mỗi lần tăng lớp, kiến trúc dài ra; mỗi lần tăng nơ-ron, mỗi lớp cao hơn.
Chiều sâukhông phải sự phức tạp cho vui. Nó là cơ chế cho phép mạng “học từ nét đơn giản đến hình phức tạp”. Đó là lý do deep learning được gọi là deep.
XOR là bài toán khiến AI đình trệ 15 năm
XOR là phép “khác nhau”: (0,0)→0, (1,1)→0, còn (0,1)→1 và (1,0)→1. Bốn điểm này xếp thành hình quả trám, hai điểm cùng nhãn nằm chéo nhau. Không có đường thẳng nào chia đúng. Hãy xem tận mắt.
Cùng một bộ 4 điểm XOR, hai mô hình, hai đường biên.
Perceptron đơn chỉ vẽ được một đường thẳng. Dù bạn xoay kiểu gì, ít nhất 1 trong 4 điểm luôn bị phân loại sai.
Bạn có một MLP 10 lớp nhưng BỎ HẾT hàm kích hoạt (tanh, ReLU...). Mạng này tương đương với gì?
Với cùng 2.000 tham số, chiến lược nào thường học được đường biên phức tạp hơn cho dữ liệu như ảnh?
Giải thích
Nhìn từ bên trong, một MLP gồm các phép biến đổi tuyến tính xếp chồng, ở giữa chen vào hàm kích hoạt phi tuyến. Đây là hai dòng công thức duy nhất cần nhớ:
1. Mỗi lớp: tổng có trọng số, rồi làm cong
Đọc: đầu ra của lớp l bằng hàm kích hoạt của (ma trận trọng số nhân đầu ra lớp trước, cộng bias). Wquyết định “lớp này để ý đến tổ hợp đặc trưng nào”, b dịch đường biên lên hay xuống, còn f(ví dụ ReLU, tanh) là thứ bẻ “đường thẳng” thành “đường cong”.
2. Cả mạng: xếp nhiều lớp thành một hàm hợp
Đọc: dự đoán cuối cùng là kết quả áp dụng lớp 1, rồi lớp 2, rồi... đến lớp L. Mỗi lớp nhận đầu ra của lớp trước. Nếu bỏ hàm kích hoạt f, toàn bộ dãy phép nhân ma trận sẽ gộp lại thành một ma trận duy nhất, và bạn trở về với perceptron đơn.
Ba loại lớp làm ba công việc khác nhau
Chỉ chứa dữ liệu thô, không có phép biến đổi. Số nơ-ron bằng số đặc trưng. Với ảnh 28×28 pixel: 784 nơ-ron.
Trích xuất đặc trưng. Lớp đầu bắt nét đơn giản, lớp sau tổ hợp thành khối phức tạp hơn. Đây là nơi “học” thật sự diễn ra.
Cho con số cuối: 1 nơ-ron cho hồi quy (giá, điểm), n nơ-ron cho phân loại n lớp, thường kèm sigmoid hoặc softmax.
Dòng chảy dữ liệu, từng bước một
Dữ liệu thô đi vào lớp đầu vào. Ví dụ bài phân loại ảnh 28×28: mỗi pixel là một nơ-ron, tất cả có 784 con số đầu vào trong khoảng 0–1. Lớp đầu vào không làm phép tính, chỉ là nơi đặt dữ liệu.
Đếm tham số: vì sao mô hình lớn lại “lớn”
Giữa hai lớp liên tiếp với a và b nơ-ron, số trọng số là a × b, cộng b bias. Một MLP kiểu 784 → 256 → 128 → 10 đã có khoảng 235.000 tham số. GPT-4 có tới hàng nghìn tỷ, nhưng công thức đếm vẫn y hệt, chỉ là số lớp và số nơ-ron nhiều hơn rất nhiều.
| Giữa hai lớp | Trọng số | Bias | Tổng tham số |
|---|---|---|---|
| Đầu vào 784 → Ẩn 256 | 784 × 256 = 200.704 | 256 | 200.960 |
| Ẩn 256 → Ẩn 128 | 256 × 128 = 32.768 | 128 | 32.896 |
| Ẩn 128 → Đầu ra 10 | 128 × 10 = 1.280 | 10 | 1.290 |
| Tổng tham số MLP này: | 235.146 | ||
Chọn kiến trúc: vài quy tắc ngón tay cái
- Bắt đầu từ 1–2 lớp ẩn, mỗi lớp cỡ bằng (hoặc gấp đôi) chiều đầu vào. Chỉ tăng chiều sâu khi kết quả chưa đủ tốt.
- Thiếu khớp (underfitting) thì tăng chiều rộng hoặc chiều sâu. Mạng quá nhỏ không thể vẽ đường biên đủ phức tạp.
- Quá khớp (overfitting) thì giảm mạng lại, thêm dropout/L2. Mạng quá lớn sẽ thuộc lòng dữ liệu huấn luyện, đoán tệ với dữ liệu mới.
- Dữ liệu có cấu trúc thì dùng kiến trúc tương ứng. Ảnh dùng CNN; chuỗi dùng Transformer hoặc RNN; đồ thị dùng GNN. MLP vẫn là nền tảng, nhưng không phải lựa chọn tối ưu cho mọi bài.
MLP học thế nào: liên kết tới backpropagation
Đến đây bạn đã hiểu MLP là gì. Còn cách nó tìm ra trọng số tốt thì sao? Đó là câu chuyện của lan truyền ngược (backpropagation) và lan truyền tiến. Ngắn gọn: mạng dự đoán, so với đáp án, đo sai số, rồi dùng quy tắc đạo hàm chuỗi để biết “nên chỉnh trọng số nào, theo hướng nào”. Lặp hàng triệu lần thì trọng số hội tụ về bộ tốt.
Hàm kích hoạt f có nhiều lựa chọn: tanh, sigmoid, ReLU, GELU... Mỗi hàm có đặc điểm riêng về tốc độ học và tránh gradient biến mất. Xem các hàm kích hoạt để đi sâu.
- Một perceptron là một đường thẳng. MLP xếp nhiều perceptron thành nhiều lớp nên vẽ được đường cong tuỳ ý.
- Hàm kích hoạt phi tuyến (ReLU, tanh, sigmoid) là BẮT BUỘC ở giữa các lớp. Không có nó, cả mạng sụp thành một phép tuyến tính.
- Perceptron đơn KHÔNG giải được XOR. MLP với 1 lớp ẩn 2–4 nơ-ron giải được ngay, mở đường cho deep learning.
- Số tham số giữa hai lớp bằng (nơ-ron lớp trước) × (nơ-ron lớp sau) cộng bias. Lớp đầu tiên thường nặng ký nhất.
- MLP là điểm xuất phát lý tưởng cho dữ liệu bảng; ảnh và chuỗi dùng CNN hoặc Transformer sẽ hiệu quả hơn.
Kiểm tra hiểu biết
Một perceptron đơn chỉ vẽ được thứ gì khi phân loại dữ liệu 2D?