tidal analysis

Thủy triều được dự đoán, tính toán như thế nào? Vì có quá nhiều tham số tác động đến thủy triều, như M2 (moon) hay S2 (sun), và nhiều hành tinh khác, nên dự đoán thủy triều được bắt đầu bằng việc… thu thập, ghi chép số liệu thực nghiệm tại một cảng nào đó, số liệu này được thu thập trong nhiều năm và sau đó dùng một phép biến đổi Fourier để phân tích hàm thủy triều (số liệu) này thành tổng của các hàm lượng giác con, mỗi hàm con có dạng f(t) = A x cos(st + p), với A (amplitude) là độ lớn, biên độ dao động, s (speed) là vận tốc góc, p (phase shift) là độ lệch pha, và t là thời gian. Mỗi hàm lượng giác điều hòa con này là đại diện cho mức độ ảnh hưởng của một yếu tố riêng biệt, như mặt trời, mặt trăng, các hành tinh, etc…

Nhưng ngày xưa chưa có máy tính điện tử, người ta phân tích Fourier như thế nào? Cũng lại là dùng các máy tính cơ học, trong ảnh là máy phân tích thủy triều được chế tạo bởi Sir Kelvin (William Thomson) năm 1878, máy dài 6m. Sau khi đã phân tích dữ liệu quá khứ đã thu thập và có được các tham số thì lại nhập các tham số này vào máy dự đoán thủy triều (đã nói ở bài trước) để tính thủy triều tại một thời điểm cụ thể nào đó trong tương lai. Về máy phân tích thủy triều thì có nhiều chuyện phức tạp, nhưng về máy dự đoán thủy triều, cơ chế vận hành của nó lại khá đơn giản. Hình thứ 2 là cơ chế máy dự đoán thủy triều, hàng bánh xe trên là cố định, hàng bánh xe dưới có thể chỉnh được tốc độ, độ lớn cũng như độ lệch pha!

Chính là biểu diễn các tham số A, s và p trong công thức nói trên. Sau đó thông qua những cái “Scotch yoke” (cái này không biết phải dịch ra tiếng Việt thế nào) để biến chuyển động quay thành chuyển động tịnh tiến, kéo các ròng rọc chạy! Nguyên hệ ròng rọc chạy và kéo một sợi dây, sợi dây này kéo một cây bút trên bề mặt một băng giấy xoay tròn, vẽ thành đồ thị thay đổi lên xuống của thủy triều theo thời gian. Hàm tổng (thủy triều) được tổng hợp lại từ các hàm con đơn giản như thế! 150 năm trước người ta đã tìm cách phân tích và tổng hợp chính xác, 150 năm sau, chúng ta tổ chức giải đua ghe, nhưng rút cuộc không đua được vì còn phải chờ đến “giờ lành” để bắt đầu, đến “giờ lành” thì nước triều đã rút cạn chỉ tới đầu gối!

duck test

Mấy năm trước, có sự kiện một người làm thiết kế – designer sử dụng “AI”… đương nhiên AI hiểu trong ngữ cảnh thiết kế tức là “Adobe InDesign” chứ không phải là “Artificial Intelligence”, nhưng mấy ku “nhà báo thiểu năng” VN thì chớp được đúng một chữ AI, vội vàng tán láo thế này thế kia, đến nhiều ngày sau còn chưa hiểu ra được mình ngu chỗ nào. Những ví dụ dạng này là… hằng hà sa số, mang tiếng là con người, nhưng trí thông minh chưa bằng được máy, các hệ thống AI bây giờ có thể phân biệt ngữ cảnh khá tốt! Và đến tận bây giờ vẫn thế, tràn đìa trên mặt báo, viết câu tiếng Việt đơn giản không thông, ngoại ngữ đọc không hiểu, nhưng suốt ngày la liếm khắp nơi, chỗ nào cũng có mặt, vấn đề nào cũng hiểu, tạo ra một đám bụi mù thông tin, kích động người này người khác đánh nhau.

