Tổng quan về giáo trình

Giáo trình Advanced Deep Learning with TensorFlow 2 and Keras (Tái bản lần thứ hai - Second Edition, 2020) do Phó Giáo sư Rowel Atienza (Viện Kỹ thuật Điện và Điện tử, Đại học Philippines Diliman) biên soạn, được phát hành bởi nhà xuất bản Packt Publishing. Trong chương trình đào tạo đại học và sau đại học các khối ngành Khoa học Máy tính, Trí tuệ Nhân tạo và Kỹ thuật Dữ liệu, tài liệu này đóng vai trò là giáo trình chuyên khảo nâng cao thuộc khối kiến thức chuyên ngành, tiếp nối sau các học phần Nhập môn Trí tuệ nhân tạo và Học máy căn bản.

Về mục tiêu học tập (learning outcomes), giáo trình trang bị cho người học năng lực giải thích các cơ sở toán học và cơ chế vận hành của những mô hình học sâu hiện đại; khả năng hiện thực hóa các công thức giải tích, suy diễn biến phân và tối ưu hóa thành mã nguồn thực thi bằng giao diện tf.keras của TensorFlow 2; đồng thời rèn luyện kỹ năng xây dựng, tinh chỉnh và kiểm thử các kiến trúc mạng chuyên dụng phục vụ cho các bài toán tạo sinh dữ liệu, điều khiển tác tử, nhận diện đối tượng và phân cụm không giám sát.

Cấu trúc tiếp cận của giáo trình tuân thủ một chu trình khép kín: bắt đầu từ việc trình bày nguyên lý toán học nền tảng, giải thích trực giác bản chất thuật toán, chuyển đổi mô hình thành mã nguồn Python cụ thể bằng Keras Functional API hoặc các lớp tùy biến, và cuối cùng là phân tích thực nghiệm dựa trên kết quả đầu ra.

Điểm đặc thù của giáo trình nằm ở việc tập trung trực tiếp vào các mô hình phức tạp đã qua chọn lọc thay vì dàn trải toàn bộ phân ngành AI. Giáo trình chuyển dịch hoàn toàn sang kiến trúc TensorFlow 2.0 thuần nhất (tf.keras), khai thác tối đa tính trực quan trong ghép nối tầng mạng cùng khả năng mở rộng với đồ thị động phục vụ nghiên cứu thực nghiệm.


Nội dung kiến thức cốt lõi

Các chương/chủ đề chính

Cấu trúc giáo trình bao gồm 13 chương với trình tự phát triển từ mô hình nền tảng đến các kiến trúc chuyên sâu:

  • Chương 1: Introducing Advanced Deep Learning with Keras: Hệ thống hóa ba khối mạng nơ-ron nền tảng gồm Perceptron đa tầng (MLP), Mạng nơ-ron tích chập (CNN) và Mạng nơ-ron hồi quy (RNN). Phân tích cấu trúc dữ liệu ảnh MNIST, các phương pháp chuẩn hóa (regularization), hàm mục tiêu (loss function) và thuật toán tối ưu (optimization).
  • Chương 2: Deep Neural Networks: Khai thác Functional API trong tf.keras để thiết kế các kiến trúc phân nhánh nhiều đầu vào/đầu ra. Trình bày chi tiết cấu trúc Mạng dư sâu (ResNet) và Mạng tích chập kết nối dày đặc (DenseNet), kèm mã nguồn triển khai mô hình DenseNet-BC 100 tầng trên tập dữ liệu CIFAR10.
  • Chương 3 & Chương 8: Autoencoders & Variational Autoencoders (VAEs): Nghiên cứu không gian tiềm ẩn (latent space), ứng dụng Autoencoder trong khử nhiễu và tô màu ảnh tự động. Chương 8 đào sâu suy biến biến phân (variational inference), kỹ thuật tái tham số hóa (reparameterization trick) và biến thể $\beta$-VAE phục vụ gỡ rối biểu diễn tiềm ẩn.
  • Chương 4, 5, 6 & 7: Generative Adversarial Networks (GANs) và các biến thể nâng cao: Khảo sát nguyên lý mạng đối kháng sinh dữ liệu (DCGAN). Chương 5 đề cập đến các kỹ thuật khắc phục bất ổn định khi huấn luyện thông qua Wasserstein GAN (WGAN với Wasserstein loss), Least-squares GAN (LSGAN) và Auxiliary Classifier GAN (ACGAN). Chương 6 tập trung vào phân rã đặc trưng với InfoGAN và StackedGAN. Chương 7 triển khai CycleGAN phục vụ chuyển đổi miền dữ liệu giữa MNIST và SVHN (Street View House Numbers).
  • Chương 9 & 10: Deep Reinforcement Learning & Policy Gradient Methods: Trình bày cơ chế học tăng cường qua Q-learning rời rạc, Deep Q-Networks (DQN) trên thư viện môi trường mô phỏng OpenAI Gym. Chương 10 mở rộng sang không gian hành động liên tục qua định lý đạo hàm chính sách (Policy Gradient Theorem), thuật toán REINFORCE, REINFORCE có baseline, và Actor-Critic / Advantage Actor-Critic (A2C).
  • Chương 11 & 12: Object Detection & Semantic Segmentation: Xây dựng mô hình dò tìm vật thể SSD (Single Shot MultiBox Detector) với hộp neo (anchor boxes) và thuật toán loại bỏ phi cực đại (Non-Maximum Suppression - NMS). Chương 12 triển khai mạng phân đoạn ngữ nghĩa hoàn toàn tích chập (FCN) để phân loại nhãn ở cấp độ từng điểm ảnh (pixel-level).
  • Chương 13: Unsupervised Learning Using Mutual Information: Trình bày hướng tiếp cận học không giám sát không dựa vào nhãn con người thông qua tối đa hóa tương hỗ thông tin (Mutual Information) và Entropy cho cả biến ngẫu nhiên rời rạc lẫn biến ngẫu nhiên liên tục (phân phối Gauss hai biến).

