Học toán làm quái gì nhỉ?

Cơ bản thì chúng ta học cái này làm cái quái gì nhỉ ? Nghĩ một ngày, bạn xuyên không về quá khứ, khi công cụ toán học có trong tay thì bạn ứng dụng được gì ...

Học toán làm quái gì nhỉ?

Mình có một đống sinh viên năm nhất. Gặp gradient descent, không hiểu đạo hàm nằm ở đâu trong đó, dù quy tắc đạo hàm thì đã học thuộc cả rồi.

Đó không phải lỗi của mấy đứa. Mình học lim, vi phân, tích phân cũng y hệt: thuần thủ tục bấm máy, không ai nói chúng tồn tại để làm gì. Lớp học đi từ định nghĩa tới ví dụ, còn ngoài đời bạn gặp tình huống trước rồi mới cần tới phép toán. Mình thử đi theo thứ tự thứ hai với chín phép toán. Tình huống thì mình mượn của Odysseus (đu trend, mình xem phim xong). Toán học giúp gì được Odysseus - người đi đánh thành Troy rồi phải tới năm thứ hai mươi mới về được Ithaca [1]: phép nào cũng bắt đầu từ một việc cần giải trong chuyến về nhà của ổng.

Cộng, trừ, nhân, chia: tiểu học

Phần này mình thấy khó viết nhất, vì bốn phép tính đầu nền tới mức hỏi "cộng để làm gì" nghe như hỏi "thở để làm gì".

Homer kể đoàn của Odysseus có mười hai con thuyền. Săn dê trên một hòn đảo xong, mỗi thuyền được chia chín con, riêng Odysseus được để dành mười con [1]. Nếu hôm đó bạn là người chia thịt, bạn không cần đếm từng con: mười hai phần, mỗi phần chín con, là \({}12 \times 9 = 108\), cộng thêm mười con của Odysseus là 118. Ngược lại, nếu chỉ biết có 108 con cho mười hai thuyền, phép chia cho bạn con số chín con mỗi thuyền. Còn phép trừ cho biết sáng hôm sau còn lại bao nhiêu, sau bữa tiệc kéo dài tới tận lúc mặt trời lặn.

Bốn panel minh hoạ bốn phép tính nền: hai giỏ cam gộp thành một giỏ lớn (cộng là gộp), một tờ tiền được tách thành tiền thanh toán và tiền thừa (trừ là tách), ba hộp mỗi hộp bốn hộp nhỏ (nhân là tỉ lệ lặp lại), và một hoá đơn nhà hàng 100 được chia cho bốn người mỗi người 25 (chia là phân phối)

Nhân chia kéo theo cả đơn vị: chín con mỗi thuyền nhân mười hai thuyền ra 108 con, chữ "thuyền" triệt tiêu, chỉ còn lại "con". Phép tính ra kết quả vô lý thì thường là sai đơn vị. Người làm kỹ thuật gọi việc soát đơn vị này là phân tích thứ nguyên, nghe sang, thực ra là nhân chia cộng thêm chút để ý.

Bốn phép này không cần ứng dụng hoành tráng, vì mọi phép toán phía sau đều viết bằng chúng.

Luỹ thừa: cấp 2

Luỹ thừa mô tả một kiểu tăng trưởng: mức tăng tỉ lệ với cái đang có.

Cuối Odyssey, sau khi Odysseus trừng trị bọn cầu hôn, Homer kể thần Tin Đồn chạy khắp thành phố loan tin [1]. Giả sử tin bắt đầu từ một người, và cứ mỗi giờ, mỗi người đã biết lại kể cho đúng một người chưa biết. Số người biết tin nhân đôi sau mỗi giờ, nên sau \(n\) giờ là \({}2^n\) người.

Đặt nó cạnh một người rao tin đi bộ khắp phố, giả sử mỗi giờ báo được cho 100 người. Sau ba giờ, người rao tin đã báo cho 300 người, còn tin đồn mới tới 8 người. Tới giờ thứ mười thì hai bên gần ngang nhau, 1000 so với 1024. Tới giờ thứ hai mươi, người rao tin báo được 2000 người, còn tin đồn đã vượt một triệu, nhiều hơn dân cả hòn đảo rất nhiều.

Bên trái là cây tin đồn: một người ở giờ 0, rồi 2, 4, 8, 16 người ở giờ 1 tới giờ 4, mỗi người đã biết kể cho một người mới; bên phải là một người rao tin Hy Lạp cầm gậy đi trên phố, báo được 100 người mỗi giờ; bảng bên dưới so sánh giờ 3 (8 và 300), giờ 10 (1024 và 1000) và giờ 20 (1.048.576 và 2000)

