AIHieu.comAI Hiểu
AI là gì: nền tảng

Học máy (machine learning) là gì: máy tự rút quy luật từ ví dụ như thế nào

Học máy là gì, khác lập trình thông thường ở đâu, ba kiểu học chính, vì sao máy "học thuộc" mà vẫn trượt — giải thích không công thức.

Fruit seller at a morning market in Can Tho sorting mangoes into two woven baskets by size and ripeness, hands and baskets close up, soft golden sunlight

Học máy (machine learning) là cách làm cho máy tính tự rút ra quy luật từ ví dụ, thay vì để con người viết sẵn từng quy tắc. Bạn đưa cho máy rất nhiều trường hợp kèm kết quả, máy điều chỉnh bên trong cho tới khi đoán đúng phần lớn các trường hợp đó, rồi dùng cái đã điều chỉnh để đoán trường hợp mới. Học máy là một nhánh của trí tuệ nhân tạo, và là nhánh đứng sau hầu hết sản phẩm AI bạn dùng hằng ngày.

Thuật ngữ "machine learning" thường được gắn với Arthur Samuel, kỹ sư IBM, người cuối thập niên 1950 viết chương trình chơi cờ đam tự cải thiện qua các ván đấu. Ý tưởng của ông đến nay vẫn là cốt lõi: không dạy máy cách chơi, mà cho máy cơ hội học từ kinh nghiệm.

Bài này giải thích học máy bằng ví dụ đời thường: khác gì lập trình thông thường, máy "học" nghĩa là gì, ba kiểu học chính, vì sao máy có thể thuộc bài mà vẫn trượt, và những điểm cần nhớ khi nghe ai đó giới thiệu một hệ thống "có dùng học máy".

Học máy khác lập trình thông thường ở đâu

Cách dễ thấy nhất là đặt hai lối làm cạnh nhau với cùng một việc: ước tính một căn hộ ở Đà Nẵng nên rao bán bao nhiêu (ví dụ giả định, không có số thật).

Lập trình thông thườngHọc máy
Đầu vàoQuy tắc do người viết + thông tin căn hộHàng nghìn căn đã bán kèm giá + thông tin căn hộ mới
Ai tìm ra quy luậtNgười lập trình, dựa vào kinh nghiệm môi giớiThuật toán, dựa vào các căn đã bán
Ví dụ quy luậtMỗi mét vuông cộng một khoản cố định, gần biển cộng thêmMáy tự phát hiện tầng cao, hướng, tuổi toà nhà ảnh hưởng tới giá ra sao
Khi thị trường đổiNgười phải sửa luật bằng tayCho máy học lại trên dữ liệu mới
Giải thích kết quảDễ: chỉ ra luật nào đã dùngTuỳ loại mô hình: có loại giải thích được, có loại rất khó
Điểm yếuBỏ sót ngoại lệ, luật chồng chéoPhụ thuộc chất lượng dữ liệu, sai khi gặp trường hợp lạ

Nói gọn: lập trình thông thường là con người đưa quy tắc, máy đưa đáp án; học máy là con người đưa ví dụ có đáp án, máy đưa lại quy tắc. Cái "quy tắc" máy rút ra thường không phải một câu tiếng Việt đọc được, mà là một tập hợp con số bên trong mô hình.

Cũng vì thế mà học máy không phải lúc nào cũng là lựa chọn đúng. Tính lương theo bảng chấm công, tính thuế theo biểu đã ban hành thì viết quy tắc rõ ràng tốt hơn nhiều: chính xác, giải thích được, không cần dữ liệu. Học máy đáng dùng khi quy luật quá phức tạp để viết tay mà lại có sẵn nhiều ví dụ.

Máy "học" nghĩa là gì, nếu không có bộ não

Hãy hình dung một người mới vào nghề buôn xoài ở chợ. Ngày đầu, chị đoán giá mỗi sọt dựa trên cảm tính và đoán sai nhiều. Mỗi lần bán xong, chị so giá mình đoán với giá khách thật sự trả, rồi điều chỉnh: xoài vỏ căng nặng tay thì nâng lên, xoài có đốm thì hạ xuống. Sau vài trăm lần, chị đoán khá sát mà không cần ai viết luật cho mình. Học máy làm việc tương tự, chỉ là bằng con số và nhanh hơn rất nhiều.

