4 điểm bởi GN⁺ 2025-10-08 | 1 bình luận | Chia sẻ qua WhatsApp
  • Bài viết này giới thiệu các khái niệm cơ bản của đại số tuyến tính kèm minh họa
  • Phần đầu tập trung giải thích hai khái niệm khử Gausshình theo hàng vs hình theo cột
  • Sử dụng các ví dụ thực tế (tiền xu, thực phẩm) để giải thích dễ hiểu về phương trình tuyến tính và quá trình tìm nghiệm
  • Nhấn mạnh sự chuyển đổi trong tư duy toán học vượt ra ngoài dãy số, như vectorký pháp ma trận
  • Nhấn mạnh rằng cốt lõi của đại số tuyến tính là làm việc với mảng, vector, ma trận thay vì chỉ các con số

Giới thiệu

Bài viết này là tài liệu nhập môn dành cho những người đã biết đại số thông thường nhưng chưa biết đại số tuyến tính.
Hai khái niệm quan trọng đầu tiên được đề cập là khử Gauss (Gaussian elimination)hình theo hàng (row picture) vs hình theo cột (column picture).

Ví dụ về tiền

  • Giải thích bài toán tính xem cần bao nhiêu đồng nickel và penny để tạo ra 23 cent
  • x là số đồng nickel, y là số đồng penny. Khi lập thành biểu thức, đây trở thành một phương trình tuyến tính tạo ra 23 từ tổ hợp các giá trị của x và y
  • Trong ví dụ này có thể có nhiều nghiệm (ví dụ: 4 đồng nickel và 3 đồng penny, hoặc 23 đồng penny)
  • Nhấn mạnh rằng phương trình tuyến tính (linear equation) là biểu thức không có đường cong hay lỗ hổng, mọi thứ đều nằm trên một mặt phẳng
  • Khớp một con số với 2 biến thì dễ, nhưng khi cần khớp đồng thời hai con số với 2 biến thì bài toán trở nên phức tạp hơn, và đây là lúc khử Gauss phát huy tác dụng

Ví dụ về thực phẩm

  • Có hai loại thực phẩm như bánh mì (bread) và sữa (milk), và dựa trên thông tin về carbprotein của từng loại, cần tìm tổ hợp đáp ứng mục tiêu cho trước (ví dụ: 5g carb, 7g protein)
  • Trong trường hợp này cần lập hai phương trình để tìm giá trị của x (số hộp sữa) và y (số phần bánh mì)
  • Bài toán kiểu này được giải bằng khử Gauss

Khử Gauss

  • Giải thích quá trình viết lại thành hai phương trình tuyến tính, rồi trừ hoặc cộng một bội số nhất định của một phương trình vào phương trình kia để lần lượt khử các biến và thu hẹp giá trị cần tìm
  • Trong ví dụ, khử y để tìm x, rồi thế ngược lại để tìm giá trị của y
  • Kết quả là 3 phần sữa, 1 phần bánh mì
  • Có nhắc rằng khử Gauss là một kỹ thuật phổ quát với lịch sử lâu đời

Cách hiểu bằng hình ảnh

  • Nếu ở trên bài toán được giải theo cách hình theo hàng (row picture), thì giờ chuyển sang cách giải trực quan bằng hình/đồ thị
  • Biến đổi từng phương trình theo x (sữa) rồi vẽ các đường thẳng trên đồ thị
  • Đồ thị của phương trình thứ nhất biểu diễn mọi tổ hợp sữa-bánh mì thỏa mãn mục tiêu carb (các điểm nằm trên đường thẳng)
  • Phương trình thứ hai cũng được biểu diễn tương tự
  • Để đạt đồng thời cả hai mục tiêu, đáp án là điểm duy nhất nơi hai đường thẳng cắt nhau
  • Cách này cuối cùng cũng cho ra kết quả là 3 phần sữa, 1 phần bánh mì
  • Bài viết giải thích rằng khử Gauss là một kỹ thuật rất cơ bản nhưng thiết yếu, đã được dùng hơn 2000 năm ngay cả trước khi có đại số tuyến tính

Hình theo cột (Column Picture)

  • Trước đó ta tập trung vào hình theo hàng (row picture), tức xem từng phương trình riêng lẻ; giờ giới thiệu cách hình theo cột (column picture)
  • Gộp hai phương trình thành một biểu thức và biểu diễn các hệ số dưới dạng mảng (vector)
  • Có thể xem vector như một mảng có các phần tử được đánh số theo thứ tự (tương tự vector trong khoa học máy tính)
  • Biểu diễn vector bằng đồ thị: vector có thể được thể hiện như một điểm hoặc như một mũi tên
  • Khi nhìn trực quan phép cộng vector, có thể thấy trực giác con đường đi tới đáp án (ví dụ: cộng vector sữa ba lần và vector bánh mì một lần)
  • Giải thích rằng phép nhân và phép cộng vector cũng là các phép toán thực hiện trên từng phần tử tương ứng của vector
  • Cách hình theo cột dùng vector có thể trực quan hơn cách cũ ở nhiều khía cạnh