Tin đồn thắng vì càng nhiều người biết thì càng nhiều người đi kể, đúng kiểu mức tăng tỉ lệ với cái đang có. Mấy giờ đầu nó thua xa một người đi bộ, nên hàm mũ rất dễ bị coi thường lúc mới bắt đầu.

Căn bậc hai: cấp 2

Bình phương là luỹ thừa bậc hai, và căn bậc hai là phép ngược của nó: cho diện tích, tìm cạnh. Bạn cần nó mỗi khi thứ bạn đo phụ thuộc vào bình phương của một thứ khác.

Tranh vẽ Pytago đứng giữa hàng cột Hy Lạp, tay cầm một khối đa diện

Quen nhất là Pytago. Giả sử từ bến cảng Ithaca tới chòi của Eumaeus, người chăn lợn trung thành của Odysseus, bạn đi 3 km về hướng đông rồi 4 km về hướng bắc. Đường chim bay từ bến cảng tới chòi là \(\sqrt{3^2 + 4^2} = 5\) km chứ không phải 7.

Bây giờ bạn là thợ xây ở Ithaca. Odysseus sắp từ thành Troy trở về, và ông muốn có một cái hồ đáy vuông chứa được lượng nước nặng bằng mười con bò. Cạnh hồ phải dài bao nhiêu?

Giả sử mỗi con bò nặng tròn 500 kg, mười con là 5 tấn. Một mét khối nước nặng khoảng một tấn, nên hồ phải chứa 5 m³. Bạn chọn đào sâu 1 m cho dễ tính, vậy đáy hồ cần rộng 5 m². Đáy vuông nghĩa là cạnh nhân cạnh bằng 5, nên cạnh hồ là \(\sqrt{5}\), khoảng 2,24 m.

Nếu đoán đại cạnh 2 m, đáy chỉ có 4 m², chứa được nước nặng bằng tám con bò. Nới lên 3 m thì đáy thành 9 m², đủ cho mười tám con, gần gấp đôi yêu cầu. Cạnh chỉ dài thêm một nửa mà sức chứa tăng hơn gấp đôi, vì lượng nước tăng theo bình phương của cạnh. Muốn đi ngược từ lượng nước về cạnh hồ, bạn phải khai căn.

Không có máy tính thì bạn vẫn dựng được \(\sqrt{5}\) bằng dây và cọc. Căng một hình chữ nhật hai cạnh 1 m và 2 m, theo Pytago thì đường chéo của nó dài \(\sqrt{1^2 + 2^2} = \sqrt{5}\) m. Đo sợi dây theo đường chéo đó là có cạnh hồ, không cần tính ra chữ số thập phân nào.

Bên trái là cái hồ đá đáy vuông, cạnh √5 ≈ 2,24 m, sâu 1 m, chứa 5 m³ nước, nặng bằng mười con bò đứng xếp hàng bên cạnh; bên phải là một hình chữ nhật hai cạnh 1 m và 2 m căng bằng dây và bốn cọc, sợi dây màu cam căng theo đường chéo dài √5 m

Logarit: cấp 3

Luỹ thừa hỏi "2 mũ 10 bằng mấy", logarit hỏi ngược lại: "2 mũ mấy thì được 1024". Căn bậc hai đi tìm cơ số, logarit đi tìm số mũ.

Poseidon, thần rung đất, vẫn giận Odysseus vì ông đã đâm mù Polyphemus, con trai của thần [1]. Giả sử thần trút giận lên Ithaca: hôm qua một trận 3 độ chỉ làm chén rượu trên bàn rung lên, hôm nay một trận 9 độ. Trên thang độ lớn mà các nhà địa chấn học dùng ngày nay, mỗi độ tương ứng khoảng 32 lần năng lượng [2], nên trận hôm nay giải phóng năng lượng gấp \({}32^6\), khoảng một tỉ lần trận hôm qua. Vẽ hai trận lên một cây thước thường, trận hôm qua dài 1 mm thì trận hôm nay dài hơn một nghìn cây số.

Thang độ lớn vì thế là một cây thước logarit: con số "độ" đếm xem năng lượng đã được nhân với 32 bao nhiêu lần. Từ 3 lên 9 là sáu lần nhân, và bạn đọc con số 6 dễ hơn nhiều so với con số một tỉ.

