Heilmeier’s Catechism

Nếu chưa tự trả lời một cách rõ ràng được những câu hỏi dưới đây, có lẽ chưa nên thực hiện nghiên cứu/dự án.

Một tập các câu hỏi được cho là của Heilmeier, mà bất kỳ ai đang đề xuất một dự án nghiên cứu hay cố gắng phát triển sản phẩm nên trả lời được.

  1. Bạn đang cố gắng để làm điều gì? Hãy phát biểu rõ ràng các mục tiêu của bạn mà tuyệt đối không dùng các thuật ngữ khó hiểu.
  2. Cho đến nay vấn đề đã được giải quyết ra sao, và đâu là những giới hạn của cách làm hiện tại? (nói cách khác đâu là những vấn đề mà các nghiên cứu/dự án hiện tại chưa giải quyết hoặc chưa giải quyết được?)
  3. Điểm mới trong cách tiếp cận của bạn – tại sao bạn nghĩ nó sẽ thành công?
  4. “Khách hàng” của nghiên cứu/dự án là ai? Hay nói cách khác ai sẽ quan tâm đến vấn đề nghiên cứu hay sản phẩm?
  5. Nếu thành công, nó sẽ tạo ra sự khác biệt nào? (Nếu thành công, nghiên cứu/dự án của bạn sẽ có tác động như thế nào đến thế giới/cộng đồng?)
  6. Rủi ro và và lợi ích của dự án/nghiên cứu là gì?
  7. Chi phí dành cho dự án/nghiên cứu là bao nhiêu?
  8. Thời gian để làm dự án/nghiên cứu là trong bao lâu?
  9. Đâu là thời điểm trung hạn và thời điểm cuối cùng để đánh giá thành công của dự án/nghiên cứu? (Có cách nào để đánh giá tiến độ và sự thành công của nghiên cứu?)

————————————–

Source: http://en.wikipedia.org/wiki/George_H._Heilmeier#Heilmeier.27s_Catechism

A set of questions credited to Heilmeier that anyone proposing a research project or product development effort should be able to answer.

  1. What are you trying to do? Articulate your objectives using absolutely no jargon.
  2. How is it done today, and what are the limits of current practice?
  3. What’s new in your approach and why do you think it will be successful?
  4. Who cares?
  5. If you’re successful, what difference will it make?
  6. What are the risks and the payoffs?
  7. How much will it cost?
  8. How long will it take?
  9. What are the midterm and final “exams” to check for success?

Review & Đánh giá một bài báo khoa học

Với tư cách là một referee, bạn cần đánh giá 1 bài báo theo các tiêu chí sau:

* Tính mới (novelty)
* Độ quan trọng (significance)
* Tính đúng (correctness)
* Cách trình bày (readability)

Các câu hỏi quan trọng khi đánh giá một bài báo:

1- Mục đích của bài báo là gì?

  + Vấn đề bài báo giải quyết là gì?
  + Tác giả có phát biểu vấn đề một cách rõ ràng hay không?
  + Tác giả có làm rõ các issues quan trọng hay không?
  + Tác giả có nêu rõ các contribution của mình hay không

2- Bài báo có phù hợp hay không?

Bài báo có phù hợp với hội nghị/journal không?

3- Mục tiêu (goal) của bài báo có quan trọng hay không?

  + Vấn đề đặt ra có thực hay không?
  + Ai quan tâm? (Who care)
  + Vấn đề có quá specific hay applied hay không?
  + Vấn đề, mục đích, kết quả có thực sự mới hay không?
      * Có bài báo nào đã làm giống như vậy không?
      * Vấn đề đã được giải quyết trước đó chưa?
      * Bài báo có phải chỉ là một biến thế hay mở rộng đơn giản của các kết quả trước đó?
      * Tác giả có trích dẫn các kết quả liên quan và phân biệt rõ đâu là kết quả của mình, đâu là kết quả đã được thực hiện trước đó hay không?