Có một bài kiểm tra trong giới CS (computer science) gọi là “Duck test – kiểm tra vịt”: nếu nó đi lạch bạch như vịt, bơi như vịt, và kêu quác quác như vịt, thì chắc chắn nó là vịt rồi. Hay như một chính trị gia Mỹ: tôi không biết hắn ta có phải là CS (cộng sản) không, nhưng một con chim chân có màng, bơi như vịt, kêu quác quác như vịt thì chắc là vịt rồi? Hay gần đây hơn, ngoại trưởng Larov nhận xét các nhóm Hồi giáo thân Tây phương, như một kiểu châm biếm: nhìn giống như khủng bố, nói năng như khủng phố, đánh đấm như khủng bố, vậy chắc chắn là khủng bố rồi!? Cái gọi là AI – artificial intelligence, dù vượt qua được Turing-test, nhưng đến nay vẫn không thể nào vượt qua được Duct-test và Chinese-room-test để có thể chứng minh là có tư duy thật sự, thì rồi cũng chỉ là “vịt” mà thôi!

Đến một lúc, ta sẽ thấy, cái gọi là AI, hay chí ít là các thể loại “AI hạ cấp, tào lao”, chính là phản ảnh cái “não trạng” của cái cộng đồng sử dụng nó! Thậm chí còn tệ hơn cả wikipedia, trên wiki, ít ra còn có người này người kia, phe này phe kia đánh nhau, tranh dành nhau chỉnh sửa nội dung, ít ra còn có sự đấu đá, tranh luận qua lại, thể hiện các luồng suy nghĩ đối lập nhau. Còn “AI”, ít nhất là các phiên bản “đại chúng, phổ thông” chính là một kiểu “núp lùm” và “đội lốt”, nó đưa quan điểm, ý kiến như thể được rút ra từ khoảng không vậy, mà cái khoảng không này, xui rủi thay, chính là phản ánh sự “vô tri, thiểu năng” của cái cộng đồng xài nó, ai cũng là “tác giả” mà đồng thời, cũng không có ai là “tác giả” cả, không một ai đứng ra chịu trách nhiệm về tính đúng đắn của nguồn tin, của suy nghĩ!

AI, 2

Hơn 25 năm trước, hồi đang còn ngồi trên ghế nhà trường, Bộ môn Trí tuệ nhân tạo, Khoa CNTT, ĐH KHTN… tôi có xài một cái chương trình tên là Eliza, dạng chương trình chat, mình gõ một câu, nó trả lời một câu, hoàn toàn command-line: “- Hi, how are you today!? – Thanks, but I don’t feel very well”, câu chuyện bắt đầu như thế, vì không muốn khởi đầu có vẻ rập khuôn nên tôi trả lời không được khỏe lắm… Nói chuyện một hồi lâu, sau nó hỏi: “- How do you feel now? – I feel better now!” Thế là cái chương trình máy tính kia nó văng ra một câu làm mình sững sờ: “You’ve felt better cause you’ve been talking with me!” – Anh đã cảm thấy tốt hơn là do nói chuyện với tôi nãy giờ đó!!! Đó là lần đầu tiên, cũng là lần cuối cùng tôi xài Eliza! Không phải là vì “sợ” cái trí thông minh của nó…

Mà vì không muốn bận tâm bởi những câu trả lời, mà tôi nghĩ là, nó có một bộ thư viện hàng chục ngàn câu có thể khiến cho bạn phải “ngạc nhiên”, oh, hóa ra máy tính “thông minh” đến vậy! Tư duy của con người, đó là phân tích độc lập, tìm tòi, liên hệ, hình dung, tưởng tượng, đến cả những loại tư duy bằng hình ảnh, âm thanh chứ không phải chỉ bằng ngôn từ, nếu chỉ lặp lại một số lượng lớn ngôn từ theo dạng “thiểu năng” thì con người không thể bằng máy, bắt so với máy khác nào bắt con cá phải leo cây! Chốt lại một điều là: A.I. có xu hướng lặp lại cái “não trạng” của cộng đồng, cộng đồng như thế nào thì họ sẽ có được thứ A.I. giống như thế, giống như thứ họ muốn có mà thôi! Một cái hang trống hoác vang vọng trở lại những cái thế giới nội tâm cũng trống hoác giống y như thế!

