Tìm hiểu Deep Learning
(udlbook.github.io)- Đây là một trang học tập tập hợp bài thực hành lập trình, tài liệu bài giảng và tài liệu đọc thêm ở một nơi, giúp học theo cuốn sách Understanding Deep Learning năm 2023 của MIT Press do Simon J.D. Prince viết
- Cung cấp 68 Python notebook bao quát toàn bộ cuốn sách, theo hình thức thực hành trong đó người học đọc nội dung chính và điền vào các đoạn mã còn trống
- Tài liệu dành cho giảng viên bao gồm tệp hình ảnh, video bài giảng cho 12 chương đầu, slide, booklet đáp án, hình tương tác dùng trong lớp học và cả tệp LaTeX cho các phương trình
- Slide được cấu trúc với mục tiêu là một khóa deep learning bậc đại học gồm 20 bài giảng, đi từ supervised learning đến CNN, tạo ảnh, Transformers and LLMs
- Tài liệu đọc thêm mở rộng sang computer vision, toán học cho machine learning, tối ưu hóa, reinforcement learning, lý thuyết ML, Responsible AI, v.v., nên có thể dùng cho cả tự học lẫn chuẩn bị bài giảng
Thông tin sách và trích dẫn
- Understanding Deep Learning là cuốn sách do Simon J.D. Prince viết; thông tin trích dẫn BibTeX cho biết sách được MIT Press xuất bản năm 2023
- Mục BibTeX được cung cấp bao gồm các thông tin sau
author = "Simon J.D. Prince"title = "Understanding Deep Learning"publisher = "The MIT Press"year = 2023url = "http://udlbook.com"
Bài thực hành lập trình theo cuốn sách
- Trang này cung cấp 68 bài thực hành bằng Python notebook bao quát toàn bộ cuốn sách
- Bài thực hành có dạng điền mã còn trống dựa trên nội dung chính
- Các notebook nằm trong kho
udlbook/udlbooktrên GitHub, và từng mục có thể mở bằng liên kếtipynb/colab -
Nền tảng và cấu phần mạng nơ-ron
- Các chương đầu đề cập đến toán nền tảng, supervised learning, mạng nơ-ron nông, hàm kích hoạt, hợp thành mạng và mạng nơ-ron sâu
- Bài thực hành về hàm mất mát bao gồm least squares loss, binary cross-entropy loss và multiclass cross-entropy loss
-
Tối ưu hóa và tính toán trong huấn luyện
- Các notebook về tối ưu hóa đề cập đến line search, gradient descent, stochastic gradient descent, momentum và Adam
- Bài thực hành tính gradient bao gồm backpropagation trên toy model, backpropagation tổng quát và initialization
-
Hiệu năng, regularization, CNN
- Bài thực hành liên quan đến hiệu năng đề cập đến MNIST-1D performance, bias-variance trade-off, double descent và high-dimensional spaces
- Bài thực hành regularization bao gồm L2 regularization, implicit regularization, ensembling, Bayesian approach và augmentation
- Bài thực hành convolution bao gồm 1D convolution, MNIST-1D convolution, 2D convolution, downsampling & upsampling và convolution cho MNIST
-
Các chủ đề deep learning hiện đại
- Các notebook liên quan đến ổn định mạng và kiến trúc đề cập đến shattered gradients, residual networks và batch normalization
- Bài thực hành Transformer bao gồm self-attention, multi-head self-attention, tokenization và decoding strategies
- Chủ đề graph neural network bao gồm graph representation, graph classification, neighborhood sampling và graph attention networks
- Bài thực hành mô hình sinh bao gồm GAN toy example, Wasserstein distance, normalizing flows, latent variable models và diffusion models
- Bài thực hành reinforcement learning bao gồm Markov decision processes, dynamic programming, Monte-Carlo methods, temporal difference methods và control variates
- Các chủ đề cuối gồm random data, full-batch gradient descent, lottery tickets, adversarial attacks, bias mitigation và explainability
Bài giảng và tài liệu dành cho giảng viên
- Tài nguyên dành cho giảng viên bao gồm tài liệu hình ảnh, slide và booklet đáp án
- Có cung cấp liên kết đăng ký để nhận answer booklet khi đăng ký với MIT Press
- Interactive figures là tài liệu dùng để giải thích ý tưởng trong lớp học
- Có cung cấp working Latex file chứa tất cả phương trình
-
Slide deep learning bậc đại học gồm 20 bài giảng
- Slide là tài liệu cho 20 lecture undergraduate deep learning course
- Các chủ đề slide đã công bố bao gồm Introduction, Supervised Learning, Shallow Neural Networks, Deep Neural Networks, Loss Functions, Fitting Models, Computing Gradients, Initialization, Performance, Regularization, Convolutional Networks, Image Generation, Transformers and LLMs
Tài liệu đọc thêm
- Trang này gom các bài viết, blog và sách khác có phong cách tương tự Understanding Deep Learning và dùng cùng hệ ký hiệu làm tài liệu bổ sung
-
Nền tảng computer vision và machine learning
- Computer vision: models, learning, and inference là cuốn sách được CUP xuất bản năm 2012, tập trung vào mô hình xác suất và bao gồm nhiều nội dung ML thời kỳ trước deep learning
- Tài liệu toán học cho machine learning đề cập đến đại số tuyến tính, nhập môn xác suất, phân phối xác suất, khớp phân phối xác suất và phân phối chuẩn
- Tài liệu machine learning bao gồm learning and inference, regression models, classification models, few-shot learning và meta-learning
-
Transformers, LLMs, NLP
- Tài liệu Transformers và LLMs bao gồm tổng quan LLM, Transformers I·II·III, huấn luyện và fine-tuning LLM, tăng tốc inference cho LLM
- Tài liệu NLP đề cập đến neural natural language generation, parsing I·II·III và XLNet
- Các chủ đề liên quan đến Transformer bao gồm self-attention, position encoding, cấu trúc multi-head, Transformer block, encoder, decoder và training tricks
-
Tối ưu hóa, mô hình thời gian, reinforcement learning
- Tài liệu tối ưu hóa bao gồm gradient-based optimization, Bayesian optimization và SAT Solvers I·II·III
- Tài liệu mô hình thời gian đề cập đến Kalman filter, smoothing, Extended Kalman filter, Unscented Kalman filter và particle filtering
- Tài liệu reinforcement learning Transformers in RL bao gồm các thách thức của RL, lợi thế của Transformer trong RL, representation learning, reward learning, policy learning, interpretability và applications
-
ODEs, SDEs, lý thuyết ML
- Nhóm ODEs and SDEs in machine learning đề cập đến ODEs, SDEs, gradient descent, stochastic gradient descent, residual networks, diffusion models và physics-informed machine learning
- Tài liệu liên quan bao gồm nhập môn ODE, closed-form solutions của ODE, phương pháp số cho ODE, stochastic processes and SDEs
- Tài liệu ML Theory bao gồm gradient flow, neural tangent kernel, ứng dụng NTK, Bayesian ML I·II, Bayesian neural networks và neural network Gaussian processes
-
Unsupervised learning, graphical models, Responsible AI
- Tài liệu unsupervised learning đề cập đến complex data densities, variational autoencoders và normalizing flows
- Tài liệu graphical models bao gồm graphical models, models for chains and trees và models for grids
- Tài liệu Responsible AI bao gồm bias and fairness, explainability I·II và differential privacy I·II
1 bình luận
Ý kiến Hacker News
Các bình luận ở đây nhìn chung chia thành hai nhóm: 1) vẫn có thể xây dựng hệ thống AI mà không cần kiến thức này, nên không biết cũng được, 2) nếu muốn hiểu điều gì thực sự đang diễn ra thì cần kiến thức nền tảng như thế này
Cả hai đều đúng, và có vẻ lĩnh vực này đang tách thành hai năng lực: kỹ sư ML và nhà khoa học/nghiên cứu ML
Một đội có cả hai thì tốt. Nhà khoa học có thể chậm hơn, còn kỹ sư thì thử nhiều API và mô hình mã nguồn mở rất nhanh, nhưng khi bị kẹt hoặc phải thay đổi thuật toán thì nhiều kỹ sư bắt đầu lúng túng. Lúc đó cần kiểu tư duy R&D mà nhiều kỹ sư không quen, và nhà khoa học AI trở nên quan trọng
Trong 10 năm qua tôi đã thấy cùng một kiểu lặp lại ở nhiều đội. Công ty có thêm chút ngân sách và tin rằng vấn đề của mình rất đặc biệt, rồi tuyển các tiến sĩ khoa học dữ liệu có vài bài báo, nhưng nhiều người trong số đó chỉ biết R và trình độ Python thì cỡ vừa học xong bootcamp
Sau 3 tháng vẫn chẳng có mấy kết quả, chỉ đầy Jupyter notebook, không có mã production, thậm chí có người còn không có cả môi trường thí nghiệm đúng nghĩa
Bài toán kinh doanh vẫn còn nguyên. Rồi công ty nhận ra rằng khi có quá nhiều nhà khoa học dữ liệu và thiếu kỹ sư dữ liệu/ML, họ sẽ mắc kẹt ở khâu triển khai production hoặc vì hiểu Python kém mà tạo ra một Death Star gồm pipeline dữ liệu + thuật toán + hạ tầng, tiêu tốn tài nguyên nhiều hơn 70%
Dự án bị chậm, mọi người bắt đầu sốt ruột. Giờ thì cả đội tốn 2,5 triệu USD mỗi năm còn không thể phục vụ qua batch hay REST API nên không đưa ra nổi cả proof of concept
Công ty mất đà, trong khi đối thủ tung ra giải pháp đi trước dù chưa hoàn hảo, thu hút người dùng rồi tiếp tục cải thiện. Sau đó PM và engineering manager cãi nhau về trách nhiệm, còn VP sản phẩm/kỹ thuật thì đi tìm vật tế thần. Một vài tiến sĩ bị sa thải và quay về dạy ở đại học địa phương
Theo nghĩa đó, tôi không hiểu sự tách biệt kỹ sư ML/nhà khoa học ML xuất phát từ đâu, và nó có vẻ như một kiểu phân chia để một số người tự thỏa mãn
Với tư cách là người đã bỏ lỡ chuyện này, tôi tò mò không biết học nó bây giờ chỉ còn mang ý nghĩa lịch sử hay vẫn còn liên quan tới việc làm trong tương lai
Về AI thì dễ tưởng tượng như OpenAI sẽ cướp bữa trưa của tất cả mọi người; suy nghĩ đó có hoàn toàn lệch lạc không?
Tài liệu như video giải thích LLM gần đây của Karpathy là kiểu nội dung ít cường điệu, khá tốt cho người phổ thông, nhưng cảm giác thực chiến sâu hơn một bậc thì khó có được nếu không tự làm. Không cần phải thuộc lòng toàn bộ toán học, nhưng nên biết “giao diện” của các thành phần trông như thế nào
Điều quan trọng là hiểu mỗi kỹ thuật mô hình thực sự làm gì, đặc biệt là nó làm gì ở thời điểm suy luận, khi phải tích hợp tốt với phần còn lại của stack
Về câu hỏi nó còn liên quan không: deep learning, theo nghĩa là mạng nơ-ron dày được huấn luyện để tối ưu một hàm cụ thể, về mặt thực tiễn gần như không thay đổi căn bản trong khoảng 15 năm qua, và về lý thuyết thì còn lâu hơn nữa; với phần lớn ứng dụng, nó quan trọng và được dùng rộng rãi hơn nhiều so với kiểu OpenAI
Những việc như tối ưu quảng cáo hay mô hình tài chính, nơi có ước lượng số trị, không dùng LLM mà dùng mô hình thiết kế theo mục tiêu như một phần của hệ thống lớn hơn. Giao diện kiểu “đưa số vào, nhận số ra” dễ giải thích, dễ tích hợp vào stack phần mềm, và cũng dễ đo lường
Nó có biên độ sai số dễ hiểu, đôi khi thậm chí còn nhất quán. Nó cũng có giao diện có thể kiểm soát được, không đột nhiên phun ra bí mật công ty hay quên tuần tự hóa JSON. Độ trễ và chi phí cũng thấp hơn rất nhiều
Nếu bạn cần render một trang web trong dưới 100ms hoặc chạy tối ưu hóa trên hàng triệu lựa chọn, thì AI tạo sinh không phải lựa chọn thực tế, và tôi nghĩ sau này cũng khó mà là như vậy
Tôi không có nền tảng quá mạnh về toán hay ML lý thuyết, nhưng đã dành phần lớn 10 năm qua để cùng các chuyên gia ML xây dựng hạ tầng, pipeline dữ liệu và giám sát. Tôi không thể tích phân sigmoid ngay tại chỗ, nhưng đó không phải trọng tâm. Tôi đã từng làm qua, có trực giác về cách hàm đó hoạt động, và có thể suy luận về nó như một thành phần hộp đen
Không giống các mảng khác của ML, deep learning có các thành phần khớp nối với nhau rất tốt. Nếu muốn, bạn có thể dùng Transformer cùng với CNN. Ngoài ra nó cho phép áp dụng machine learning vào mọi loại dữ liệu như văn bản, hình ảnh, video, âm thanh, và còn mở rộng rất tự nhiên về mặt tính toán
Với tư cách là người tham gia khá sâu trong lĩnh vực này, tôi thấy tiếc khi vì LLM mà mọi người xa rời ML và deep learning, rồi hiểu lầm rằng “giờ chẳng còn lý do gì để làm nữa”. Các thuật toán lớn có chi phí chạy đắt, throughput chậm, và nhìn chung cho hiệu năng kém hơn mô hình thiết kế theo mục tiêu. Trong nhiều tác vụ, chúng cũng không dễ dùng hơn mạng encoder
Có thể tôi thiên vị, nhưng tôi cho rằng đây là một trong những lĩnh vực thú vị nhất để học trong điện toán. Nếu có ý tưởng hay, bạn vẫn có thể làm thứ ở mức tiên tiến với GPU phổ thông tại nhà. Chỉ cần tìm một ngách không nhận được nhiều chú ý như LLM
Deep learning là một phần trong đó. Nhiều phần đã được bọc sẵn trong thư viện và API, nên công việc trở thành chuẩn bị dữ liệu đúng, gọi đúng API, rồi tận dụng kết quả
Ví dụ, OpenAI sẽ không quan tâm đến việc phát triển một mạng nơ-ron nhúng nhỏ trên chip cảm biến để phát hiện theo thời gian thực một phân tử cụ thể trong không khí
Cuốn sách này rất ấn tượng. Còn có cả một chương về chủ đề tôi rất thích là tính hiệu quả phi lý của deep learning. Có cuốn nào khác cũng đáng chú ý không?
Ai vội thì xem slide 123 là được. Các gợi ý cốt lõi là Murphy, Gelman, Barber và Deisenroth
Cũng nên lưu ý rằng các slide này có thiên kiến Bayes. Dù vậy, Murphy vẫn là một cuốn sách deep learning rất tốt, và đi từ mô hình tuyến tính tổng quát sang deep learning cũng là một lộ trình hay
Một điều thú vị là bài báo Attention tai tiếng kia đang tiến sát mốc 10 nghìn lượt trích dẫn và có lẽ sẽ đạt được vào cuối năm nay. Rất có thể đây là bài báo chạm tới cột mốc quan trọng này nhanh nhất
Những sách deep learning được viết trước bài báo Attention giờ nên bị xem là lỗi thời và cần cập nhật. Tình huống này giống như một giáo trình vật lý cũ có định luật Newton nhưng lại thiếu phương trình tương đương khối lượng-năng lượng của Einstein
Nếu bắt đầu từ bây giờ để đọc và học AI, liệu có thể đạt đến mức gần như chuyên gia không?
Tôi lo rằng mình đang bắt đầu một hành trình đòi hỏi phải có bằng thạc sĩ hay tiến sĩ
Tuy nhiên, nó có thể thiếu những bài học thực chiến như các mẹo nhỏ và trực giác cần để vận hành hệ thống thực tế. Cái này cần thời gian, và theo tôi, vì là khoa học nên nó cũng phần nào là nghệ thuật
Những câu hỏi như “Mình có thể trở thành chuyên gia không?” quá mơ hồ nên khó trở thành cột mốc tốt
Tôi đã làm việc với nhiều nền tảng machine learning ở các công ty công nghệ nổi tiếng trong 10 năm, và mọi thứ tôi từng làm đều lỗi thời khá nhanh
Từ thuật toán ML đến nền tảng tính toán, tất cả đều rất ngắn hạn. Cộng thêm việc phần lớn đổi mới ML lại đến từ một số ít công ty tinh hoa, việc học nhiều tài liệu kiểu này tự nó có cảm giác như một mâu thuẫn
Nhưng thuật toán và ý tưởng machine learning thì không. Nếu bạn học SVN hay naive Bayes mà ngày nay vẫn không rút ra được điều gì hữu ích, thì thực ra bạn đã không học được gì cả
Ví dụ, Transformer được phát triển để giải quyết hiện tượng mất dần gradient của LSTM trên chuỗi dài, và để cải thiện việc LSTM về bản chất là tuần tự theo chiều thời gian nên không tận dụng GPU tốt
Nền tảng cơ bản không thay đổi nhiều. Lĩnh vực này có nhiều dòng phát triển, và có rất nhiều thuật toán tồn tại lâu bền và vẫn được dùng trong thực tế. Dĩ nhiên, nếu muốn thì bạn có thể nâng cấp một vài thứ, nhưng nếu cứ mải miết đuổi theo con thỏ trắng thì thứ còn lại trong tay chỉ là một cục bông
Cá nhân tôi cho rằng công nghệ được thúc đẩy bởi cùng loại lực như tiến hóa. Hình như Linus Torvalds cũng từng nói Linux đã tiến hóa thông qua chọn lọc tự nhiên
Đánh giá những cuốn sách kiểu này thật sự rất khó. Chỉ nhìn mục lục mà đánh giá được sao?
Tôi muốn biết tác giả là ai, có tác phẩm nào khác được đánh giá cao không, có review tốt từ những người hiểu nội dung không, và có review tốt từ sinh viên chưa biết gì không
Tôi định mua bản giấy của cuốn này
Bạn hỏi có phải chỉ nhìn mục lục để đánh giá không, nhưng trên trang được liên kết có thể tải về hơn 500 trang bản nháp của chương 1 đến 21
Tác giả Simon J. D. Prince là giáo sư danh dự ngành khoa học máy tính tại University of Bath, đồng thời là tác giả của Computer Vision: Models, Learning and Inference. Ông là nhà khoa học nghiên cứu chuyên về AI và deep learning, và từng dẫn dắt các nhóm nhà khoa học nghiên cứu trong cả học thuật lẫn công nghiệp tại Anthropics Technologies Ltd, Borealis AI và những nơi khác
Trong số các công bố được đánh giá cao khác có hơn 50 bài báo phản biện tại các hội nghị hàng đầu như CVPR, ICCV, SIGGRAPH: https://scholar.google.com/citations?user=fjm67xYAAAAJ&hl=en
Về review, cuốn sách này vẫn chưa xuất bản, và thứ bạn đang xem đúng nghĩa là một bản nháp miễn phí. Trên Amazon đã có trang đặt trước với giá 85 USD
https://github.com/udlbook/udlbook/releases/download/v1.16/U...
Hy vọng đây không phải câu hỏi ngớ ngẩn, nhưng làm sao để mua bản giấy?
https://mitpress.mit.edu/9780262048644/understanding-deep-le...
Trong hình của bản PDF, có vẻ như Why does deep learning work đang trỏ tới Deep learning and ethics, và ngược lại cũng vậy
Với góc nhìn của một người lần cuối đọc cuốn Deep Learning của Ian Goodfellow vào năm 2016, việc không có chương về RNN nhưng lại có chương về Transformer là điều khá thú vị
nên hiện nay không còn được dùng nhiều. Tuy vậy, cá nhân tôi vẫn thấy nó đủ thú vị về mặt khái niệm để đáng được đề cập trong những bài giảng như thế này