Multilayer perceptron (MLP)
Multilayer Perceptron (MLP): Kiến trúc nền tảng của Deep Learning
Trong bài viết trước, chúng ta đã tìm hiểu về neuron, perceptron và các khái niệm cơ bản trong mạng nơ-ron nhân tạo. Hôm nay, chúng ta sẽ đi sâu hơn vào một kiến trúc cụ thể và vô cùng quan trọng trong học máy: Multilayer Perceptron (MLP) hay còn gọi là mạng nơ-ron nhiều tầng. Đây chính là nền tảng cho sự phát triển của các kiến trúc deep learning hiện đại.

Multilayer Perceptron là gì?
MLP là một kiến trúc mạng nơ-ron tiến tiến hơn perceptron đơn giản, gồm nhiều tầng perceptron được kết nối với nhau. Cấu trúc của MLP bao gồm ít nhất ba tầng:
Một tầng đầu vào (input layer)
Một hoặc nhiều tầng ẩn (hidden layers)
Một tầng đầu ra (output layer)
Điểm khác biệt quan trọng giữa MLP và perceptron đơn là khả năng học và mô hình hóa các mối quan hệ phi tuyến tính. Trong khi perceptron đơn chỉ có thể giải quyết các bài toán phân loại tuyến tính, MLP có thể xử lý các vấn đề phức tạp hơn nhiều nhờ vào sự kết hợp của nhiều perceptron và các hàm kích hoạt phi tuyến.
Fully Connected Layers (Các tầng kết nối đầy đủ)
Đặc điểm nổi bật của MLP là các tầng trong nó đều là "fully connected" (kết nối đầy đủ), còn được gọi là "dense layers" trong nhiều framework học máy.
Tầng kết nối đầy đủ là gì?
Trong một tầng kết nối đầy đủ, mỗi nơ-ron ở tầng hiện tại được kết nối với tất cả các nơ-ron ở tầng trước đó. Mỗi kết nối này có một trọng số (weight) riêng biệt, được điều chỉnh trong quá trình huấn luyện.
Toán học đằng sau các tầng kết nối đầy đủ
Nếu chúng ta có một tầng với n nơ-ron đầu vào và m nơ-ron đầu ra, phép tính được thực hiện trong tầng kết nối đầy đủ có thể được biểu diễn bằng phép nhân ma trận:
Y = f(W·X + b)Trong đó:
X là vector đầu vào kích thước [n x 1]
W là ma trận trọng số kích thước [m x n]
b là vector độ lệch (bias) kích thước [m x 1]
f là hàm kích hoạt (activation function)
Y là vector đầu ra kích thước [m x 1]
Đây chính là sức mạnh của các tầng kết nối đầy đủ: khả năng học các mối quan hệ phức tạp giữa đầu vào và đầu ra thông qua việc điều chỉnh ma trận trọng số W và vector độ lệch b.
Ưu điểm và nhược điểm của tầng kết nối đầy đủ
Ưu điểm:
Linh hoạt, có thể học bất kỳ ánh xạ nào từ đầu vào sang đầu ra
Dễ hiểu và triển khai
Hoạt động tốt với dữ liệu có cấu trúc định hình rõ ràng
Nhược điểm:
Số lượng tham số (parameters) lớn, đặc biệt khi số lượng nơ-ron tăng lên
Dễ bị overfitting với dữ liệu phức tạp
Không hiệu quả với dữ liệu có cấu trúc không gian (như hình ảnh) hoặc chuỗi thời gian
Hidden Layers (Các tầng ẩn)
Thành phần quan trọng nhất tạo nên sức mạnh của MLP chính là các tầng ẩn. Đây là những tầng nằm giữa tầng đầu vào và tầng đầu ra, có nhiệm vụ trích xuất các đặc trưng (features) quan trọng từ dữ liệu.
Vai trò của tầng ẩn
Mỗi tầng ẩn trong MLP đóng vai trò như một bộ trích xuất đặc trưng:
Tầng ẩn đầu tiên: Học các đặc trưng cơ bản, đơn giản từ dữ liệu đầu vào
Các tầng ẩn tiếp theo: Kết hợp các đặc trưng từ tầng trước để tạo ra các đặc trưng phức tạp, trừu tượng hơn
Tầng ẩn cuối cùng: Tạo ra biểu diễn cuối cùng trước khi chuyển đến tầng đầu ra
Chính quá trình trừu tượng hóa từng bước này tạo nên khả năng của deep learning trong việc học các mẫu phức tạp từ dữ liệu.
Chiều sâu và chiều rộng của mạng
Hai khía cạnh quan trọng khi thiết kế MLP là chiều sâu (số lượng tầng ẩn) và chiều rộng (số lượng nơ-ron trong mỗi tầng):
Chiều sâu (depth): Tăng số lượng tầng ẩn giúp mạng học được các biểu diễn phức tạp hơn, nhưng cũng làm tăng nguy cơ vanishing/exploding gradient. Nghiên cứu đã chỉ ra rằng trong nhiều trường hợp, các mạng sâu hiệu quả hơn các mạng nông với cùng số lượng tham số.
Chiều rộng (width): Tăng số lượng nơ-ron trong mỗi tầng ẩn giúp mạng có khả năng lưu trữ nhiều thông tin hơn, nhưng cũng tăng nguy cơ overfitting và chi phí tính toán.
Lựa chọn số lượng tầng ẩn và nơ-ron
Không có công thức cụ thể nào để xác định số lượng tầng ẩn và nơ-ron tối ưu. Đây là một hyperparameter cần được tinh chỉnh dựa trên:
Độ phức tạp của vấn đề
Kích thước và chất lượng của dữ liệu
Ràng buộc về tài nguyên tính toán
Thử nghiệm và đánh giá
Một số hướng dẫn kinh nghiệm:
Bắt đầu với 1-2 tầng ẩn
Số lượng nơ-ron trong mỗi tầng ẩn có thể từ vài chục đến vài trăm
Sử dụng validation set để đánh giá và điều chỉnh
Quá trình truyền thuận (Forward Propagation) trong MLP
Khi một mẫu dữ liệu đi qua MLP, thông tin truyền theo một hướng từ tầng đầu vào, qua các tầng ẩn, đến tầng đầu ra. Quá trình này được gọi là truyền thuận (forward propagation).
Giả sử chúng ta có một MLP với L tầng (bao gồm cả tầng đầu vào và đầu ra), quá trình truyền thuận được mô tả như sau:
Tầng đầu vào (layer 0): Nhận vector đầu vào X
Các tầng ẩn (layer 1 đến L-1):
Z[l] = W[l]·A[l-1] + b[l]A[l] = f(Z[l])Trong đó:
Z[l] là đầu vào tuyến tính cho tầng l
W[l] là ma trận trọng số của tầng l
A[l-1] là đầu ra của tầng trước đó
b[l] là vector độ lệch
f là hàm kích hoạt
A[l] là đầu ra của tầng l
Tầng đầu ra (layer L): Tính toán đầu ra cuối cùng Ŷ
Ứng dụng của MLP trong thực tế
MLP được ứng dụng rộng rãi trong nhiều lĩnh vực:
Phân loại: Nhận dạng chữ viết tay (MNIST), phân loại email spam/không spam
Hồi quy: Dự đoán giá nhà, dự báo nhu cầu điện năng
Nhận dạng mẫu: Phát hiện bất thường trong dữ liệu, phân tích cảm xúc
Xấp xỉ hàm: MLP có thể được sử dụng như một bộ xấp xỉ hàm vạn năng (universal function approximator)
Tuy nhiên, đối với các bài toán phức tạp về hình ảnh, ngôn ngữ tự nhiên, MLP thường không hiệu quả bằng các kiến trúc chuyên biệt như CNN (Convolutional Neural Networks) hay RNN (Recurrent Neural Networks).
Cải tiến và biến thể của MLP
Để khắc phục các hạn chế của MLP truyền thống, nhiều cải tiến đã được đề xuất:
Dropout: Kỹ thuật regularization giúp ngăn overfitting bằng cách tạm thời loại bỏ ngẫu nhiên một số nơ-ron trong quá trình huấn luyện
Batch Normalization: Chuẩn hóa đầu vào cho mỗi tầng, giúp tăng tốc quá trình hội tụ và giảm thiểu vấn đề internal covariate shift
Residual Connections (Skip Connections): Cho phép thông tin "nhảy cóc" qua một số tầng, giúp huấn luyện các mạng rất sâu
Các hàm kích hoạt hiện đại: ReLU, LeakyReLU, ELU, SELU... thay thế các hàm kích hoạt truyền thống như sigmoid và tanh
Kết luận
Multilayer Perceptron là nền tảng của các mạng nơ-ron hiện đại, với khả năng mô hình hóa các mối quan hệ phi tuyến phức tạp. Thông qua các tầng kết nối đầy đủ và các tầng ẩn, MLP có thể trích xuất và học các đặc trưng từ dữ liệu, mở đường cho sự phát triển của học sâu (deep learning).
Mặc dù đã có nhiều kiến trúc chuyên biệt được phát triển cho các bài toán cụ thể, MLP vẫn là một công cụ mạnh mẽ và linh hoạt trong bộ công cụ của các chuyên gia học máy. Hiểu rõ cách thức hoạt động của MLP là bước đầu tiên quan trọng trong hành trình khám phá thế giới phức tạp của deep learning.
Trong các bài viết tiếp theo, chúng ta sẽ khám phá các kiến trúc phức tạp hơn như CNN, RNN, và Transformer. Hãy đón đọc để tiếp tục khám phá hành trình hấp dẫn trong thế giới AI!
Last updated