Logarit còn đếm được số lần chia đôi. Trong nhà Odysseus có 108 kẻ cầu hôn [1]. Giả sử Athena nghĩ tới một kẻ trong số đó, và Odysseus chỉ được hỏi những câu có hoặc không. Hỏi lần lượt từng tên thì có khi phải hỏi hơn trăm câu. Hỏi "hắn có ngồi ở nửa bàn bên trái không?" thì mỗi câu loại được một nửa: 108, 54, 27, 14, 7, 4, 2, 1, tức bảy câu, vì \({}2^7 = 128\) là luỹ thừa đầu tiên của 2 vượt qua 108. Có một nghìn kẻ cầu hôn thì cần 10 câu, một triệu thì 20 câu. Dân lập trình như người quen của mình gọi cách hỏi này là tìm kiếm nhị phân.

Bên trái là Poseidon cầm đinh ba đập xuống đất làm một ngôi nhà Hy Lạp rung và chén rượu đổ, bên dưới là trục độ lớn từ 3 tới 9 độ chia đều, mỗi bước nhân 32 lần năng lượng, từ 1 tới 32 mũ 6, khoảng 1,07 tỉ; trên thước thường trận 3 độ dài 1 mm thì trận 9 độ dài hơn 1.000 km. Bên phải là bàn tiệc của bọn cầu hôn bị chia đôi, Athena chỉ tay và Odysseus giả ăn mày đứng nhìn, bên dưới là dãy cột 108, 54, 27, 14, 7, 4, 2, 1 sau bảy câu hỏi có hoặc không

Đạo hàm: mũi tên qua mười hai chiếc rìu

Đạo hàm là phép toán cậu sinh viên kia, và chính mình ngày trước, học thuộc mà không hiểu.

Ở cuộc thi bắn cung, Odysseus giương cây cung mà không kẻ cầu hôn nào lên dây nổi, rồi bắn một mũi tên xuyên qua cả mười hai chiếc rìu xếp thành hàng [1]. Mũi tên bay nhanh cỡ nào đúng lúc nó chui qua chiếc rìu đầu tiên? Tốc độ là quãng đường chia thời gian, mà đúng một khoảnh khắc thì không có quãng đường nào cả.