Kiến thức nền tảng được xây dựng

Giáo trình củng cố và tích hợp ba trụ cột kiến thức lý thuyết:

  1. Lý thuyết tối ưu hóa và toán học giải tích: Cơ chế lan truyền ngược gradient, đạo hàm riêng, định lý đạo hàm chính sách trong không gian liên tục, và xấp xỉ phân phối xác suất qua độ đo phân kỳ trong VAE.
  2. Nguyên lý lý thuyết thông tin: Đo lường entropy, thông tin tương hỗ giữa các biến ngẫu nhiên để thiết lập các hàm mục tiêu trong học không giám sát và gỡ rối đặc trưng biểu diễn (disentanglement).
  3. Cơ chế mô hình đối kháng và hàm mất mát khoảng cách: Khoảng cách Wasserstein (Earth Mover's Distance), bình phương cực tiểu, và việc kết hợp các hàm mất mát có điều kiện (conditional loss) để ổn định quá trình huấn luyện cực tiểu - cực đại (minimax game).

Kỹ năng phát triển

  • Năng lực kỹ thuật (Technical skills): Thành thạo lập trình hướng mô hình bằng tf.keras, thiết lập các pipeline dữ liệu (Data Generator), triển khai cấu trúc mạng phức tạp qua Functional API và các lớp kế thừa Model/Layer. Cấu hình và khai thác môi trường tính toán tăng tốc bằng GPU phần cứng của NVIDIA (CUDA, cuDNN).
  • Năng lực phân tích (Analytical skills): Phân tích hình thái hàm mất mát, chẩn đoán hiện tượng sụp đổ mode (mode collapse) trong GAN, đánh giá sự hội tụ của chính sách hành động trong môi trường RL, và phân định không gian tiềm ẩn (latent representations).
  • Năng lực thực hành thực nghiệm (Practical competencies): Tự thu thập, gán nhãn dữ liệu cho mô hình thị giác máy tính; triển khai các thuật toán hậu xử lý chuyên biệt như Non-Maximum Suppression (NMS); đo lường hiệu năng mô hình qua các tập dữ liệu benchmark chuẩn (MNIST, CIFAR10, SVHN).

Phương pháp giảng dạy và học tập

Giáo trình triển khai phương pháp sư phạm định hướng thực hành (hands-on, code-driven pedagogy). Mọi chủ đề lý thuyết phức tạp đều được cấu trúc hóa theo 4 bước liên kết chặt chẽ: Thiết lập cơ sở lý thuyết -> Trực quan hóa toán học -> Triển khai mã nguồn chi tiết -> Đo lường và đánh giá kết quả. Phương pháp này giảm thiểu sự trừu tượng hóa thuần túy bằng cách biến các công thức giải tích thành các câu lệnh lập trình rõ ràng trong Python 3.

Hệ thống bài tập và case studies gắn liền với các bài toán kỹ thuật thực tế:

  • Triển khai mô hình phân loại đa lớp trên tập dữ liệu chuẩn mực MNIST và CIFAR10.
  • Xây dựng hệ thống tự động khử nhiễu (denoising) và tô màu ảnh tự động (colorization autoencoders).
  • Giả lập điều khiển tác tử tự động tương tác với môi trường mô phỏng thông qua bộ công cụ chuẩn OpenAI Gym.
  • Tự thiết lập quy trình thu thập, định dạng dữ liệu và gán nhãn cho mô hình SSD nhận diện đối tượng và FCN phân vùng ngữ nghĩa.

Về phương pháp đánh giá (Assessment methods), giáo trình định hướng kiểm tra năng lực thông qua tính toàn vẹn của mã nguồn (code reproducibility), khả năng hội tụ của các giá trị loss trong quá trình huấn luyện, tính chuẩn xác của các số liệu thống kê (accuracy, IoU), và chất lượng trực quan của dữ liệu tổng hợp (đối với các mô hình sinh GAN/VAE).

Về hướng dẫn tự học (Self-study guidelines), người học được khuyến khích tương tác trực tiếp với kho mã nguồn mẫu trên GitHub (PacktPublishing/Advanced-Deep-Learning-with-Keras). Quá trình tự học đòi hỏi việc chủ động biên soạn lại từng khối lệnh, can thiệp vào các tham số mạng (hyperparameters), và thực hiện các thí nghiệm so sánh để kiểm chứng tác động của từng phương pháp tối ưu hóa.


Điểm nổi bật và cập nhật

So với ấn bản đầu tiên (phát hành tháng 10 năm 2018), ấn bản thứ hai (tháng 2 năm 2020) mang các cập nhật cấu trúc mang tính kỹ thuật quan trọng:

  • Đồng bộ hóa toàn diện với TensorFlow 2.0: Mã nguồn loại bỏ các phụ thuộc vào phiên bản Keras đa backend (Theano, CNTK) cũ, chuyển toàn bộ sang sử dụng thư viện tensorflow.keras (tf.keras). Việc chuyển dịch này tận dụng cơ chế thực thi eager execution mặc định và chuẩn hóa quy trình triển khai mô hình.
  • Bổ sung ba chương chuyên đề hoàn toàn mới:
    • Chương 11 (Object Detection): Tập trung vào thuật toán SSD, giải quyết bài toán phát hiện vị trí và định danh đối tượng đa tỷ lệ.
    • Chương 12 (Semantic Segmentation): Đi sâu vào mạng tích chập hoàn toàn (FCN) nhằm phân loại nhãn điểm ảnh chi tiết.
    • Chương 13 (Unsupervised Learning Using Mutual Information): Cung cấp giải pháp phân cụm phi giám sát dựa trên nguyên lý lý thuyết thông tin, giảm sự phụ thuộc vào dữ liệu gán nhãn thủ công.
  • Tích hợp các xu hướng nghiên cứu đối kháng hiện đại: Cập nhật các kiến trúc GAN chuyên sâu như WGAN để khắc phục điểm yếu toán học của khoảng cách Jensen-Shannon, ACGAN trong bài toán có điều kiện, InfoGAN và StackedGAN để phân tách các thuộc tính tạo sinh một cách có kiểm soát.
  • Tính ứng dụng công nghiệp: Các thuật toán được lựa chọn trong giáo trình liên kết trực tiếp tới các ứng dụng kỹ thuật thực tế như hệ thống hỗ trợ lái tự động (nhận diện vật cản qua SSD và phân đoạn bề mặt qua FCN), xử lý hình ảnh và chuyển đổi phong cách đồ họa qua CycleGAN, và giải quyết bài toán tối ưu hóa hành động trong điều khiển robot thông qua Policy Gradient.

Đối tượng sử dụng giáo trình

Giáo trình phục vụ trực tiếp cho các nhóm đối tượng học thuật và kỹ thuật:

  • Sinh viên đại học và học viên cao học: Sinh viên năm cuối hoặc học viên sau đại học thuộc các ngành Khoa học Máy tính, Kỹ thuật Phần mềm, Trí tuệ Nhân tạo, Hệ thống Thông tin và Điện tử - Viễn thông có định hướng chuyên sâu về Computer Vision và Reinforcement Learning.
  • Yêu cầu điều kiện tiên quyết (Prerequisites):
    • Kỹ năng lập trình thành thạo ngôn ngữ Python 3.
    • Nền tảng toán học cấp độ đại học: Giải tích (đạo hàm ma trận, vector), Đại số tuyến tính (phép toán ma trận, không gian vector), Xác suất và Thống kê (phân phối xác suất, ước lượng biến số, kỳ vọng).
    • Kiến thức học máy và học sâu căn bản: Đã hiểu cấu trúc Perceptron, thuật toán lan truyền ngược (backpropagation) và các tầng tích chập căn bản.
  • Giảng viên đại học: Có thể sử dụng tài liệu làm khung bài giảng cho học phần "Học sâu nâng cao" (Advanced Deep Learning) hoặc "Chuyên đề Thị giác máy tính và Học tăng cường". Cấu trúc phân đoạn của từng chương giúp dễ dàng thiết kế các bài thực hành trong phòng lab (Lab sessions).
  • Kỹ sư học máy và nhà nghiên cứu (ML Engineers & Researchers): Phục vụ như một tài liệu tham khảo kỹ thuật để chuyển đổi các bài báo khoa học (research papers) thành mã nguồn Keras có thể triển khai được trong môi trường sản xuất.

Câu hỏi thường gặp

1. Giáo trình này phù hợp với ai?

Giáo trình được thiết kế cho sinh viên năm cuối, học viên cao học chuyên ngành công nghệ thông tin/khoa học máy tính, và các kỹ sư học máy muốn chuyển hóa các mô hình lý thuyết toán phức tạp thành mã nguồn Keras thực thi.

2. Cần trang bị những kiến thức nền tảng nào trước khi học?

Người học cần có kiến thức toán học đại học vững chắc (giải tích, đại số tuyến tính, xác suất thống kê), thành thạo lập trình Python 3, và đã nắm được các nguyên lý học sâu cơ bản (cơ chế hoạt động của MLP, CNN, các hàm kích hoạt và thuật toán lan truyền ngược).

3. Điểm khác biệt của giáo trình này so với các tài liệu nhập môn khác là gì?

Giáo trình không dừng lại ở các bài toán phân loại nhãn đơn giản bằng mô hình Sequential API. Thay vào đó, tài liệu đi thẳng vào các kiến trúc nâng cao: mạng đồ thị đa nhánh (ResNet, DenseNet), mạng đối kháng sinh dữ liệu (DCGAN, WGAN, CycleGAN, InfoGAN), mô hình sinh biến phân (VAE), học tăng cường liên tục (Policy Gradient), và học không giám sát dựa trên Tương hỗ thông tin.

4. Cần cấu hình phần cứng như thế nào để thực hành các nội dung trong sách?

Tác giả khuyến nghị hệ thống cần có bộ xử lý đồ họa GPU của NVIDIA với kiến trúc tối thiểu tương đương NVIDIA GTX 1060 để đảm bảo thời gian huấn luyện khả thi. Giáo trình được kiểm thử trên hệ thống chạy Ubuntu Linux 18.04 LTS hoặc macOS Catalina, cài đặt TensorFlow 2 và driver CUDA/cuDNN tương thích.

5. Giáo trình cung cấp những tài nguyên bổ trợ nào?

Người học được cung cấp kho mã nguồn mở hoàn chỉnh trên GitHub (PacktPublishing/Advanced-Deep-Learning-with-Keras), tệp hình ảnh màu trực quan cho toàn bộ các biểu đồ và kết quả sinh ảnh của các mô hình, cùng các chỉ dẫn cài đặt môi trường mở rộng như OpenAI Gym, Matplotlib, Graphviz.


Kết luận

Giáo trình Advanced Deep Learning with TensorFlow 2 and Keras cung cấp một hệ thống lý thuyết chuẩn mực và thực nghiệm toàn diện về các cấu trúc học sâu hiện đại. Bằng việc kết hợp chặt chẽ giữa toán học nền tảng và mã nguồn thực thi trên nền tảng tf.keras, tác phẩm giúp người học chuẩn hóa quy trình nghiên cứu và phát triển các mô hình nơ-ron chuyên sâu.

Lộ trình học tập khuyến nghị bắt đầu từ việc chuẩn hóa kỹ năng xây dựng mạng phức tạp qua Functional API (Chương 1-2), tiếp nối bằng các mô hình sinh dữ liệu và biểu diễn tiềm ẩn (Chương 3-8), sau đó mở rộng sang các kỹ thuật điều khiển tối ưu trong Học tăng cường (Chương 9-10), và kết thúc bằng việc giải quyết các bài toán thị giác máy tính và học phi giám sát (Chương 11-13). Người học cần tích cực khai thác kho mã nguồn mẫu và các tập dữ liệu mở đi kèm để hoàn thiện năng lực triển khai thực tế.