Machine Learning (học máy, viết tắt là ML) trong trong thời đại hiện này, ai cũng nói về nó, một vài người thực sự làm nó, và chỉ có giáo viên của bạn mới dạy nó. Nếu bạn đã từng thử tìm đọc các bài báo trên mạng về Machine Learning, bạn gần như sẽ tìm được hai kiểu bài: một là các bài nghiên cứu học thuật với lý thuyết khô khan, hai là những bài giật tít về Artificial Intelligence (trí tuệ nhân tạo, viết tắt là AI), sự thần thông quảng đại của Data Science (khoa học dữ liệu), và các công việc mới xuất hiện trong kỉ nguyên 4.0.

1.Học máy – tại sao máy móc lại phải học?

Đây là Huấn. Huấn muốn mua một chiếc ô tô. Huấn lấy giấy bút ra và tính xem mình sẽ phải tiết kiệm bao nhiêu tiền mỗi tháng để mua được ô tô. Sau khi lướt qua vài cái quảng cáo ô tô trên mạng, Huấn biết một chiếc xe mới sẽ có giá khoảng 500 triệu, chiếc nào đã đi được một năm thì khoảng 450 triệu, hai năm thì khoảng 400 triệu, và cứ như thế.

Là một người có khả năng phân tích khá, Huấn bắt đầu nhìn ra một quy luật (pattern): giá của một chiếc ô tô phụ thuộc vào số tuổi của xe, và cứ đi được một năm thì giá xe giảm 50 triệu, nhưng sẽ không hạ xuống dưới 100 triệu.

Nói theo cách của Machine Learning, Huấn vừa mới phát minh ra regression (tiếng Việt là hồi quy) – anh ấy dự đoán giá ô tô dựa trên dữ liệu trong quá khứ. Chúng ta vẫn thường làm điều đó, khi cần ước lượng giá của một chiếc iPhone like-new trên Chợ Tốt, hoặc khi tính xem cần mua bao nhiêu rau cho một bữa lẩu 5 người. Mỗi người ăn 2 lạng? Hay 3 lạng? Sẽ thật tuyệt vời nếu như có một công thức đơn giản cho tất cả các bài toán trong thế giới này. Đặc biệt là cho bữa lẩu. Nhưng rất tiếc là không có.

Quay lại vụ mua ô tô. Vấn đề ở đây là, có rất nhiều yếu tố ảnh hưởng đến giá của một chiếc ô tô, ví dụ như hãng sản xuất, thời gian sản xuất khác nhau, các điều kiện kỹ thuật, công nghệ mới… Một người bình thường như Huấn không thể nhớ được hết các thông tin đó trong đầu để mà tính ra kết quả được. Và chúng ta cũng vậy.

Con người chúng ta đôi khi rất ngốc nghếch và lười biếng, vậy nên chúng ta mới cần máy móc làm toán hộ mình. Vậy thử nhờ máy móc xem sao. Hãy thử cho chúng dữ liệu và yêu cầu chúng tìm ra những “quy luật ngầm” (hidden patterns) để định giá ô tô.

 Ồ, và nó làm được này! May mắn là máy móc xử lý những công việc kiểu này tốt hơn con người rất nhiều, kể cả khi chúng ta xem xét cẩn thận tất cả các mối quan hệ giữa các yếu tố kể trên.

  1. Ba “nguyên liệu” chính của Machine Learning

 

Bỏ qua những quảng cáo về ML, thì mục tiêu duy nhất của ML là dự đoán các kết quả dựa trên dữ liệu đầu vào. Tất cả các nhiệm vụ của ML có thể được diễn giải theo cách đó, nếu không thể thì đó không phải một bài toán giải quyết được bằng ML.

Càng có nhiều mẫu thử (samples, ý nói dữ liệu thực tế) đa dạng, thì máy móc càng dễ để tìm ra các quy luật liên quan và dự đoán kết quả. Do vậy, chúng ta cần 3 nguyên liệu chính để “dạy” máy móc học:

  • Dữ liệu: Khi muốn phát hiện spam? Chúng ta thu thập các tin nhắn spam trong thực tế. Khi muốn dự đoán giá cổ phiếu? Chúng ta thu thập lịch sử giá. Khi muốn biết người dùng thích gì? Chúng ta phân tích hành vi của họ trên Facebook (Ví dụ như Facebook hay các nền tảng mạng xã hội khác). Dữ liệu càng đa dạng, kết quả càng chính xác. Có những trường hợp cần ít nhất là hàng chục nghìn hàng dữ liệu. Có hai cách để thu thập dữ liệu – thủ công hoặc tự động. Cách thủ công có thể gây ra ít sai sót hơn nhưng lại tốn thời gian, nên nhìn chung thu thập kiểu thủ công khá là tốn kém. Cách tự động thì rẻ hơn – bạn thu thập tất cả mọi thứ bạn có thể tìm thấy và hi vọng có được kết quả tốt nhất. Những công ty thông minh như Google tận dụng chính người dùng để dán nhãn dữ liệu miễn phí cho họ. Tuy nhiên, rất khó để thu thập được một bộ dữ liệu tốt (theo thuật ngữ chuyên ngành là dataset – hay tập dữ liệu). Chúng quan trọng đến nỗi mà nhiều công ty có thể đồng ý tiết lộ về thuật toán của họ, còn dữ liệu thì không.
  • Các đặc trưng (features): còn được biết đến với tên gọi là tham số (parameters) hoặc các biến (variables). Chúng giống như các yếu tố mà máy móc cần phải xem xét khi “học” vậy. Ví dụ, không cần tính toán bạn cũng biết là một chiếc ô tô được sử dụng càng nhiều thì khi bán lại càng mất giá, vậy nên giá của một chiếc ô tô cũ phụ thuộc một phần vào số km đã đi được của nó đúng không? Đó chính là một đặc trưng đấy. Các đặc trưng khác có thể kể đến như túi tiền của người ăn với bài toán đi chợ cho bữa lẩu, hay giới tính, với bài toán phân tích sở thích người dùng… Khi dữ liệu được lưu trữ trong các bảng biểu, các đặc trưng đơn giản là tên các cột trong bảng thôi. Nhưng nếu dữ liệu của bạn là 100Gb dạng ảnh thì sao? Chúng ta không thể coi mỗi pixel ảnh là một đặc trưng được. Đó là lí do tại sao bước chọn lọc ra các đặc trưng thích hợp tốn nhiều thời gian hơn các công việc khác trong một quy trình giải quyết vấn đề bằng học máy. Đó cũng là các nguyên nhân chính gây ra các sai sót trong tính toán vì chúng ta thường chọn những feature mà mình thích, hoặc mình cho là quan trọng.
  • Thuật toán: Mỗi bài toán đều có cách giải riêng của nó. Phương pháp bạn chọn sẽ ảnh hưởng đến độ chính xác (precision) , độ hiệu quả (performance), và quy mô của mô hình cuối (final model). Có một điều quan trọng là: nếu dữ liệu của bạn không phù hợp (ví dụ: quá ít, hoặc không đủ đa dạng, hoặc đơn giản là dữ liệu không đủ liên quan đến thứ cần dự đoán) thì dù là thuật toán tốt nhất cũng vô dụng. Đầu xuôi thì đuôi mới lọt. Vậy nên, đừng quá chú trọng vào độ chính xác, hãy thu thập đủ và đúng dữ liệu trước .