height map

Viết lại nhân có trao đổi với một người bạn, trước đây radar địa hình là cái gì đó vô cùng tiên tiến, các phi cơ cường kích có thể bay sát mặt đất, cách các tòa nhà, ngọn cây, núi đồi chỉ cỡ 10m mà không sợ đâm va, vì được điều khiển bằng radar địa hình chứ không phải do người điều khiển, khả năng xử lý, phản hồi của phi công không đủ nhanh so với tốc độ máy bay. Nhưng ngày nay, radar địa hình đã trở nên phổ biến đến mức nó hiện diện trên nhiều loại UAV dân sự, như loại dùng trong nông nghiệp, và chỉ nhỏ bằng bàn tay như hình bên dưới! Vừa bay, nó vừa vẽ bản đồ 3D của địa hình!

Cái bản đồ độ cao – height map này được so khớp với thông tin địa hình đã được chụp và lưu sẵn từ trước trong máy tính, nhờ đó UAV có khả năng bay bám địa hình. Bay bằng radar địa hình là xu hướng chủ đạo hiện tại của các loại UAV dân sự lẫn quân sự, giúp quản lý tài nguyên một cách chính xác với UAV dân sự, và giúp bay trong mọi điều kiện gây nhiễu, mọi điều kiện thời tiết với UAV quân sự. Và bài toán so khớp bản đồ độ cao, một cái mảng 2 chiều chứa các con số, từ đó nhận dạng địa hình để điều khiển UAV, là dạng bài toán kinh điển của các kỳ thi Olympic tin học!

Jacquard loom, 2

Mấy năm trước, có viết một đoạn về Jacquard loom, tiền thân của các loại máy dệt tự động hóa hiện đại, dùng bìa đục lỗ (punched card) để mã hóa thông tin hoa văn trên vải dệt. Thay một cái bìa là nó sẽ dệt ra một kiểu hoa văn mới, hoàn toàn tự động. Mới nghe thì có vẻ không có liên quan gì, nhưng máy dệt Jackquard có thể được xem là “sơ tổ” của các loại máy tính hiện đại. Nói thêm một chút về số phận của Joseph Jacquard, người phát minh ra cái máy dệt này. Hôm nay, ta hãy ngồi vào cỗ máy thời gian, thời điểm là năm 1802, điểm đến là tp. Lyon nước Pháp! Allez-y, maintenant!

Joseph Jacquard cầm cố tài sản đến mức khánh kiệt để chế tạo ra cái máy dệt đi trước thời đại này! Kết quả là… các công nhân dệt sợ máy cướp hết công việc nên đã tập hợp lại, đập phá cái máy, còn bản thân Jacquard bị ném xuống sông, may mà không chết! Ở Đức, tình hình còn phát triển đến mức cực đoan hơn, công nhân biểu tình phản đối, bạo động tràn lan, chính quyền phải ra lệnh tử hình đối với những người phát minh ra các loại máy dệt mới để trấn an dân chúng! Nên chuyện trí tuệ nhân tạo – A.I. hiện đại thực ra không phải là vấn đề gì mới, chỉ là lịch sử đang lặp lại chính nó mà thôi!

working corner

Cuối tuần dọn dẹp góc làm việc, gom cả 2 cái màn hình về 1 cái máy Mac, 1 màn hình xoay dọc lại, dùng để đọc các file code dài rất tiện, không phải cuộn lên xuống nhiều. Con Aquarium-PC chạy Debian không cần đến màn hình, bàn phím gì cả, chỉ khởi động lên rồi SSH vào xài là được! Như thế chỉ cần 1 cặp bàn phím + chuột không dây mà không phải xài đến các loại KVM switch và dây nhợ phiền phức… Và có thể dùng tính năng Continuity của Mac để điều khiển luôn con Macbook đặt ở bên cạnh! Hình chụp bằng tính năng Panorama của điện thoại nên có hơi méo!