4- Phương pháp hay cách tiếp cận có đúng đắn hay không?

  + Liệu có chỗ nào trong cách tiếp cận không phù hợp (hoặc đối lập) với kết quả hay không?
  + Liệu có thể phát biểu bằng lời phương pháp của tác giả là gì hay không?
  + Giả thiết là gì (assumption)? Nó có thực tế hay không?
  + Nếu nó không thực tế, nó có ảnh hưởng gì tới kết quả? Kết quả có dễ bị ảnh hưởng bởi giả thiết hay không?
  + Cách tiếp cận có đầy đủ đối với mục đích hay không?
  + Nếu bài báo trình bày 1 ý tưởng mới, tác giả có thảo luận hay phân tích đầy đủ hay không?

5- Nghiên cứu/kết quả có đúng đắn hay không?

   + Các phương trình toán học, mô hình toán học có đúng đắn hay không?
   + Các chứng minh có thuyết phục không?
   + Các thống kê có đúng không?
   + Các phương pháp mô phỏng, làm thí nghiệm có thuyết phục bạn rằng kết quả đưa ra là đúng?
   + Đối với các nghiên cứu về thống kê, tác giả có đưa ra confidence interval hay không?
   + Kết quả có thống nhất với các giả thiết hoặc các quan sát (facts) và đo đạc không?
   + Các điều kiện biên có được kiểm tra hay không?
   + Kết quả có thể xảy ra hay không?
   + Tác giả có làm những gì họ claim hay không? Ví dụ, tác giả có mô phỏng hệ ban đầu bằng 1 mô hình hợp lý hay chỉ xấp xỉ bẳng các mô hình toán học?

6- Các kết luận đưa ra có đúng đắn/phù hợp với kết quả hay không?

   + Ứng dụng hoặc ngụ ý (implications) của kết quả là gì?
   + Tác giả có thảo luận một cách hợp lý tại sao anh ta lại thu được các kết quả đó hay không?

7- Bài báo có được trình bày tốt hay không?

   + Bài báo có được viết đủ tốt để bạn đánh giá các nội dung kỹ thuật hay không (technical content)
   + Một bài báo viết khó hiểu không đáng được publish.
   + Một bài báo cần phải sửa nhiều không đáng được đăng
   + Nếu bài báo đọc được, bạn cần đánh giá cả về trình bày lẫn nội dung của nó.
   + Phần tóm tắt có mô tả đúng nội dung bài báo hay không?
   + Phần introduction có mô tả đúng vấn đề và research framework hay không?
   + Các phần khác có clear và tuân thủ trình tự logic hay không?
   + Liệu có quá ít hay quá nhiều các chi tiết kỹ thuật hay không?
   + Ngữ pháp và cú pháp có đúng không?
   + Các bảng biểu, hình vẽ có được label đúng, phù hợp và có ý nghĩa hay không?
   + Có quá nhiều hay quá ít bảng biểu hình vẽ?
   + Các giải thích có poor hoặc nonsense hay không?
   + Tác giả viết quá dài dòng hoặc quá ngắn gọn?
   + Liệu bài báo có self-contained để người trong ngành có thể hiểu được hay không, hay độc giả cần các kiến thức chi tiết khác ở các kết quả, bài báo khác?
   + Nếu tác giả có refer người đọc tới các bài báo khác có các chi tiết quan trọng? Bạn có tin anh ta không hay cần phải check bài báo gốc?
   + Style của bài báo có quá suồng sã hay quá formal?
   + Liệu có quá nhiều lỗi typo hay không?
   + Paper có quá dài không?
   + Liệu paper có nên chia ra thành nhiều paper nhỏ mà không mất đi tính logic?
   + Liệu paper có quá nhiều lỗi chính tả, ngữ pháp hoặc dấu câu? Bạn cần chỉ ra các lỗi đó cho tác giả.

