Miscellaneous notes

Therer are some not-so-serious miscellaneous thoughts, comments of mine about everything in an informal format using Vietnamese and English.

Table of Contents

Deep Learning and truely science researching

“too often where people will something against their own gut instincts because they think the community wants them to do it that way, so people will work on a certain subject even though they aren’t terribly interested in it because they think that they’ll get more prestige by working on it. I think you get more prestige by doing good science than by doing popular science because if you go with what you really think is important then it’s a higher chance that it really is important in the long run and it’s the long run which has the most benefit to the world”

“Do good science, not popular science.” Mình nghĩ giống Knuth, khi 1 cái gì đó quá hype (như Deep Learning chẳng hạn) thì hẳn là có gì đó sai sai ở đó. Mình có cảm giác sai sai gì đó ở AI lẫn DL (dù thực ra mình không giải thích đc) nhưng cách mọi người đổ xô vào làm mà dường như force mọi bài toán về Deep Learning khiến nó trở thành popular science hơn là “good science”. Nó phổ biến đến nổi ở Harvard có hẳn 1 term là “grad student descent”: một PhD student bỏ hàng tá thời gian đi finetune tham số cho 1 model đến khi nào nó work, hoặc beat được state-of-the-art ở 1, 2 dataset (WTF). Việc quá nhiều người bỏ thời gian công sức sức vào những work như vậy khiến cộng đồng chỉ phát triển chậm lại (theo thời gian) và hầu như không có sự đang dạng trong nghiên cứu và đóng góp tri thức con người. Deep Learning không có gì sai, chỉ là cách người ta thần thánh hóa nó trở nên rất sai. Dù sao đi nữa, chính câu nói “do good science, not popular science” chính là câu nói khiến mình cảm thấy không muốn học PhD, bởi điều mình thực sự muốn làm là “good science”, và chừng nào chưa có 1 motivation đầy đủ và nghiêm túc thì chừng đó mình vẫn chưa quyết định.


Dành cho các thím học PhD, ‘grad student descent’ được định nghĩa và mô tả như sau (rất tốt để apply, sử dụng đc cho mọi model) A popular method for designing deep learning architectures is GDGS (gradient descent by grad student).

This is an iterative approach, where you start with a straightforward baseline architecture (or possibly an earlier SOTA), measure its effectiveness; apply various modifications (e.g. add a highway connection here or there), see what works and what does not (i.e. where the gradient is pointing) and iterate further on from there in that direction until you reach a (local?) optimum.

“Thời gian trôi như chó chạy ngoài đồng”

Tôi và thằng bạn hay than thở một cách hài hước những lúc thấy thời gian trôi nhanh nhưng chưa kịp làm gì là “thời gian trôi nhanh như chó chạy ngoài đồng”. Nhưng thỉnh thoảng, có những lúc thời gian trôi nhanh quá, nhanh hơn cả “con chó” kia chạy “ngoài đồng”. Nên chúng tôi quyết định tìm một tục ngữ mới sao cho tốc độ của vật thể đó còn hơn vậy.

Có hai vấn đề cần quan tâm, đó là “con nào chạy” và “chạy ở đâu”. Ở một chừng mực nào đó, có thể chó chạy trên đồng không nhanh bằng chó chạy ngoài phố. Cũng có thể có một con vật nào đó chạy nhanh hơn chó ở trên đồng. Vấn đề tiếp theo là câu mới nó phải mang vần giống và hay như câu cũ:

Thế là chúng tôi quay về câu chuyện sinh học, bởi báo là động vật rất nhanh, nên chúng tôi muốn dùng con báo, vấn đề là báo không chạy trên đồng, cũng không chạy trên rừng hay trong đầm lầy (thực ra loài báo đốm có sống ở đầm lầy ở khu vực châu Mỹ, nhưng trong trí tưởng tượng của tôi lúc đó thì là loài báo hoa mai sống ở Châu Phi). Còn một loài báo nữa là báo săn. Với tốc độ 120 km/h thì đây là đỉnh cao của tốc độ. Vậy ta có thể tạo nên một câu với độ chính xác cao nhằm thể hiện thời gian trôi nhanh với mức độ cao nhất:

  • Báo săn chạy trên xavan (trảng cỏ).
  • Ngựa chạy trên thảo nguyên.

