MACHINE LEARNING CHO NGƯỜI MỚI BẮT ĐẦU - PHẦN V: Những kiến thức cơ bản về Deep Learning

Giới thiệu về Mạng nơ-ron

Mạng nơ-ron đại diện cho một khuôn mẫu/khung tư duy hấp dẫn và mạnh mẽ trong lĩnh vực trí tuệ nhân tạo và học máy. Về bản chất, mạng nơ-ron là một mô hình tính toán lấy cảm hứng từ cấu trúc và chức năng của não người. Giống như các nơ-ron trong não liên kết với nhau để xử lý và truyền thông tin, các mạng nơ-ron nhân tạo (ANNs) bao gồm các nút liên kết, gọi là “nơ-ron” được tổ chức thành các lớp để thực hiện các nhiệm vụ cụ thể.

Sức mạnh của mạng nơ-ron nằm ở khả năng học từ dữ liệu. Thông qua một quá trình gọi là huấn luyện, mạng nơ-ron điều chỉnh các tham số nội bộ dựa trên các cặp đầu vào–đầu ra, dần dần cải thiện khả năng dự đoán hoặc phân loại chính xác. Quá trình học này, thường được điều hướng bởi các thuật toán tối ưu hóa như gradient descent, cho phép mạng xử lý các bài toán phức tạp mà các giải pháp thuật toán truyền thống khó giải quyết.

Đơn vị nền tảng của một mạng nơ-ron là nơ-ron, nơ-ron nhận các đầu vào, áp dụng các trọng số lên chúng và truyền kết quả qua một hàm kích hoạt để sinh ra đầu ra. Các nơ-ron này được xếp theo các lớp: lớp đầu vào nhận dữ liệu, một hoặc nhiều lớp ẩn xử lý dữ liệu, và lớp đầu ra cho kết quả cuối cùng của mạng. Các kết nối giữa các nơ-ron được biểu diễn bằng trọng số (weights), xác định mức ảnh hưởng của nơ-ron này lên nơ-ron khác.

Một đặc trưng quan trọng của mạng nơ-ron là khả năng tự động khám phá các mẫu và đặc trưng trong dữ liệu. Khả năng này làm cho mạng nơ-ron rất linh hoạt trong nhiều ứng dụng như nhận dạng ảnh, nhận dạng giọng nói, xử lý ngôn ngữ tự nhiên, và cả trong các trò chơi chiến lược. Khi sức mạnh tính toán tăng lên và các thuật toán phát triển, mạng nơ-ron càng ngày càng tinh vi và đã đạt được nhiều bước tiến lớn trong các lĩnh vực như y tế, tài chính và phương tiện tự hành.

Hình minh họa các khối trong Mạng Nơ-ron

Các khối xây dựng của Mạng nơ-ron (Lớp, Hàm kích hoạt, Hàm mất mát)

Mạng nơ-ron được cấu thành từ một số khối xây dựng cơ bản, mỗi khối đóng vai trò quan trọng định hình hành vi và hiệu năng của mạng. Các khối này gồm: lớp (layers), hàm kích hoạt (activation functions) và hàm mất mát (loss functions).

  1. Lớp (Layers): Mạng nơ-ron được tổ chức theo các lớp, mỗi lớp phục vụ mục đích xử lý và biến đổi dữ liệu đầu vào. Ba loại lớp chính trong một mạng thông thường là:
    • Lớp đầu vào (Input Layer): Lớp này nhận dữ liệu thô và chuyển tiếp tới các lớp tiếp theo để xử lý.
    • Lớp ẩn (Hidden Layers): Nằm giữa lớp đầu vào và lớp đầu ra, các lớp ẩn thực hiện việc trích xuất và biến đổi đặc trưng. Chúng chịu trách nhiệm nắm bắt và học các mẫu trong dữ liệu thông qua các tham số của mạng.
    • Lớp đầu ra (Output Layer): Lớp cuối cùng của mạng sinh ra dự đoán hoặc đầu ra dựa trên dữ liệu đã xử lý. Số nơ-ron trong lớp này phụ thuộc vào loại nhiệm vụ — phân loại nhị phân, phân loại đa lớp, hồi quy, v.v.
  2. Hàm kích hoạt (Activation Functions): Hàm kích hoạt đưa yếu tố phi tuyến vào mạng, cho phép mạng học các quan hệ phi tuyến giữa các đặc trưng. Các hàm kích hoạt phổ biến gồm:
    • Sigmoid: Nén đầu ra về khoảng (0, 1), phù hợp cho các bài toán phân loại nhị phân.
    • ReLU (Rectified Linear Unit): Trả về giá trị đầu vào nếu > 0, và 0 nếu ≤ 0; giúp giảm vấn đề gradient biến mất (vanishing gradient) và tăng tốc hội tụ trong huấn luyện.
    • Tanh (Hyperbolic Tangent): Nén giá trị về khoảng (-1, 1), tương tự sigmoid nhưng có trung tâm tại 0, hữu ích trong một số bối cảnh nhất định.
  3. Hàm mất mát (Loss Functions): Hàm mất mát đo lường sự khác biệt giữa dự đoán của mô hình và giá trị mục tiêu thực tế. Việc chọn hàm mất mát phù hợp phụ thuộc vào loại nhiệm vụ (phân loại, hồi quy, hay dự đoán chuỗi). Một vài hàm mất mát thường dùng:
    • Mean Squared Error (MSE): Thường dùng cho bài toán hồi quy; tối thiểu hoá bình phương sai giữa dự đoán và giá trị thực.
    • Binary Cross-Entropy: Phù hợp cho phân loại nhị phân; đo khoảng cách giữa xác suất dự đoán và nhãn nhị phân thực.
    • Categorical Cross-Entropy: Dùng cho phân loại đa lớp; tối thiểu hoá khác biệt giữa phân phối xác suất dự đoán và nhãn thực.