Bên trong một mô hình học máy có rất nhiều "núm vặn", gọi là tham số. Lúc đầu các núm ở vị trí gần như ngẫu nhiên nên mô hình đoán bậy. Mỗi lần đoán, mô hình so với đáp án đúng, tính xem lệch bao nhiêu, rồi vặn các núm một chút theo hướng làm cho lần sau lệch ít hơn. Lặp lại việc này hàng triệu lần trên rất nhiều ví dụ, các núm dần dừng ở vị trí giúp mô hình đoán tốt. Quá trình đó gọi là huấn luyện.

Điều đáng chú ý là máy không biết mình đang học "xoài" hay "căn hộ". Nó chỉ thấy các con số đầu vào và con số đáp án, rồi tìm cách nối hai thứ đó lại. Nếu dữ liệu có một quy luật vô lý, chẳng hạn mọi căn hộ được nhập vào hệ thống vào thứ Hai đều có giá cao hơn vì một lỗi nhập liệu, máy cũng sẽ học luôn quy luật vô lý đó mà không thắc mắc.

Một mô hình nhỏ có thể chỉ vài chục núm; các mô hình ngôn ngữ lớn hiện nay có số núm tính bằng hàng tỉ. Số núm nhiều cho phép mô hình nắm những quy luật tinh vi hơn, nhưng cũng đòi hỏi nhiều dữ liệu và sức tính toán hơn để huấn luyện. Chuyện tham số và kích thước mô hình được giải thích riêng trong danh mục thuật ngữ của trang.

Ba kiểu học chính: có người chấm, tự gom nhóm, và học bằng thưởng phạt

Học có giám sát. Máy được học từ ví dụ có sẵn đáp án, như học sinh làm bài tập có lời giải ở cuối sách. Ảnh X-quang đã được bác sĩ đánh dấu, email đã được gắn nhãn rác hay không rác, căn hộ đã bán kèm giá thật. Đây là kiểu phổ biến nhất. Điểm nghẽn thường không nằm ở thuật toán mà ở việc có đủ ví dụ được gắn nhãn đúng hay không: gắn nhãn tốn công người, và người gắn nhãn cũng có lúc sai hoặc không đồng ý với nhau.

Học không giám sát. Máy nhận dữ liệu không có đáp án và tự tìm cấu trúc bên trong. Ví dụ một cửa hàng có danh sách mua sắm của khách nhưng không biết khách thuộc nhóm nào; máy có thể tự gom những khách mua giống nhau thành nhóm. Máy không đặt tên nhóm, con người phải nhìn vào rồi tự diễn giải: nhóm này hay mua đồ cho em bé, nhóm kia hay mua vào cuối tuần. Kết quả hữu ích để khám phá, nhưng cần người hiểu nghề kiểm lại xem nhóm có ý nghĩa thật không.

Học tăng cường. Máy được đặt vào một môi trường, thử hành động, nhận điểm thưởng hoặc điểm phạt, và dần tìm ra chiến lược được nhiều điểm nhất. Giống cách một đứa trẻ tập đi xe đạp: không ai đưa sẵn đáp án cho từng giây, chỉ có cảm giác ngã hay không ngã. Học tăng cường nổi tiếng nhờ các chương trình chơi cờ vây, trò chơi điện tử, và được dùng trong điều khiển robot. Nó cũng là một phần trong cách các chatbot được tinh chỉnh để trả lời theo hướng con người đánh giá là tốt hơn.

Các mô hình lớn ngày nay trộn nhiều kiểu. Một mô hình ngôn ngữ có thể được huấn luyện trước bằng cách tự đoán chữ bị che trong văn bản, một dạng tự tạo đáp án từ chính dữ liệu, thường gọi là học tự giám sát. Sau đó nó được tinh chỉnh bằng ví dụ có người viết mẫu, rồi bằng phản hồi chấm điểm của con người. Phần này được nói kỹ hơn ở danh mục AI học từ đâu.

