Kỹ năng làm việc với Machine Learning

Machine learning workflow
Machine learning workflow

Thông thường khi bắt tay làm việc với Machine Learning, đa số chúng ta đều mong muốn áp dụng ngay các thuật toán đã học vào bài toán của mình. Tuy nhiên, trong thực tế, mọi thứ đều không đơn giản như vậy. Ngoài kĩ năng thu thập và tiền xử lý dữ liệu, trong bài viết này, tôi sẽ đề cập đến những kĩ năng cần thiết khác để góp phần cải tiến độ chính xác của mô hình dự đoán của mình.

Feature Engineering

Feature Engineering
Feature Engineering

Trong hầu hết các mô hình mà bạn xây dựng, thuộc tính (feature) đóng vai trò là thành phần cơ bản trong mô hình machine learning. Khi nói đến Feature Engineering, ta nói đến sự đóng góp của bàn tay con người bổ sung vào cải tiến mô hình bằng cách chọn lọc ra các feature phù hợp cho từng bài toán cụ thể. Trong đó, phải kể đến các kĩ năng như thu thập chính xác dữ liệu, điều chỉnh lại các feature sao cho đúng chuẩn, chọn lọc các feature phù hợp với mô hình hiện tại, thêm các feature mới vào dữ liệu, xử lý các thuộc tính bị thiếu dữ liệu, thay đổi kiểu dữ liệu của feature và chuẩn hóa toàn bộ feature trong cơ sở dữ liệu.

Kinh nghiệm cho thấy, bất cứ khi nào bạn tìm được một script về feature engineering, bạn nên thu thập và lưu trữ lại vào code repository của mình để làm snippet sau này. Feature engineering là quan trọng bởi vì nó ảnh hưởng đến độ chính xác chung cũng như đến tốc độ huấn luyện của mô hình dự đoán.

Model tuning

Model tuning
Model tuning

Bạn có thể dễ dàng tìm thấy những thư viện cài đặt sẵn các thuật toán machine learning trong R hay Python. Nhưng tinh chỉnh mô hình (model tuning) lại là một câu chuyện khác. Hiểu được các thông số (parameter) của mô hình và tinh chỉnh các thông số này ra sao sẽ làm thay đổi đáng kể độ chính xác của mô hình dự đoán. Kĩ năng này đòi hỏi bạn phải có hiểu biết thấu đáo về các thuật toán machine learning. Có rất nhiều tutorial trên Youtube hay các bài viết về cách tinh chỉnh các thông số này mà bạn chưa rõ.

Hạn chế Overfitting

Overfitting
Overfitting

Đây là lỗi thường gặp và có ảnh hưởng đến độ chính xác chung của mô hình dự đoán. Overfitting (quá khớp với dữ liệu huấn luyện) được định nghĩa theo công thức toán như sau:

Xét độ lỗi (error) của mô hình dự đoán (hypothesis) h trên:
_ tập huấn luyện (training data): error_train(h).
_ quần thể dữ liệu (distribution) D: error_D(h).

 

Mô hình dự đoán h thuộc H quá khớp (overfitting) tập huấn luyện nếu tồn tại một mô hình dự đoán khác là h’ thuộc H sao cho:

_ error_train(h) < error_train(h’);
_ nhưng có error_D(h) > error_D(h’)

Overfitting xảy ra khi mô hình dự đoán đạt được trên tập huấn luyện có độ lỗi nhỏ nhưng khi áp dụng lên tập dữ liệu test (dữ liệu mà mô hình chưa nhìn thấy) thì lại cho độ lỗi rất lớn, nên độ chính xác chung của mô hình bị giảm xuống. Mục tiêu của các mô hình dự đoán đó là dự đoán chính xác những mẫu dữ liệu chưa nhìn thấy trong tương lai. Nếu ta có thể dự đoán chính xác trên dữ liệu thu thập được nhưng lại không thể dự đoán chính xác những dữ liệu trong tương lai thì nhìn chung mô hình của ta không đạt yêu cầu. Do đó, khi xây dựng các mô hình, ta cần chú ý đến overfitting.

Nắm bắt các kĩ thuật machine learning mới

Bạn sẽ học được những kĩ thuật xử lý machine learning cơ bản trên trường cũng như các khóa học online nhưng còn rất nhiều các kĩ thuật khác trên thị trường cần ta tiếp tục khai thác. Vì vậy, bạn cần dành nhiều thời gian trau dồi thêm những kĩ thuật mới cho riêng mình, làm thế nào để cài đặt chúng bằng R/ Python/ Java, các thông số nào được truyền vào mô hình, …

Model Ensemble

Model Ensemble
Model Ensemble

Đây là một chủ đề nóng về cách tăng độ chính xác của mô hình dự đoán. Nói ngắn gọn, đây là mô hình dựa trên các kĩ thuật machine learning khác nhau, lấy mẫu (sampling) dữ liệu và đưa ra kết quả dự đoán dựa vào sự kết hợp của nhiều mô hình gộp lại (ta có thể lấy kết quả trung bình từ một vài mô hình hay gán trọng số lên kết quả của từng mô hình, sau đó đưa ra kết luận dự đoán dựa trên điểm số cao nhất). Các kĩ thuật về Ensemble là một trong những thành tố quan trọng để chiến thắng trong các cuộc thi như Kaggle.

Cài đặt machine learning trên các platform khác nhau

Các thư viện tương thích đa nền tảng như R, Python, Java, Spark, … hiện đã có nhiều cài đặt về machine learning. Bạn có thể bắt đầu trên bất kì nền tảng nào mà bạn cảm thấy quen thuộc. Hầu hết các source code được cài đặt bằng Python hay R. Nếu gặp khó khăn trong quá trình tính toán như bị thiếu bộ nhớ ta có thể dựa vào các dịch vụ đám mây như Azure machine learning để thực nghiệm.

Visualization

Graph visualization
Graph visualization

Visualization cho dữ liệu và mô hình cơ bản là một lĩnh vực quan trọng. Công cụ này cung cấp cho ta cái nhìn toàn diện về dữ liệu được tổ chức như thế nào và làm thế nào mà mô hình của chúng ta có thể thực hiện được… Ta có thể bắt đầu với các hàm plotting dựng sẵn trong R. Ngoài ra, ta có thể sử dụng dữ liệu từ Kaggle để thực tập với dữ liệu thực tế.

Advertisements

2 thoughts on “Kỹ năng làm việc với Machine Learning

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s