Những khối xây dựng này tạo nên nền tảng của mạng nơ-ron; hiểu rõ vai trò và cách chúng tương tác là điều cần thiết để thiết kế, huấn luyện và tinh chỉnh các mô hình mạng nơ-ron hiệu quả cho nhiều bài toán học máy.

Huấn luyện Mạng nơ-ron (Training Neural Networks)

Huấn luyện mạng nơ-ron là quá trình then chốt quyết định khả năng thực thi của mô hình. Về bản chất, huấn luyện là đưa mạng các dữ liệu có nhãn để nó điều chỉnh các tham số nội bộ (trọng số và bias) sao cho sự khác biệt giữa dự đoán và nhãn thực là nhỏ nhất. Quá trình lặp này thường được dẫn dắt bởi một thuật toán tối ưu như stochastic gradient descent (SGD), cập nhật các tham số theo hướng giảm giá trị hàm mất mát.

Một trong những thách thức chính khi huấn luyện mạng nơ-ron là tìm cân bằng giữa underfittingoverfitting. Underfitting xảy ra khi mô hình quá đơn giản nên không nắm bắt được cấu trúc dữ liệu, dẫn đến hiệu năng kém; overfitting xảy ra khi mô hình học “ghi nhớ” dữ liệu huấn luyện thay vì tổng quát hoá, làm hiệu năng trên dữ liệu chưa thấy giảm. Các kỹ thuật thường dùng để giảm overfitting và cải thiện khả năng tổng quát gồm: regularization, dropout, và early stopping.

Việc lựa chọn hàm mất mát cũng đóng vai trò quyết định trong hướng dẫn quá trình huấn luyện. Tùy theo nhiệm vụ, các hàm mất mát khác nhau phù hợp: ví dụ binary cross-entropy cho phân loại nhị phân, categorical cross-entropy cho phân loại đa lớp, và MSE cho hồi quy. Chọn hàm mất mát phù hợp giúp mạng tối ưu hóa đúng mục tiêu mong muốn.

Bên cạnh đó, tuning siêu tham số (hyperparameter tuning) là phần quan trọng khác của huấn luyện: các siêu tham số như learning rate, batch size, và kiến trúc mạng có ảnh hưởng lớn tới hiệu năng. Thử nghiệm với các cấu hình khác nhau và dùng các phương pháp tìm kiếm như grid search hoặc random search có thể giúp tìm bộ siêu tham số tối ưu cho bài toán. Tổng hợp lại, huấn luyện mạng nơ-ron là một sự kết hợp giữa nghệ thuật và khoa học, đòi hỏi thí nghiệm cẩn thận, hiệu chỉnh tham số và tối ưu hóa để đạt hiệu năng mong muốn.

Convolutional Neural Networks (CNNs) cho Nhận dạng Ảnh

Convolutional Neural Networks (CNNs) đã làm thay đổi lĩnh vực thị giác máy tính với khả năng tự động trích xuất các đặc trưng phân cấp từ dữ liệu ảnh thô. Khác với mạng truyền thẳng (feedforward) truyền thống, CNN được thiết kế đặc biệt để xử lý cấu trúc không gian của ảnh bằng cách sử dụng lớp tích chập (convolutional layers), lớp pooling, và lớp fully connected.

Ở trung tâm của CNN là lớp tích chập, nơi các bộ lọc (filters/ kernels) có thể học được áp dụng lên ảnh đầu vào. Những bộ lọc này trượt (slide) trên ảnh và thực hiện tích vô hướng (dot product) giữa trọng số của bộ lọc và các giá trị pixel đang phủ lên. Kết quả là một tập các bản đồ đặc trưng (feature maps) nắm bắt các khía cạnh khác nhau của ảnh — như biên, cấu trúc, họa tiết. Bằng cách học những bộ lọc này trong quá trình huấn luyện, CNN có thể trích xuất đặc trưng có ý nghĩa mà không cần phải làm feature engineering thủ công.

