top of page
  • Ảnh của tác giảCherry

Hai bước lựa chọn thuật toán ML

Đã cập nhật: 26 thg 5


Khi mới học về Machine Learning thì hên là học tới thuật toán (algorithm hoặc ngắn gọn là algo) nào, Cherry cũng hiểu được kha khá. Tuy nhiên, hiểu từng algo là một chuyện, tới khi phải giải quyết một bài toán, đặc biệt là các bài cuối khoá mà nó không thuộc chương sách nói về một algo cụ thể 😀 thì phải nói là cả Cherry và đồng bọn trong lớp đều rất hoang mang vì

  1. không biết phải lựa chọn thuật toán nào, và

  2. làm sao biết được lựa chọn của mình là đúng.

Thế nên trong bài viết này, Cherry sẽ chia sẻ kinh nghiệm để giúp các bạn bớt suffering hơn trong quá trình chọn lựa algo này theo trình tự trên.



Note Trước khi nhìn vào sơ đồ quy trình chọn algo dưới đây, Cherry muốn nhấn mạnh một điểm: Nếu các bạn chưa hiểu hết các dạng algo Cherry nêu ra là gì, thì cũng không sao nhé. Các bạn coi các thuật ngữ đó đơn thuần là tên, như An, Hiếu, Đức etc. thôi. Khi xác định xong mình cần tới nó thì tìm hiểu thêm sau. Thực tế số lượng các algo khá nhiều và để hiểu kĩ thì tốn rất nhiều công sức nghiên cứu học hỏi, nên thường các bạn khi đi làm sẽ chuyên hẳn về một mảng chứ không ai biết hết cả.



Hai bước lựa chọn thuật toán


1. Giới hạn nhóm algo cần dùng qua 3 câu hỏi:



1. Mục tiêu của bài toán là gì?

a. Đoán/ Dự đoán (Classification/Prediction)

  • Ví dụ: (a) dự đoán thời tiết, (b) phân loại (đoán nhóm) khách hàng

  • Dự đoánước lượng kết quả của sự kiện (như vd (a)) trong tương lai; còn Đoán (nhóm) là phân loại các đối tượng có tính chất tương tự nhau vào cùng một nhóm (như vd (b)).

  • Cả hai quá trình này đều dựa trên dữ liệu lịch sử và mô hình thống kê để dự đoán/đoán các sự kiện hoặc hành vi trong tương lai dựa trên mẫu số liệu quá khứ.

b. Ra quyết định tối ưu (Decision-making/Optimization)

  • Quyết định và tối ưu hóa nhờ vào (a) dữ liệu lịch sử và (b) việc liên tục tương tác với môi trường để học hỏi (thông qua phản hồi thu được) để tối đa hóa hoặc tối thiểu hóa một (hàm) mục tiêu cụ thể - như giảm chi phí, rút ngắn thời gian, hoặc giảm thiểu rủi ro.

  • Ví dụ, trong việc tối ưu hóa lịch trình vận chuyển hàng hóa, mục tiêu là xác định phương án và tuyến đường vận chuyển tối ưu nhất, giúp cắt giảm chi phí và thời gian giao hàng. Điều này bao gồm việc xem xét các yếu tố như khoảng cách, mật độ giao thông, và chi phí nhiên liệu để lựa chọn lộ trình hiệu quả nhất.

c. Mô phỏng (Simulation)

  • Mô phỏng là quá trình tạo ra các mô hình toán học nhằm tái hiện hoặc dự đoán hành vi của một hệ thống trong thực tế. Thông qua việc mô phỏng, chúng ta có thể phân tích sâu hơn hành vi của các hệ thống phức tạp, giúp đưa ra quyết định khôn ngoan nhất dựa trên việc đánh giá nhiều kịch bản khác nhau có thể xảy ra.

  • Ví dụ, việc mô phỏng ảnh hưởng của chính sách kinh tế giúp chúng ta hiểu rõ hơn về những tác động tiềm năng mà các biện pháp kinh tế mới có thể gây ra đối với nền kinh tế, từ đó hỗ trợ trong việc hoạch định chính sách.

2. Data trong tay đã được gắn nhãn (label) chưa?

3. Dạng data bạn muốn xuất ra là gì?


2. Sàng lọc bằng chi tiết cụ thể về bài toán của bạn


Sau khi đã biết được nhóm algo cần sử dụng, các bạn nhìn lại data mình có và đánh giá các điểm sau:

  • "Ngữ cảnh" của data. Vd: Data sales trong ngành bán lẻ, data signal của hệ thống báo cháy, etc.

  • Đặc điểm của data input. Vd: bạn có bao nhiêu records/features (nôm na là bao nhiêu dòng/cột)? data được record hàng tuần, hàng tháng hay sao? etc.

  • Đặc điểm của data output. Vd: đối với bài toán phân loại, bạn muốn (1) phân khách hàng vào một trong 2 nhóm (binary classification), hay (2) phân họ vào một trong nhiều nhóm (multiclass classification), hay (3) phân họ vào nhiều nhóm trong nhiều nhóm (multi-label classication).

Sau đó đặt câu hỏi với thông tin rõ ràng cho ChatGPT hoặc Google Bard thôi (tất nhiên là nhớ double check lại nhé).



Làm sao biết lựa chọn nào là đúng nhất?



Câu trả lời của Cherry có thể làm các bạn hơi thât vọng nhưng thực sự là các bài toán dù có cùng mục tiêu cuối cùng đi chăng nữa thì vẫn rất riêng biệt nếu nội dung data input có sự khác biệt (lượng data và data bị thiếu, lượng feature, etc.). Do đó, không ai có thể cho các bạn câu trả lời chính xác 100% là algo nào là hiệu quả nếu chưa thử nghiệm trên chính data đó. Điều tốt nhất chúng ta có thể làm là sàng lọc thật kĩ các algo tiềm năng nhất, thử nghiệm chúng, và dựa vào kết quả để đánh giá và quyết định mô hình nào phù hợp và tối ưu nhất cho bài toán cụ thể của bạn.




296 lượt xem0 bình luận

Bài đăng gần đây

Xem tất cả

Comments


Language Studies

STAY IN THE KNOW

Thanks for submitting!

bottom of page