Ở phần trước các bạn đã được tìm hiểu về 5 câu hỏi phỏng vấn thường gặp đối với lập trình viên Machine Learning. Hôm nay cùng ITguru tìm hiểu tiếp 5 câu hỏi và cách trả lời thích hợp nhé. Hãy trả lời tốt để ghi điểm trong mắt nhà tuyển dụng (Phần 1 – 10 Câu hỏi phỏng vấn thường gặp trong ngành Machine Learning)
6. Imbalanced dataset là gì? Liệt kê một số cách để đối phó với nó?
Imbalanced dataset là tập dữ liệu có tỷ lệ các categories khác nhau. Ví dụ, một tập dữ liệu với các hình ảnh y tế mà chúng ta phát hiện trong một số bệnh thường sẽ có nhiều mẫu âm tính hơn mẫu dương tính, ví dụ: 98% hình ảnh không có bệnh và 2% hình ảnh bị bệnh.
Có các tùy chọn khác nhau để xử lý các Imbalanced dataset:
- Oversampling hoặc undersampling.
- Data augmentation. Chúng ta có thể thêm data vào các categories ít thường xuyên hơn bằng cách sửa đổi data hiện có theo cách được kiểm soát. Trong dataset mẫu, chúng ta có thể lật hình ảnh bị bệnh hoặc thêm nhiễu vào bản sao của hình ảnh theo cách mà bệnh vẫn có thể nhìn thấy được.
- Sử dụng các metrics thích hợp. Trong dataset mẫu, nếu chúng ta có một model luôn đưa ra các dự đoán tiêu cực, nó sẽ đạt được độ chính xác 98%. Ngoài ra còn có các metrics khác như độ chính xác, số lần truy cập và F-score để mô tả độ chính xác của một model tốt hơn khi sử dụng Imbalanced dataset.
7. Giải thích sự khác biệt giữa supervised, unsupervised và reinforcement learning?
Supervised learning là thuật toán dự đoán đầu ra (outcome) của một dữ liệu mới (new input) dựa trên các cặp (input, outcome) đã biết từ trước. Cặp dữ liệu này còn được gọi là (data, label), tức (dữ liệu, nhãn). Trong Supervised learning, chúng ta train một model để tìm hiểu về mối quan hệ giữa input và output data. Chúng ta cần có label data để có thể thực hiện được quá trình supervised learning.
Với Unsupervised learning, chúng ta chỉ có unlabeled data. Thuật toán unsupervised learning sẽ dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào đó, ví dụ như phân nhóm (clustering) hoặc giảm số chiều của dữ liệu (dimension reduction) để thuận tiện trong việc lưu trữ và tính toán. Unsupervised learning thường được sử dụng để khởi tạo các parameters của model khi chúng ta có rất nhiều unlabeled data và một phần nhỏ labeled data. Trước tiên, chúng ta train một Unsupervised Models và sau đó chúng ta sử dụng trọng số của models để train một supervised model.
Trong reinforcement learning, model có một số input data và phần thưởng tùy thuộc vào output của model. Reinforcement learning là các bài toán giúp cho một hệ thống tự động xác định hành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất (maximizing the performance). Hiện tại, Reinforcement learning chủ yếu được áp dụng vào Lý Thuyết Trò Chơi (Game Theory), các thuật toán cần xác định nước đi tiếp theo để đạt được điểm số cao nhất.
Có thể bạn muốn tìm hiểu thêm:
- 10 Câu hỏi phỏng vấn thường gặp trong ngành Machine Learning (Học Máy) – Phần 1
- [DOWNLOAD] Mẫu CV xin việc dành cho lập trình viên IT đã có kinh nghiệm
- Cách viết CV xin việc ấn tượng cho lập trình viên Software
8. Một số yếu tố giải thích về sự thành công và sự gia tăng gần đây của Deep Learning là gì?
Sự thành công của Deep Learning trong thập kỷ qua có thể được giải thích bằng ba yếu tố chính:
- Thêm Data. Sự sẵn có khối lượng lớn labeled datasets cho phép chúng tôi train các models với nhiều parameters hơn và đạt được điểm số tối tân. Các thuật toán ML khác không scale cũng như Deep Learning khi nói đến kích thước dataset.
- GPU. Các Training models trên GPU có thể giảm thời gian đào tạo theo của magnitude so với việc training trên CPU. Hiện tại, các models tiên tiến được đào tạo trên nhiều GPU hoặc thậm chí trên phần cứng chuyên dụng.
- Cải tiến trong thuật toán. ReLU activation, dropout, và complex network architectures cũng là những yếu tố rất quan trọng.
9. Data augmentation là gì? Cho một số ví dụ?
Data augmentation là một kỹ thuật tổng hợp data mới bằng cách sửa đổi data hiện có theo cách mà target không thay đổi, hoặc nó được thay đổi theo cách đã biết.
Computer vision là một trong những fields mà việc Data augmentation rất hữu ích. Có nhiều sửa đổi mà chúng ta có thể thực hiện đối với hình ảnh:
- Thay đổi kích thước
- Lật ngang hoặc dọc
- Quay
- Thêm tiếng ồn
- Biến dạng
- Sửa đổi màu sắc
- Mỗi vấn đề cần có một cách optimize Data augmentation tùy chỉnh. Ví dụ: trong OCR, việc thực hiện flips sẽ thay đổi văn bản và sẽ không mang lại lợi ích; tuy nhiên, thay đổi kích thước và xoay nhỏ có thể hữu ích.
10. Convolutional Neural Network là gì? Có thể sử dụng chúng ở đâu?
Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) là một trong những mô hình Deep Learning tiên tiến giúp cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay như hệ thống xử lý ảnh lớn như Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng thông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone giao hàng tự động. CNN được sử dụng nhiều trong các bài toán nhận dạng các object trong ảnh.
Các convolutional layer có các parameter(kernel) đã được học để tự điều chỉnh lấy ra những thông tin chính xác nhất mà không cần chọn các feature. Trong hình ảnh ví dụ trên, ma trận bên trái là một hình ảnh trắng đen được số hóa. Ma trận có kích thước 5×5 và mỗi điểm ảnh có giá trị 1 hoặc 0 là giao điểm của dòng và cột. Convolution hay tích chập là nhân từng phần tử trong ma trận 3.
Sliding Window hay còn gọi là kernel, filter hoặc feature detect là một ma trận có kích thước nhỏ như trong ví dụ trên là 3×3. Convolution hay tích chập là nhân từng phần tử bên trong ma trận 3×3 với ma trận bên trái. Kết quả được một ma trận gọi là Convoled feature được sinh ra từ việc nhận ma trận Filter với ma trận ảnh 5×5 bên trái.