Hiểu về đại số tuyến tính

  • Nhắc lại rằng nội dung cốt lõi của đại số tuyến tính là chuyển từ đại số dựa trên con số sang tư duy dựa trên mảng, vector
  • Cả hình theo cột lẫn hình theo hàng đều là những cách trực quan hóa cốt lõi của đại số tuyến tính
  • Cuối cùng giới thiệu ngắn gọn ký pháp ma trận (matrix), cho thấy toàn bộ hệ có thể được sắp xếp dưới dạng ma trận nhân vector

Nội dung tiếp theo

  • Ở các chương tiếp theo, những khái niệm quan trọng của đại số tuyến tính như ma trận, tích vô hướng (dot product) sẽ tiếp tục được đề cập
  • Nếu thấy hứng thú, bài viết gợi ý người đọc đăng ký theo dõi

Đọc thêm và kết

  • Cung cấp liên kết Instagram để xem thêm tài liệu và các tác phẩm nghệ thuật

1 bình luận

 
GN⁺ 2025-10-08
Ý kiến trên Hacker News
  • Tôi đồng ý rằng nội dung rõ ràng và hữu ích, nhưng các con số dùng trong ví dụ như 1 và 2 lại đồng thời đại diện cho bánh mì và sữa, nên khi nhìn ở dạng ma trận sẽ khó trực quan phân biệt số 1 nào là bánh mì, số 1 nào là sữa; nếu dùng các số khác nhau như 1, 2, 3, 4 thì có lẽ sẽ rõ ràng hơn nhiều

    • Tôi đồng ý với nhận xét này. Khi học đại số tuyến tính thì xuất hiện rất nhiều con số và thứ tự thực sự quan trọng. Vì vậy khi dùng số ví dụ, tôi thích các dãy số đặc biệt như dãy số nguyên tố hơn, vì cũng dễ theo dõi xem số nào đã đóng góp vào kết quả phép nhân
  • Tôi thực sự thích phần sau của bài blog, nhưng việc bắt đầu bằng phép khử Gauss thì, tôi không nghĩ ra từ nào thật chuẩn, nhưng có phần hơi "huyền bí". Nên có bài toán trước ("Làm sao giải hệ phương trình?" "Làm sao tìm giao điểm của hai đường thẳng?") rồi minh họa nó bằng đồ họa, sau đó mới giới thiệu phương pháp hay thuật toán thì sẽ hợp lý hơn. Làm ngược lại khiến tôi có cảm giác giống như dạy quy tắc dây chuyền trong giải tích trước khi nói về ý nghĩa hình học của nó

    • Tôi là tác giả — có lẽ bạn nói đúng. Tôi viết phần khử Gauss như một đoạn ôn lại vì nghĩ rằng phần lớn độc giả đã từng gặp nó rồi, và tôi muốn đi nhanh vào nội dung chính. Nếu còn ai khác cũng thấy khó ở phần này, tôi rất muốn nghe phản hồi; có lẽ tôi cần giải thích chậm hơn và chi tiết hơn

    • Tôi vẫn chưa thấy rõ những chỗ kiểu như "việc chúng ta có thể khử có nghĩa là gì?". Nhưng cách bạn (tác giả) đưa góc nhìn theo cột vào thì rất cuốn hút và thực sự hữu ích với người mới như tôi<br>Nhân tiện, có vô số giáo trình đại số tuyến tính, nhưng nội dung và thứ tự đều khác nhau. Vì vậy tôi nghĩ đây là một môn vừa khó dạy vừa khó hiểu. Do đó tôi cho rằng cần nhiều góc nhìn khác nhau hơn, vì không có một cách tiếp cận duy nhất phù hợp với tất cả mọi người

  • Tôi rất thích bài viết lần này. Có lẽ sẽ bớt rối hơn nếu dùng các ký tự biến khác thay vì chỉ dùng x, y cho bánh mì và sữa, vì sau này x, y lại bị chuyển thành x, y của những khái niệm khác trên đồ thị như carb và protein

    • Có vẻ đúng là đang có chút gì đó gây nhầm lẫn quanh phần biến số. Cần nghĩ thêm xem nên thay đổi chỗ nào thì tốt hơn
  • Lại được thấy thêm một tác phẩm của Aditya Bhargava. Tôi đã là fan từ thời Grokking Algorithms rồi

    • Cảm ơn bạn, quá trình viết cuốn sách đó thực sự rất vui
  • Nội dung khá ổn. Đại số tuyến tính từng hoàn toàn là một điều bí ẩn với tôi cho đến khi học xong một học kỳ ở đại học. Bài này được sắp xếp rất tốt<br>Nếu độc giả chưa quen với khái niệm vector, có lẽ sẽ còn tốt hơn nữa nếu giải thích ngắn gọn cách hai vector (độ lớn và hướng) lần lượt biểu diễn 1 ổ bánh mì và 1 hộp sữa như thế nào, và vector có thể được tịnh tiến hoặc cộng ra sao

  • Tôi ước gì thế giới có nhiều nội dung như thế này hơn. Làm nội dung dạy toán tốt thực sự rất khó; đây là nội dung quá tuyệt

  • Tôi rất thích cách giải thích trực quan và cách tạo động lực của bài này. Hiện tôi đang học đại số tuyến tính bằng một vài tài liệu như "The No Bullshit Guide to Linear Algebra" và thấy khá ổn. Nếu ai có thêm gợi ý về sách đại số tuyến tính thực dụng, áp dụng trực tiếp được ở mức này thì mong chia sẻ; phần lớn sách tôi thấy hoặc quá nặng lý thuyết hoặc có rào cản nhập môn quá cao

    • Tôi cũng đang xem qua các giáo trình LinAlg lúc này. Tôi quan tâm tới ML/AI nên tiếp cận từ góc nhìn đó<br>Tôi đã học đến phần đại số tuyến tính trên KA academy và dùng kèm các tài liệu, giáo trình khác<br>Mọi người thường sẽ giới thiệu 3B1B, Strang (khóa LinAlg của MIT OCW). 3B1B thì trực quan và rất tuyệt để nhập môn, nhưng với lần đầu học nghiêm túc tôi thấy hơi nhanh; còn Strang thì thực sự xuất sắc nhưng đôi lúc giảng hơi lan man nên khó bám theo, dù vậy tôi vẫn luôn dùng làm tài liệu bổ trợ<br>LADR4e (Linear Algebra Done Right) cũng tốt, nhưng phần chứng minh khá khó nên tôi vẫn chưa theo hết được<br>Cũng có 'Linear Algebra done wrong' và sách của Hefferon, nhưng chúng cũng chuyển khá nhanh sang thiên về chứng minh; có lẽ rất tốt cho lần học thứ hai hoặc thứ ba<br>Ngoài ra còn có hẳn một môn gọi là 'abstract linear algebra', nhưng độ phức tạp so với sách đại số tuyến tính truyền thống cũng không chênh nhiều<br>Tài liệu mà tôi đã học được khá xa là giáo trình ROB101 (https://github.com/michiganrobotics/rob101/blob/main/Fall%202021/Textbook/ROB_101_December_2021_Grizzle.pdf), tôi dùng nó làm tài liệu chính cho tới phần độc lập tuyến tính, song song với bài giảng Strang của MIT<br>ROB101 cũng xử lý tốt khía cạnh lập trình, nên khá phù hợp để liên hệ với code trong ML/AI<br>Tôi cũng có vài giáo trình toán Đông Âu để luyện bài tập<br>Gần đây tôi đang ôn lại khóa/tài liệu ở https://www.math.ucdavis.edu/~linear/ và cũng nhận được nhiều hỗ trợ từ ghi chú ở https://math.berkeley.edu/~arash/54/notes/

    • Một cuốn tôi đã đọc rất hứng thú là "Introduction to Applied Linear Algebra – Vectors, Matrices, and Least Squares" https://web.stanford.edu/~boyd/vmls/

    • Bạn nói mục tiêu là "mức độ thực dụng, áp dụng trực tiếp được", vậy cụ thể bạn muốn áp dụng vào đâu? Theo tôi, học lý thuyết (ví dụ như đại số tuyến tính) chỉ vì động cơ thực dụng thì hơi lạ; thật ra có thể vừa đọc sách ứng dụng thực tế vừa học lý thuyết song song cũng được. Và nếu rơi vào tình huống thật sự cần lý thuyết, thì dù nội dung có khó đến đâu cuối cùng vẫn phải học thôi<br>Ví dụ, đại số tuyến tính rất quan trọng khi học cơ học lượng tử, nên nếu mục tiêu là vậy thì tôi lại nghĩ xem giáo trình cơ học lượng tử trước còn tốt hơn

    • Bạn nói mục tiêu là "thực dụng, áp dụng trực tiếp được", thì tôi cũng vậy. Tôi nghĩ ML là một lĩnh vực hoàn hảo để dùng nó trong thực tế, và tôi cũng đang chuẩn bị một series nói về điều này

  • Tôi cảm thấy nhất định phải nhắc đến series đại số tuyến tính của 3blue1brown. Nó ở mức cao hơn bài này một chút, nhưng cách giải thích thực sự rất xuất sắc và vẫn rất dễ tiếp cận<br>https://youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab

    • Các video của 3B1B thực sự đáng kinh ngạc. Nhưng các video đại số tuyến tính của họ hơi nhanh với tôi, và đó cũng là lý do tôi bắt đầu viết series này

    • Việc framework đồ họa mà 3B1B dùng được công khai mã nguồn mở thật đáng nể https://github.com/ManimCommunity/manim

  • Mỗi lần đọc kiểu bài này, lúc đầu tôi đều nghĩ "Wow! Cuối cùng cũng có người giải thích toán theo cách mà mình có thể hiểu được rồi!" nhưng đến phần khử Gauss thì tôi lại bắt đầu mất dấu nội dung

  • Cái tên Josh Starmer làm tôi tự động nhớ tới câu "Bam!". Không biết còn ai nhớ cuốn sách giải thích machine learning bằng hình vẽ của ông ấy không; trước đây tôi cũng hay xem kênh YouTube của ông. Tôi nghĩ dạng nội dung giải thích như thế này thực sự khiến việc học trở nên thú vị hơn nhiều