Học thuộc lòng và học hiểu: vì sao máy đạt điểm cao lúc học mà vẫn trượt khi dùng thật

Một học sinh thuộc lòng đáp án của 200 bài trong sách có thể làm đúng hết khi cô giáo kiểm tra lại đúng 200 bài đó, nhưng lúng túng khi đề đổi một con số. Máy cũng mắc đúng bệnh này, giới chuyên môn gọi là quá khớp (overfitting). Mô hình bám quá sát vào chi tiết vụn vặt của dữ liệu huấn luyện, kể cả những chi tiết ngẫu nhiên, nên làm rất tốt trên ví dụ cũ và kém trên ví dụ mới.

Để phát hiện quá khớp, người ta luôn giữ lại một phần dữ liệu không cho mô hình nhìn thấy khi học, rồi dùng phần đó làm bài kiểm tra cuối. Điểm trên bài kiểm tra này mới là thước đo đáng tin. Khi đọc một tin "AI đạt độ chính xác 99%", câu hỏi đầu tiên là con số đó đo trên dữ liệu nào: dữ liệu đã học, dữ liệu kiểm tra riêng, hay dữ liệu thật ngoài đời.

Bệnh ngược lại là chưa khớp: mô hình quá đơn giản so với vấn đề, như cố đoán giá nhà chỉ bằng diện tích mà bỏ qua vị trí. Dù cho học bao lâu, nó cũng chỉ đoán sơ sơ. Người làm học máy luôn phải cân giữa hai bệnh này, và không có công thức chung cho mọi bài toán.

Có một kiểu trượt khó thấy hơn: dữ liệu ngoài đời thay đổi so với lúc học. Mô hình dự báo lượng khách du lịch học từ dữ liệu những năm bình thường sẽ đoán sai hoàn toàn trong một năm có dịch bệnh. Mô hình chấm điểm hồ sơ học từ một vùng có thể kém khi đem sang vùng khác. Vì vậy một hệ thống học máy nghiêm túc không học một lần rồi để đó, mà phải được theo dõi và học lại định kỳ.

Học máy đang chạy quanh bạn mà ít ai gọi tên

Trước khi chatbot xuất hiện, học máy đã có mặt trong rất nhiều việc thường ngày. Một vài ví dụ dưới đây giúp bạn nhận ra nó, và thấy nó hiếm khi là thứ hào nhoáng:

  • Gợi ý trên ứng dụng xem phim, nghe nhạc, mua sắm: máy học từ lịch sử của bạn và của những người có thói quen giống bạn để đoán món tiếp theo bạn có thể thích.
  • Phát hiện giao dịch thẻ bất thường: hệ thống học thói quen chi tiêu và gắn cờ khi có giao dịch lệch hẳn, chẳng hạn một lần quẹt thẻ ở nước ngoài vài phút sau giao dịch ở Huế.
  • Ước tính thời gian đến nơi trên ứng dụng bản đồ: dựa trên dữ liệu tốc độ di chuyển ở từng đoạn đường theo giờ trong ngày.
  • Gõ phím có gợi ý từ tiếp theo: bàn phím điện thoại học những cụm từ hay đi cùng nhau.
  • Phân loại ảnh trong thư viện điện thoại: tự gom ảnh có cùng khuôn mặt, ảnh chụp biển, ảnh chụp giấy tờ.
  • Dự báo nhu cầu hàng hoá: chuỗi bán lẻ dùng dữ liệu bán hàng các năm trước để ước lượng nên nhập bao nhiêu trước Tết.

Điểm chung của các ví dụ trên: có rất nhiều dữ liệu lặp lại, và sai một chút thì hậu quả không lớn. Đó cũng là "vùng an toàn" của học máy. Khi học máy được đưa vào những quyết định có hậu quả lớn như tuyển dụng, cho vay, chẩn đoán, câu hỏi về độ chính xác và công bằng trở nên nghiêm túc hơn nhiều.

Nghe "hệ thống dùng học máy" thì nên hỏi gì