Thử đo trung bình, với số liệu giả định. Trong 0,2 giây đầu, mũi tên đi được 11,8 m, trung bình 59 m/s. Nhưng mũi tên chậm dần vì sức cản của không khí, nên đó là tốc độ của cả đoạn chứ không phải của lúc qua chiếc rìu đầu. Thu hẹp còn 0,01 giây: mũi tên đi được 0,5995 m, trung bình 59,95 m/s. Thu hẹp còn 0,001 giây: 59,995 m/s. Cứ thu hẹp mãi thì tỉ số quãng đường trên thời gian tiến về 60 m/s. Con số giới hạn đó tên là đạo hàm: tốc độ thay đổi tức thời tại một điểm, \(f'(a) = \lim_{h \to 0} \frac{f(a+h) - f(a)}{h}\) [3].

Phía trên là mười hai chiếc rìu xếp hàng trên một thanh gỗ, mũi tên vừa xuyên qua lỗ chiếc rìu đầu tiên; phía dưới là đồ thị quãng đường theo thời gian của mũi tên, ba cát tuyến xuất phát từ điểm P ứng với Δt = 0,2 s, 0,01 s và 0,001 s (trung bình 59, 59,95 và 59,995 m/s) tiến dần về tiếp tuyến màu cam tại P, 60 m/s; hình minh hoạ, không đúng tỉ lệ

"Tốc độ tại một điểm" thoạt nghe vô lý, vì tại một điểm không có chuyển động nào. Người ta đặt ra khái niệm giới hạn để nói điều nghe vô lý đó một cách chặt chẽ. Cây kim trên đồng hồ tốc độ xe máy của bạn cũng chỉ đúng con số giới hạn này.

Đạo hàm còn chỉ hướng. Khi Odysseus tỉnh dậy trên bờ biển Ithaca, Athena đã phủ quanh ông một màn sương, tới mức ông không nhận ra quê mình [1]. Giả sử bạn bị lạc trong màn sương đó ở lưng chừng một ngọn đồi và muốn xuống tới bờ biển, nhưng không nhìn thấy gì ngoài bàn chân mình. Bạn vẫn cảm được mặt đất dốc về phía nào, và độ dốc dưới chân chính là đạo hàm. Bạn bước một bước về phía dốc xuống, dò lại, rồi bước tiếp. Tới chỗ đất bằng, nơi đạo hàm bằng không, thì dừng. Chỗ đó có thể là bờ biển, cũng có thể chỉ là một bậc đất phẳng giữa sườn đồi, giống \(f(x) = x^3\) tại 0: đạo hàm bằng không mới là ứng viên cho cực tiểu, chưa chắc đã là đáy.

Quay lại cậu sinh viên. Huấn luyện mạng neural là đúng cảnh đi trong sương ấy. Mạng có hàng triệu tham số và một hàm loss đo mức sai; huấn luyện là tìm bộ tham số làm loss nhỏ nhất, một bài toán tối ưu trong không gian triệu chiều, thử ngẫu nhiên không nổi. CS231n dùng chính hình ảnh này: một người bịt mắt đi trên vùng đồi tìm đường xuống đáy, và với bài phân loại ảnh CIFAR-10 trong bài giảng, vùng đồi đó có 30.730 chiều [4]. Gradient là bản nhiều chiều của đạo hàm, chỉ hướng loss tăng nhanh nhất, nên ta bước theo hướng ngược lại. Vòng lặp huấn luyện chỉ có ba việc: tính loss, tính gradient, cập nhật tham số ngược chiều gradient với bước nhảy là learning rate. CS231n gọi nó là "thứ nằm ở lõi của mọi thư viện neural network" [4].

Mình chạy thử bản nhỏ nhất: tối thiểu hoá \(f(x) = x^2\) từ \(x = 10\), learning rate 0,1. Mỗi bước, \(x\) mới bằng \(x\) cũ trừ \({}0{,}1\) nhân \({}2x\). Sau 73 bước, \(x\) về dưới một phần triệu. Không có neural network nào ở đây, nhưng cơ chế là một: các mô hình lớn huấn luyện bằng những biến thể của đúng vòng lặp này. Phép toán cậu ấy học thuộc mà không hiểu để làm gì chính là động cơ bên dưới cơn sốt AI hiện nay.

Tích phân: gom từng lát mỏng

Đạo hàm tách quá trình thành tốc độ từng điểm. Tích phân làm ngược lại: biết tốc độ từng điểm, gom lại thành kết quả.

Trước khi về được tới Ithaca, Odysseus từng được thần gió Aeolus cho một luồng gió Tây thổi thuyền về nhà. Đoàn thuyền chạy chín ngày chín đêm, tới ngày thứ mười thì đã thấy quê nhà [1]. Chín ngày đó thuyền đi được bao xa?

Nếu tốc độ đổi theo từng nấc thì bài toán vẫn dễ. Giả sử ngày đầu có 12 giờ gió mạnh, thuyền chạy 10 km/h, và 12 giờ gió yếu, thuyền chạy 6 km/h: quãng đường ngày đó là \({}10 \times 12 + 6 \times 12 = 192\) km, vẫn chỉ là nhân rồi cộng. Nhưng gió thật mạnh lên yếu đi từng phút, nên bạn phải cắt thời gian thành những lát thật mỏng, lấy tốc độ trong mỗi lát nhân với độ dài lát, rồi cộng tất cả lại.

Vẽ tốc độ của thuyền theo thời gian thành một đường cong, thì mỗi lát "tốc độ nhân thời gian" là một dải chữ nhật mỏng nằm dưới đường cong đó. Dải càng mỏng tổng càng đúng, độ mỏng tiến về không thì tổng tiến tới diện tích thật dưới đường cong. Đó là tích phân xác định, giới hạn của tổng Riemann, và quãng đường thuyền đi chính là diện tích dưới đồ thị vận tốc [5]. Đạo hàm là phép chia vô hạn, tích phân là phép cộng vô hạn.

Phía trên là thần gió Aeolus cầm túi da, thổi gió Tây vào buồm một con thuyền Hy Lạp đang chạy sang phải; phía dưới là đồ thị tốc độ thuyền theo thời gian trong chín ngày, vùng dưới đường cong được cắt thành nhiều dải chữ nhật mỏng, một dải tô đậm ghi tốc độ nhân thời gian; quãng đường là diện tích dưới đường cong, số liệu minh hoạ

Mũi tên của Odysseus đi theo chiều ngược lại: biết quãng đường theo thời gian, đạo hàm cho ra vận tốc. Định lý cơ bản của giải tích nói đúng điều này: đạo hàm và tích phân là hai phép toán ngược nhau.

Câu hỏi vẫn mở

Phản biện: toán thuần tuý không cần biện minh bằng ứng dụng; đo toán bằng tính hữu dụng là hiểu sai bản chất của nó.

Hardy từng tự hào rằng toán của ông vô dụng [6], và ông có lý: cái đẹp của toán không đo bằng tiền. Nhưng lý thuyết số, nhánh mà Hardy xem là vô dụng nhất, về sau thành nền của mật mã khoá công khai: RSA an toàn một phần nhờ việc phân tích tích của hai số nguyên tố lớn ra thừa số rất khó [7]. Mình không đo toán bằng ứng dụng. Mình chỉ nghĩ với người mới bắt đầu, một ứng dụng cụ thể giúp họ chịu học tiếp.

Mình không chắc mình trả lời được câu hỏi lớn hơn: với mảng toán chưa có ứng dụng, "học để làm gì" chưa có đáp án. Có lẽ sẽ có trong năm mươi năm nữa, như lý thuyết số. Có lẽ không. Còn với chín phép toán ở đây thì mình trả lời được: chia thịt cho mười hai con thuyền, xây một cái hồ đủ nước, đo cơn giận của Poseidon, bắt được tốc độ của một mũi tên, tính quãng đường một chuyến thuyền, và đi xuống một ngọn đồi trong sương, đúng việc các mô hình AI đang làm mỗi lần huấn luyện.

Lần tới có ai hỏi "học toán làm quái gì", bạn thử bắt đầu bằng một tình huống xem.

Bình

Phụ lục: Citations (7)

  1. Homer. The Odyssey of Homer (bản dịch S. H. Butcher và Andrew Lang). Project Gutenberg. Quyển I: Poseidon giận vì Odysseus đâm mù Polyphemus, con trai thần; quyển IX: mười hai thuyền, mỗi thuyền chín con dê, riêng Odysseus mười con; quyển X: gió Tây của Aeolus, chín ngày chín đêm, ngày thứ mười thấy quê nhà; quyển XIII: Athena phủ sương quanh Odysseus ở Ithaca; quyển XVI: 52 + 24 + 20 + 12 kẻ cầu hôn; quyển XXI: mũi tên xuyên qua cả mười hai chiếc rìu; quyển XXIV: thần Tin Đồn loan tin khắp thành; Odysseus về nhà vào năm thứ hai mươi
  2. The Great 1906 San Francisco Earthquake: What was the magnitude?. U.S. Geological Survey. USGS: thang Richter được phát triển cho động đất địa phương trên máy đo tần số cao; moment magnitude tỉ lệ với năng lượng; mỗi bậc Mw tương đương khoảng 32 lần năng lượng; cần khoảng 30 trận Loma Prieta Mw 6.9 để bằng năng lượng trận 1906 (Mw 7.9)
  3. Calculus Volume 1 - 3.1 Defining the Derivative. OpenStax, Rice University. 2016-03-30. Giáo trình mở: đạo hàm là giới hạn của tỉ số sai phân; vận tốc tức thời là đạo hàm của vị trí; ứng dụng gồm vận tốc, lợi nhuận biên, tốc độ tăng trưởng
  4. CS231n Convolutional Neural Networks for Visual Recognition: Loss Functions and Optimization. Stanford University - CS231n. Bài giảng Stanford: 'blindfolded hiker analogy', với CIFAR-10 vùng đồi có 30.730 chiều; gradient chỉ hướng loss tăng nhanh nhất, nên cập nhật ngược chiều gradient; vanilla gradient descent 'at the core of all Neural Network libraries'
  5. Calculus Volume 1 - 5.1 Approximating Areas / 5.2 The Definite Integral. OpenStax, Rice University. 2016-03-30. Giáo trình mở: tích phân xác định là giới hạn của tổng Riemann; ý nghĩa là diện tích có dấu dưới đường cong; quãng đường là diện tích dưới đồ thị vận tốc
  6. G. H. Hardy. A Mathematician's Apology. Cambridge University Press. 1940. Mục 29: 'I have never done anything useful. No discovery of mine has made, or is likely to make, directly or indirectly, for good or ill, the least difference to the amenity of the world.' Mục 21: lý thuyết số xa rời đời thường nên 'gentle and clean'
  7. R. L. Rivest, A. Shamir, L. Adleman. A Method for Obtaining Digital Signatures and Public-Key Cryptosystems. Communications of the ACM. 1978. Bài báo gốc của RSA: 'The security of the system rests in part on the difficulty of factoring the published divisor, n', với n là tích của hai số nguyên tố lớn