Pages

Saturday, September 19, 2020

Làm nghiên cứu như thế nào? (Phần 1)

Hôm nay có bạn hỏi mình làm thế nào để viết được một bài báo nghiên cứu khoa học. Sau đây là tóm tắt các khái niệm và quá trình làm nghiên cứu theo kinh nghiệm của bản thân mình. Hy vọng sẽ giúp các bạn có cái nhìn tốt hơn về làm nghiên cứu.

Đầu tiên phải nói đến khái niệm cơ bản liên quan đến làm nghiên cứu (research). Làm nghiên cứu tức đi tìm câu trả lời (answer/solution) cho một câu hỏi (question/problem) mà chưa ai trả lời được. Một ví dụ nổi tiếng là câu hỏi: Các hành tinh chuyển động xung quanh mặt trời theo quỹ đạo hình gì? Để trả lời câu hỏi này, đầu tiên chúng ta cần tập hợp dữ liệu (data collection) về chuyển động của các hành tinh theo thời gian. Điều này được thực hiện đầu tiên bởi Tycho Brahe ở thế kỷ 16. Trong thời đại chưa có kính viễn vọng, Tycho ghi lại vị trí của các hành tinh bằng cách quan sát bằng mắt thường từ đêm này qua đêm khác. Độ chính xác cao từ dữ liệu của Tycho chính là tiền đề để Kepler trả lời câu hỏi về chuyển động của các hành tinh. Phương pháp mà Kepler sử dụng là trial-and-error. Đầu tiên ông giả thuyết (hypothesis) quỹ đạo của các hành tinh là đường tròn, sau khi tính toán vị trí của các hành tinh và so sánh với dữ liệu thực tế, ông nhận thấy sai số (error) là quá lớn. Kepler lặp đi lặp lại quá trình này và tìm ra rằng quỹ đạo phù hợp nhất với dữ liệu thực tế là hình ellipse với mặt trời nằm ở một trong hai focal points. Các kiến thức được đưa vào trong sách giáo khoa như định luật vạn vật hấp dẫn, định luật Faraday, thuyết tương đối cũng đều được xây dựng để trả lời các câu hỏi tương tự. (Việc xây dựng mô hình để dự đoán Quality of Experience (QoE) tương đương với việc trả lời câu hỏi: QoE phụ thuộc vào những nhân tố nào? Cách chúng ta trả lời câu hỏi này cũng không khác gì so với cách mà Kepler, Faraday, hay Einstein sử dụng!)

Làm nghiên cứu vì vậy sẽ có hai bước 1) xác định câu hỏi và 2) tìm câu trả lời. Đây là ví dụ về một câu hỏi.

Trong live streaming over HTTP, biết trước độ dài buffer và bitrate của từng version, tải version cho từng segment như thế nào để đem lại trải nghiệm tốt nhất cho người dùng?

Phần đầu tiên của câu hỏi này "Trong live streaming over HTTP", định nghĩa bối cảnh (context) mà câu hỏi này áp dụng. Bối cảnh cũng sẽ xác định các ràng buộc (constraints) mà câu trả lời phải thỏa mãn. Ví dụ trong live streaming, bạn chỉ có thể gửi request cho một segment sau khi nó đã được tạo ra ở server. Một ràng buộc khác là độ trễ của tín hiệu phải nhỏ hơn một giá trị cho trước. Phần tiếp theo  "biết trước độ dài buffer và bitrate của từng version" định nghĩa các thông tin đầu vào (inputs) của bài toán. Phần cuối cùng "đem lại trải nghiệm tốt nhất cho người dùng" định nghĩ mục tiêu (objective) của câu trả lời. Vì vậy, xác định được câu hỏi tức là bản phải xác định được:
1. Bối cảnh (context)
2. Đầu vào (inputs)
3. Các ràng buộc (constraints)
4. Mục tiêu (objectives)

Cách mình thường dùng để tìm câu trả lời như sau:

1. Xác định giá trị của mục tiêu với các câu trả lời đơn giản nhất (baselines). Việc này sẽ giúp cho bạn đánh giá được hiệu quả mà phương pháp của bạn sẽ đề ra.
2. Đề xuất câu trả lời mới, đánh giá, và so sánh với giá trị ở bước 1
3. Cải tiến câu trả lời và lặp lại bước 2

Bước 2,3 là nơi mà mình thích nhất trong quá trình làm research vì được thoải mái sáng tạo, đưa ra ý tưởng và kiểm chứng tính hiệu quả của chúng. Đây cũng là nơi mà bạn phải dành nhiều thời gian nhất trong quá trình làm. Quá trình trial-and-error mà Kepler dùng để tìm ra dạng quỹ đạo của các hành tinh cũng nằm ở hai bước này.

Sau khi đã có một câu trả lời, việc quan trọng tiếp theo là phải so sánh với các câu  trả lời trước đây. Với các câu hỏi quan trọng, thì việc có khoảng 10 câu trả lời trước đây là việc rất bình thường. Nếu inputs của bạn hoàn toàn giống với inputs trong các bài báo trước đây thì bạn có thể dùng kết quả mà tác giả ghi trong bài báo của họ để đánh giá. Nếu không bạn sẽ cần phải implement và đánh giá lại câu trả lời của họ với dữ liệu đầu vào mà bạn đang dùng.

Sau khi đã chứng minh được rằng câu trả lời của bạn tốt hơn các đề xuất trước đây, bước cuối cùng là trình bày câu trả lời của bạn thành một bài báo để người đọc có thể hiểu và kiểm chứng được câu trả lời bạn đề xuất. Trong thực tế thì việc viết này sẽ được tiến hành ngay từ đầu và mình cũng khuyến khích các bạn như vậy. Nó sẽ giúp các bạn hiểu rõ hơn câu hỏi mà mình đang giải quyết. 

Kết: Làm nghiên cứu là một công việc mà bạn có thể rèn luyện được rất nhiều kĩ năng: tìm kiếm và giải quyết vấn đề, trình bày, làm việc nhóm, tiếng Anh. Tuy nhiên, nó cần rất nhiều nỗ lực và thời gian và phụ thuộc nhiều vào câu hỏi bạn giải quyết. Einstein chỉ mất 3 tháng để phát triển thuyết tương đối hẹp, nhưng mất tới 10 năm để tìm lời giải cho thuyết tương đối rộng. Trong bài tiếp theo, mình sẽ nói về hội nghị, tạp chí và các vấn đề liên quan.

1 comment:

Năm 2022 nhìn lại

Một năm bận rộn cũng sắp kết thúc. Để bố kể cho Sóc nghe về năm nay của nhà mình nhé. Nửa đầu năm là thời gian mà cả bố mẹ đều lao đầu vào c...