Lớp pooling (gộp) là thành phần quan trọng khác trong CNN, dùng để giảm kích thước không gian của các bản đồ đặc trưng trong khi giữ lại thông tin quan trọng nhất. Các phép pooling phổ biến gồm max pooling (lấy giá trị lớn nhất trong vùng pooling) và average pooling (lấy giá trị trung bình). Pooling giúp giảm tải tính toán cho các lớp sau và làm cho mạng bền hơn trước các biến thể nhỏ trong đầu vào.

Các lớp fully connected (kết nối đầy đủ) thường xuất hiện ở phần cuối kiến trúc CNN để ánh xạ các đặc trưng mức cao đã được trích xuất sang các lớp đầu ra cuối cùng. Những lớp này thực hiện phân loại hoặc hồi quy dựa trên đặc trưng đã học, cho phép mạng dự đoán nội dung của ảnh đầu vào.

CNNs đã chứng minh hiệu năng xuất sắc trong nhiều tác vụ nhận dạng ảnh: phát hiện đối tượng, phân đoạn ảnh, và phân loại ảnh. Khả năng tự động học đặc trưng phân cấp từ pixel thô, cùng tính hiệu quả và khả năng mở rộng, khiến CNN trở thành lựa chọn hàng đầu cho nhiều ứng dụng thị giác — từ xe tự hành đến hình ảnh y tế. Khi nghiên cứu về kiến trúc và kỹ thuật huấn luyện cho CNN tiếp tục tiến bộ, ta sẽ còn thấy nhiều đột phá hơn nữa trong nhận dạng ảnh và các lĩnh vực liên quan.

Recurrent Neural Networks (RNNs) cho Dữ liệu Tuần tự

Recurrent Neural Networks (RNNs) là một lớp mạng mạnh mẽ, được thiết kế để xử lý dữ liệu tuần tự như chuỗi thời gian, văn bản và âm thanh. Khác với mạng feedforward xử lý dữ liệu một lượt, RNN có các vòng lặp trong kiến trúc cho phép lưu giữ và sử dụng thông tin về các đầu vào trước đó — tức là mạng có “bộ nhớ” nội bộ. Điều này làm cho RNN phù hợp cho các nhiệm vụ mà thứ tự của các đầu vào và ngữ cảnh từ các bước trước ảnh hưởng đến kết quả hiện tại.

Đặc trưng chính của RNN là kết nối hồi quy (recurrent connection), cho phép thông tin tồn tại theo thời gian và được truyền qua mạng. Ở mỗi bước thời gian, một RNN nhận một vectơ đầu vào và trạng thái ẩn (hidden state) từ bước trước, rồi sinh ra một vectơ đầu ra và trạng thái ẩn mới. Bản chất hồi quy này cho phép RNN nắm bắt các phụ thuộc theo thời gian trong dữ liệu chuỗi, hữu ích cho dự báo chuỗi thời gian, dịch máy, phân tích cảm xúc, v.v.

Tuy nhiên, RNN truyền thống gặp vấn đề vanishing/exploding gradients khi lan truyền gradient ngược qua nhiều bước thời gian, khiến mạng khó học được các phụ thuộc dài hạn. Để khắc phục, người ta phát triển các biến thể như Long Short-Term Memory (LSTM) và Gated Recurrent Unit (GRU). Những kiến trúc này đưa vào các cơ chế cổng (gates) và ô nhớ (memory cells) để lưu và kiểm soát luồng thông tin dài hạn, giúp nắm bắt và duy trì phụ thuộc dài hạn trong chuỗi dữ liệu.

Mặc dù hiệu quả, RNN vẫn có hạn chế — ví dụ khó song song hoá (parallelization) so với các kiến trúc không tuần tự và nhạy cảm với việc chọn siêu tham số. Dù vậy, RNN và các biến thể như LSTM/GRU vẫn là công cụ cơ bản cho các nhiệm vụ liên quan tới dữ liệu tuần tự. Khi nghiên cứu về kiến trúc và kỹ thuật huấn luyện RNN tiến triển, ta kỳ vọng tiếp tục cải thiện khả năng và khắc phục hạn chế hiện tại, mở rộng ứng dụng trong NLP, phân tích chuỗi thời gian, và các lĩnh vực khác.

Tác giả: Hoàng Thơ

PHẦN I - PHẦN II - PHẦN III - PHẦN IV - PHẦN V - PHẦN VI - PHẦN VII PHẦN VIII - PHẦN IX - PHẦN X 

Post a Comment

Previous Post Next Post