How to classify images of fruit

  1. code bằng c, bắt đầu bằng việc so sánh từng pixels. Tự cảm thấy code hơi điêu, suy nghĩ, đọc phần Search trong TAoCP của Knuth. Phát hiện ra không giúp ích gì cho đời. Trong lúc rảnh google paper ở cvpr phát hiện ra phép đổi RGB -> xám của OpenCV lẫn matlab đều có vấn đề. Thôi thì ta tự code từ đầu đến cuối, bố dek tin đứa nào.
  2. cảm thấy manhattan distance chuối quá, chuyển sang Euclid, . Thấy trả về ảnh nào có min thấp quá cunhx hơn chuối. Quyết định trả về k ảnh, phát hiện ra kNN.
  3. Ngồi đọc sách xử lý ảnh của Gonzalez và tự hỏi cộng đồng xử lý ảnh đã lạc trôi về đâu giữa biển Deep Learning này. Thấy template matching dễ code và cài thử . Thấy template matching chạy cũng hài hài.
  4. Nản, ngồi google lung tung, nào là PCA, SVM, Tree-based methods, Deep Learning, ConvNet, Capsules net, Hinton và những người bạn, tự hỏi nên bắt đầu từ đâu. Thế là tìm cuối Computer Vision: Algorithms and its applications. Đọc và có cảm giác mình đang đọc abstract của 70 papers khác nhau chung 1 chủ đề.
  5. Tự hỏi Image Process và Computer Vision khác nhau chỗ nào? Sau CV là gì? Deep là gì? Sao dân tình lại nhà nhà người người đều deep.
  6. Ngồi nghịch tiếp kNN và template matching, phát hiện ra các kq trả về na ná nhau, táo thì nó trả về mấy thứ màu đó, còn cam thì nó trả về màu cam. Hẳn phải có cái gì đó liên quan. Tiếp tục google, thấy dân tình bảo dùng t-SNE visualize, xách code chạy thử, cũng ảo diệu dù đek hiểu nó làm gì. ok, nhìn sơ qua thì các đối tượng có màu na ná nhau thì trong cái hình t-SNE tạo ra nó nằm gần nhau (sau vài chục tiếng tune mấy tham số của t-SNE) … ….

Chuyện fake news, fake quotes và toxic information.

Hôm nọ tình cờ phát hiện ra ông anh có quote câu:

“If you can’t explain it to a six year old, you don’t understand it yourself.” - Einstein.

Nhưng thực ra câu này Einstein chưa bao giờ thốt ra, cũng không có một tài liệu nào nói là ổng có đề cập đến câu đó. Câu gần nhất thì có lẽ có Feynman nói, và dựa vào đó ổng đề xuất Feynman’s method về phương pháp học tập hiệu quả.

Hiện tượng fake news (không ngờ cũng có ngày mình phải đồng ý 1 quan điểm với anh Đỗ Năm Trân), fake quotes và toxic information (đầu độc người đọc bằng các thông tin “nguy hiểm”, đặc biệt liên quan đến sức khỏe), có thể liệt kê như sau:

  • Danh sách các loại thức ăn không nên ăn chung với nhau. Buồn một nỗi là mình không thể tìm thấy 1 nghiên cứu cụ thể nào nói vấn đề đó, nhưng laị được share rất nhiều trên mạng. Vì nó đề cập đến sức khỏe thành ra rất nhiều người quan tâm. Ngoài ra còn có thể loại kiểu như vụ thí nghiệm cá chết ở Fomasa (hoàn toàn phản khoa học, setting thí nghiệm muốn chửi), vụ VTV phanh phui “nước giấm làm từ hóa chất”, bản chất nếu làm từ hóa chất không có gì sai, cái sai là nguồn gốc của hóa chất đó thì không được nhấn mạnh, bởi người đọc có quan niệm “cái gì làm từ hóa chất đều độc”.
  • Các câu danh ngôn nổi tiếng: không source, không nguồn gốc. Cả 1 đoạn trích đúng 1 câu và hiểu lệch lạc hoàn toàn vấn đề.
  • Fake news thì có lẽ đã quá nổi tiếng ở Việt Nam.
  • bla, bla…

Trong Computer Science, có một câu cực kì kinh điển và dân tình rất thích quote: “premature optimization is the root of all evil” - Don Knuth Và bắt đầu một sự rất vui về cái quote này.

  1. Quote này chính Knuth nói rằng là do Tony Hoare (cha đẻ của Quicksort) nói.
  2. Nguồn gốc câu này (được dân tình cite nhiều) nằm trong paper “ Structured Programming with goto Statements” - Don Knuth - Computing Surveys , 1974. Để verify quote này và tìm nguồn gốc câu trên, mình đã mua hẳn cuốn Literate Programming về đọc ==.
  3. Đọc hết cái paper ở trên, và nếu có tìm hiểu về công trình của Knuth, ta sẽ hiểu rằng có gì đó sai sai nếu Knuth là người nói câu đó: thánh ấy đã chế ra ngôn ngữ mã máy riêng, hẳn 1 cái máy tính tưởng tượng mà trong đó 1 byte = 6 bits. Với mục đích: phân tích mọi thuật toán tới từng chỉ thị và optimize mọi thứ. Có thể nói, chính thánh ấy là thánh của optimize code. Trong khi đó Hoare là cha đẻ của Verification, các biểu diễn hình thức toán học để chứng minh 1 thuật toán là đúng đắn. Và chính Hoare là người đề xuất việc “đừng cắm mặt optimize” mà hãy viết code sao cho “người khác hiểu được” và có thể chứng minh được sự đúng đắn của nó.
  4. Trong paper gốc, Knuth không cite câu trên của Hoare, nhưng trong log về TeX error ông có đề cập. Giáo sư Sedgewick (học trò Knuth, sáng lập Computer Science department ở Princeton) cũng nói trong sách Algorithms của ổng rằng câu trên của Hoare.
  5. Một điều khá hài hước là khi Hoare được hỏi là ổng có nói câu trên không, thì ông lại nói ổng tưởng Knuth nói câu đó =))

References

“For the absence of a bibliography I offer neither explanation nor apology” - A discipline of programming - Edsger W. Dijkstra.

comments powered by Disqus