8- Bạn học được gì từ bài báo?

   + Bạn đã học được, hay độc giả có thể học được gì từ bài báo?
   + Nếu bạn không học được gì hoặc độc giả mà nó hướng tới không học được gì, bài báo không nên được đăng.
————–

What should be included in a review

Writing a one-page summary of the paper. You should use 10-point font and standard margins. Two-column format is acceptable. In this summary you should describe:

  • What problem is this paper trying to address? Why is the problem important?
  • What are the key ideas proposed in the paper, and why are they novel?
  • How are the ideas evaluated? Is the evaluation fair/appropriate?
  • Do you think the paper will have high impact? Did you like the paper?

The review should consist of:

  • Short para on any of the following points: What do you feel the main contribution of this paper is? What did you find interesting about this work? What’s the essential principle that the paper exploits?
  • One major strength of the paper (one sentence)
  • One weakness of this paper (one sentence)
  • One question or future work direction you think should be followed.

References

  1. The task of the referee: https://www.cs.utexas.edu/users/mckinley/notes/reviewing-smith.pdf
  2. How to Review a Scientific Paper: http://www.bcl.hamilton.ie/~barak/how-to-review.html

23 cách để chống lại sự trì hoãn

Trích từ cuốn sách ” Ngay bây giờ hoặc không bao giờ”, tác giả S.J.Scott

  1. Sử dụng quy tắc 80/20 để xác định những nhiệm vụ quan trọng
  2. Liên hệ mọi hành động đến mục tiêu S.M.A.R.T
  3. Nắm bắt ý tưởng mỗi khi chúng xuất hiện
  4. Tạo ra hệ thống 43 thư mục tại nhà bạn để xử lý công việc giấy tờ
  5. Tạo ra danh sách cho mọi dự án cần nhiều bước thực hiện
  6. Tạo ra danh sách những bước cần làm cho những công việc thực hiện hằng ngày
  7. Ghép những nhiệm vụ tương tự vào với nhau
  8. Thực hiện từng quy trình và từng dự án một
  9. Mỗi tuần hãy dành ra vài giờ làm đánh giá
  10. Hãy thực hiện đánh giá tháng để kiểm tra cặn kẽ các hoạt động của bạn
  11. Nói “không” với các hoạt động có mức độ ưu tiên thấp
  12. Theo dõi tiến độ và thành công của bạn
  13. Bắt đầu ngày mới với những công việc quan trọng nhất
  14. Chọn ưu tiên bằng phương pháp ABCDE
  15. Tạo ra một cảm giác về sự cần thiết bằng kỹ thuật khối thời gian
  16. Chịu trách nhiệm một cách công khai đối với các mục tiêu của bạn
  17. Bắt đầu một thói quen mới từ những việc vô cùng nhỏ
  18. Tưởng thưởng bản thân khi đạt đến một cột mốc nào đó
  19. Phát triển một kỹ năng dùng cho dự án
  20. Tạo động lực phụ bằng cách nghe các chương trình truyền cảm hứng (ví dụ trên TED Talks)
  21. Thực hiện kỹ thuật tưởng tượng khi bạn cảm thấy chán nản
  22. Hãy kiên nhẫn với quá trình cải thiện cuộc sống của bạn
  23. Tham gia thử thách 30 ngày để thay đổi từng thói quen một

Áp lực sợ bỏ lỡ

Khái niệm này được định nghĩa là áp lực, lo lắng mình sẽ bỏ lỡ một thông tin, mối quan hệ, đồ giảm giá, etc nào đó (có vẻ) có ích ngay tại thời điểm hiện tại hoặc trong tương lai.

Ví dụ, bạn nhìn thấy một cuốn sách, thông tin, bài báo mà người khác share và nói là hay, có ích, bạn sẽ có cảm giác là cần mua, đọc nó. Bạn lưu lại và tự nhủ là khi nào có thời gian sẽ đọc. Cuối cùng, bạn chẳng bao giờ/hiếm khi động tới. Thậm chí khi mua/lưu lại, bạn sẽ bị não bộ đánh lừa và có cảm giác là đã đọc xong nội dung trong đó.

