Những thuật toán trong Machine Learning (ML) đầu tiên hoàn toàn bắt nguồn từ Thống kê, xuất hiện từ những năm 50 của thế kỷ trước, nhưng hiện nay nó vẫn được áp dụng rộng rãi trong nhiều lĩnh vực.

02 loại thuật toán ML cổ điển thường được chia là: Học Giám sát (Supervised learning) và Học Không Giám sát (Unsupervised learning). Với trường hợp thứ nhất, máy móc sẽ được huấn luyện bởi một người giám sát. Con người sẽ phân loại sẵn tệp dữ liệu và chỉ ra cho máy móc sự phân loại đó. Ví dụ với tệp dữ liệu ảnh động vật với nhãn là chó (với ảnh có chó) và mèo (với ảnh có mèo), máy móc sẽ học từ những ví dụ như thế này, từng loại nhãn một, hết chó sẽ đến mèo. Còn với học không giám sát, máy móc sẽ nhận được một kho ảnh động vật nhưng chưa hề có nhãn phân loại, cũng không hề có người giám sát ở đây. Máy móc sẽ phải tự học để tìm được cách phân loại những tấm ảnh này.

Điều này đã thể hiện rõ ràng rằng máy móc sẽ học nhanh hơn khi có người giám sát, vì thế học giám sát thường được sử dụng trong các nhiệm vụ thực tế như phân loại (classification) và hồi quy (regression).

Con người chúng ta vốn thông minh. Chúng ta có thể nhận diện được mọi thứ xung quanh, miễn là ta đã từng biết đến chúng. Ví dụ, khi bạn nhìn thấy một con chó, bạn có thể dễ dàng nhận ra đó là một con chó chứ không phải con mèo. Vì bộ lông, cái mũi, hành động, tiếng sủa (kêu) của loài chó rất khác một con mèo. Khi mới sinh ra, bạn chỉ biết nó là một thứ gì đó đang ngoe nguẩy cái đuôi, và mẹ bảo với bạn đó là một con chó, hay một con mèo. Và từ bé đến lớn, bạn đã nhìn thấy hàng trăm (hoặc hàng ngàn) con chó và con mèo khác như thế rồi. Nói theo cách của ML, bạn đã vô thức được huấn luyện để phân biệt được mèo và chó dựa trên nhiều ví dụ trước đó và những ví dụ này đều được “gán nhãn” cho bạn từ những người xung quanh. Máy móc cũng vậy, để học được khả năng phân loại, chúng phải được huấn luyện bởi những dữ liệu gán nhãn sẵn. Chẳng qua thay vì mất hàng năm tháng như chúng ta, chúng chỉ mất một vài giây để học thôi. Quy trình học của máy móc có thể được khái quát bằng những bước sau:

 

Bước 1: Xác định những đặc trưng. Như đã đề cập ở phần 1, những đặc trưng là những yếu tố mà máy tính phải xem xét khi “học”. Nó phụ thuộc vào bài toán, nhiệm vụ, ngữ cảnh… Và đối với các thuật toán học máy cổ điển, chính con người chúng ta là người dạy máy tính phải học những đặc trưng nào. Ví dụ với việc phân loại chó và mèo, các đặc trưng trưng sẽ là bộ lông, cái mùi, tiếng sủa (kêu)… ở trên.

Giờ chúng ta xem xét ví dụ tác giả đưa ra trong bài viết gốc, phân loại rượu với bia (xem ảnh minh hoạ phía trên). Với con người thì việc này rất rõ ràng, chỉ việc nhìn màu, ngửi mùi, uống thử là xong. Nhưng máy móc không “ngửi” và không “uống” được (“nhìn” thì giờ đã làm được rồi), vậy nên chúng sẽ dựa vào những đặc trưng khác: “nồng độ cồn” và “khả năng nhảy múa giỏi hơn người khác sau khi uống vào của thân chủ” chẳng hạn.

Bước 2: Lựa chọn thuật toán. Mỗi thuật toán sẽ đem lại một kết quả khác nhau. “Kết quả” ở ví dụ này chính là một đường thẳng phân chia rạch ròi 2 nhóm rượu và bia trong đồ thị 2d biểu diễn 2 đặc trưng như hình trên. Nghĩa là sau khi đã học xong, máy tính sẽ trả về kết quả là một phương trình đường thẳng giữa trục X và Y, giả sử là x*y-5=0. Như vậy, “quy luật” sẽ là: tất cả nhũng điểm nằm “phía trên” đường phân loại (có x*y-5>0) sẽ được xếp vào nhóm (class) rượu, những điểm nằm “phía dưới” đường phân loại (có x+y-5<0) sẽ được xếp vào nhóm bia, nếu nằm trực tiếp trên đường phân loại thì không xếp nhóm.

Bước3: Đưa ra kết luận với một điểm dữ liệu mới. Giả sử có một loại đồ uống mới không nằm trong tập dữ liệu dùng để huấn luyện, có “nồng độ cồn” = 10 độ và “khả năng nhảy múa” = 3, máy tính sẽ tinh toán: 10*3-5=s>0 => xếp đồ uống này vào nhóm rượu.

Đó là với bài toán chỉ có 2 đặc trưng. Nếu số đặc trưng từ 3 trở lên, chúng ta sẽ minh hoạ các điểm dữ liệu trong không gian 3 chiều trở lên, khi đó, các đường phân chia sẽ trở thành các mặt phẳng hoặc siêu mặt phẳng phân chia (thử tưởng tượng với không gian 3 chiều, bạn sẽ hình dung ra ngay).