Học từ dữ liệu nào, của ai, thu khi nào? Dữ liệu cũ hay mới, có đại diện cho người dùng thật không, có được thu thập hợp pháp và có che thông tin cá nhân không. Một mô hình học từ dữ liệu khách hàng ở thành phố lớn có thể kém khi áp dụng cho khách ở vùng nông thôn.

Đo độ chính xác trên đâu? Như đã nói ở trên, độ chính xác đo trên chính dữ liệu học thì gần như vô nghĩa. Con số đáng tin là con số trên dữ liệu kiểm tra riêng, tốt hơn nữa là trên dữ liệu thật sau khi triển khai.

Sai thì sai kiểu gì, ai chịu? Mọi mô hình đều sai một tỉ lệ nào đó. Quan trọng là biết nó hay sai với nhóm người nào, kiểu sai nào nguy hiểm hơn (bỏ lọt hay báo nhầm), và quy trình khi có người bị ảnh hưởng bởi một quyết định sai.

Có con người kiểm lại không? Với quyết định quan trọng, mô hình nên là người gợi ý, còn người có chuyên môn là người quyết. Một hệ thống để máy tự quyết hoàn toàn chuyện tuyển người hay từ chối hồ sơ cần được soi kỹ hơn nhiều.

Có cập nhật không? Thế giới thay đổi, mô hình đứng yên sẽ lạc hậu dần. Hỏi xem bao lâu mô hình được đánh giá lại một lần và ai theo dõi việc đó.

Câu hỏi thường gặp

Học máy và trí tuệ nhân tạo khác nhau thế nào?

Trí tuệ nhân tạo là lĩnh vực rộng, gồm mọi cách làm cho máy thực hiện việc cần trí thông minh, kể cả cách viết quy tắc bằng tay. Học máy là một nhánh trong đó, chuyên về cách cho máy tự rút quy luật từ dữ liệu. Hiện nay phần lớn hệ thống AI dùng học máy, nên hai chữ hay bị dùng lẫn.

Học máy cần bao nhiêu dữ liệu mới đủ?

Không có con số chung. Bài toán đơn giản, ít yếu tố có thể chỉ cần vài trăm ví dụ tốt. Bài toán phức tạp như nhận dạng giọng nói hay hiểu ngôn ngữ cần lượng dữ liệu rất lớn. Chất lượng và độ đa dạng của dữ liệu thường quan trọng không kém số lượng.

Mô hình học máy có giải thích được vì sao nó đoán như vậy không?

Tuỳ loại. Một số mô hình đơn giản như cây quyết định cho phép lần theo từng nhánh. Các mạng nơ-ron lớn thì rất khó giải thích, dù có những kỹ thuật giúp chỉ ra yếu tố nào ảnh hưởng nhiều tới kết quả. Đây là lĩnh vực nghiên cứu còn đang phát triển, chưa có lời giải trọn vẹn.

Học máy có phải là thống kê không?

Hai ngành có rất nhiều điểm chung và dùng chung nhiều phương pháp. Khác biệt chủ yếu nằm ở mục tiêu: thống kê truyền thống quan tâm nhiều tới giải thích và suy luận về quan hệ giữa các yếu tố, còn học máy thường ưu tiên đoán chính xác trên dữ liệu mới. Ranh giới giữa hai bên khá mờ trong thực tế.

Người không biết lập trình có làm được học máy không?

Có những công cụ cho phép huấn luyện mô hình đơn giản bằng cách kéo thả và tải dữ liệu lên, không cần viết mã. Tuy vậy, phần khó nhất thường không phải bấm nút mà là chuẩn bị dữ liệu đúng và đánh giá kết quả cho trung thực. Những kỹ năng đó cần hiểu nghề và hiểu nguyên lý hơn là hiểu lập trình.

Học máy có tự học liên tục khi đang được dùng không?

Phần lớn hệ thống không tự học từng giây. Mô hình được huấn luyện xong rồi đem dùng, sau một thời gian mới được học lại bằng dữ liệu mới. Có những hệ thống cập nhật thường xuyên hơn, nhưng việc đó thường vẫn qua các bước kiểm tra để tránh mô hình học phải dữ liệu xấu.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
Gọi ngay 0926 138 138