Việc có quá nhiều thông tin/vật dụng cũng khiến cho những thông tin/vật dụng cần thiết và hữu ích thật sự bị đẩy xuống dưới và bị bỏ qua một cách đáng tiếc.

Trong thời đại thông tin bùng nổ và cạnh tranh khốc liệt thì áp lực sợ bỏ lỡ lại càng lớn. Mình cũng đang bị mắc vào. Số lượng trong danh sách lưu lại (bằng pm pocket: https://getpocket.com/) để đọc sau của mình đã lên tới hơn 1500 và mục cũ nhất chưa đọc là cách đây 204 ngày.

Chắc phải thực hiện chiến lược là cái gì đọc được luôn trong ngày, tuần thì mới lưu lại còn không thì bỏ qua luôn, và định kỳ dọn dẹp những bài quá lâu không động tới.

Những thứ tưởng là cần nhưng cuối cùng hoá ra lại không cần lắm.

Check-list vào cuối ngày/tuần/tháng

  1. Mình đã hoàn thành, đạt được những gì trong ngày làm việc?
  2. Những gì mình còn chưa hoàn thành trong kế hoạch đặt ra?
  3. Những ý tưởng hay nào mình đã nghĩ ra, thử suy nghĩ sâu sắc hơn xem sao?
  4. Những bài học/kinh nghiệm nào mình đã rút ra trong ngày?
  5. Mình đã học thêm được kiến thức/tri thức gì trong ngày/tuần/tháng?
  6. Sự kiện gì là quan trọng đối với mình trong ngày/tuần/tháng?
  7. Mình đã sử dụng thời gian như thế nào trong ngày? Sử dụng như vậy đã hợp lý chưa? Mình đã lãng phí thời gian ra sao? Có thể khắc phục được không?
  8. Những gì mình làm có quan trọng, giúp mình tới gần hơn GOAL đặt ra hay không?
  9. Review lại short-term và long-term GOAL.
  10. Check lại to-do list cho ngày hôm sau/thời gian tới? Timeline,…

Checklist cho luận văn thạc sĩ

Checklist cho luận văn thạc sĩ (Cho các sinh viên đang viết luận văn thạc sĩ)

  1. Có thực hiện lại được không? (Reproducibility). Để thực hiện lại được, nên cố gắng đóng gói chương trình sao cho với mỗi kết quả trong luận văn thạc sĩ, chỉ cần chạy một script duy nhất để tái hiện lại được các kết quả từ dữ liệu thô. Ngay cả các bảng số liệu, hình vẽ cũng nên sinh ra bằng chương trình máy tính.
  2. Có tính mới mẻ không? (Novelty). Có tính mới mẻ về mặt khoa học là yêu cầu dành cho những luận văn thạc sĩ xuất sắc. Nhưng luận văn thạc sĩ cũng nên cũng có tính mới về mặt thực hành.
  3. Đã chỉnh sửa lại nhiều lần chưa? Không chỉ tự mình chỉnh sửa mà nên nhờ thầy hướng dẫn và nhiều người khác mà mình tin cậy đọc và chỉnh sửa giúp.
  4. Đã hiểu rõ các nghiên cứu trước chưa?
  5. Tự bạn đánh giá xem mình có đủ điều kiện tốt nghiệp thạc sĩ chưa?

Bài viết dựa trên nguồn tiếng Nhật: 【卒論修論のさしすせそ】https://twitter.com/nh_m_/status/423322673993633792
さ:再現性あるの
し:新規性あるの
す:推敲は何度もしましたか
せ:先行研究ちゃんと理解してるの
そ:卒業できると思ってるの
#noted #teaching

Cài đặt Theano, TensorFlow và Keras cho Deep Learning

1. Giới thiệu

Bài viết hướng dẫn cách cài đặt Theano, TensorFlow và Keras cho Deep Learning.

2. Bước 1: Cài đặt Anaconda

Anaconda là một bản phân phối miễn phí cho Python. Tải bản Anaconda phù hợp với HĐH của bạn tại đây. Sau đó cài đặt theo hướng dẫn.

3. Cài đặt Theano với conda

conda install Theano

Xem hướng dẫn cài đặt Theano tại đây.

4. Cài đặt Keras

Cài đặt Keras bằng lệnh

conda install keras

Với python 2, dùng pip

pip install keras

Mặc định lệnh này sẽ cài đặt luôn backend tensorflow.

Bạn có thay đổi backend TensorFlow thành Theano bằng cách thay đổi file cấu hình ~/.keras/keras.json. Xem hướng dẫn tại đây.

Tạo hình vẽ/diagram và chuyển định dạng file từ pdf sang eps trên Mac OS X

Update: Ngoài cách dưới đây, có thể dùng TikZ  GIMP để vẽ hình và chuyển định dạng file.

Khi cần đưa hình vẽ vào LaTeX, mình hay sử dụng định dạng .eps và package graphicx.

Trong LaTeX sẽ chèn hình vẽ (chẳng hạn img.eps) vào một file LaTeX như sau.

\usepackage[dvips]{graphicx}
\begin{figure}[!t]
\begin{center}
\includegraphics[width=0.4\textwidth]{draw/img.eps}
\caption{System architecture}
\end{center}
\end{figure}

Trên Windows, để vẽ hình/diagram mình hay dùng Visio, sau đó in ra thành ps, dùng Adobe Acrobat để chuyển thành eps, và sau đó dùng epstool để sửa lại bounding box.

Trên máy Mac, sau một hồi mày mò mình đã tìm ra cách để thực hiện các bước ở trên. Đó là dùng công cụ Drawing của LibreOffice để vẽ hình, export ra pdf, dùng pdfcrop để crop file pdf tạo ra sau đó dùng xpdf để chuyển file pdf đã crop thành file eps. Được cái tất cả các phần mềm trên đều miễn phí nên không lo nguy cơ bảo mật trong các bản crack.

Các bước thực hiện như sau. Các bước dưới đây giả định bạn đã cài đặt MacTeX trên Mac OS X.

    1. Step 1: Download và cài đặt LibreOffice tại: https://www.libreoffice.org
    2. Step 2: Mở LibreOffice và dùng Drawing để vẽ hình. Drawing trong LibreOffice hỗ trợ vẽ diagram và flowchart khá tốt dù không xịn như Microsoft Visio.
    3. Step 3: Lưu bản drawing trong LibreOffice dưới định dạng pdf, ví dụ img.pdf
    4. Step 4: Sử dụng lệnh pdfcrop để crop file pdf vừa tạo ra
       pdfcrop img.pdf

      Lệnh này sẽ tạo ra file img-crop.pdf trong cùng thư mục với img.pdf

    5. Step 5: Download xpdf tại: http://www.foolabs.com/xpdf/download.html
    6. Step 6: Giải nén file: xpdfbin-mac-3.04.tar.gz
       tar xvfz xpdfbin-mac-3.04.tar.gz
    7. Step 7: Copy các file trong thư mục xpdfbin-mac-3.04/bin64  vào /usr/local/bin. Để copy được có thể bạn cần quyền root.
    8. Step 8: Chuyển file img-crop.pdf sang định dạng eps
       pdftops -eps img-crop.pdf

      Lệnh này sẽ tạo ra file img-crop.eps. Bạn có thể đổi tên file thành img.eps nếu thích.

Sau các bước thực hiện trên, bạn có thể đưa file ảnh .eps vào trong LaTeX một cách dễ dàng mà không cần quan tâm đến bounding box.