Chào mọi người, bài viết hôm nay mình sẽ nói về chủ đề một số câu hỏi về Machine Learning
, Deep Learning
mình đã từng trải qua khi phỏng vấn ở vị trí Machine Learning Engineer.
Math
Đây là phần không thể thiếu trong các buổi phỏng vấn vì toán học đóng vai trò quan trọng, nền tảng trong Machine Learning.
Một số câu hỏi lý như:
- Đạo hàm là gì
- Ma trận, cụ thể ma trận chuyển vị, ma trận nghịch đảo...
- Vector, Tensor
- Xác suất thống kê: khái niệm cơ bản, xác suất độc lập, xác suất có điều kiện, định lý Bayes...
- Trình bày hiểu biết về euclidean distance, cosine similary...
Language Programming
Python
là ngôn ngữ được sử dụng, hỗ trợ mạnh nhất trong Machine Learning nên nếu bạn nắm vững ngôn ngữ lập trình Python là một lợi thế. Câu hỏi về syntax, list, set, dictionary, sort algorithm, queue, multi processing...- Nếu biết ngôn ngữ R, Java là một điểm cộng.
Machine Learning
Một số câu hỏi hay gặp như:
- Khái niệm cơ bản về Machine Learning
- Có thể phân loại Machine Learning thành bao nhiêu nhóm.
- Tại sao trong Computer Vision người ta hay sử dụng
Deep Learning
thay vìMachine Learning
truyền thống. - Nêu ra điểm quan trọng để phân biệt học có giám sát và học không có giám sát.
- Học có giám sát được phân thành 2 loại Classfication và Regression. Nêu rõ điểm khác nhau giữa chúng.
- Các phương pháp đánh giá trong bài toán học có giám sát: có bao nhiêu phương pháp và nêu ngắn gọn từng phương pháp.
- Các tiêu chí đánh giá: ngoài tiêu chí đánh giá accuracy (độ chính xác), người ta hay dùng tiêu chí nào đánh giá model; giả sử độ chính xác là 99% trong bài toán cụ thể thì có chắc chắn rằng model đã hoạt động tốt chưa.
- Hiện tượng underfitting, overfitting: câu hỏi kinh điển khi phỏng vấn, bạn sẽ phải nêu ra khái niệm và cách giải quyết.
- Khái niệm về ma trận nhầm lẫn (confusion matrix): nêu rõ khái niệm và ý nghĩa của TP, TN, FP, FN.
- Feature engineering là gì và vai trò của nó.
- Bạn sẽ làm gì nếu dữ liệu quá ít
- Một giai đoạn mà mọi người thường hay quên hoặc bỏ sót khi xây dựng mô hình.
- Nêu ra một số thuật toán bạn đã sử dụng: mình đã dùng SVM, Naive Bayes, LDA.. nên mình sẽ chọn thuật toán mình hiểu rõ nhất. Phần này bạn phải nêu rõ khái niệm, cách thức hoạt động, áp dụng nó với thư viện nào.
Project
Nêu ra các dự án bạn đã làm và vai trò trong đó.
- Đầu tiên bạn sẽ được hỏi dự án nào tốt nhất của bạn, nêu ra những thành quả bạn đã đạt được.
- Kể ra các dự án khác, thành quả và hiểu biết về thuật toán bạn sử dụng trong đó.
- Nêu lý do sử dụng thuật toán bạn chọn mà không phải là thuật toán khác.
- Nêu ra một dự án bạn coi là thất bại và lý do.
- Share source code nếu có thể để người phỏng vấn có thể review.
- Hướng phát triển tiếp theo của dự án: nếu dự án bạn đang làm chưa hoàn thành hoặc người phỏng vấn muốn cải thiện bạn sẽ làm gì, nêu ra giải pháp và hướng giải quyết.
- Bạn sẽ được hỏi kỹ về phần này, quá trình làm việc, thảo luận với team, kĩ năng giải quyết vấn đề khi gặp khó khăn...
Finally
- Tùy công ty phỏng vấn, có thể bạn sẽ được làm những bài test trên HackerRank, Leetcode...
- Mình sẽ không nêu ra câu trả lời, mọi người có thể xem và tự tìm đáp án. Thực ra còn rất nhiều câu hỏi nhưng mình sẽ dành ở phần sau.
- Các câu hỏi phần sau có thể là Deep Learning, deploy model, library Tensorflow, Numpy và một số bài toán cụ thể về Deep Learning.