Lilliput

Chuyện giống như trong Gulliver du kí ấy, khi Gulliver đến đất nước của những người tí hon Lilliput, xứ sở của những con người mãi không chịu lớn, đất nước ấy bị chia làm 2 phe, một phe ăn trứng từ phía đầu to, và một phe ăn trứng từ phía đầu nhỏ, không ai chịu ai và thế là chiến tranh xảy ra, đánh nhau triền miên chỉ vì khác biệt về cách thức ăn một quả trứng, “như tôi” mới đúng, ai “khác tôi” là không được!!! Bản chất của con người vốn dĩ luôn có đôi chút khác biệt, luôn có tí khác nhau trong nhận định về các vấn đề. Và công việc của USAID là đi khắp nơi, kích động các mâu thuẫn khác biệt ấy, vô số chiêu bài được sử dụng: nữ quyền, phá thai, LGBT, đa dạng, hòa nhập, tôn giáo, tri thức, đa nguyên… tạo ra thật nhiều loại “bánh vẽ” để bà con đánh nhau.

Với những nước dân trí cao, văn minh sâu dày thì người ta hiểu ra vấn đề, như ở Nga và Trung Quốc, đương nhiên vẫn luôn có những thành phần “đối lập”, nhưng đa số dân chúng biết cách gác những khác biệt nhỏ qua một bên để mà làm việc, tạo dựng giá trị. Đáng sợ là những nơi như VN, dân thì ngu, ưa đĩ miệng, thích nói không thích làm, thích hơn thua nhau bằng cách lưu manh vặt, đấu đá mãi, riết rồi không ai làm được cái gì nữa, đúng là cái xứ sở… Lilliput! Giờ thì đến tt. Trump cũng muốn dẹp USAID, đơn giản vì những chiêu như vậy không còn hiệu quả nữa, và cũng vì ông ta là dạng thẳng thắn: tôi muốn kênh đào Panama, tôi muốn đảo Greenland, bá quyền công khai chứ chẳng thèm trưng ra mấy cái “chiêu bài dân chủ” giả hiệu nữa.

A.I.

Với internet, kiến thức chưa bao giờ dễ dàng như thế! Hơn 20 năm trước, bọn sinh viên chúng tôi vò đầu bứt tai, không hiểu ANN – Artificial neuron network – mạng neuron nhân tạo, HMM – Hidden Markov model – mô hình Markov ẩn, SVM – Support vector machine, GA – Genetic algorithm – giải thuật di truyền, etc… là những gì! Nguyên nhân không hiểu là do thiếu thông tin, thiếu sách vở, và quan trọng hơn nữa là, những sách vở có được thì quá nặng về lý thuyết, thiếu minh họa thực tế. Thường là nó bắt đầu với những ví dụ rất đơn giản dễ hiểu, rồi dần dần được khái quát hóa thành lý thuyết toán tổng quát, trừu tượng. Và các ông thầy thường dạy ngay những lý thuyết toán phức tạp này, hoàn toàn quên các ví dụ đơn giản ban đầu! Hay có khi, chính các ông thầy cũng không biết…

Nên sinh viên tìm hiểu vấn đề mà cứ như… “thầy bói xem voi” vậy! Mà để bắt đầu với những ví dụ cụ thể, sinh động và hữu ích trong cuộc sống hàng ngày, thì cần… đi lại từ đầu, từ những chuyện đơn giản nhất! Nên kiểu đọc báo, xem tin tức bây giờ cảm thấy vô cùng bất an, toàn nghe thấy “Artificial Intelligence – trí tuệ nhân tạo”, và cứ lặp đi lặp lại đúng mỗi một từ đó, không cho thấy có nội dung gì khác! Giống như mấy thằng bị ngáo, bị thiểu năng vậy, cứ hễ mà mình đụng vào là nó lại văng cái từ “A.I. – Artificial Intelligence” vạn năng đó ra, và nó cũng chỉ biết mỗi một từ đó thôi, không nghe thấy bất kỳ thuật ngữ chuyên môn nào khác, cũng không Toán rời rạc, thuật toán, thuật giải gì cả! Nên kiểu chắc là lại đi bán hàng, bán một cái giải pháp phần mềm làm sẵn bá vơ, bịp bợm nào đó!

