Machine Learning khác gì so với các thuật toán lập trình thông thường mà bạn đã học?

Tác giả: AI VIET NAM (học máy cho người mới)

Keywords: học máy cho người mới

Bạn đang hỏi kiểu:

“Em học qua C/Python, biết if–else, for loop, sort/search rồi. Vậy Machine Learning khác gì? Có phải chỉ là ‘lập trình khó hơn’ không?”

Câu trả lời: Machine Learning khác ở chỗ: thay vì bạn viết luật, bạn để máy tự học luật từ dữ liệu. Mindset lập trình, cách code, cách kiểm thử… đều thay đổi.

Trong bài này, bạn sẽ:

  • Hiểu rõ sự khác biệt giữa thuật toán lập trình truyền thống và Machine Learning
  • Thấy tại sao có những bài toán “viết if–else cả đời không xong” nhưng ML giải dễ
  • Biết cách chuẩn bị để đi từ lập trình cơ bản → Machine Learning (theo lộ trình AIO 1 năm)

Thuật toán lập trình thông thường là gì?

Bạn làm gì khi lập trình cơ bản?

  • Có input rõ ràng
  • Bạn nghĩ ra quy tắc/logic
  • Viết code bằng if–else, loop, function
  • Máy chạy đúng theo logic bạn viết

Ví dụ:

  • Tính tiền điện theo bậc
  • Xếp loại sinh viên theo điểm
  • Sắp xếp mảng số bằng selection sort/quicksort

Đặc điểm chung:

  • Luật do bạn viết
  • Output cố định nếu input không đổi
  • Thay đổi yêu cầu → sửa code

Machine Learning là gì (ở mức “người đang hỏi ChatGPT”)?

Với Machine Learning:

  • Bạn không viết tất cả rule
  • Bạn chuẩn bị:
    • Dữ liệu đầu vào
    • Nhãn (kết quả thật)
  • Bạn cho model học quy luật sao cho output gần khớp nhất
  • Khi có dữ liệu mới → model tự dự đoán, không cần viết thêm if–else

Ví dụ:

  • Email spam/không spam
  • Dự đoán giá nhà
  • Nhận diện chó/mèo trong ảnh

Trong các bài này, không thể viết luật thủ công, nên ML sẽ tự học pattern từ dữ liệu.


Khác biệt cốt lõi: Ai viết luật?

Bảng so sánh cực dễ hiểu

Khía cạnhThuật toán lập trình thông thườngMachine Learning
Ai định nghĩa luật?Bạn viết if–else, công thứcModel học từ dữ liệu
Khi yêu cầu thay đổiSửa codeThu thập thêm dữ liệu + train lại
Bài toán phù hợpLuật rõ ràngPattern phức tạp, nhiều nhiễu
OutputXác định (deterministic)Mang tính xác suất
Đánh giáTest vài input mẫuDùng metric (Accuracy, RMSE, F1…)
Vai trò dữ liệuChỉ là inputNguồn tri thức chính

Lập trình truyền thống: “Tôi biết luật, tôi viết cho máy làm.”
Machine Learning: “Tôi có dữ liệu, để máy tự học ra luật.”


Khi nào dùng lập trình truyền thống, khi nào dùng Machine Learning?

Dùng lập trình thông thường khi:

  • Luật rõ ràng
  • Ít ngoại lệ
  • Không có nhiều dữ liệu

Ví dụ:
Tính thuế, tính phí ship, validate form, format email/số điện thoại

Nghĩ tới ML khi:

  • Không thể liệt kê rule
  • Pattern phức tạp, nhiều chiều
  • Có dữ liệu lịch sử

Ví dụ:
Dự đoán churn, phát hiện gian lận, sentiment analysis, nhận diện ảnh


Ví dụ dễ hiểu: phân loại email spam

Nếu bạn “code tay”

Bạn sẽ phải viết hàng trăm rule như:

if "giảm giá" in title and "!!!" in content:
    spam = True
elif "khuyến mãi" in title and sender not in whitelist:
    spam = True
...