Mã hóa tri thức như thế nào?
Bên gỡ rối tơ lòng, bạn tvhvt có câu hỏi thú vị:
Sử dụng ngôn ngữ gì để mã hóa và lưu trữ thông tin, tri thức?
Nói chung, tôi mã hóa thông tin/tri thức học được bằng một algorithm/generative model. Thông tin/tri thức nào có Kolmogorov complexity càng thấp thì tôi nhớ càng lâu, hiểu càng sâu. Nói cách khác, sự đơn giản của algorithm và/hoặc sự đơn giản của generative model tạo thông tin đó tỉ lệ thuận với độ dễ hiểu và dễ nhớ của thông tin.
Xin giải thích lại đoạn văn trên bằng tiếng Việt như sau.
Tôi đã viết là khi đọc một quyển sách mới, tôi thường có thói quen “viết lại” sách theo ý mình. Viết lại theo nghĩa đen, hoặc ghi rất nhiều notes ở khắp nơi (trên giấy, trên blog, v.v.). Tôi cho rằng cá nhân mình chưa thật sự hiểu một môn học nào đó cho đến khi mình có thể từ một lượng data rất nhỏ là đã có thể tự xây dựng lại nền tảng lý thuyết của môn đó. Cách tốt nhất để thử xem mình có hiểu môn học không là trình bày lại toàn bộ môn học mà không cần bất kỳ tham khảo gì xung quanh mình (Internet, sách vở, v.v.). Vì thế, tôi đi giảng bài trong lớp không bao giờ mang notes/books theo. Với các môn lý thuyết thì 95% số lectures là tôi vào lớp với vài cục phấn. Năm phần trăm còn lại, phải mang notes theo, là dành cho các đề tài tôi chưa thật sự hiểu.
Để làm được như thế, ta không thể nào đọc/học theo kiểu cưỡi ngựa xem hoa. Trước khi đọc chứng minh một định lý nào đó, tôi luôn dành một ít thời gian thử tự chứng minh nó. Nếu quyển sách viết rất tốt thì chúng ta thật sự không cần đọc nhiều chứng minh cho lắm (trừ các định lý cực kỳ bất ngờ, là đột phá trong ngành!).
Trong các ví dụ trên tôi dùng các môn lý thuyết làm dẫn chứng. Đối với các môn kỹ thuật hơn một chút, networking chẳng hạn, thì có cực kỳ nhiều chi tiết kỹ thuật lắt nhắt khó nhớ. Điều này đúng cho hầu hết các ngành engineering phải giải quyết các vấn đề thực tế. Generative model của mình sẽ phải deal với nhiều noise. Trong trường hợp này, tôi sẽ cố tạo generative model cho các ý tưởng chính của ngành: nguyên tắc KISS, distributive tốt hơn centralized, local tốt hơn global, ARQ, randomization, v.v. Sau một thời gian, ta sẽ thấy là tổng số ý tưởng original trong networking có thể đếm trên đầu ngón tay. Còn lại chỉ là các biến thể be bé để giải quyết nhiễu.
Đoạn trên có … nhiễu quá không?