llm

Đang cafe sáng thì một đứa bé chừng 3 tuổi chập chững bước lại gần, miệng bi bô: chú ơi, ớt ớt! Đứa bé chỉ vào luống cây “phúc lộc thọ” người ta trồng làm cảnh, trông khá giống quả ớt. Tôi liền tìm cách giải thích: đây là hoa con à, không phải quả ớt, đương nhiên cũng không mong bé có thể hiểu được, xem như nói chuyện với con trẻ mà thôi. Từ chuyện của đứa bé mà nghĩ đến các mô hình A.I. – trí tuệ nhân tạo hiện tại! Thực ra thì phần lớn các mô hình A.I. hiện tại dựa trên LLM – large language model cũng như đứa trẻ 3 tuổi vậy! Nếu có một lượng lớn dữ liệu bảo đó là quả ớt thì A.I. cũng sẽ bảo đó là ớt! Nếu là trẻ con thì ta bảo nó vô tri…

Nếu là người lớn thì ta nói nó bị thiểu năng, tiếc là phần lớn người lớn giờ cũng y như LLM vậy! Nó chỉ “nhận dạng và so khớp” (pattern matching) dựa trên một lượng lớn dữ liệu, không có khả năng suy luận logic, không có khả năng toán học, và thực ra chỉ có thể dùng A.I. theo hướng “tìm kiếm” đó! Ngay cả những câu đố siêu đơn giản như: Vừa gà vừa chó, Bó lại cho tròn. Ba mươi sáu con, Một trăm chân chẵn! – Hỏi có bao nhiêu gà, bao nhiêu chó!? mà A.I. cũng không trả lời được! Sâu xa hơn, vẫn còn một cái gì đó rất nền tảng vẫn chưa giải quyết được khi kết nối ngôn ngữ tự nhiên và toán!

knockd

Hiếm khi viết về các chủ đề tin học trên Facebook, nhưng lâu lâu vẫn chia sẻ vài ý tưởng thú vị. Chẳng hạn bạn có một con server, mở cổng 22 (SSH), và 5901 (VNC), đây là những cổng phổ biến mà hackers và các con bots hay dò xét, quấy phá. Không muốn điều đó xảy ra, bạn có thể đổi thành những số khác, ví dụ như đổi 22 thành 6001, đổi 5901 thành 6002! Nhưng những kẻ quấy phá cũng biết cách dò xem bạn mở những cổng nào! Tốt nhất là cấm tất cả (dùng firewall, iptables) và sử dụng ‘knockd’. Hiểu nôm na, knockd giống như nhận diện một trình tự gõ cửa! Phải gõ đúng trình tự thì cửa mới mở!

Kiểu như… “Nếu là thỏ cho xem tai, Nếu là nai cho xem gạc!” vậy! Ví dụ, câu lệnh có cú pháp: “knock -v SERVER_IP 2001 2002 2003 -d 500” sẽ lần lượt gởi 3 lệnh gõ cửa, cách nhau một quãng thời gian -d tới các cổng 2001, 2002, 2003, đúng trình tự đó thì knockd sẽ điều chỉnh firewall để mở cổng 6001, gởi theo chiều ngược lại sẽ đóng cổng! Vì mỗi cổng là một con số 2 bytes nên 3 cổng tương đương với một mật khẩu có entropy = 16×3×2 = 96 bits (nhân 2 do cổng có thể là TCP hay UDP), đương nhiên có thể định nghĩa trình tự gồm 4, 5 cổng hay nhiều hơn, hay dùng danh sách các trình tự chỉ sử dụng một lần!