2 điểm bởi GN⁺ 2023-11-27 | 1 bình luận | Chia sẻ qua WhatsApp
  • Đâ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 = 2023
    • url = "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/udlbook trên GitHub, và từng mục có thể mở bằng liên kết ipynb/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

 
GN⁺ 2023-11-27
Ý 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ư MLnhà 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

    • Kinh nghiệm của tôi lại gần như ngược lại. Mọi người đánh giá thấp khả năng xây dựng hệ thống, và việc phần lớn các vấn đề đáng giải quyết đòi hỏi những kỹ thuật nhàm chán, không hào nhoá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
    • Có thể xem sự phân biệt này như một phép so sánh tương tự không? Người tạo ra mô hình và người sử dụng mô hình, người tạo ra ngôn ngữ lập trình và người dùng ngôn ngữ đó
    • Nghe như một câu chào hàng để bán vai trò nhà khoa học AI vậy
    • Khi vướng trong thực tế thì quay lại nền tảng gần như là điều hiển nhiên, và người giỏi nên cố làm được cả hai
      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?

    • Với mục đích thực tế, điều quan trọng nhất là học xem thứ này thực sự có thể làm được gì. Quanh ML có rất nhiều kiểu suy nghĩ mơ hồ như “ném AI vào là nó sẽ tự nhiên tốt hơn”
      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
    • Đây là nói về deep learning, phạm trù rộng hơn bao trùm cả LLM. Nếu bạn quan tâm đến machine learning thì nên học deep learning, và nó rất hữu ích vì nhiều lý do
      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
    • Nếu bạn muốn xây dựng hệ thống ML thì điều này vẫn rất liên quan. OpenAI chiếm nhiều sóng truyền thông, nhưng trên thực tế vẫn có rất nhiều đội đang làm ra những thứ hữu ích và thú vị
    • Từ góc nhìn ứng dụng, điều quan trọng hơn là hiểu toàn bộ quy trình ML vận hành ra sao, các khái niệm cốt lõi là gì, và các thành phần khớp với nhau như thế nào
      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ả
    • Thị trường dịch vụ AI có thể sẽ do một ai đó thống trị, nhưng các ứng dụng AI biên nhỏ thì quá nhiều để một nhà cung cấp có thể nắm hết
      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?

    • Bài trình bày này của DeepMind tổng hợp khá tốt các sách ML cơ bản: https://drive.google.com/file/d/1lPePNMGMEKoaDvxiftc8hcy-rFp...
      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
    • Thật sự rất ấn tượng, và có vẻ có tiềm năng trở thành giáo trình tiêu biểu của chủ đề này
      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
    • https://news.ycombinator.com/item?id=38425368
  • 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ĩ

    • Nếu đọc cuốn sách này, bạn sẽ nắm được nền tảng lý thuyết rất vững và hiểu sâu hơn nhiều kỹ sư ML
      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
    • Trong một thế giới mà lượng thông tin cần học cứ tăng lên mãi, cột mốc hữu ích gần như duy nhất là tự hỏi: “Mình có thích học cái này không?”
      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
    • Rất khó trả lời nếu không biết mục tiêu là gì. Tùy vào việc bạn muốn trở thành người làm deep learning thực tế hay nhà nghiên cứu
    • Có lẽ khả năng cao là bạn sẽ không trở thành chuyên gia, nhưng tôi cũng không rõ vì sao bạn lại muốn trở thành chuyên gia
  • 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

    • Các nền tảng machine learning thì sẽ lỗi thời
      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ả
    • Khá nhiều kỹ thuật của deep learning đã đứng vững trước thử thách của thời gian. Các kỹ thuật mới cũng thường dựa trên kỹ thuật cũ hoặc được phát triển để khắc phục nhược điểm của chúng
      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
    • Tôi phản đối mạnh. Nếu nó lỗi thời, rất có thể là vì bạn chỉ chạy theo mốt mới nhấ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
    • Trong công nghệ có rất ít thứ giữ nguyên như cũ. Cần nhìn công nghệ như một dạng tiến hóa khác
      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
    • Vậy thì nên học những kiến thức nền tảng nào? Chẳng phải trong ML cũng có những nguyên tắc chung vẫn còn hiệu lực theo thời gian sao?
  • Đá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 có thể mạnh dạn giới thiệu tác giả này. Cuốn trước đó là Computer Vision: Models, Learning, and Inference dễ đọc, tiếp cận chủ đề từ một góc nhìn không chính thống, và có rất nhiều hình minh họa tuyệt vời hỗ trợ cho phần văn bản
      Tôi định mua bản giấy của cuốn này
    • Bạn có thể tự kiểm tra bằng tìm kiếm
      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
    • Toàn bộ PDF được cung cấp trên trang đó dưới dạng tải xuống miễn phí. Là liên kết đầu tiên ở trên cùng
      https://github.com/udlbook/udlbook/releases/download/v1.16/U...
    • Marcus Hutter đã viết trên [Marcus' AI Recommendation Page] rằng “Prince(2023) là giáo trình duy nhất thực sự xuất sắc về deep learning”
  • 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?

  • 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ị

    • Có thể xem như RNN đã thua trong xổ số phần cứng, vì về mặt cấu trúc nó kém hiệu quả khi huấn luyện trên phần cứng tiết kiệm chi phí hiện có
      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