Khong nhieu. Qua that anh Hung da chi ra cach thuc hoc/doc hay. Hieu cung co nhieu muc do. Ban than em co cai doc da gan 3 nam troi ma van chua thay hieu. Em xin loi khong go duoc tieng Viet
Rất cảm ơn anh Hưng đã chia sẻ một vài chiến lược “mã hóa, lưu trữ” tri thức. Nhưng em có vài thắc mắc/bàn loạn:
- hình như anh nói đến chiến lược (strategy, approach) chứ không phải là “ngôn ngữ” (phương tiện lưu trữ)? thắc mắc củ chuối của em là phương tiện vật lý (các kí hiệu đại số, hình vẽ giun dế, tiếng tây, tiếng tàu, …) mà anh thường dùng ở giai đoạn “kế hoạch nhỏ” và giai đoạn “tổng hợp” tri thức ạ. Ví dụ, em có đọc ở đâu đó là bác Trịnh Xuân Thuận nói là bác viết bài báo khoa học (vật lý) bằng tiếng Anh, nhưng viết văn bằng tiếng Pháp. Em không định sa đà vào câu hỏi về chọn lựa ngôn ngữ lập trình.
- cách đi dạy (không mang notes) của anh Hưng có vẻ giống với của bác Nguyễn Đình Ngọc nhỉ?
“Tôi cho rằng cá nhân mình chưa thật sự hiểu một môn học nào đó cho đến khi mình có thể từ một lượng data rất nhỏ là đã có thể tự xây dựng lại nền tảng lý thuyết của môn đó.”:
- em không định nói đến kiểu “đi tắt đón đầu, ăn xổi ở thì”, nhưng em có cảm giác tiêu chuẩn này của anh hơi cao. Em tán thành chuyện hiểu đến tận gốc rễ, nền tảng 1 lý thuyết, nhưng theo em thì tiêu chuẩn này muốn đạt được thì phụ thuộc không chỉ vào ý muốn chủ quan, khả năng/ý chí cá nhân mà còn vào môi trường, hoàn cảnh nữa. “mọi lý thuyết đều …”, em theo trường phái problem-driven. Theo ngôn ngữ machine learning, em thiên về discriminative approach ạ.
- em chưa thấy gắn bó mật thiết giữa chuyện “hiểu một quyển sách cụ thể” (qua cách hiểu và ngôn ngữ diễn đạt của một tác giả cụ thể) với chuyện “hiểu một môn học” (qua lăng kính của một prof) và “expert in 1 (narrow) domain”.
Hi tvhvt,
Cái “ngôn ngữ” mà tvhvt hỏi ở đây chính là “lượng data rất nhỏ” mà tôi nói trong bài. Đa phần loại data này tôi lưu giữ trong đầu một hình ảnh nào đó. Tuy nhiên, khi viết xuống thì đôi khi tôi lại “nghĩ một đằng viết một nẻo”: trong đầu thường nhớ một multi-dimensional picture, còn văn viết thì tuyến tính, là cái thứ chứa ít thông in mà lại dài dòng. Tôi cũng nhận ra rằng khi tôi hiểu một vấn đề nào đó thật thấu đáo thì tôi có thể mô tả nó bằng rất nhiều cách khác nhau, độc lập với cách biểu diễn tri thức. Ví dụ khi sinh viên chưa hiểu bằng cách biểu diễn này thì tôi có thể nghĩ ngay ra cách biểu diễn khác để giải thích.
Với những thứ tôi không thật sự hiểu thì tôi mới phải “chăm chăm nhớ” một cách biểu diễn nhất định nào đó, nhớ thiếu một chi tiết là không “generate” được tri thức nữa.
Anh Hưng đúng là đã mang đến một phương pháp đọc hay nhưng anh có nghĩ đến là việc tốn quá nhiều thời gian cho việc đọc và ghi lại , giống như anh nói là ghi lại những điều mà ta đọc được . Anh có cách nào để rằng luyện việc đọc nhanh không và nếu theo phương pháp đó thì khả năng chúng ta đọc nhanh và hiểu nhanh là bao nhiêu để tiết kiệm thơi gian . Tuy không nên cưỡi ngựa xem hoa vấn đề gì nhưng việc làm có hiệu quả là khi cũng chừng nấy thời gian mà ta làm được nhiều việc và đạt được sự mong đợi của ta ở từng việc thì vẫn tôt chứ
@cù vân: dĩ nhiên cái tradeoff giữa chất lượng đọc và thời gian là chọn lựa cá nhân. Strategy của tôi rất đơn giản. Đề tài nào tôi thấy hay thì tôi đọc kỹ dùng phương pháp đã nêu. Không cần biết có dùng nó làm việc gì hay không. Tri thức vị tri thức.
Chào anh Hưng,
Anh có thể giải thích rõ hơn, đầy đủ hơn về đoạn:
“nguyên tắc KISS, distributive tốt hơn centralized, local tốt hơn global, ARQ, randomization, v.v”
- ARQ là gì?
- v.v… là bao nhiêu cái nữa, có nhiều chiến lược lắm không?
Ví dụ, em đang học về telecom (UMTS, …) thì chiến lược mã hóa thông tin/mô hình tri thức sẽ như thế nào nhỉ?
Cảm ơn anh!
Chào Hau N Tran,
ARQ là “automatic repeat request”. Thật ra đây không phải là ví dụ tốt vì tôi đưa ví dụ lẫn lộn giữa chiến lược (KISS, distributive, local, randomization) và chiến thuật (ARQ). Do đó đáng lẽ nên bỏ ARQ ra.
Không còn nhiều chiến lược lắm nữa. Nếu phải thêm vào thì tôi sẽ thêm vào nguyên tắc E2E và layering.