6 Nền tảng Kỹ thuật của AI
Mục tiêu chương
Kết thúc chương này, người học sẽ có khả năng:
- Hiểu trực giác cách AI “học” từ dữ liệu.
- Nắm vững khái niệm về Học máy, quy trình phát triển mô hình và các hạn chế.
- Phân biệt các loại hình học máy chính: Học có giám sát , Học không giám sát, và ý tưởng về Học tăng cường.
- Nắm được ý tưởng của một số mô hình học máy cơ bản và cách đánh giá mô hình.
- Tiếp cận khái niệm về Học sâu, Mạng Nơ-ron Nhân tạo và các thách thức.
- Hiểu được sự khác biệt giữa học sâu và học máy truyền thống.
- Nắm được ý tưởng của một số kiến trúc mạng nơ-ron phổ biến và ứng dụng.
- Hiểu được khái niệm Xử lý Ngôn ngữ Tự nhiên, các tác vụ cơ bản và thách thức.
- Thực hành xây dựng và đánh giá mô hình ML đơn giản bằng Orange Data Mining.
6.1 Giới thiệu về cách AI “học” từ dữ liệu
Trong các chương trước, chúng ta đã thấy AI có thể thực hiện nhiều tác vụ ấn tượng như nhận diện hình ảnh, dịch ngôn ngữ, hay đưa ra gợi ý sản phẩm. Nhưng làm thế nào máy tính có thể làm được những điều đó? Bí mật nằm ở khả năng “học” của chúng. Khác với lập trình truyền thống, nơi con người phải viết ra từng quy tắc cụ thể cho máy tính làm theo, các hệ thống AI hiện đại, đặc biệt là những hệ thống dựa trên Học máy (Machine Learning - ML), có khả năng tự mình rút ra các quy luật và mẫu hình (Patterns) từ dữ liệu.
Hãy tưởng tượng bạn muốn dạy một đứa trẻ nhận biết giữa chó và mèo. Thay vì cố gắng mô tả mọi đặc điểm của chó và mèo bằng lời nói (“chó thì thường sủa, mèo thì kêu meo meo, chó có mõm dài hơn mèo…”), bạn sẽ cho đứa trẻ xem rất nhiều hình ảnh về chó và mèo, đồng thời chỉ cho chúng biết “Đây là chó” hoặc “Đây là mèo”. Sau khi xem đủ nhiều ví dụ, đứa trẻ sẽ tự mình hình thành nên những “quy tắc” bên trong não bộ để phân biệt chúng, ngay cả khi gặp một con chó hoặc con mèo mới mà chúng chưa từng thấy trước đó.
Học máy hoạt động theo một cách tương tự. Chúng ta “dạy” máy tính bằng cách cung cấp cho nó một lượng lớn dữ liệu ví dụ (example data). Mỗi ví dụ thường bao gồm các đặc trưng (features) mô tả đối tượng (ví dụ: chiều cao, cân nặng, màu lông của một con vật) và đôi khi là một nhãn (label) cho biết đối tượng đó thuộc loại nào (ví dụ: “chó” hoặc “mèo”).
Máy tính, thông qua các thuật toán học máy (machine learning algorithms), sẽ cố gắng tìm ra mối liên hệ, các quy luật, hoặc các mẫu hình ẩn chứa trong dữ liệu đó. Kết quả của quá trình “học” này là một mô hình (model). Mô hình này giống như một “bộ não” đã được huấn luyện, chứa đựng những tri thức đã được rút ra từ dữ liệu.
Sau khi được huấn luyện, mô hình có thể được sử dụng để:
- Đưa ra dự đoán (predictions) về những dữ liệu mới mà nó chưa từng thấy. Ví dụ, đưa một bức ảnh mới của một con vật, mô hình có thể dự đoán đó là chó hay mèo.
- Phân loại (classify) các đối tượng vào các nhóm khác nhau.
- Nhận diện các mẫu bất thường (anomalies).
- Tạo ra nội dung mới (như trong AI Tạo sinh).
Ví dụ:
Giả sử chúng ta muốn xây dựng một hệ thống AI đơn giản để dự đoán giá nhà dựa trên diện tích của ngôi nhà.
- Thu thập dữ liệu: Chúng ta thu thập dữ liệu về nhiều ngôi nhà đã được bán, bao gồm diện tích (ví dụ: \(m^2\)) và giá bán tương ứng (ví dụ: tỷ đồng). Đây là dữ liệu ví dụ của chúng ta.
- Đặc trưng (feature): Diện tích (\(m^2\))
- Nhãn (label) / Giá trị cần dự đoán: Giá bán (tỷ đồng)
- Huấn luyện mô hình: Chúng ta chọn một thuật toán học máy (ví dụ: hồi quy tuyến tính – sẽ tìm hiểu sau) và “cung cấp” dữ liệu này cho thuật toán. Thuật toán sẽ cố gắng tìm ra một “đường thẳng” hoặc một “quy luật toán học” mô tả tốt nhất mối quan hệ giữa diện tích và giá nhà trong tập dữ liệu đã cho. “Đường thẳng” này chính là mô hình đã được huấn luyện.
- Dự đoán: Bây giờ, nếu có một ngôi nhà mới với diện tích cụ thể (ví dụ: 100 \(m^2\)), chúng ta có thể sử dụng mô hình (đường thẳng) vừa học được để ước tính giá bán của ngôi nhà đó.
[ĐỀ XUẤT HÌNH ẢNH: Một biểu đồ đơn giản với các điểm dữ liệu biểu thị giá nhà theo diện tích, và một đường thẳng hồi quy được vẽ qua các điểm đó. Chú thích rõ trục diện tích, trục giá, các điểm dữ liệu, và đường thẳng mô hình.]
Quá trình “học” này không phải là máy tính “hiểu” về khái niệm nhà cửa hay tiền bạc theo cách con người hiểu. Thay vào đó, nó là việc tìm kiếm các mẫu hình toán học và thống kê trong dữ liệu. Sức mạnh của học máy nằm ở chỗ nó có thể xử lý lượng dữ liệu khổng lồ và tìm ra những mẫu hình phức tạp mà con người khó có thể nhận diện bằng mắt thường hoặc bằng các quy tắc đơn giản.
Chương này sẽ giúp chúng ta tìm hiểu sâu hơn về các khái niệm, loại hình, và một số kỹ thuật cơ bản của Học máy, cũng như một nhánh phát triển mạnh mẽ của nó là Học sâu.
6.2 Nhập môn Học máy
Học máy (Machine Learning - ML) là một lĩnh vực con của Trí tuệ Nhân tạo, tập trung vào việc phát triển các thuật toán và kỹ thuật cho phép hệ thống máy tính “học” từ dữ liệu mà không cần được lập trình một cách tường minh cho từng tác vụ cụ thể. Thay vì tuân theo một tập hợp các chỉ dẫn cố định do con người viết ra, các hệ thống ML xây dựng một mô hình toán học dựa trên dữ liệu mẫu – được gọi là “dữ liệu huấn luyện” (training data) – để có thể đưa ra dự đoán hoặc quyết định.
6.2.1 Khái niệm và quy trình xây dựng mô hình
Định nghĩa Học máy
Một định nghĩa cổ điển và được trích dẫn nhiều về Học máy được đưa ra bởi Arthur Samuel vào năm 1959: “Học máy là lĩnh vực nghiên cứu cho phép máy tính có khả năng học mà không cần được lập trình một cách tường minh.”
Một định nghĩa khác, mang tính thực tiễn hơn, từ Tom M. Mitchell (1997): “Một chương trình máy tính được cho là học từ kinh nghiệm E đối với một lớp các tác vụ T và một độ đo hiệu suất P, nếu hiệu suất của nó đối với các tác vụ trong T, được đo bằng P, cải thiện cùng với kinh nghiệm E.”
Trong định nghĩa của Mitchell:
- Tác vụ (T - Task): Là vấn đề mà chúng ta muốn máy tính giải quyết (ví dụ: phân loại email là spam hay không spam, dự đoán giá cổ phiếu, nhận diện khuôn mặt).
- Kinh nghiệm (E - Experience): Thường là dữ liệu mà máy tính sử dụng để học (ví dụ: một tập hợp lớn các email đã được gán nhãn là spam hoặc không spam).
- Độ đo Hiệu suất (P - Performance Measure): Là cách chúng ta đánh giá xem máy tính thực hiện tác vụ tốt như thế nào (ví dụ: tỷ lệ email được phân loại đúng, sai số trung bình trong dự đoán giá).
Mục tiêu của Học máy là xây dựng các mô hình có khả năng tổng quát hóa (generalize) tốt, tức là không chỉ hoạt động tốt trên dữ liệu đã được huấn luyện mà còn có thể đưa ra dự đoán chính xác trên dữ liệu mới, chưa từng thấy trước đó.
Quy trình Phát triển một Mô hình học máy:
Việc xây dựng một giải pháp Học máy thường tuân theo một quy trình gồm nhiều bước. Mặc dù các bước cụ thể có thể thay đổi tùy theo bài toán và dữ liệu, một quy trình tổng quan thường bao gồm:
- Thu thập Dữ liệu (Data Collection): Bước đầu tiên và quan trọng nhất là thu thập dữ liệu liên quan đến bài toán cần giải quyết. Dữ liệu này có thể đến từ nhiều nguồn khác nhau như cơ sở dữ liệu nội bộ, API, web, cảm biến, khảo sát, v.v. (như đã thảo luận ở Chương 3).
- Chuẩn bị và Tiền xử lý Dữ liệu (Data Preparation and Preprocessing): Dữ liệu thô thường không “sạch” và cần được xử lý trước khi đưa vào mô hình. Các bước bao gồm:
- Làm sạch dữ liệu (xử lý giá trị thiếu, dữ liệu nhiễu, điểm ngoại lai).
- Biến đổi dữ liệu (chuẩn hóa, quy mô hóa, tạo đặc trưng mới - feature engineering).
- Chia dữ liệu thành tập huấn luyện (training set) và tập kiểm tra (test set) (và có thể cả tập thẩm định - validation set).
- Lựa chọn Mô hình (Model Selection): Dựa trên bản chất của bài toán (ví dụ: phân loại, hồi quy, phân cụm) và đặc điểm của dữ liệu, người ta sẽ lựa chọn một hoặc một vài thuật toán học máy phù hợp để thử nghiệm (ví dụ: cây quyết định, hồi quy tuyến tính, mạng nơ-ron).
- Huấn luyện Mô hình (Model Training): Sử dụng tập dữ liệu huấn luyện để “dạy” cho mô hình đã chọn. Trong quá trình này, thuật toán sẽ điều chỉnh các tham số nội tại của mô hình để nó có thể ánh xạ tốt nhất từ các đặc trưng đầu vào đến kết quả đầu ra mong muốn (trong trường hợp học có giám sát) hoặc tìm ra cấu trúc ẩn trong dữ liệu (trong trường hợp học không giám sát).
- Đánh giá Mô hình (Model Evaluation): Sau khi huấn luyện, mô hình cần được đánh giá hiệu suất trên tập dữ liệu kiểm tra (dữ liệu mà mô hình chưa từng thấy trước đó). Các độ đo hiệu suất phù hợp với từng loại bài toán sẽ được sử dụng (ví dụ: độ chính xác, precision, recall cho phân loại; MSE, MAE cho hồi quy). Bước này giúp xác định xem mô hình có hoạt động tốt và có khả năng tổng quát hóa hay không.
- Tinh chỉnh Tham số (Parameter Tuning / Hyperparameter Optimization): Hầu hết các thuật toán học máy đều có các “siêu tham số” (hyperparameters) cần được thiết lập trước khi huấn luyện (ví dụ: số lượng cây trong rừng ngẫu nhiên, tốc độ học của mạng nơ-ron). Việc tinh chỉnh các siêu tham số này có thể cải thiện đáng kể hiệu suất của mô hình. Thường sử dụng tập thẩm định hoặc kỹ thuật kiểm định chéo (cross-validation) cho bước này.
- Triển khai Mô hình (Model Deployment): Nếu mô hình đạt được hiệu suất chấp nhận được, nó sẽ được triển khai vào một môi trường thực tế để đưa ra dự đoán hoặc quyết định trên dữ liệu mới.
- Giám sát và Bảo trì Mô hình (Model Monitoring and Maintenance): Sau khi triển khai, hiệu suất của mô hình cần được theo dõi liên tục. Dữ liệu trong thế giới thực có thể thay đổi theo thời gian (“data drift” hoặc “concept drift”), khiến hiệu suất của mô hình giảm sút. Khi đó, mô hình có thể cần được huấn luyện lại với dữ liệu mới hoặc thậm chí là xây dựng lại từ đầu.
[ĐỀ XUẤT HÌNH ẢNH: Một sơ đồ vòng lặp minh họa quy trình phát triển mô hình ML, từ Data Collection -> Data Preparation -> Model Selection -> Model Training -> Model Evaluation -> Parameter Tuning -> Model Deployment -> Model Monitoring, với các mũi tên cho thấy tính lặp đi lặp lại của quy trình.]
Những hạn chế cố hữu của Học máy:
Mặc dù Học máy rất mạnh mẽ, nó cũng có những hạn chế quan trọng mà chúng ta phải nhận thức một cách sâu sắc:
- Phụ thuộc rất lớn vào Số lượng và Chất lượng Dữ liệu Huấn luyện: Nguyên tắc GIGO (“Garbage In, Garbage Out”) luôn đúng. Mô hình ML chỉ tốt “bằng” dữ liệu mà nó được huấn luyện. Dữ liệu bị thiếu, bị sai lệch, hoặc không có tính đại diện sẽ dẫn đến mô hình kém hiệu quả. Nhiều thuật toán, đặc biệt là Học sâu, đòi hỏi lượng dữ liệu rất lớn.
- Khó có khả năng Suy luận Nhân quả Thực sự (Causation vs. Correlation): Hầu hết các mô hình ML giỏi trong việc tìm ra các mối tương quan (correlation) giữa các biến trong dữ liệu, nhưng chúng thường không thể xác định được mối quan hệ nhân quả (causation) thực sự. Ví dụ, AI có thể thấy kem bán chạy hơn vào những ngày có nhiều người bị chết đuối, nhưng không phải kem gây ra chết đuối (mà cả hai đều liên quan đến thời tiết nóng). Đưa ra quyết định dựa trên tương quan sai lầm có thể nguy hiểm.
- Dễ bị ảnh hưởng bởi Dữ liệu Nhiễu, Thiên kiến hoặc Không đại diện cho Thực tế: Nếu dữ liệu huấn luyện chứa đựng nhiễu hoặc các thiên kiến tiềm ẩn (ví dụ: thiên kiến về giới tính, chủng tộc trong dữ liệu tuyển dụng lịch sử), mô hình ML có thể học và khuếch đại những thiên kiến đó, dẫn đến các quyết định không công bằng.
- Vấn đề “Hộp đen” (Black Box) ở một số Mô hình Phức tạp: Nhiều mô hình ML tiên tiến (như mạng nơ-ron sâu, rừng ngẫu nhiên) có thể đưa ra dự đoán rất chính xác, nhưng lại rất khó để giải thích tại sao chúng lại đưa ra quyết định đó. Sự thiếu minh bạch này là một rào cản trong các lĩnh vực đòi hỏi tính giải trình cao.
- Không có khả năng “Học” các Khái niệm Hoàn toàn Mới nếu không được Huấn luyện lại: Mô hình ML thường chỉ hoạt động tốt trong phạm vi các mẫu mà nó đã thấy trong dữ liệu huấn luyện. Nếu xuất hiện các khái niệm hoặc tình huống hoàn toàn mới, mô hình có thể cần được huấn luyện lại với dữ liệu mới. Chúng không có khả năng “học” một cách linh hoạt như con người khi đối mặt với điều chưa biết.
- Yêu cầu Kỹ năng Chuyên môn: Việc xây dựng, huấn luyện và triển khai các mô hình ML hiệu quả đòi hỏi kiến thức và kỹ năng chuyên môn về khoa học dữ liệu, thống kê và lập trình.
- Nguy cơ Quá khớp (Overfitting): Mô hình có thể học quá tốt các chi tiết và nhiễu trong dữ liệu huấn luyện đến mức nó hoạt động kém trên dữ liệu mới (sẽ tìm hiểu kỹ hơn ở mục 5.3.4).
Hiểu rõ những hạn chế này giúp chúng ta đặt kỳ vọng vào Học máy và sử dụng nó một cách cẩn trọng và có trách nhiệm.
6.2.2 Học có giám sát
Học có giám sát (Supervised Learning) là một trong những loại hình học máy phổ biến và được ứng dụng rộng rãi nhất. Đặc điểm chính của học có giám sát là chúng ta cung cấp cho thuật toán một tập dữ liệu huấn luyện đã được gán nhãn (labeled training data). Điều này có nghĩa là mỗi điểm dữ liệu (mỗi ví dụ) trong tập huấn luyện đều đi kèm với một “câu trả lời đúng” hoặc một “kết quả mong muốn” (gọi là nhãn hoặc biến mục tiêu - target variable).
Mục tiêu của thuật toán học có giám sát là học ra một hàm ánh xạ (mapping function) từ các đặc trưng đầu vào (input features) đến nhãn đầu ra (output label) sao cho hàm này có thể dự đoán chính xác nhãn cho những dữ liệu mới, chưa được gán nhãn.
Ví dụ:
- Dự đoán giá nhà (Hồi quy):
- Đặc trưng đầu vào (Features): Diện tích nhà, số phòng ngủ, vị trí, tuổi đời của ngôi nhà.
- Nhãn đầu ra (Label): Giá bán thực tế của ngôi nhà đó.
- Mô hình học mối quan hệ giữa các đặc trưng và giá bán từ dữ liệu lịch sử các ngôi nhà đã bán.
- Phân loại email là spam hay không spam (Phân loại):
- Đặc trưng đầu vào (Features): Các từ xuất hiện trong email, người gửi, tiêu đề.
- Nhãn đầu ra (Label): “Spam” hoặc “Không phải Spam”.
- Mô hình học cách phân biệt giữa email spam và không spam dựa trên các email đã được người dùng gán nhãn trước đó.
[ĐỀ XUẤT HÌNH ẢNH: Một sơ đồ đơn giản minh họa khái niệm Học có giám sát: (Input Features + Output Labels) -> ML Algorithm -> Model. Sau đó: New Input Features -> Model -> Predicted Output Label.]
Học có giám sát thường được chia thành hai loại bài toán chính: Hồi quy (Regression) và Phân loại (Classification).
a. Hồi quy (Regression):
- Mục tiêu: Dự đoán một giá trị liên tục (continuous). Tức là, nhãn đầu ra là một con số thực.
- Ví dụ ứng dụng trong kinh doanh:
- Dự đoán giá nhà, giá cổ phiếu, giá sản phẩm.
- Dự báo doanh thu, nhu cầu sản phẩm, lượng khách hàng truy cập website.
- Ước tính thời gian hoàn thành một dự án.
- Dự đoán mức tiêu thụ năng lượng.
- Chấm điểm rủi ro tín dụng (mặc dù đôi khi cũng có thể coi là phân loại nếu điểm được chia thành các khoảng).
- Ý tưởng chính: Thuật toán cố gắng tìm một đường cong (hoặc một siêu phẳng trong không gian nhiều chiều) phù hợp nhất với các điểm dữ liệu đã cho, sao cho sai số giữa giá trị dự đoán và giá trị thực tế là nhỏ nhất.
b. Phân loại (Classification):
- Mục tiêu: Dự đoán một giá trị rời rạc (discrete) hoặc một lớp (category). Tức là, nhãn đầu ra thuộc về một tập hợp các giá trị xác định trước.
- Ví dụ ứng dụng trong kinh doanh:
- Phân loại email là spam hay không spam (2 lớp: Spam, Not Spam).
- Nhận diện khách hàng có khả năng rời bỏ hay không (2 lớp: Churn, Not Churn).
- Phân loại sản phẩm vào các danh mục khác nhau (nhiều lớp: Điện tử, Thời trang, Gia dụng).
- Chẩn đoán bệnh (ví dụ: có bệnh A hay không, hoặc thuộc loại bệnh nào trong số các bệnh B, C, D).
- Nhận diện chữ số viết tay (10 lớp: từ 0 đến 9).
- Phân tích cảm xúc của một đoạn văn bản (3 lớp: Tích cực, Tiêu cực, Trung tính).
- Ý tưởng chính: Thuật toán cố gắng tìm ra một “ranh giới quyết định” (decision boundary) để phân chia không gian đặc trưng thành các vùng tương ứng với mỗi lớp. Khi có một điểm dữ liệu mới, mô hình sẽ xác định xem nó thuộc vùng nào và gán nhãn của vùng đó cho nó.
Việc lựa chọn giữa bài toán hồi quy và phân loại phụ thuộc hoàn toàn vào bản chất của biến mục tiêu mà chúng ta muốn dự đoán.
6.2.3 Học không giám sát
Khác với học có giám sát, Học không giám sát (Unsupervised Learning) làm việc với dữ liệu không được gán nhãn (unlabeled data). Điều này có nghĩa là chúng ta không cung cấp cho thuật toán “câu trả lời đúng” hay “kết quả mong muốn” cho dữ liệu huấn luyện. Thay vào đó, mục tiêu của học không giám sát là để thuật toán tự mình khám phá ra các cấu trúc, các mẫu hình, hoặc các mối quan hệ tiềm ẩn trong dữ liệu.
Do không có nhãn để đối chiếu, việc đánh giá hiệu suất của các mô hình học không giám sát thường phức tạp hơn và mang tính chủ quan hơn so với học có giám sát.
Ví dụ:
- Giả sử bạn có một rổ trái cây hỗn hợp gồm táo, cam, và chuối, nhưng bạn không biết tên của từng loại. Một thuật toán học không giám sát có thể tự động nhóm các loại trái cây này lại với nhau dựa trên các đặc điểm tương đồng của chúng như màu sắc, hình dạng, kích thước, mà không cần bạn phải chỉ cho nó biết “đây là táo” hay “đây là cam”.
[ĐỀ XUẤT HÌNH ẢNH: Một sơ đồ đơn giản minh họa khái niệm Học không giám sát: Input Features (No Labels) -> ML Algorithm -> Discovered Structure/Patterns (e.g., Clusters, Dimensions).]
Hai loại bài toán chính và phổ biến nhất trong học không giám sát là Phân cụm (Clustering) và Giảm chiều dữ liệu (Dimensionality Reduction).
a. Phân cụm (Clustering):
- Mục tiêu: Tự động nhóm các điểm dữ liệu (các đối tượng hoặc các quan sát) lại với nhau thành các cụm (clusters) sao cho các điểm dữ liệu trong cùng một cụm có tính tương đồng cao với nhau (high intra-cluster similarity) và khác biệt cao so với các điểm dữ liệu trong các cụm khác (low inter-cluster similarity).
- Ý tưởng chính: Thuật toán tìm cách tối ưu hóa một tiêu chí nào đó để các cụm được hình thành một cách “tự nhiên” nhất dựa trên cấu trúc của dữ liệu. Số lượng cụm có thể được xác định trước hoặc được thuật toán tự tìm ra.
- Ví dụ ứng dụng trong kinh doanh:
- Phân khúc khách hàng (Customer Segmentation): Nhóm các khách hàng có hành vi mua sắm, sở thích, hoặc đặc điểm nhân khẩu học tương tự để có chiến lược marketing phù hợp (như đã thấy trong phần thực hành Chương 4).
- Phân loại tài liệu (Document Clustering): Tự động nhóm các tài liệu văn bản có chủ đề tương tự lại với nhau.
- Phát hiện bất thường (Anomaly Detection): Các điểm dữ liệu không thuộc về bất kỳ cụm nào hoặc tạo thành các cụm rất nhỏ có thể được coi là bất thường hoặc điểm ngoại lai.
- Phân nhóm gen (Gene Clustering): Trong y sinh, nhóm các gen có kiểu biểu hiện tương tự.
- Tổ chức hình ảnh (Image Organization): Nhóm các hình ảnh có nội dung tương tự.
b. Giảm chiều dữ liệu (Dimensionality Reduction):
- Mục tiêu: Giảm số lượng đặc trưng (biến đầu vào hoặc “chiều” của dữ liệu) mà vẫn cố gắng giữ lại tối đa thông tin quan trọng hoặc cấu trúc chính của dữ liệu gốc.
- Lý do cần giảm chiều:
- Trực quan hóa dữ liệu: Dữ liệu có số chiều lớn (nhiều hơn 2 hoặc 3 đặc trưng) rất khó để trực quan hóa. Giảm xuống còn 2 hoặc 3 chiều giúp con người dễ dàng nhìn thấy cấu trúc của dữ liệu.
- Giảm độ phức tạp tính toán và thời gian huấn luyện mô hình: Ít đặc trưng hơn thường dẫn đến mô hình đơn giản hơn và huấn luyện nhanh hơn.
- Tránh “Lời nguyền của số chiều” (Curse of Dimensionality): Khi số chiều tăng lên rất cao, dữ liệu trở nên thưa thớt, khoảng cách giữa các điểm trở nên kém ý nghĩa, và hiệu suất của nhiều thuật toán học máy có thể suy giảm.
- Loại bỏ nhiễu và các đặc trưng không liên quan: Một số đặc trưng có thể không mang lại nhiều thông tin hoặc chỉ là nhiễu, việc loại bỏ chúng có thể cải thiện hiệu suất mô hình.
- Hai cách tiếp cận chính:
- Lựa chọn Đặc trưng (Feature Selection): Chọn ra một tập con các đặc trưng tốt nhất từ tập đặc trưng ban đầu.
- Trích xuất Đặc trưng (Feature Extraction): Tạo ra một tập hợp các đặc trưng mới (ít hơn) bằng cách kết hợp hoặc biến đổi các đặc trưng ban đầu. Các đặc trưng mới này thường là các tổ hợp tuyến tính hoặc phi tuyến của các đặc trưng gốc. Một thuật toán phổ biến là Phân tích Thành phần Chính (Principal Component Analysis - PCA).
- Ứng dụng:
- Nén dữ liệu hình ảnh hoặc video.
- Giảm số lượng biến đầu vào cho các mô hình dự đoán để tăng tốc độ và tránh overfitting.
- Trực quan hóa các tập dữ liệu đa chiều.
Học không giám sát là một công cụ mạnh mẽ để khám phá dữ liệu, tìm ra những hiểu biết mới mà chúng ta có thể chưa biết trước, và chuẩn bị dữ liệu cho các tác vụ học máy khác.
6.2.4 Học tăng cường
Học tăng cường (Reinforcement Learning - RL) là một loại hình học máy khác biệt so với học có giám sát và không giám sát. Trong RL, chúng ta có một tác tử (agent) tương tác với một môi trường (environment). Mục tiêu của tác tử là học cách thực hiện một chuỗi các hành động (actions) trong môi trường đó để tối đa hóa một tín hiệu phần thưởng (reward signal) tích lũy theo thời gian.
Các thành phần chính trong Học tăng cường:
- Tác tử (Agent): Thực thể học hỏi và đưa ra quyết định (ví dụ: một robot, một chương trình chơi game, một hệ thống điều khiển).
- Môi trường (Environment): Thế giới mà tác tử tương tác (ví dụ: một mê cung, một ván cờ, một thị trường tài chính).
- Trạng thái (State - S): Một mô tả về tình huống hiện tại của môi trường.
- Hành động (Action - A): Những gì tác tử có thể làm trong một trạng thái nhất định.
- Phần thưởng (Reward - R): Một tín hiệu số mà môi trường trả về cho tác tử sau mỗi hành động, cho biết hành động đó tốt hay xấu trong việc đạt được mục tiêu. Phần thưởng có thể là dương (khuyến khích) hoặc âm (trừng phạt).
- Chính sách (Policy - \(\pi\)): “Bộ não” của tác tử, là một chiến lược hoặc một hàm ánh xạ từ trạng thái sang hành động. Chính sách xác định hành động mà tác tử sẽ chọn khi ở một trạng thái cụ thể. Mục tiêu của RL là học ra một chính sách tối ưu.
Cách thức hoạt động (Ý tưởng “Thử và Sai” và “Phần thưởng/Phạt”):
- Tác tử quan sát trạng thái hiện tại (S) của môi trường.
- Dựa trên chính sách hiện tại (\(\pi\)), tác tử chọn một hành động (A) để thực hiện.
- Sau khi thực hiện hành động, môi trường chuyển sang một trạng thái mới (S’) và trả về một phần thưởng (R) cho tác tử.
- Tác tử sử dụng thông tin về phần thưởng này (và sự thay đổi trạng thái) để cập nhật và cải thiện chính sách của mình, sao cho trong tương lai, nó có xu hướng chọn những hành động dẫn đến phần thưởng tích lũy cao hơn.
Quá trình này lặp đi lặp lại, tác tử học hỏi thông qua “thử và sai” (trial and error). Nó khám phá môi trường, thử các hành động khác nhau, và học từ những hậu quả (phần thưởng hoặc hình phạt) của những hành động đó.
[ĐỀ XUẤT HÌNH ẢNH: Một sơ đồ vòng lặp của Học tăng cường: Agent quan sát State từ Environment, chọn Action dựa trên Policy, Environment trả về Reward và New State. Agent cập nhật Policy.]
Ví dụ:
- Robot học cách đi:
- Tác tử: Robot.
- Môi trường: Sàn nhà.
- Trạng thái: Vị trí các khớp, tư thế của robot.
- Hành động: Điều khiển các động cơ ở khớp.
- Phần thưởng: +1 nếu tiến về phía trước, -1 nếu bị ngã.
- Robot sẽ thử nhiều cách di chuyển khác nhau. Những cách giúp nó tiến về phía trước sẽ được “củng cố” (reinforced), những cách làm nó ngã sẽ bị “tránh”. Dần dần, nó sẽ học được cách đi một cách ổn định.
- AI chơi game (ví dụ: Cờ vua, Go, game Atari):
- Tác tử: Chương trình AI.
- Môi trường: Bàn cờ hoặc màn hình game.
- Trạng thái: Vị trí các quân cờ hoặc trạng thái màn hình game.
- Hành động: Nước đi tiếp theo hoặc hành động trong game.
- Phần thưởng: +1 nếu thắng, -1 nếu thua, 0 nếu hòa (hoặc điểm số trong game).
- AlphaGo của DeepMind là một ví dụ nổi tiếng về thành công của RL trong việc đánh bại các kỳ thủ cờ vây hàng đầu thế giới.
Ứng dụng tiềm năng trong kinh doanh (thường phức tạp hơn):
- Hệ thống gợi ý động: Gợi ý sản phẩm dựa trên tương tác thời gian thực của người dùng và phản hồi của họ (ví dụ: người dùng có nhấp vào gợi ý không?).
- Định giá động tối ưu: Tự động điều chỉnh giá để tối đa hóa lợi nhuận dựa trên phản ứng của thị trường.
- Quản lý danh mục đầu tư tự động: Tự động mua bán tài sản để tối đa hóa lợi nhuận và kiểm soát rủi ro.
- Điều khiển robot trong nhà kho hoặc nhà máy.
- Tối ưu hóa chiến dịch marketing: Tự động điều chỉnh ngân sách và nội dung quảng cáo dựa trên hiệu suất thời gian thực.
Học tăng cường là một công cụ rất mạnh mẽ để bổ xung “kiến thức” cho các mô hình AI, các thuật toán học tăng cường đang phát triển nhanh chóng, nhưng việc áp dụng nó vào các bài toán thực tế thường đòi hỏi môi trường mô phỏng tốt, định nghĩa phần thưởng cẩn thận, và khả năng khám phá an toàn.
6.3 Một số Kỹ thuật Học máy và Đánh giá Mô hình
Sau khi đã làm quen với các loại hình học máy, chúng ta sẽ tìm hiểu ý tưởng chính đằng sau một vài kỹ thuật (thuật toán) học máy cơ bản thường được sử dụng. Mục tiêu ở đây không phải là đi sâu vào chi tiết toán học hay cách triển khai thuật toán, mà là để xây dựng trực giác về cách các mô hình này hoạt động và loại bài toán nào chúng có thể giải quyết. Bên cạnh đó, việc đánh giá mô hình là một bước không thể thiếu để biết liệu mô hình chúng ta sử dụng có thực sự tốt hay không.
6.3.1 Giới thiệu một số ý tưởng về mô hình Hồi quy
Như đã trình bày phía trên, bài toán hồi quy (regression) trong học có giám sát nhằm mục tiêu dự đoán một giá trị liên tục.
a. Hồi quy Tuyến tính (Linear Regression):
- Ý tưởng chính: Đây là một trong những thuật toán hồi quy đơn giản và được sử dụng rộng rãi nhất. Hồi quy tuyến tính giả định rằng có một mối quan hệ tuyến tính (đường thẳng hoặc một siêu phẳng trong không gian nhiều chiều) giữa các đặc trưng đầu vào (independent variables) và biến mục tiêu đầu ra (dependent variable).
- Trường hợp đơn giản (Simple Linear Regression): Chỉ có một đặc trưng đầu vào (X) và một biến mục tiêu (Y). Mô hình cố gắng tìm một đường thẳng có dạng \(Y = \beta_0 + \beta_1 X\) sao cho đường thẳng đó “khớp” nhất với bộ dữ liệu.
- \(\beta_0\): Hệ số chặn (intercept) – giá trị của Y khi X = 0.
- \(\beta_1\): Hệ số góc (slope) – mức độ thay đổi của Y khi X tăng một đơn vị.
- “Khớp nhất” thường có nghĩa là tổng bình phương của các khoảng cách (sai số) từ các điểm dữ liệu thực tế đến đường thẳng dự đoán là nhỏ nhất (phương pháp Bình phương Tối thiểu - Ordinary Least Squares - OLS).
- Trường hợp đa biến (Multiple Linear Regression): Có nhiều đặc trưng đầu vào (\(X_1, X_2, ..., X_p\)). Mô hình có dạng \(Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + ... + \beta_p X_p\).
- Trực quan:
- Trong không gian 2D (1 feature), đó là một đường thẳng.
- Trong không gian 3D (2 features), đó là một mặt phẳng.
- Trong không gian nhiều hơn 3D, đó là một siêu phẳng (hyperplane).
- Ưu điểm: Đơn giản, dễ hiểu, dễ diễn giải (có thể xem xét tầm quan trọng của từng đặc trưng dựa trên hệ số \(\beta\)), tính toán nhanh.
- Nhược điểm: Giả định mối quan hệ tuyến tính có thể không đúng trong nhiều trường hợp thực tế. Nhạy cảm với các điểm ngoại lai.
- Ứng dụng: Dự đoán giá nhà dựa trên diện tích, dự đoán doanh số dựa trên chi tiêu quảng cáo (nếu mối quan hệ là tuyến tính).
[ĐỀ XUẤT HÌNH ẢNH: Lặp lại hình ảnh từ mục 5.0 về hồi quy tuyến tính: một biểu đồ với các điểm dữ liệu và một đường thẳng hồi quy đi qua, chú thích $\beta_0$ và $\beta_1$.]
6.3.2 Giới thiệu một số ý tưởng mô hình Phân loại
Bài toán phân loại (classification) trong học có giám sát nhằm mục tiêu gán một đối tượng vào một trong các lớp (categories) đã được xác định trước.
a. Cây Quyết định (Decision Tree):
- Ý tưởng chính: Cây quyết định xây dựng một mô hình dự đoán dưới dạng cấu trúc cây. Nó hoạt động bằng cách liên tục chia tập dữ liệu thành các tập con nhỏ hơn dựa trên các “câu hỏi” về giá trị của các đặc trưng. Mỗi nút trong cây đại diện cho một câu hỏi (một điều kiện kiểm tra đặc trưng), mỗi nhánh đại diện cho một câu trả lời (kết quả của điều kiện), và mỗi nút lá (leaf node) đại diện cho một quyết định cuối cùng (một lớp).
- Cách hoạt động (trực quan):
- Bắt đầu từ nút gốc (root node) chứa toàn bộ tập dữ liệu.
- Tìm ra đặc trưng và ngưỡng giá trị tốt nhất để chia dữ liệu thành hai (hoặc nhiều) nhóm con sao cho các nhóm con này “phù hợp” nhất có thể về mặt lớp (tức là, hầu hết các điểm dữ liệu trong một nhóm con thuộc về cùng một lớp).
- Lặp lại quá trình chia này cho mỗi nhóm con, tạo ra các nút con và nhánh mới.
- Quá trình dừng lại khi các nút lá đạt được một mức độ phù hợp nhất định, hoặc khi đạt đến một độ sâu tối đa của cây, hoặc khi không thể chia nhỏ hơn được nữa.
- Trực quan: Mô hình có dạng một sơ đồ cây dễ hiểu, giống như một sơ đồ luồng (flowchart) các quyết định.
- Ưu điểm:
- Dễ hiểu và dễ diễn giải: Các quy tắc quyết định có thể được trích xuất trực tiếp từ cây.
- Có thể xử lý cả dữ liệu số và dữ liệu phân loại.
- Không yêu cầu chuẩn hóa dữ liệu nhiều như một số thuật toán khác.
- Có khả năng xử lý các mối quan hệ phi tuyến.
- Nhược điểm:
- Dễ bị quá khớp (overfitting) nếu cây quá phức tạp (quá sâu), tức là nó học quá tốt các chi tiết của dữ liệu huấn luyện nhưng lại hoạt động kém trên dữ liệu mới. Cần các kỹ thuật “cắt tỉa” (pruning) để giảm overfitting.
- Không ổn định: những thay đổi nhỏ trong dữ liệu huấn luyện có thể dẫn đến một cấu trúc cây hoàn toàn khác.
- Ứng dụng kinh doanh: Chấm điểm tín dụng sơ bộ (ví dụ: dựa trên thu nhập, tuổi, lịch sử nợ), phân loại khách hàng có khả năng mua sản phẩm hay không, chẩn đoán lỗi thiết bị cơ bản.
[ĐỀ XUẤT HÌNH ẢNH: Một ví dụ đơn giản về cây quyết định, ví dụ: để quyết định có nên chơi tennis dựa trên thời tiết (Outlook, Temperature, Humidity, Wind).]
b. K-Nearest Neighbors (k-NN):
- Ý tưởng chính: Đây là một thuật toán phân loại đơn giản, dựa trên nguyên tắc “gần mực thì đen, gần đèn thì sáng”. Để phân loại một điểm dữ liệu mới, k-NN sẽ tìm kiếm k điểm dữ liệu gần nhất với nó trong tập dữ liệu huấn luyện (dựa trên một thước đo khoảng cách, ví dụ: khoảng cách Euclide). Sau đó, nó sẽ gán nhãn cho điểm dữ liệu mới dựa trên nhãn chiếm đa số trong số k hàng xóm gần nhất đó.
- Cách hoạt động (trực quan):
- Lưu trữ toàn bộ tập dữ liệu huấn luyện.
- Khi có một điểm dữ liệu mới cần phân loại:
- Tính khoảng cách từ điểm mới này đến tất cả các điểm trong tập huấn luyện.
- Chọn ra k điểm huấn luyện có khoảng cách ngắn nhất (k hàng xóm gần nhất).
- Xem nhãn của k hàng xóm này. Gán nhãn phổ biến nhất trong số đó cho điểm dữ liệu mới.
- Tham số quan trọng (Hyperparameter):
- k: Số lượng hàng xóm cần xem xét. Việc chọn giá trị k phù hợp là rất quan trọng.
- Nếu k quá nhỏ (ví dụ: k=1), mô hình có thể nhạy cảm với nhiễu.
- Nếu k quá lớn, ranh giới giữa các lớp có thể trở nên mờ nhạt.
- k: Số lượng hàng xóm cần xem xét. Việc chọn giá trị k phù hợp là rất quan trọng.
- Ưu điểm:
- Rất đơn giản để hiểu và triển khai.
- Không có giai đoạn “huấn luyện” thực sự (thuật toán được gọi là “lười biếng” - lazy learner), chỉ cần lưu trữ dữ liệu.
- Có thể hiệu quả với các tập dữ liệu có ranh giới quyết định phức tạp.
- Nhược điểm:
- Chi phí tính toán cao trong giai đoạn dự đoán, vì phải tính khoảng cách đến tất cả các điểm huấn luyện cho mỗi điểm mới. Không phù hợp với các tập dữ liệu quá lớn.
- Hiệu suất phụ thuộc nhiều vào việc lựa chọn thước đo khoảng cách và giá trị k.
- Nhạy cảm với các đặc trưng không liên quan hoặc có thang đo khác nhau (cần chuẩn hóa dữ liệu).
- Cần đủ dữ liệu đại diện trong không gian đặc trưng.
- Ứng dụng kinh doanh: Hệ thống gợi ý đơn giản (tìm những người dùng/sản phẩm tương tự), nhận diện mẫu cơ bản, phân loại tài liệu dựa trên sự tương đồng.
[ĐỀ XUẤT HÌNH ẢNH: Một biểu đồ 2D với các điểm dữ liệu thuộc hai lớp (ví dụ: chấm tròn và hình vuông). Một điểm dữ liệu mới (ví dụ: ngôi sao) xuất hiện. Vẽ một vòng tròn bao quanh 3 (k=3) hoặc 5 (k=5) hàng xóm gần nhất của điểm mới và chỉ ra nhãn được gán dựa trên đa số.]
Còn nhiều thuật toán phân loại và hồi quy khác (ví dụ: Naive Bayes, Logistic Regression, Support Vector Machines - SVM, Random Forests, Gradient Boosting), mỗi thuật toán có những giả định và ưu nhược điểm riêng. Việc lựa chọn thuật toán phù hợp phụ thuộc vào bài toán cụ thể và dữ liệu.
6.3.3 Đánh giá hiệu quả mô hình
Sau khi xây dựng và huấn luyện một mô hình Học máy, làm thế nào để chúng ta biết được mô hình đó hoạt động tốt hay không? Đây là lúc việc đánh giá mô hình (model evaluation) trở nên cần thiết. Chúng ta cần các độ đo khách quan để định lượng hiệu suất của mô hình.
a. Tại sao cần đánh giá?
- So sánh các mô hình khác nhau: Khi thử nghiệm nhiều thuật toán hoặc nhiều cách thiết lập tham số khác nhau, việc đánh giá giúp chúng ta chọn ra mô hình tốt nhất.
- Đảm bảo mô hình có khả năng tổng quát hóa: Chúng ta muốn mô hình hoạt động tốt trên dữ liệu mới, chứ không chỉ trên dữ liệu nó đã được huấn luyện.
- Hiểu được điểm mạnh và điểm yếu của mô hình: Các độ đo khác nhau có thể cho thấy mô hình hoạt động tốt ở khía cạnh nào và kém ở khía cạnh nào.
- Xác định xem mô hình có đủ tốt để triển khai hay không: Dựa trên các tiêu chí kinh doanh hoặc yêu cầu của bài toán.
b. Khái niệm Tập Huấn luyện (Training Set) và Tập Kiểm tra (Test Set):
Một nguyên tắc cơ bản trong đánh giá mô hình là không bao giờ đánh giá mô hình trên chính dữ liệu mà nó đã dùng để huấn luyện. Nếu làm vậy, chúng ta sẽ không biết được liệu mô hình có thực sự “học” được các mẫu tổng quát hay chỉ đơn thuần là “ghi nhớ” dữ liệu huấn luyện (hiện tượng overfitting).
Do đó, trước khi huấn luyện, tập dữ liệu ban đầu thường được chia thành hai (hoặc ba) phần riêng biệt:
- Tập Huấn luyện (Training Set): Phần dữ liệu lớn hơn (thường chiếm 70-80% tổng dữ liệu) được sử dụng để huấn luyện mô hình. Mô hình sẽ “nhìn thấy” và “học” từ dữ liệu này.
- Tập Kiểm tra (Test Set): Phần dữ liệu nhỏ hơn còn lại (thường chiếm 20-30%) được giữ riêng và không bao giờ được sử dụng trong quá trình huấn luyện. Sau khi mô hình đã được huấn luyện xong trên tập training, nó sẽ được đánh giá hiệu suất trên tập test này. Kết quả trên tập test cho chúng ta một ước lượng khách quan về cách mô hình sẽ hoạt động trên dữ liệu mới trong thực tế.
- (Tùy chọn) Tập Thẩm định (Validation Set): Đôi khi, một phần dữ liệu được tách ra từ tập huấn luyện ban đầu, gọi là tập thẩm định. Tập này được sử dụng trong quá trình huấn luyện để tinh chỉnh các siêu tham số (hyperparameters) của mô hình hoặc để quyết định khi nào nên dừng quá trình huấn luyện sớm (early stopping) nhằm tránh overfitting. Sau khi đã chọn được siêu tham số tốt nhất, mô hình cuối cùng sẽ được huấn luyện lại trên toàn bộ tập training (bao gồm cả training ban đầu và validation) rồi mới đánh giá trên tập test. Một kỹ thuật phổ biến thay thế cho việc tách riêng tập validation là Kiểm định chéo (Cross-validation) (sẽ nói ở mục 5.3.4).
[ĐỀ XUẤT HÌNH ẢNH: Một sơ đồ minh họa việc chia tập dữ liệu ban đầu thành Training Set và Test Set.]
c. Các độ đo cơ bản cho bài toán Phân loại (Classification):
Đối với bài toán phân loại, chúng ta thường sử dụng một Ma trận Nhầm lẫn (Confusion Matrix) để hiểu rõ hơn về các loại lỗi mà mô hình mắc phải. Giả sử một bài toán phân loại nhị phân (hai lớp: Positive và Negative, ví dụ: “Spam” và “Not Spam”):
| Dự đoán: Positive | Dự đoán: Negative | |
|---|---|---|
| Thực tế: Positive | True Positive (TP) | False Negative (FN) |
| Thực tế: Negative | False Positive (FP) | True Negative (TN) |
- True Positive (TP): Số trường hợp Positive được dự đoán đúng là Positive.
- True Negative (TN): Số trường hợp Negative được dự đoán đúng là Negative.
- False Positive (FP) / Lỗi Loại I: Số trường hợp Negative bị dự đoán nhầm là Positive (ví dụ: email không spam bị cho vào hòm thư rác).
- False Negative (FN) / Lỗi Loại II: Số trường hợp Positive bị dự đoán nhầm là Negative (ví dụ: email spam lọt vào hòm thư chính).
Từ Ma trận Nhầm lẫn, chúng ta có thể tính toán các độ đo sau:
- Độ Chính xác (Accuracy): Tỷ lệ tổng số dự đoán đúng trên tổng số trường hợp. Công thức: \[Accuracy = \frac{TP + TN}{TP + TN + FP + FN}\]
- Lưu ý: Accuracy có thể gây hiểu lầm nếu tập dữ liệu bị mất cân bằng (imbalanced dataset - một lớp chiếm đa số áp đảo so với lớp kia). Ví dụ, nếu 99% email là không spam, một mô hình luôn dự đoán “không spam” sẽ có accuracy 99% nhưng lại vô dụng trong việc phát hiện spam.
- Độ Chuẩn xác (Precision) / Giá trị Dự đoán Dương (Positive Predictive Value): Trong số những trường hợp được dự đoán là Positive, có bao nhiêu trường hợp thực sự là Positive? Công thức: \[Precision = \frac{TP}{TP + FP}\]
- Precision cao có nghĩa là khi mô hình dự đoán Positive, khả năng cao là nó đúng. Quan trọng khi chi phí của False Positive là cao (ví dụ: chẩn đoán nhầm người khỏe thành người bệnh).
- Độ Phủ (Recall) / Độ Nhạy (Sensitivity) / Tỷ lệ Phát hiện Đúng (True Positive Rate): Trong số tất cả các trường hợp thực sự là Positive, mô hình phát hiện được bao nhiêu trường hợp? Công thức: \[Recall = \frac{TP}{TP + FN}\]
- Recall cao có nghĩa là mô hình ít bỏ sót các trường hợp Positive. Quan trọng khi chi phí của False Negative là cao (ví dụ: bỏ sót bệnh nhân ung thư, bỏ sót giao dịch gian lận).
- F1-Score: Là trung bình điều hòa (harmonic mean) của Precision và Recall. Nó cung cấp một thước đo cân bằng giữa Precision và Recall. Công thức: \[F1 = 2 \times \frac{Precision \times Recall}{Precision + Recall}\]
- F1-score cao khi cả Precision và Recall đều cao.
d. Các độ đo cơ bản cho bài toán Hồi quy (Regression):
Đối với bài toán hồi quy, chúng ta đo lường sai số giữa giá trị dự đoán và giá trị thực tế.
- Sai số Tuyệt đối Trung bình (Mean Absolute Error - MAE): Trung bình của giá trị tuyệt đối của các sai số. Công thức: \[MAE = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|\] trong đó \(y_i\) là giá trị thực, \(\hat{y}_i\) là giá trị dự đoán, n là cở mẫu
- Dễ hiểu, đơn vị giống như biến mục tiêu.
- Sai số Bình phương Trung bình (Mean Squared Error - MSE): Trung bình của bình phương các sai số. Công thức: \[MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2\]
- Trừng phạt các sai số lớn nặng hơn MAE. Đơn vị là bình phương của đơn vị biến mục tiêu.
- Căn Bậc hai của Sai số Bình phương Trung bình (Root Mean Squared Error - RMSE): Là căn bậc hai của MSE. Công thức: \[RMSE = \sqrt{MSE}\]
- Đơn vị giống như biến mục tiêu, dễ diễn giải hơn MSE. Cũng trừng phạt các sai số lớn.
- Hệ số Xác định R-squared (\(R^2\)): Đo lường tỷ lệ phần trăm phương sai của biến mục tiêu được giải thích bởi các biến độc lập trong mô hình. \(R^2\) có giá trị từ 0 đến 1. \(R^2\) càng gần 1 thì mô hình càng giải thích tốt sự biến thiên của dữ liệu.
- Lưu ý: \(R^2\) có thể tăng khi thêm nhiều biến vào mô hình, ngay cả khi các biến đó không thực sự hữu ích. Adjusted \(R^2\) là một phiên bản điều chỉnh cho số lượng biến.
Việc lựa chọn độ đo nào để ưu tiên phụ thuộc vào mục tiêu kinh doanh cụ thể của bài toán. Ví dụ, trong phát hiện bệnh, Recall (không bỏ sót người bệnh) có thể quan trọng hơn Precision.
6.3.4 Hiện tượng Overfitting và Underfitting
Khi huấn luyện một mô hình Học máy, chúng ta mong muốn mô hình đó không chỉ hoạt động tốt trên dữ liệu huấn luyện mà còn phải có khả năng tổng quát hóa tốt trên dữ liệu mới. Hai vấn đề phổ biến có thể xảy ra liên quan đến khả năng tổng quát hóa này là Overfitting (Quá khớp) và Underfitting (Dưới khớp).
a. Underfitting (Dưới khớp / Học chưa đủ):
- Mô tả: Xảy ra khi mô hình quá đơn giản, không đủ khả năng để nắm bắt được các mẫu hình và mối quan hệ cơ bản trong dữ liệu huấn luyện.
- Biểu hiện: Mô hình hoạt động kém trên cả tập huấn luyện (training set) và tập kiểm tra (test set). Sai số trên cả hai tập đều cao.
- Nguyên nhân:
- Mô hình quá đơn giản (ví dụ: dùng hồi quy tuyến tính cho một mối quan hệ phi tuyến phức tạp).
- Không đủ đặc trưng (features) quan trọng hoặc đặc trưng không tốt.
- Huấn luyện chưa đủ thời gian (đối với các thuật toán lặp).
- Trực quan: Tưởng tượng một đường thẳng cố gắng khớp với một tập hợp các điểm dữ liệu có dạng đường cong. Đường thẳng đó sẽ không thể mô tả tốt dữ liệu.
- Cách khắc phục (ý tưởng):
- Sử dụng một mô hình phù hợp hơn.
- Tăng thêm các đặc trưng (feature engineering).
- Huấn luyện lâu hơn (nếu phù hợp).
- Giảm các kỹ thuật điều chỉnh (regularization) nếu đang dùng.
b. Overfitting (Quá khớp / Học vẹt):
- Mô tả: Xảy ra khi mô hình quá phức tạp và học thuộc lòng các chi tiết, bao gồm cả nhiễu, trong dữ liệu huấn luyện, thay vì học các mẫu hình tổng quát.
- Biểu hiện: Mô hình hoạt động cực kỳ tốt trên tập huấn luyện (sai số rất thấp) nhưng lại hoạt động rất kém trên tập kiểm tra (sai số cao). Có một khoảng cách lớn giữa hiệu suất trên tập training và tập test.
- Nguyên nhân:
- Mô hình quá phức tạp so với lượng dữ liệu huấn luyện (ví dụ: một cây quyết định rất sâu và nhiều nhánh với một tập dữ liệu nhỏ).
- Dữ liệu huấn luyện có quá nhiều nhiễu.
- Huấn luyện quá lâu (đối với một số thuật toán).
- Trực quan: Tưởng tượng một đường cong rất ngoằn ngoèo cố gắng đi qua tất cả các điểm dữ liệu trong tập huấn luyện, bao gồm cả những điểm nhiễu. Đường cong này sẽ không khớp tốt với các điểm dữ liệu mới.
- Cách khắc phục (ý tưởng):
- Sử dụng một mô hình đơn giản hơn.
- Thu thập thêm dữ liệu huấn luyện (nếu có thể).
- Áp dụng các kỹ thuật điều chỉnh (Regularization): Thêm một “hình phạt” vào hàm mất mát của mô hình để ngăn các tham số của mô hình trở nên quá lớn, từ đó làm mô hình bớt phức tạp (ví dụ: L1, L2 regularization).
- Sử dụng kỹ thuật Kiểm định chéo (Cross-validation) để đánh giá mô hình và chọn siêu tham số tốt hơn.
- Cắt tỉa cây (Pruning) đối với cây quyết định.
- Sử dụng kỹ thuật Dừng sớm (Early Stopping) trong quá trình huấn luyện: Dừng huấn luyện khi hiệu suất trên tập thẩm định (validation set) bắt đầu giảm.
- Sử dụng các kỹ thuật Ensemble Learning (ví dụ: Random Forests, Gradient Boosting) thường có khả năng chống overfitting tốt hơn.
[ĐỀ XUẤT HÌNH ẢNH: Ba biểu đồ nhỏ đặt cạnh nhau. Biểu đồ 1: Underfitting (một đường thẳng đơn giản không khớp với các điểm dữ liệu cong). Biểu đồ 2: Good Fit (một đường cong vừa phải khớp tốt với xu hướng chung của các điểm). Biểu đồ 3: Overfitting (một đường cong rất phức tạp đi qua gần như tất cả các điểm, kể cả nhiễu).]
c. Tìm sự cân bằng (The Bias-Variance Tradeoff - Ý tưởng sơ lược):
- Underfitting thường liên quan đến độ chệch cao (high bias): mô hình có những giả định quá mạnh và sai lầm về dữ liệu.
- Overfitting thường liên quan đến phương sai cao (high variance): mô hình quá nhạy cảm với những thay đổi nhỏ trong dữ liệu huấn luyện.
- Mục tiêu là tìm ra một mô hình có sự cân bằng tốt giữa bias và variance, tức là một mô hình đủ phức tạp để nắm bắt các mẫu quan trọng nhưng không quá phức tạp đến mức học cả nhiễu. Đây được gọi là Bias-Variance Tradeoff.
d. Ý tưởng của Kiểm định chéo (Cross-validation):
Khi chúng ta có một lượng dữ liệu hạn chế, việc chỉ chia dữ liệu thành một cặp training set và test set có thể dẫn đến việc đánh giá hiệu suất của mô hình phụ thuộc nhiều vào cách chia ngẫu nhiên đó. Kiểm định chéo là một kỹ thuật giúp đánh giá hiệu suất mô hình một cách ổn định và đáng tin cậy hơn, đồng thời cũng hữu ích cho việc lựa chọn siêu tham số.
- Kỹ thuật K-Fold Cross-validation (Kiểm định chéo K-lần gấp):
- Chia tập dữ liệu huấn luyện ban đầu thành K “phần” (folds) bằng nhau (ví dụ: K=5 hoặc K=10).
- Lặp lại K lần:
- Trong mỗi lần lặp (fold thứ i), giữ lại phần thứ i làm tập thẩm định (validation fold).
- Sử dụng K-1 phần còn lại để huấn luyện mô hình.
- Đánh giá hiệu suất của mô hình trên tập thẩm định (fold thứ i).
- Hiệu suất tổng thể của mô hình được tính bằng cách lấy trung bình (hoặc một thống kê khác) của các độ đo hiệu suất thu được từ K lần lặp.
- Lợi ích:
- Tất cả dữ liệu đều được sử dụng cho cả việc huấn luyện và thẩm định, giúp tận dụng tối đa dữ liệu.
- Cung cấp một ước lượng hiệu suất ổn định hơn, ít phụ thuộc vào cách chia dữ liệu ngẫu nhiên ban đầu.
- Rất hữu ích khi lựa chọn siêu tham số: thử các giá trị siêu tham số khác nhau và chọn giá trị nào cho kết quả kiểm định chéo tốt nhất.
[ĐỀ XUẤT HÌNH ẢNH: Một sơ đồ minh họa quy trình 5-Fold Cross-validation: Dữ liệu được chia thành 5 folds. Trong mỗi lần lặp, 1 fold làm validation, 4 folds làm training.]
Hiểu về overfitting, underfitting và cách sử dụng kiểm định chéo là những kỹ năng quan trọng để xây dựng các mô hình Học máy có khả năng tổng quát hóa tốt.
6.4 Giới thiệu về Học sâu
Học sâu (Deep Learning - DL) là một lĩnh vực hẹp chuyên sâu của Học máy, lấy cảm hứng từ cấu trúc và chức năng của não bộ con người, đặc biệt là các Mạng Nơ-ron Nhân tạo (Artificial Neural Networks - ANN) với nhiều lớp (layers) xử lý thông tin. Chính vì có “nhiều lớp” nên được gọi là “sâu” (deep). Học sâu đã tạo ra những đột phá ngoạn mục trong nhiều lĩnh vực AI phức tạp trong những năm gần đây.
6.4.1 Một số khái niệm liên đến học sâu
Mạng Nơ-ron Nhân tạo (ANN):
Ý tưởng cơ bản của ANN là mô phỏng cách các nơ-ron (tế bào thần kinh) trong não bộ kết nối và xử lý thông tin. Một ANN bao gồm nhiều đơn vị xử lý đơn giản gọi là nơ-ron nhân tạo hoặc nút (nodes), được tổ chức thành các lớp (layers):
- Lớp Đầu vào (Input Layer): Nhận dữ liệu đầu vào (các đặc trưng của bài toán). Mỗi nơ-ron trong lớp này tương ứng với một đặc trưng đầu vào.
- Lớp Ẩn (Hidden Layer(s)): Nằm giữa lớp đầu vào và lớp đầu ra. Có thể có một hoặc nhiều lớp ẩn. Đây là nơi các phép tính được thực hiện, các đặc trưng phức tạp được “học” và biểu diễn. “Độ sâu” của mạng nơ-ron chính là số lượng lớp ẩn.
- Lớp Đầu ra (Output Layer): Tạo ra kết quả cuối cùng của mô hình (ví dụ: dự đoán lớp, giá trị hồi quy). Số lượng nơ-ron và hàm kích hoạt (activation function) của lớp này phụ thuộc vào loại bài toán.
Hoạt động của một Nơ-ron Nhân tạo:
- Mỗi nơ-ron nhận đầu vào từ các nơ-ron ở lớp trước đó (hoặc từ dữ liệu đầu vào).
- Mỗi đầu vào được nhân với một trọng số (weight). Trọng số này biểu thị tầm quan trọng của kết nối đó.
- Các đầu vào đã nhân trọng số được cộng lại với nhau, thường cộng thêm một giá trị thiên vị (bias).
- Tổng này sau đó được đưa qua một hàm kích hoạt (activation function). Hàm kích hoạt quyết định xem nơ-ron có nên “kích hoạt” (truyền tín hiệu đi tiếp) hay không và ở mức độ nào. Các hàm kích hoạt phổ biến bao gồm Sigmoid, ReLU (Rectified Linear Unit), Tanh.
Quá trình Học của Mạng Nơ-ron (Ý tưởng về Lan truyền Ngược - Backpropagation):
- Trong quá trình huấn luyện, mạng nơ-ron được cung cấp dữ liệu đầu vào và nhãn đầu ra mong muốn (đối với học có giám sát).
- Mạng sẽ tính toán đầu ra dự đoán.
- Sai số giữa đầu ra dự đoán và đầu ra thực tế sẽ được tính toán bằng một hàm mất mát (loss function).
- Sau đó, một thuật toán gọi là Lan truyền Ngược (Backpropagation) sẽ được sử dụng để điều chỉnh các trọng số và thiên vị của tất cả các kết nối trong mạng, theo hướng làm giảm sai số. Quá trình này được lặp đi lặp lại qua nhiều “vòng lặp” (epochs) hoặc “lô” (batches) dữ liệu cho đến khi sai số đạt mức chấp nhận được hoặc mô hình hội tụ.
[ĐỀ XUẤT HÌNH ẢNH: Một sơ đồ đơn giản của một mạng nơ-ron nhân tạo với 1 lớp đầu vào, 1 hoặc 2 lớp ẩn, và 1 lớp đầu ra. Hiển thị các nơ-ron, các kết nối giữa chúng với các trọng số (w), và hướng lan truyền tín hiệu. Có thể có một hình ảnh nhỏ minh họa một nơ-ron đơn lẻ với các đầu vào, trọng số, tổng, và hàm kích hoạt.]
Học sâu (Deep Learning) chính là việc sử dụng các Mạng Nơ-ron Nhân tạo có nhiều lớp ẩn (deep neural networks). Việc có nhiều lớp cho phép mô hình học các biểu diễn dữ liệu ngày càng trừu tượng và phức tạp hơn qua từng lớp:
- Các lớp gần đầu vào có thể học các đặc trưng ở mức độ thấp (ví dụ: các cạnh, góc trong hình ảnh; các âm vị trong giọng nói).
- Các lớp sâu hơn có thể kết hợp các đặc trưng mức thấp này để học các đặc trưng ở mức độ cao hơn (ví dụ: các bộ phận của khuôn mặt, các từ, các khái niệm phức tạp).
Những thách thức đặc thù của Học sâu:
Mặc dù rất mạnh mẽ, Học sâu cũng có những thách thức riêng:
- Yêu cầu Lượng Dữ liệu Huấn luyện Cực kỳ Lớn (Big Data): Các mạng nơ-ron sâu có hàng triệu, thậm chí hàng tỷ tham số (trọng số và thiên vị). Để huấn luyện hiệu quả và tránh overfitting, chúng cần lượng dữ liệu huấn luyện khổng lồ, thường là dữ liệu phi cấu trúc.
- Chi phí Tính toán Rất Cao cho việc Huấn luyện (GPU/TPU): Huấn luyện các mô hình học sâu lớn đòi hỏi năng lực tính toán cực lớn, thường phải sử dụng các bộ xử lý đồ họa (GPUs) hoặc các đơn vị xử lý tensor (TPUs) chuyên dụng, và có thể mất nhiều ngày, tuần, hoặc thậm chí hàng tháng.
- Dễ bị Overfitting hơn các mô hình ML truyền thống (nếu không cẩn thận): Do số lượng tham số lớn, các mạng sâu rất dễ học thuộc lòng dữ liệu huấn luyện. Cần các kỹ thuật điều chỉnh (regularization) mạnh mẽ (ví dụ: Dropout, L1/L2 regularization, Batch Normalization) và lượng dữ liệu lớn.
- Tính Giải thích Thấp hơn nhiều so với các mô hình ML khác (“Hộp đen” sâu hơn): Việc hiểu tại sao một mạng nơ-ron sâu đưa ra một quyết định cụ thể còn khó khăn hơn nhiều so với các mô hình ML truyền thống, gây khó khăn trong việc gỡ lỗi và xây dựng lòng tin, đặc biệt trong các ứng dụng quan trọng.
- Thiết kế Kiến trúc Mạng Nơ-ron Phù hợp là một “Nghệ thuật” và Đòi hỏi nhiều Kinh nghiệm: Việc lựa chọn số lượng lớp, số lượng nơ-ron mỗi lớp, loại hàm kích hoạt, cách kết nối các lớp, v.v., thường đòi hỏi nhiều thử nghiệm và kinh nghiệm.
- Vấn đề Biến mất/Bùng nổ Gradient (Vanishing/Exploding Gradients): Trong các mạng nơ-ron rất sâu, gradient (đạo hàm của hàm mất mát theo trọng số, dùng trong backpropagation) có thể trở nên quá nhỏ (biến mất) hoặc quá lớn (bùng nổ) khi lan truyền qua nhiều lớp, làm cho việc huấn luyện trở nên khó khăn hoặc không thể. Nhiều kỹ thuật đã được phát triển để giảm thiểu vấn đề này (ví dụ: hàm kích hoạt ReLU, khởi tạo trọng số cẩn thận, kiến trúc mạng dư - Residual Networks).
6.4.2 Khác biệt chính giữa ML truyền thống và DL
Học sâu là một nhánh của Học máy, nhưng có một số khác biệt quan trọng so với các phương pháp Học máy “truyền thống” (ví dụ: SVM, Cây Quyết định, Hồi quy Logistic).
| Đặc điểm | Học máy Truyền thống | Học sâu |
|---|---|---|
| Trích xuất Đặc trưng (Feature Engineering) | Thường yêu cầu con người phải thiết kế và trích xuất đặc trưng một cách thủ công từ dữ liệu thô. Chất lượng của các đặc trưng này ảnh hưởng lớn đến hiệu suất mô hình. | Có khả năng tự động học các đặc trưng liên quan trực tiếp từ dữ liệu thô qua các lớp ẩn của mạng nơ-ron. Các lớp đầu học đặc trưng mức thấp, các lớp sau học đặc trưng mức cao hơn. |
| Lượng Dữ liệu Yêu cầu | Có thể hoạt động tốt với lượng dữ liệu vừa phải hoặc nhỏ. | Thường yêu cầu lượng dữ liệu rất lớn (Big Data) để đạt hiệu suất cao và tránh overfitting. |
| Năng lực Tính toán | Yêu cầu năng lực tính toán vừa phải. | Đòi hỏi năng lực tính toán rất lớn (thường cần GPU/TPU) cho việc huấn luyện. |
| Độ phức tạp Mô hình | Mô hình thường đơn giản hơn và có ít tham số hơn. | Mô hình thường rất phức tạp với hàng triệu đến hàng tỷ tham số. |
| Tính Giải thích được | Một số mô hình (ví dụ: Cây Quyết định, Hồi quy Tuyến tính) tương đối dễ giải thích. | Thường là “hộp đen”, khó giải thích hơn nhiều. |
| Hiệu suất | Có thể rất hiệu quả cho nhiều bài toán, đặc biệt với dữ liệu có cấu trúc và lượng dữ liệu không quá lớn. | Thường đạt hiệu suất vượt trội so với ML truyền thống trên các bài toán phức tạp với dữ liệu phi cấu trúc (hình ảnh, âm thanh, văn bản) và dữ liệu lớn. |
| Thời gian Huấn luyện | Thường nhanh hơn. | Thường mất nhiều thời gian hơn đáng kể. |
| Lĩnh vực Ứng dụng Mạnh | Dữ liệu có cấu trúc, bài toán phân loại/hồi quy với số chiều không quá lớn. | Nhận diện hình ảnh, xử lý ngôn ngữ tự nhiên, nhận dạng giọng nói, xe tự lái, game AI. |
Khi nào chọn Deeplearning thay vì Machine learning truyền thống?
- Khi bạn có lượng dữ liệu rất lớn (đặc biệt là dữ liệu phi cấu trúc).
- Khi bài toán rất phức tạp và việc thiết kế đặc trưng thủ công là khó khăn hoặc không hiệu quả (ví dụ: nhận diện đối tượng trong ảnh).
- Khi bạn có đủ năng lực tính toán (GPU/TPU).
- Khi hiệu suất cực cao là yếu tố quan trọng nhất và tính giải thích có thể được đặt ở mức ưu tiên thấp hơn (tuy nhiên, XAI cho DL đang được nghiên cứu).
Đối với nhiều bài toán với dữ liệu có cấu trúc và lượng dữ liệu vừa phải, các thuật toán ML truyền thống vẫn có thể mang lại kết quả rất tốt, dễ triển khai và dễ giải thích hơn.
6.4.3 Giới thiệu về kiến trúc mạng nơ-ron và ứng dụng
Có nhiều kiến trúc mạng nơ-ron khác nhau được thiết kế cho các loại dữ liệu và tác vụ cụ thể. Dưới đây là giới thiệu sơ lược (ở mức độ ý tưởng) về hai kiến trúc rất quan trọng và phổ biến:
a. Mạng Nơ-ron Tích chập (Convolutional Neural Network - CNN / ConvNet):
- Được thiết kế chủ yếu cho việc xử lý dữ liệu có dạng lưới (grid-like data), đặc biệt là hình ảnh.
- Ý tưởng chính lấy cảm hứng từ Hệ thống Thị giác của Động vật: Các tế bào thần kinh trong vỏ não thị giác chỉ phản ứng với các kích thích trong một vùng nhỏ của trường nhìn (receptive field). CNN mô phỏng điều này bằng các lớp tích chập (convolutional layers).
- Các thành phần chính (ý tưởng):
- Lớp Tích chập (Convolutional Layer): Sử dụng các “bộ lọc” (filters) hoặc “nhân” (kernels) nhỏ trượt qua hình ảnh đầu vào. Mỗi bộ lọc được thiết kế để phát hiện một đặc trưng cụ thể ở mức độ thấp (ví dụ: cạnh ngang, cạnh dọc, góc, một màu sắc cụ thể). Kết quả của lớp này là các “bản đồ đặc trưng” (feature maps).
- Lớp Gộp (Pooling Layer) (ví dụ: Max Pooling): Giảm kích thước của các bản đồ đặc trưng (giảm số chiều) trong khi vẫn giữ lại thông tin quan trọng nhất. Điều này giúp mô hình trở nên bất biến hơn với những thay đổi nhỏ về vị trí của đặc trưng và giảm độ phức tạp tính toán.
- Lớp Kết nối Đầy đủ (Fully Connected Layer): Sau một vài lớp tích chập và gộp, các bản đồ đặc trưng được “làm phẳng” (flattened) thành một vector và đưa vào một hoặc nhiều lớp kết nối đầy đủ (giống như mạng nơ-ron truyền thống) để thực hiện nhiệm vụ phân loại hoặc hồi quy cuối cùng.
- Ưu điểm:
- Rất hiệu quả trong việc tự động học các đặc trưng phân cấp từ hình ảnh.
- Chia sẻ trọng số (weight sharing) trong các lớp tích chập giúp giảm đáng kể số lượng tham số so với việc dùng mạng kết nối đầy đủ trực tiếp trên ảnh, làm cho mô hình dễ huấn luyện hơn và ít bị overfitting hơn.
- Bất biến với một số phép biến đổi nhất định của ảnh (dịch chuyển, xoay nhẹ).
- Ứng dụng đột phá:
- Nhận diện Hình ảnh (Image Recognition/Classification): Xác định đối tượng chính trong ảnh (ví dụ: chó, mèo, ô tô). Các mô hình như AlexNet, VGG, ResNet, Inception đã đạt hiệu suất vượt trội trên các bộ dữ liệu lớn như ImageNet.
- Phát hiện Đối tượng (Object Detection): Xác định vị trí (bounding box) và loại của nhiều đối tượng trong một ảnh (ví dụ: YOLO, SSD).
- Phân đoạn Ảnh (Image Segmentation): Phân loại từng pixel trong ảnh thuộc về đối tượng nào.
- Nhận diện Khuôn mặt (Face Recognition).
- Phân tích Hình ảnh Y tế (Medical Image Analysis): Chẩn đoán bệnh từ X-quang, MRI, CT scan.
- Xe Tự lái: Nhận diện làn đường, biển báo, người đi bộ, các phương tiện khác.
- Cũng có thể được áp dụng cho các loại dữ liệu dạng lưới khác như tín hiệu âm thanh (biểu diễn dưới dạng spectrogram) hoặc thậm chí là văn bản (biểu diễn dưới dạng ma trận).
[ĐỀ XUẤT HÌNH ẢNH: Một sơ đồ đơn giản minh họa kiến trúc của một CNN: Input Image -> Conv Layer -> Pooling Layer -> Conv Layer -> Pooling Layer -> Fully Connected Layer -> Output. Có thể có một hình ảnh nhỏ minh họa cách một bộ lọc (filter) trượt qua một phần của ảnh.]
b. Mạng Nơ-ron Hồi quy (Recurrent Neural Network - RNN):
- Được thiết kế chủ yếu cho việc xử lý dữ liệu dạng chuỗi (sequential data), nơi mà thứ tự của các phần tử là quan trọng và có sự phụ thuộc theo thời gian.
- Ý tưởng chính: RNN có các “vòng lặp” (recurrent connections) trong kiến trúc của nó, cho phép thông tin từ các bước thời gian trước đó được “ghi nhớ” và ảnh hưởng đến việc xử lý ở các bước thời gian hiện tại và tương lai. Nó có một dạng “bộ nhớ” nội tại.
- Cách hoạt động (trực quan): Khi xử lý một phần tử trong chuỗi, RNN không chỉ dựa vào đầu vào hiện tại mà còn dựa vào một “trạng thái ẩn” (hidden state) được tính toán từ các bước thời gian trước đó. Trạng thái ẩn này mang thông tin về những gì đã xảy ra trong quá khứ của chuỗi.
- Vấn đề với RNN truyền thống: RNN truyền thống gặp khó khăn trong việc học các phụ thuộc dài hạn (long-term dependencies) trong chuỗi do vấn đề biến mất/bùng nổ gradient khi lan truyền ngược qua nhiều bước thời gian.
- Các biến thể cải tiến:
- LSTM (Long Short-Term Memory): Một loại RNN đặc biệt được thiết kế để giải quyết vấn đề phụ thuộc dài hạn. LSTM có các “cổng” (gates) phức tạp (input gate, forget gate, output gate) để kiểm soát việc thông tin nào được lưu trữ, cập nhật, hoặc loại bỏ khỏi bộ nhớ của ô (cell state).
- GRU (Gated Recurrent Unit): Một biến thể khác của RNN có cấu trúc cổng đơn giản hơn LSTM nhưng vẫn hiệu quả trong nhiều tác vụ.
- Ứng dụng đột phá:
- Xử lý Ngôn ngữ Tự nhiên (NLP):
- Mô hình hóa Ngôn ngữ (Language Modeling): Dự đoán từ tiếp theo trong một câu.
- Dịch Máy (Machine Translation).
- Tạo Văn bản (Text Generation).
- Phân tích Cảm xúc.
- Nhận diện Thực thể Tên (Named Entity Recognition).
- Nhận dạng Giọng nói (Speech Recognition): Chuyển đổi tín hiệu âm thanh (một chuỗi) thành văn bản.
- Tạo Âm nhạc (Music Generation).
- Phân tích Chuỗi Thời gian (Time Series Analysis): Dự báo giá cổ phiếu, dự báo thời tiết.
- Phân tích Video (kết hợp với CNN): Hiểu hành động trong video.
- Xử lý Ngôn ngữ Tự nhiên (NLP):
[ĐỀ XUẤT HÌNH ẢNH: Một sơ đồ đơn giản minh họa một ô RNN (hoặc LSTM) được "mở ra" theo thời gian, cho thấy đầu vào ở mỗi bước thời gian, trạng thái ẩn được truyền đi, và đầu ra. Nhấn mạnh vào kết nối vòng lặp (recurrent connection).]
Kiến trúc Transformer, được giới thiệu lần đầu cho bài toán dịch máy, đã trở thành một đối thủ cạnh tranh mạnh mẽ và thậm chí vượt trội hơn RNN/LSTM trong nhiều tác vụ NLP gần đây (như đã thấy trong các Mô hình Ngôn ngữ Lớn). Transformer sử dụng cơ chế “self-attention” để nắm bắt sự phụ thuộc giữa các từ trong câu mà không cần xử lý tuần tự như RNN. Tuy nhiên, RNN/LSTM vẫn là những kiến trúc quan trọng và có giá trị trong nhiều ứng dụng xử lý chuỗi.
Việc hiểu ý tưởng cơ bản về CNN và RNN/LSTM giúp sinh viên nhận diện được loại công nghệ AI nào có thể đứng sau các ứng dụng mà họ đang sử dụng, ví dụ như nhận diện hình ảnh sản phẩm trên trang thương mại điện tử (CNN) hay chatbot trả lời tự động (có thể là RNN/LSTM hoặc Transformer).
6.5 Giới thiệu về Xử lý Ngôn ngữ Tự nhiên
Xử lý Ngôn ngữ Tự nhiên (Natural Language Processing - NLP) là một lĩnh vực giao thoa giữa Trí tuệ Nhân tạo, Khoa học Máy tính và Ngôn ngữ học, tập trung vào việc cho phép máy tính có khả năng hiểu, diễn giải, tạo ra, và tương tác với con người bằng ngôn ngữ của con người (cả dạng văn bản và giọng nói) một cách có ý nghĩa và hữu ích.
6.5.1 Khái niệm về NLP và vai trò của dữ liệu văn bản
NLP là gì?
Mục tiêu cuối cùng của NLP là xây dựng các hệ thống máy tính có thể “giao tiếp” với con người bằng ngôn ngữ tự nhiên một cách trôi chảy và thông minh như chính con người. Điều này bao gồm nhiều khả năng khác nhau:
- Hiểu Ngôn ngữ Tự nhiên (Natural Language Understanding - NLU): Khả năng máy tính đọc và hiểu ý nghĩa của văn bản hoặc lời nói, bao gồm việc xác định các thực thể, mối quan hệ, cảm xúc, và ý định.
- Tạo Ngôn ngữ Tự nhiên (Natural Language Generation - NLG): Khả năng máy tính tạo ra văn bản hoặc lời nói mạch lạc, tự nhiên, và phù hợp với ngữ cảnh.
NLP là một lĩnh vực cực kỳ thách thức vì ngôn ngữ của con người vốn rất phức tạp, đa nghĩa, mơ hồ, phụ thuộc nhiều vào ngữ cảnh, và luôn thay đổi.
Tầm quan trọng của Dữ liệu Văn bản:
Trong kỷ nguyên số, dữ liệu văn bản được tạo ra với khối lượng khổng lồ mỗi ngày từ vô số nguồn:
- Email, tin nhắn, tài liệu văn phòng.
- Nội dung trên website, blog, diễn đàn, trang tin tức.
- Bài đăng, bình luận, đánh giá trên mạng xã hội.
- Sách, báo cáo, tài liệu nghiên cứu.
- Bản ghi âm cuộc gọi được chuyển thành văn bản.
Dữ liệu văn bản này chứa đựng vô vàn thông tin giá trị về ý kiến khách hàng, xu hướng thị trường, kiến thức chuyên môn, các sự kiện đang diễn ra, v.v. Khả năng khai thác hiệu quả nguồn dữ liệu văn bản khổng lồ này mang lại lợi thế cạnh tranh to lớn cho các doanh nghiệp và tổ chức. NLP chính là chìa khóa để “mở khóa” giá trị tiềm ẩn trong dữ liệu văn bản.
[ĐỀ XUẤT HÌNH ẢNH: Một đám mây từ (word cloud) được tạo từ các từ khóa liên quan đến NLP và dữ liệu văn bản, làm nổi bật các thuật ngữ như "text", "language", "understanding", "generation", "sentiment", "translation".]
6.5.2 Các tác vụ và ứng dụng NLP cơ bản
NLP bao gồm một loạt các tác vụ và kỹ thuật khác nhau. Dưới đây là một số tác vụ cơ bản và ứng dụng phổ biến của chúng:
- Phân loại Văn bản (Text Classification):
- Tác vụ: Tự động gán một hoặc nhiều nhãn (lớp) cho một đoạn văn bản.
- Ứng dụng:
- Phân loại Email Spam: Xác định email là spam hay không spam.
- Phân tích Cảm xúc (Sentiment Analysis): Xác định thái độ (tích cực, tiêu cực, trung tính) của một đoạn văn bản (ví dụ: đánh giá sản phẩm, bình luận trên mạng xã hội).
- Phân loại Chủ đề (Topic Classification): Gán các bài báo, tài liệu vào các chủ đề phù hợp (ví dụ: thể thao, kinh tế, chính trị).
- Phát hiện Ngôn ngữ (Language Detection).
- Phân loại Ý định (Intent Classification): Trong chatbot, xác định ý định của người dùng từ câu hỏi của họ.
- Nhận diện Thực thể Tên (Named Entity Recognition - NER):
- Tác vụ: Xác định và phân loại các thực thể có tên trong văn bản vào các loại được xác định trước như tên người (PERSON), tổ chức (ORGANIZATION), địa điểm (LOCATION), ngày tháng (DATE), tiền tệ (MONEY), v.v.
- Ứng dụng:
- Trích xuất thông tin từ tài liệu (ví dụ: tìm tên công ty, địa chỉ trong hợp đồng).
- Hỗ trợ công cụ tìm kiếm hiểu rõ hơn về nội dung.
- Xây dựng cơ sở tri thức.
- Trích xuất Thông tin (Information Extraction - IE):
- Tác vụ: Tự động trích xuất các thông tin có cấu trúc (ví dụ: các mối quan hệ giữa các thực thể) từ văn bản phi cấu trúc.
- Ứng dụng:
- Trích xuất thông tin sản phẩm (tên, giá, đặc điểm) từ các trang web thương mại điện tử.
- Xây dựng cơ sở dữ liệu từ các bài báo khoa học (ví dụ: trích xuất thông tin về gen và bệnh).
- Tóm tắt Văn bản (Text Summarization):
- Tác vụ: Tự động tạo ra một bản tóm tắt ngắn gọn, súc tích của một hoặc nhiều tài liệu văn bản dài mà vẫn giữ được những ý chính.
- Ứng dụng:
- Tóm tắt tin tức, báo cáo, tài liệu nghiên cứu.
- Tạo mô tả ngắn cho sản phẩm hoặc bài viết.
- Dịch Máy (Machine Translation - MT):
- Tác vụ: Tự động dịch văn bản hoặc lời nói từ ngôn ngữ này sang ngôn ngữ khác.
- Ứng dụng: Google Translate, dịch tài liệu, hỗ trợ giao tiếp đa ngôn ngữ.
- Hệ thống Hỏi Đáp (Question Answering - QA):
- Tác vụ: Cung cấp câu trả lời cho các câu hỏi được đặt bằng ngôn ngữ tự nhiên, dựa trên một tập hợp tài liệu, một cơ sở tri thức, hoặc kiến thức chung.
- Ứng dụng: Chatbots, trợ lý ảo, công cụ tìm kiếm thông minh.
- Tạo Ngôn ngữ Tự nhiên (Natural Language Generation - NLG) / Tạo Văn bản (Text Generation):
- Tác vụ: Tự động tạo ra văn bản mạch lạc, tự nhiên.
- Ứng dụng:
- Tạo báo cáo tự động (ví dụ: báo cáo thời tiết, báo cáo tài chính từ số liệu).
- Viết mô tả sản phẩm, nội dung marketing (như đã thấy trong AI Tạo sinh và LLMs).
- Tạo các đoạn hội thoại cho chatbot.
Nhiều trong số các tác vụ này đã được cách mạng hóa bởi sự phát triển của các Mô hình Ngôn ngữ Lớn (LLMs) dựa trên kiến trúc Transformer, vốn có khả năng hiểu và tạo ra ngôn ngữ ở một mức độ rất cao.
6.5.3 Những thách thức trong NLP
Mặc dù NLP đã đạt được những tiến bộ vượt bậc, việc máy tính thực sự “hiểu” và sử dụng ngôn ngữ tự nhiên như con người vẫn còn đối mặt với nhiều thách thức cố hữu:
- Tính Đa nghĩa (Ambiguity):
- Một từ hoặc một câu có thể có nhiều nghĩa khác nhau tùy thuộc vào ngữ cảnh.
- Đa nghĩa từ vựng (Lexical Ambiguity): Ví dụ, từ “bank” có thể là bờ sông hoặc ngân hàng.
- Đa nghĩa cú pháp (Syntactic Ambiguity): Cấu trúc ngữ pháp của câu có thể được hiểu theo nhiều cách. Ví dụ: “I saw a man on a hill with a telescope.” (Ai có kính viễn vọng? Người đàn ông hay người nói?).
- Đa nghĩa ngữ nghĩa (Semantic Ambiguity): Ý nghĩa tổng thể của câu không rõ ràng.
- Ngữ cảnh (Context):
- Ý nghĩa của từ ngữ và câu nói phụ thuộc rất nhiều vào ngữ cảnh xung quanh (các câu trước đó, tình huống giao tiếp, kiến thức nền chung). Máy tính thường gặp khó khăn trong việc nắm bắt và sử dụng ngữ cảnh một cách hiệu quả như con người.
- Tiếng lóng, Từ viết tắt, Thành ngữ, Ngôn ngữ không chuẩn (Slang, Abbreviations, Idioms, Non-standard Language):
- Ngôn ngữ thực tế thường chứa đựng tiếng lóng, từ viết tắt, thành ngữ (mà ý nghĩa không thể suy ra từ các từ riêng lẻ), và các cấu trúc ngữ pháp không chuẩn, gây khó khăn cho các mô hình NLP được huấn luyện chủ yếu trên văn bản chuẩn mực.
- Mỉa mai, Châm biếm, Hài hước (Sarcasm, Irony, Humor):
- Việc hiểu được ý nghĩa thực sự đằng sau những phát ngôn mỉa mai, châm biếm, hoặc hài hước đòi hỏi sự hiểu biết sâu sắc về ngữ cảnh, văn hóa, và cảm xúc con người, điều mà máy tính còn rất hạn chế.
- Sự Khác biệt Văn hóa và Ngôn ngữ (Cultural and Linguistic Diversity):
- Các ngôn ngữ khác nhau có cấu trúc ngữ pháp, từ vựng, và cách diễn đạt rất khác nhau. Ngay cả trong cùng một ngôn ngữ, cũng có sự khác biệt giữa các vùng miền hoặc các nhóm văn hóa.
- Hầu hết các nghiên cứu và dữ liệu NLP hiện tại vẫn tập trung vào tiếng Anh và một số ngôn ngữ phổ biến khác, gây ra sự thiếu hụt tài nguyên cho các ngôn ngữ ít phổ biến hơn (low-resource languages).
- Kiến thức Nền (Common Sense / World Knowledge):
- Con người sử dụng một lượng lớn kiến thức nền và hiểu biết thông thường về thế giới để hiểu ngôn ngữ. Máy tính thiếu đi kiến thức nền này, khiến chúng khó có thể suy luận hoặc hiểu những điều “ngầm định” trong giao tiếp.
- Sự Thay đổi của Ngôn ngữ (Language Evolution):
- Ngôn ngữ là một thực thể sống, luôn thay đổi và phát triển theo thời gian với sự xuất hiện của các từ mới, ý nghĩa mới. Các mô hình NLP cần được cập nhật liên tục để theo kịp sự thay đổi này.
- Dữ liệu Huấn luyện và Thiên vị:
- Chất lượng và tính đại diện của dữ liệu huấn luyện ảnh hưởng lớn đến hiệu suất của mô hình NLP. Thiên vị trong dữ liệu có thể dẫn đến các mô hình NLP đưa ra kết quả không công bằng hoặc mang tính định kiến.
Vượt qua những thách thức này đòi hỏi sự kết hợp của các thuật toán ngày càng tinh vi hơn, lượng dữ liệu huấn luyện lớn hơn và đa dạng hơn, cùng với những hiểu biết sâu sắc hơn về bản chất của ngôn ngữ và tư duy con người.
6.6 Thực hành với Orange Data Mining
Trong phần thực hành này, chúng ta sẽ sử dụng Orange Data Mining để xây dựng một vài mô hình phân loại đơn giản, đánh giá hiệu suất của chúng, và có thể minh họa hiện tượng overfitting nếu điều kiện cho phép. Chúng ta sẽ tiếp tục sử dụng bộ dữ liệu “Titanic” quen thuộc.
Bài toán: Dự đoán khả năng sống sót (survived) của hành khách trên tàu Titanic dựa trên một số đặc trưng như hạng vé (pclass), giới tính (sex), tuổi (age), số lượng anh chị em/vợ chồng đi cùng (sibsp), số lượng cha mẹ/con cái đi cùng (parch), và giá vé (fare).
Bước 1: Chuẩn bị Dữ liệu và Tiền xử lý (Nếu chưa làm ở Chương 3)
- Tải Dữ liệu:
- Sử dụng widget File để tải bộ dữ liệu
titanic.csv. - Đảm bảo vai trò của các cột được thiết lập đúng:
survived: Target (Categorical)pclass,sex,age,sibsp,parch,fare: Features (Chú ý kiểu dữ liệu củasexvàpclassnên là Categorical,agevàfarelà Numeric).- Các cột khác như
name,ticket,cabin,embarkedcó thể được đặt là Meta hoặc Skip cho bài toán đơn giản này, hoặc cần các bước tiền xử lý phức tạp hơn (ví dụ:embarkedvàcabincó giá trị thiếu,cabincần trích xuất đặc trưng).
- Sử dụng widget File để tải bộ dữ liệu
- Xử lý Giá trị Thiếu:
- Cột
agethường có nhiều giá trị thiếu. Nối widget File với widget Impute (từ mục Transform). - Trong Impute, chọn phương pháp phù hợp để điền giá trị thiếu cho
age(ví dụ: “Average/Most frequent” hoặc “Model-based imputer” nếu muốn thử).
- Cột
- Rời rạc hóa (Discretization) Biến Liên tục (Tùy chọn, để dùng với một số mô hình):
- Một số mô hình như Cây Quyết định có thể làm việc tốt hơn hoặc dễ hiểu hơn với các biến số đã được rời rạc hóa.
- Nối widget Impute với widget Discretize (từ mục Transform).
- Trong Discretize, bạn có thể chọn cột
agevàfaređể rời rạc hóa thành các khoảng (ví dụ: chiaagethành 3-5 khoảng). - Lưu ý: Bước này là tùy chọn và có thể ảnh hưởng đến kết quả. Bạn có thể thử cả hai trường hợp có và không rời rạc hóa.
- Chọn Đặc trưng (Select Columns):
- Để giữ cho mô hình đơn giản ban đầu, chúng ta có thể chỉ chọn một vài đặc trưng quan trọng. Nối widget (Impute hoặc Discretize) với widget Select Columns (từ mục Data).
- Chuyển các đặc trưng bạn muốn sử dụng (ví dụ:
pclass,sex,age_discretized(nếu đã rời rạc hóaage),fare_discretized(nếu đã rời rạc hóafare)) vào danh sách “Features”. Đảm bảosurvivedvẫn là “Target”.
Bước 2: Xây dựng và Huấn luyện Mô hình Phân loại
Chúng ta sẽ thử nghiệm với hai thuật toán phân loại: Cây Quyết định và k-NN.
- Mô hình Cây Quyết định (Tree):
- Từ đầu ra của widget Select Columns, kéo widget Tree (từ mục Model) vào Canvas và nối chúng lại.
- (Không cần nháy đúp vào Tree ở bước này, vì chúng ta sẽ đánh giá nó sau).
- Mô hình k-Nearest Neighbors (kNN):
- Cũng từ đầu ra của Select Columns, kéo widget kNN (từ mục Model) vào Canvas và nối chúng lại.
- Nháy đúp vào widget kNN. Bạn có thể điều chỉnh số lượng hàng xóm (Number of neighbors, k). Thử để giá trị mặc định (ví dụ: 5) hoặc một giá trị khác.
Bước 3: Đánh giá Mô hình bằng Widget “Test & Score”
Widget “Test & Score” là công cụ mạnh mẽ trong Orange để đánh giá và so sánh hiệu suất của các mô hình học máy.
- Kéo widget Test & Score (từ mục Evaluate) vào Canvas.
- Nối Dữ liệu: Nối đầu ra của widget Select Columns (hoặc Impute/Discretize nếu bạn không dùng Select Columns ở bước cuối cùng trước khi vào mô hình) với đầu vào “Data” của widget Test & Score. Đây sẽ là dữ liệu được sử dụng để đánh giá (Orange sẽ tự động thực hiện việc chia training/test hoặc cross-validation).
- Nối các Mô hình:
- Nối đầu ra của widget Tree với đầu vào “Learner” của widget Test & Score.
- Nối đầu ra của widget kNN với đầu vào “Learner” của widget Test & Score. Bạn sẽ thấy cả hai mô hình xuất hiện trong danh sách bên trong widget Test & Score.
- Thiết lập Phương pháp Đánh giá:
- Nháy đúp vào widget Test & Score.
- Trong mục “Sampling”, bạn có thể chọn các phương pháp đánh giá khác nhau:
- Cross-validation: Phương pháp được khuyến nghị. Chọn số “Folds” (ví dụ: 10).
- Random sampling: Chia dữ liệu thành training và test theo một tỷ lệ nhất định.
- Test on train data: Đánh giá trên chính dữ liệu huấn luyện (chỉ dùng để xem hiện tượng overfitting, không phải là cách đánh giá khách quan).
- Test on test data: Nếu bạn đã tự chia dữ liệu thành training/test riêng biệt bằng widget “Data Sampler”.
- Hãy thử với Cross-validation, 10 folds.
- Xem Kết quả Đánh giá:
- Widget Test & Score sẽ hiển thị một bảng với các độ đo hiệu suất cho từng mô hình. Các độ đo phổ biến cho phân loại bao gồm:
- AUC (Area Under ROC Curve): Một độ đo tổng hợp tốt về khả năng phân biệt của mô hình (càng gần 1 càng tốt).
- CA (Classification Accuracy): Độ chính xác.
- F1: F1-score.
- Precision.
- Recall.
- So sánh hiệu suất của mô hình Tree và kNN dựa trên các độ đo này. Mô hình nào hoạt động tốt hơn trên bộ dữ liệu này với các thiết lập hiện tại?
- Widget Test & Score sẽ hiển thị một bảng với các độ đo hiệu suất cho từng mô hình. Các độ đo phổ biến cho phân loại bao gồm:
[ĐỀ XUẤT HÌNH ẢNH: Một workflow hoàn chỉnh trong Orange: File -> Impute -> (Discretize) -> Select Columns -> (Nối song song với) Tree và kNN. Cả Tree và kNN đều nối với Test & Score. Đầu vào Data của Test & Score cũng nối từ Select Columns. Bên cạnh là cửa sổ Test & Score hiển thị bảng kết quả so sánh hiệu suất của Tree và kNN với các độ đo AUC, CA, F1, Precision, Recall.]
Bước 4: Trực quan hóa Cây Quyết định và Xem Ma trận Nhầm lẫn
- Xem Cây Quyết định:
- Kéo widget Tree Viewer (từ mục Visualize) vào Canvas.
- Nối đầu ra của widget Tree với đầu vào của Tree Viewer.
- Nháy đúp vào Tree Viewer để xem cấu trúc cây quyết định mà mô hình đã học được. Quan sát các quy tắc mà cây sử dụng để phân loại.
- Xem Ma trận Nhầm lẫn (Confusion Matrix):
- Trong cửa sổ Test & Score, bạn có thể nháy chuột vào một mô hình trong bảng kết quả (ví dụ: Tree). Sau đó, nhìn xuống phía dưới, bạn sẽ thấy các tùy chọn trực quan hóa, bao gồm Confusion Matrix.
- Nhấn vào Confusion Matrix. Nó sẽ hiển thị ma trận nhầm lẫn cho mô hình đó, cho biết số lượng TP, TN, FP, FN.
- Phân tích ma trận nhầm lẫn: Mô hình thường mắc lỗi ở đâu? (Ví dụ: dự đoán nhầm người sống sót thành không sống sót, hay ngược lại?).
[ĐỀ XUẤT HÌNH ẢNH: Ảnh chụp màn hình của Tree Viewer hiển thị một cây quyết định đơn giản cho bài toán Titanic. Và một ảnh chụp màn hình của Confusion Matrix cho mô hình Tree đó.]
Bước 5: Minh họa Hiện tượng Overfitting (Tùy chọn, nếu có thể)
- Trong widget Tree, thử thay đổi các tham số để tạo ra một cây phức tạp hơn, ví dụ:
- Minimum number of instances in leaves: Giảm giá trị này xuống rất thấp (ví dụ: 1 hoặc 2).
- Do not split subsets smaller than: Giảm giá trị này.
- Limit depth of the tree: Bỏ chọn hoặc tăng giá trị này lên rất cao.
- Quan sát lại hiệu suất trong Test & Score.
- Quan trọng hơn, trong Test & Score, thay đổi phương pháp Sampling thành “Test on train data” và xem kết quả. Sau đó, đổi lại thành “Cross-validation” hoặc “Random sampling (with a separate test set)” và so sánh.
- Nếu mô hình bị overfitting, bạn sẽ thấy hiệu suất trên “Test on train data” rất cao (ví dụ: Accuracy gần 100%), nhưng hiệu suất trên “Cross-validation” hoặc test set thực sự sẽ thấp hơn đáng kể. Đây là dấu hiệu của overfitting.
Thử nghiệm thêm:
- Thay đổi giá trị ‘k’ trong widget kNN và xem hiệu suất thay đổi như thế nào trong Test & Score.
- Thử thêm hoặc bớt các đặc trưng trong widget Select Columns và xem nó ảnh hưởng đến hiệu suất của các mô hình ra sao.
- Khám phá các mô hình phân loại khác trong Orange (ví dụ: Logistic Regression, Naive Bayes, SVM, Random Forest) và so sánh hiệu suất của chúng.
Bài thực hành này giúp bạn có cái nhìn trực quan về quy trình xây dựng, huấn luyện và đánh giá các mô hình học máy cơ bản bằng một công cụ low-code/no-code như Orange, làm nền tảng cho việc hiểu sâu hơn về các ứng dụng AI trong kinh doanh.
6.7 Tóm tắt chương 5
Chương 5 đã cung cấp một cái nhìn nhập môn, tập trung vào trực giác và khái niệm về các nền tảng kỹ thuật quan trọng của Trí tuệ Nhân tạo, bao gồm Học máy (Machine Learning - ML) và Học sâu (Deep Learning - DL), được điều chỉnh để phù hợp với sinh viên kinh tế năm nhất.
Chương bắt đầu bằng việc xây dựng trực giác về cách AI “học” từ dữ liệu, sử dụng ví dụ đơn giản để minh họa quá trình máy tính nhận diện mẫu và đưa ra dự đoán mà không cần lập trình tường minh.
Tiếp theo, chương đi sâu vào Nhập môn Học máy (ML), định nghĩa ML là gì, phác thảo quy trình phát triển một mô hình ML cơ bản từ thu thập dữ liệu đến đánh giá và triển khai, đồng thời nhấn mạnh những hạn chế cố hữu của ML như sự phụ thuộc vào dữ liệu, khó suy luận nhân quả, và vấn đề “hộp đen”. Các loại hình học máy chính đã được giới thiệu: * Học có giám sát (Supervised Learning): Với dữ liệu được gán nhãn, bao gồm bài toán Hồi quy (Regression) (dự đoán giá trị liên tục) và Phân loại (Classification) (dự đoán lớp rời rạc). * Học không giám sát (Unsupervised Learning): Với dữ liệu không gán nhãn, bao gồm bài toán Phân cụm (Clustering) (tự động nhóm các đối tượng tương tự) và Giảm chiều dữ liệu (Dimensionality Reduction) (đơn giản hóa dữ liệu). * Học tăng cường (Reinforcement Learning): Giới thiệu ý tưởng tác tử học thông qua “thử và sai” và “phần thưởng/phạt” trong một môi trường.
Chương cũng đã giới thiệu ý tưởng chính của một số kỹ thuật học máy cơ bản như Hồi quy Tuyến tính, Cây Quyết định, và k-Nearest Neighbors (k-NN), tập trung vào cách chúng hoạt động một cách trực quan. Tầm quan trọng của việc Đánh giá hiệu quả mô hình ML đã được nhấn mạnh, cùng với việc giới thiệu các độ đo cơ bản cho phân loại (Accuracy, Precision, Recall, F1-score từ Ma trận Nhầm lẫn) và hồi quy (MAE, MSE, RMSE, \(R^2\)), khái niệm tập huấn luyện/kiểm tra, hiện tượng Overfitting và Underfitting, và ý tưởng của Kiểm định chéo (Cross-validation).
Phần tiếp theo của chương dành cho việc Giới thiệu về Học sâu (Deep Learning - DL). Khái niệm Mạng Nơ-ron Nhân tạo (ANN) được giải thích một cách trực quan, lấy cảm hứng từ não bộ, cùng với ý tưởng về các lớp (input, hidden, output), nơ-ron, trọng số, hàm kích hoạt và quá trình học thông qua Lan truyền Ngược. Những thách thức đặc thù của Học sâu như yêu cầu dữ liệu lớn, chi phí tính toán cao, và tính “hộp đen” sâu hơn cũng được đề cập. Sự khác biệt chính giữa ML truyền thống và DL, đặc biệt là khả năng tự động học đặc trưng của DL, đã được làm rõ. Chương cũng đã giới thiệu sơ lược về hai kiến trúc mạng nơ-ron phổ biến: CNN (Mạng Nơ-ron Tích chập) cho xử lý hình ảnh và RNN (Mạng Nơ-ron Hồi quy) / LSTM cho xử lý dữ liệu chuỗi.
Cuối cùng, chương đã cung cấp một cái nhìn tổng quan về Xử lý Ngôn ngữ Tự nhiên (Natural Language Processing - NLP), nhấn mạnh tầm quan trọng của dữ liệu văn bản, liệt kê các tác vụ NLP cơ bản (phân loại văn bản, NER, tóm tắt, dịch máy, QA, NLG) và những thách thức cố hữu trong việc máy tính hiểu ngôn ngữ con người.
Phần thực hành với Orange Data Mining đã hướng dẫn sinh viên cách xây dựng và đánh giá các mô hình phân loại đơn giản (Cây Quyết định, k-NN) trên bộ dữ liệu Titanic, giúp củng cố kiến thức lý thuyết bằng trải nghiệm thực tế.
Nhìn chung, Chương 5 đã trang bị cho người học những hiểu biết khái niệm nền tảng về các kỹ thuật cốt lõi đằng sau nhiều ứng dụng AI, tạo tiền đề để các em có thể hiểu sâu hơn về cách AI đang được triển khai và những cân nhắc kỹ thuật cơ bản khi xem xét các giải pháp AI trong kinh doanh.
Tuyệt vời! Chúng ta sẽ tiếp tục với phần Case Study và Bài tập cho Chương 5. Tôi sẽ tập trung vào việc thiết kế các tình huống và câu hỏi giúp sinh viên củng cố kiến thức về các khái niệm Học máy, Học sâu và NLP đã học, đồng thời khuyến khích họ nhận diện và phân tích các bài toán ML trong thực tế.
6.8 Case Study
Các tình huống nghiên cứu dưới đây nhằm mục đích giúp người học nhận diện các loại bài toán Học máy (Học có giám sát, Học không giám sát), hiểu ý tưởng cơ bản của một số thuật toán, và nhận thức được tầm quan trọng của việc đánh giá mô hình cũng như các khái niệm nền tảng của Học sâu và NLP trong các bối cảnh kinh doanh khác nhau.
Case Study 5.1: “E-Shop Trends” – Dự đoán Doanh số Bán hàng cho Sản phẩm Mới
- Bối cảnh: E-Shop Trends là một công ty thương mại điện tử sắp ra mắt một dòng sản phẩm thời trang hoàn toàn mới. Để lập kế hoạch sản xuất và marketing hiệu quả, họ cần dự đoán doanh số bán hàng dự kiến cho dòng sản phẩm này trong 3 tháng đầu tiên.
- Dữ liệu có sẵn (Giả định):
- Dữ liệu lịch sử bán hàng của các dòng sản phẩm thời trang tương tự đã ra mắt trước đó (số lượng bán theo ngày/tuần/tháng).
- Đặc điểm của các sản phẩm đó (loại sản phẩm, giá bán, màu sắc, mùa vụ).
- Dữ liệu về các chiến dịch marketing đã thực hiện cho các sản phẩm đó (chi phí quảng cáo, kênh quảng cáo).
- Dữ liệu về các yếu tố bên ngoài (ví dụ: xu hướng tìm kiếm trên Google cho các từ khóa liên quan, các sự kiện thời trang, hoạt động của đối thủ cạnh tranh – nếu có).
- Bài toán Học máy:
- Đây là một bài toán Học có giám sát (Supervised Learning), cụ thể là Hồi quy (Regression), vì mục tiêu là dự đoán một giá trị liên tục (doanh số bán hàng).
- Ý tưởng Mô hình và Đặc trưng:
- Đặc trưng (Features) có thể sử dụng: Giá sản phẩm, chi phí marketing dự kiến, loại sản phẩm (mã hóa thành số), tháng ra mắt, các chỉ số về xu hướng tìm kiếm, doanh số lịch sử của các sản phẩm tương tự trong giai đoạn đầu.
- Biến mục tiêu (Target): Doanh số bán hàng thực tế trong 3 tháng đầu của các sản phẩm đã ra mắt trước đó.
- Mô hình tiềm năng: Có thể bắt đầu với Hồi quy Tuyến tính (Linear Regression) để xem xét mối quan hệ tuyến tính giữa các đặc trưng và doanh số. Nếu mối quan hệ phức tạp hơn, có thể xem xét các mô hình như Cây Quyết định cho Hồi quy (Decision Tree Regressor) hoặc các thuật toán ensemble như Random Forest Regressor.
- Đánh giá Mô hình:
- Sử dụng các độ đo như MAE (Mean Absolute Error), MSE (Mean Squared Error), hoặc RMSE (Root Mean Squared Error) để đánh giá độ chính xác của dự đoán trên tập kiểm tra. \(R^2\) cũng có thể được sử dụng để xem mức độ mô hình giải thích được sự biến thiên của doanh số.
- Thách thức:
- Tính mới của sản phẩm: Việc dự đoán cho sản phẩm hoàn toàn mới luôn khó khăn hơn vì thiếu dữ liệu lịch sử trực tiếp. Cần dựa nhiều vào sự tương đồng với các sản phẩm khác.
- Yếu tố bất ngờ: Các sự kiện không lường trước (ví dụ: một người nổi tiếng đột nhiên mặc sản phẩm đó) có thể ảnh hưởng lớn đến doanh số.
- Chất lượng dữ liệu đầu vào: Dữ liệu về chi phí marketing hoặc hoạt động của đối thủ có thể không đầy đủ hoặc khó thu thập.
- Câu hỏi thảo luận:
- Tại sao đây được coi là một bài toán Hồi quy chứ không phải Phân loại?
- Nếu E-Shop Trends sử dụng mô hình Hồi quy Tuyến tính, hệ số (coefficient) của đặc trưng “Chi phí Marketing” có ý nghĩa gì trong việc diễn giải mô hình?
- Những hạn chế nào của Học máy (ví dụ: phụ thuộc dữ liệu, khó suy luận nhân quả) có thể ảnh hưởng đến độ tin cậy của dự đoán doanh số trong trường hợp này?
- Làm thế nào E-Shop Trends có thể sử dụng kỹ thuật Kiểm định chéo (Cross-validation) khi xây dựng mô hình dự đoán này, đặc biệt khi dữ liệu lịch sử có thể không quá lớn?
Case Study 5.2: “PharmaSafe” – Phân loại Phản ứng Phụ của Thuốc từ Báo cáo Bệnh nhân
- Bối cảnh: PharmaSafe là một công ty dược phẩm cần theo dõi và phân loại các báo cáo về phản ứng phụ tiềm ẩn của các loại thuốc mới mà họ đưa ra thị trường. Bệnh nhân và bác sĩ có thể gửi các báo cáo này dưới dạng văn bản tự do.
- Dữ liệu có sẵn (Giả định):
- Một tập hợp lớn các báo cáo văn bản mô tả các triệu chứng và phản ứng mà bệnh nhân gặp phải sau khi sử dụng thuốc.
- Mỗi báo cáo đã được các chuyên gia y tế đọc và gán nhãn vào một hoặc nhiều loại phản ứng phụ đã được định nghĩa trước (ví dụ: “Buồn nôn”, “Đau đầu”, “Phát ban da”, “Tim đập nhanh”, “Phản ứng dị ứng nghiêm trọng”).
- Bài toán Học máy:
- Đây là một bài toán Học có giám sát (Supervised Learning), cụ thể là Phân loại Văn bản (Text Classification) (có thể là phân loại đa nhãn - multi-label classification nếu một báo cáo có thể thuộc nhiều loại phản ứng phụ).
- Nền tảng Kỹ thuật NLP và Học máy:
- Tiền xử lý Văn bản (NLP):
- Tokenization (tách từ), loại bỏ stop words (các từ phổ biến không mang nhiều ý nghĩa như “và”, “thì”, “là”), stemming/lemmatization (đưa từ về dạng gốc).
- Chuyển đổi văn bản thành dạng số mà mô hình học máy có thể hiểu được (ví dụ: sử dụng kỹ thuật TF-IDF - Term Frequency-Inverse Document Frequency, hoặc Word Embeddings như Word2Vec, GloVe, hoặc các embedding từ các mô hình Transformer).
- Mô hình Phân loại: Sau khi văn bản được biểu diễn dưới dạng số, có thể sử dụng các thuật toán phân loại như Naive Bayes, Support Vector Machines (SVM), Logistic Regression, hoặc thậm chí là các Mạng Nơ-ron (ví dụ: CNN hoặc RNN/LSTM được thiết kế cho văn bản, hoặc các mô hình dựa trên Transformer như BERT).
- Tiền xử lý Văn bản (NLP):
- Đánh giá Mô hình:
- Sử dụng Ma trận Nhầm lẫn và các độ đo như Precision, Recall, F1-score cho từng loại phản ứng phụ. Accuracy tổng thể có thể không phải là thước đo tốt nhất nếu một số loại phản ứng phụ hiếm gặp hơn các loại khác.
- Thách thức:
- Tính đa dạng và mơ hồ của ngôn ngữ tự nhiên: Bệnh nhân có thể mô tả cùng một triệu chứng theo nhiều cách khác nhau.
- Thuật ngữ y khoa: Cần xử lý các thuật ngữ chuyên ngành.
- Phát hiện các phản ứng phụ hiếm gặp nhưng nghiêm trọng: Mô hình cần có khả năng phát hiện tốt các trường hợp này (Recall cao cho các lớp quan trọng).
- Đảm bảo tính chính xác và độ tin cậy: Việc phân loại sai có thể gây hậu quả nghiêm trọng.
- Câu hỏi thảo luận:
- Tại sao việc tiền xử lý văn bản (ví dụ: tokenization, loại bỏ stop words) lại quan trọng trước khi đưa dữ liệu báo cáo vào mô hình phân loại?
- Trong bối cảnh này, tại sao độ đo Recall có thể quan trọng hơn Precision đối với việc phát hiện các “Phản ứng dị ứng nghiêm trọng”?
- Nếu PharmaSafe sử dụng một mô hình dựa trên Transformer (một dạng Học sâu) để phân loại, những ưu điểm và nhược điểm so với việc sử dụng một mô hình ML truyền thống như Naive Bayes là gì? (Gợi ý: xem xét lượng dữ liệu yêu cầu, khả năng hiểu ngữ cảnh, tính giải thích được).
- Những thách thức nào của NLP (ví dụ: đa nghĩa, ngữ cảnh) có thể ảnh hưởng đến hiệu suất của hệ thống này?
Case Study 5.3: “RetailDetect” – Phát hiện Giao dịch Thẻ Tín dụng Gian lận
- Bối cảnh: RetailDetect là một nhà cung cấp dịch vụ thanh toán trực tuyến. Họ cần xây dựng một hệ thống để phát hiện các giao dịch thẻ tín dụng có khả năng là gian lận trong thời gian thực nhằm bảo vệ người dùng và giảm thiểu tổn thất.
- Dữ liệu có sẵn (Giả định):
- Một tập dữ liệu lớn về các giao dịch thẻ tín dụng lịch sử, mỗi giao dịch có các đặc trưng như: số tiền giao dịch, thời gian giao dịch, địa điểm (IP address, quốc gia của người bán), loại hàng hóa, thông tin về thẻ (đã được ẩn danh hóa), và một nhãn cho biết giao dịch đó là “Hợp lệ” hay “Gian lận”.
- Bài toán Học máy:
- Đây là một bài toán Học có giám sát (Supervised Learning), cụ thể là Phân loại Nhị phân (Binary Classification).
- Ý tưởng Mô hình và Đặc trưng:
- Đặc trưng (Features) tiềm năng: Ngoài các đặc trưng có sẵn, có thể tạo thêm các đặc trưng mới (feature engineering) như: tần suất giao dịch của thẻ trong một khoảng thời gian ngắn, số tiền giao dịch so với mức trung bình của thẻ đó, khoảng cách địa lý giữa giao dịch hiện tại và các giao dịch trước đó.
- Mô hình Phân loại: Do tính chất mất cân bằng của dữ liệu (số giao dịch gian lận thường ít hơn nhiều so với giao dịch hợp lệ), cần lựa chọn thuật toán và kỹ thuật xử lý phù hợp. Các mô hình có thể bao gồm Logistic Regression, Cây Quyết định, Random Forests, Gradient Boosting (ví dụ: XGBoost, LightGBM), Support Vector Machines, hoặc Mạng Nơ-ron.
- Đánh giá Mô hình:
- Trong trường hợp này, chỉ Accuracy là không đủ. Cần chú trọng đến Precision (giảm thiểu việc chặn nhầm giao dịch hợp lệ - False Positives) và đặc biệt là Recall (phát hiện được tối đa các giao dịch gian lận - giảm thiểu False Negatives). F1-score và AUC (Area Under ROC Curve) cũng là những độ đo quan trọng.
- Sử dụng các kỹ thuật xử lý dữ liệu mất cân bằng (ví dụ: oversampling lớp thiểu số, undersampling lớp đa số, hoặc sử dụng các thuật toán nhạy cảm với chi phí sai lầm - cost-sensitive learning).
- Hiện tượng Overfitting/Underfitting:
- Nếu mô hình quá phức tạp và học thuộc lòng các mẫu gian lận cụ thể trong tập huấn luyện mà không tổng quát hóa được cho các hình thức gian lận mới, đó là overfitting.
- Nếu mô hình quá đơn giản và không nắm bắt được các tín hiệu gian lận tinh vi, đó là underfitting.
- Câu hỏi thảo luận:
- Tại sao tập dữ liệu phát hiện gian lận thường bị mất cân bằng (imbalanced)? Điều này ảnh hưởng như thế nào đến việc đánh giá mô hình chỉ bằng độ đo Accuracy?
- Giữa việc một giao dịch hợp lệ bị chặn nhầm (False Positive) và một giao dịch gian lận bị bỏ sót (False Negative), lỗi nào thường gây ra hậu quả nghiêm trọng hơn cho RetailDetect và người dùng? Độ đo nào (Precision hay Recall) cần được ưu tiên hơn trong trường hợp này?
- Nếu mô hình phát hiện gian lận của RetailDetect có Recall rất cao nhưng Precision lại thấp, điều đó có nghĩa là gì và ảnh hưởng như thế nào đến trải nghiệm người dùng?
- Làm thế nào kỹ thuật Kiểm định chéo (Cross-validation) có thể giúp RetailDetect lựa chọn được mô hình và các siêu tham số tốt nhất cho bài toán này, đặc biệt khi dữ liệu gian lận là hiếm?
Case Study 5.4: “MediaMine” – Phân nhóm Người đọc Báo trực tuyến
- Bối cảnh: MediaMine là một trang tin tức trực tuyến lớn với hàng triệu độc giả. Họ muốn hiểu rõ hơn về các nhóm độc giả khác nhau dựa trên hành vi đọc tin của họ để có thể cá nhân hóa nội dung gợi ý và các chiến dịch quảng cáo.
- Dữ liệu có sẵn (Giả định):
- Dữ liệu về hành vi của người dùng trên website: các bài báo đã đọc, thời gian đọc mỗi bài, các chủ đề (categories) của bài báo đó, tần suất truy cập, thời điểm truy cập trong ngày. (Dữ liệu này không có nhãn sẵn về “nhóm độc giả”).
- Bài toán Học máy:
- Đây là một bài toán Học không giám sát (Unsupervised Learning), cụ thể là Phân cụm (Clustering), vì mục tiêu là tự động tìm ra các nhóm (phân khúc) độc giả tự nhiên trong dữ liệu mà không có thông tin trước về các nhóm đó.
- Ý tưởng Mô hình và Đặc trưng:
- Đặc trưng (Features):
- Tần suất đọc các chủ đề khác nhau (ví dụ: tỷ lệ % bài đọc thuộc chủ đề Thể thao, Chính trị, Kinh doanh, Giải trí).
- Thời gian đọc trung bình mỗi bài.
- Số lượng bài đọc trung bình mỗi phiên truy cập.
- Thời điểm truy cập ưa thích (sáng, trưa, tối).
- Thuật toán Phân cụm: Có thể sử dụng K-Means Clustering để nhóm các độc giả vào một số lượng cụm (k) xác định trước. Hoặc sử dụng các thuật toán phân cụm phân cấp (Hierarchical Clustering) để khám phá cấu trúc cụm ở các mức độ khác nhau.
- Đặc trưng (Features):
- Diễn giải Kết quả Cụm:
- Sau khi các cụm được hình thành, cần phân tích đặc điểm của các độc giả trong mỗi cụm để hiểu họ là ai và họ quan tâm đến điều gì. Ví dụ:
- Cụm 1: “Người nghiện tin tức chính trị” - đọc nhiều bài chính trị, thời gian đọc lâu.
- Cụm 2: “Người hâm mộ thể thao” - chủ yếu đọc tin thể thao, thường vào cuối tuần.
- Cụm 3: “Người đọc lướt tin giải trí” - đọc nhiều bài giải trí nhưng thời gian đọc mỗi bài ngắn.
- Sau khi các cụm được hình thành, cần phân tích đặc điểm của các độc giả trong mỗi cụm để hiểu họ là ai và họ quan tâm đến điều gì. Ví dụ:
- Đánh giá (Thường mang tính định tính và dựa trên nghiệp vụ):
- Các cụm có ý nghĩa và dễ diễn giải không?
- Các cụm có đủ khác biệt với nhau không?
- Các cụm có đủ lớn để có thể xây dựng chiến lược riêng không?
- Sử dụng các độ đo nội tại của cụm (ví dụ: Silhouette Score trong Orange) để đánh giá “chất lượng” của việc phân cụm.
- Câu hỏi thảo luận:
- Tại sao bài toán này lại phù hợp với Học không giám sát hơn là Học có giám sát?
- Nếu MediaMine sử dụng thuật toán K-Means, làm thế nào họ có thể quyết định số lượng cụm (k) tối ưu? (Gợi ý: thử các giá trị k khác nhau, sử dụng các độ đo như Silhouette Score, hoặc dựa trên sự dễ diễn giải của các cụm).
- Sau khi đã xác định được các phân khúc độc giả, MediaMine có thể sử dụng thông tin này để làm gì trong việc cải thiện sản phẩm và dịch vụ của họ? (Nêu ít nhất 2 ý tưởng).
- Nếu MediaMine muốn trực quan hóa các cụm độc giả này (giả sử họ đã giảm chiều dữ liệu xuống còn 2 chiều bằng PCA), loại biểu đồ nào sẽ phù hợp và thông tin gì có thể được rút ra từ biểu đồ đó?
Case Study 5.5: “ImageSearch Corp” – Xây dựng Công cụ Tìm kiếm Hình ảnh Nâng cao
- Bối cảnh: ImageSearch Corp muốn phát triển một công cụ tìm kiếm hình ảnh có khả năng hiểu nội dung của hình ảnh và cho phép người dùng tìm kiếm bằng cả từ khóa văn bản lẫn hình ảnh tương tự (image similarity search).
- Nền tảng Kỹ thuật (Học sâu và Thị giác Máy tính):
- Trích xuất Đặc trưng Hình ảnh bằng Mạng Nơ-ron Tích chập (CNN):
- Một mô hình CNN mạnh mẽ (ví dụ: ResNet, VGG, Inception) đã được tiền huấn luyện trên một tập dữ liệu hình ảnh lớn (như ImageNet) sẽ được sử dụng.
- Thay vì sử dụng lớp đầu ra cuối cùng của CNN (dùng để phân loại), người ta sẽ lấy đầu ra của một trong những lớp kết nối đầy đủ (fully connected layer) gần cuối. Vector đầu ra này được coi là một biểu diễn đặc trưng (feature vector) hay “embedding” của hình ảnh, chứa đựng thông tin ngữ nghĩa về nội dung của ảnh dưới dạng số. Những hình ảnh có nội dung tương tự sẽ có vector embedding gần nhau trong không gian đặc trưng.
- Xây dựng Chỉ mục (Indexing) cho Tìm kiếm Nhanh:
- Các vector embedding của hàng triệu hình ảnh trong cơ sở dữ liệu sẽ được lưu trữ và đánh chỉ mục bằng các kỹ thuật tìm kiếm lân cận gần đúng (Approximate Nearest Neighbor - ANN) để có thể tìm kiếm nhanh chóng.
- Tìm kiếm bằng Từ khóa Văn bản:
- Sử dụng một mô hình đa phương thức (multimodal model) có khả năng liên kết giữa văn bản và hình ảnh (ví dụ: CLIP của OpenAI). Mô hình này học cách tạo ra các embedding cho cả văn bản và hình ảnh sao cho embedding của một đoạn văn bản mô tả sẽ gần với embedding của hình ảnh tương ứng.
- Khi người dùng nhập từ khóa, nó sẽ được chuyển thành một vector embedding văn bản. Sau đó, hệ thống sẽ tìm kiếm các hình ảnh có vector embedding gần nhất với vector embedding văn bản đó.
- Tìm kiếm bằng Hình ảnh Tương tự:
- Khi người dùng tải lên một hình ảnh truy vấn, hình ảnh đó sẽ được đưa qua mô hình CNN để trích xuất vector embedding.
- Sau đó, hệ thống sẽ tìm kiếm trong chỉ mục các hình ảnh có vector embedding gần nhất với vector embedding của ảnh truy vấn.
- Trích xuất Đặc trưng Hình ảnh bằng Mạng Nơ-ron Tích chập (CNN):
- Thách thức:
- Khối lượng Dữ liệu Hình ảnh Khổng lồ: Cần xử lý và đánh chỉ mục hàng triệu hoặc hàng tỷ hình ảnh.
- Năng lực Tính toán: Việc trích xuất đặc trưng bằng CNN và tìm kiếm lân cận ở quy mô lớn đòi hỏi năng lực tính toán đáng kể.
- Chất lượng của Embedding: Hiệu quả của tìm kiếm phụ thuộc rất nhiều vào chất lượng của các vector embedding hình ảnh và văn bản.
- Hiểu được các Khái niệm Trừu tượng và Ngữ cảnh Tinh vi trong Hình ảnh: Đôi khi người dùng muốn tìm kiếm dựa trên các khái niệm trừu tượng hoặc cảm xúc mà các mô hình hiện tại có thể chưa hiểu hết.
- Câu hỏi thảo luận:
- Tại sao việc sử dụng đầu ra của một lớp gần cuối của CNN (thay vì lớp phân loại cuối cùng) lại phù hợp hơn cho việc tạo “embedding” hình ảnh phục vụ tìm kiếm tương tự?
- Giải thích sự khác biệt chính giữa Học máy truyền thống và Học sâu trong bối cảnh trích xuất đặc trưng từ hình ảnh. Tại sao Học sâu lại vượt trội hơn trong tác vụ này?
- Nếu ImageSearch Corp muốn cho phép người dùng tìm kiếm hình ảnh dựa trên một bản phác thảo tay (sketch-based image retrieval), những thách thức kỹ thuật nào họ có thể gặp phải?
- Những thách thức đặc thù nào của Học sâu (ví dụ: yêu cầu dữ liệu lớn, chi phí tính toán, “hộp đen”) có thể ảnh hưởng đến việc phát triển và vận hành công cụ tìm kiếm hình ảnh của ImageSearch Corp?
6.9 Bài tập - Chương 5
(Lưu ý: Các bài tập dưới đây bao gồm cả lý thuyết, tư duy phản biện, và các bài tập thực hành với Orange Data Mining để củng cố kiến thức về các khái niệm nền tảng của Học máy, Học sâu và NLP.)
Phần I: Câu hỏi Lý thuyết và Hiểu biết
- Theo định nghĩa của Tom M. Mitchell, ba thành phần chính của một bài toán Học máy là gì?
- Nêu ba hạn chế cố hữu của phương pháp Học máy.
- Phân biệt rõ ràng giữa Học có giám sát (Supervised Learning) và Học không giám sát (Unsupervised Learning) dựa trên loại dữ liệu đầu vào và mục tiêu.
- Bài toán dự đoán giá cổ phiếu vào ngày mai là loại bài toán Học máy nào (Hồi quy hay Phân loại)? Tại sao?
- Bài toán tự động nhóm các khách hàng có hành vi mua sắm tương tự vào các phân khúc khác nhau là loại bài toán Học máy nào?
- Mục tiêu chính của thuật toán Hồi quy Tuyến tính là gì?
- Trong thuật toán Cây Quyết định, mỗi nút trong cây đại diện cho điều gì và mỗi nút lá đại diện cho điều gì?
- Thuật toán k-Nearest Neighbors (k-NN) gán nhãn cho một điểm dữ liệu mới dựa trên nguyên tắc nào?
- Tại sao chúng ta cần chia dữ liệu thành tập huấn luyện (training set) và tập kiểm tra (test set) khi đánh giá mô hình ML?
- Hiện tượng Overfitting xảy ra khi nào và biểu hiện của nó là gì?
- Kỹ thuật Kiểm định chéo K-lần gấp (K-Fold Cross-validation) giúp giải quyết vấn đề gì trong đánh giá mô hình?
- “Độ sâu” (deep) trong Học sâu (Deep Learning) đề cập đến điều gì trong kiến trúc Mạng Nơ-ron Nhân tạo?
- Nêu hai khác biệt chính giữa Học máy truyền thống và Học sâu.
- Mạng Nơ-ron Tích chập (CNN) thường được sử dụng hiệu quả nhất cho loại dữ liệu nào? Cho ví dụ ứng dụng.
- Xử lý Ngôn ngữ Tự nhiên (NLP) là gì? Nêu hai thách thức chính trong việc máy tính hiểu ngôn ngữ con người.
Phần II: Bài tập Tư duy Phản biện và Phân tích
- Lựa chọn Loại hình Học máy:
- Một công ty muốn xây dựng hệ thống tự động phân loại các email hỗ trợ khách hàng thành các loại yêu cầu khác nhau (ví dụ: “Hỏi về sản phẩm”, “Khiếu nại”, “Yêu cầu hoàn tiền”). Đây là loại bài toán Học máy nào? Tại sao?
- Một nhà nghiên cứu thị trường muốn tìm ra các nhóm người tiêu dùng tiềm ẩn trong một tập dữ liệu lớn về sở thích và hành vi mua sắm mà không có thông tin trước về các nhóm đó. Đây là loại bài toán Học máy nào? Tại sao?
- Diễn giải Mô hình Cây Quyết định: Giả sử bạn có một mô hình Cây Quyết định đơn giản để dự đoán liệu một khách hàng có mua sản phẩm hay không. Một nhánh của cây có quy tắc: “NẾU (Tuổi < 30) VÀ (Thu nhập > 50 triệu/năm) THÌ (Dự đoán = Mua)”. Quy tắc này có ý nghĩa gì? Ưu điểm của việc mô hình có thể được diễn giải thành các quy tắc như vậy là gì?
- Đánh giá Mô hình Phân loại Spam: Một mô hình phân loại email spam có các kết quả sau trên tập kiểm tra:
- Tổng số email: 1000
- Số email spam thực tế: 100
- Số email không spam thực tế: 900
- Mô hình dự đoán đúng 80 email spam (TP = 80).
- Mô hình dự đoán nhầm 10 email không spam thành spam (FP = 10).
- Tính số email spam bị bỏ sót (FN) và số email không spam được dự đoán đúng (TN).
- Tính Accuracy, Precision, Recall, và F1-score cho lớp “Spam”.
- Dựa trên kết quả, bạn đánh giá mô hình này như thế nào? Precision hay Recall quan trọng hơn trong bài toán này?
- Overfitting trong Thực tế: Hãy tưởng tượng một sinh viên “học vẹt” toàn bộ các câu hỏi và đáp án trong một bộ đề ôn thi mà không hiểu bản chất. Khi vào phòng thi gặp một câu hỏi hơi khác dạng (nhưng cùng kiến thức), sinh viên đó không làm được. Tình huống này tương tự như hiện tượng nào trong Học máy? Giải thích.
- Sự cần thiết của Dữ liệu Lớn cho Học sâu: Tại sao các mô hình Học sâu thường yêu cầu lượng dữ liệu huấn luyện lớn hơn nhiều so với các mô hình Học máy truyền thống để đạt được hiệu suất tốt?
- NLP và Ngôn ngữ “Teen code”: Các mô hình NLP hiện tại (kể cả LLMs) có thể gặp những khó khăn gì khi xử lý các đoạn chat sử dụng nhiều tiếng lóng, từ viết tắt, hoặc “teen code” của giới trẻ? Làm thế nào để cải thiện khả năng hiểu của chúng?
- Học tăng cường trong Đời sống: Hãy nghĩ về một tình huống trong cuộc sống hàng ngày mà bạn học hỏi thông qua cơ chế tương tự như Học tăng cường (thử nghiệm, nhận phản hồi tích cực/tiêu cực, và điều chỉnh hành vi). Mô tả tình huống đó và xác định các yếu tố tương ứng (tác tử, môi trường, hành động, phần thưởng).
Phần III: Bài tập Thực hành với Orange Data Mining (Tiếp nối hoặc Mở rộng từ Chương 5)
Yêu cầu: Sử dụng Orange Data Mining để thực hiện các bài tập sau. Chụp ảnh màn hình workflow và kết quả của các widget quan trọng để minh họa.
- So sánh các Mô hình Phân loại:
- Sử dụng lại bộ dữ liệu “Titanic” và workflow đã xây dựng ở phần thực hành 5.5.
- Thêm ít nhất hai thuật toán phân loại khác vào widget Test & Score (ví dụ: Naive Bayes, Logistic Regression, SVM (Support Vector Machine), Random Forest – nếu máy tính của bạn đủ mạnh cho Random Forest).
- So sánh hiệu suất của tất cả các mô hình (bao gồm Tree và kNN từ trước) dựa trên các độ đo AUC, CA, F1. Mô hình nào cho kết quả tốt nhất trên bộ dữ liệu này?
- Chọn mô hình tốt nhất, xem Ma trận Nhầm lẫn của nó. Mô hình này có xu hướng mắc loại lỗi nào nhiều hơn (FP hay FN cho việc dự đoán “sống sót”)?
- Trực quan hóa Ranh giới Quyết định (Nếu có thể với phiên bản Orange và widget phù hợp):
- Một số phiên bản Orange hoặc add-on có thể có widget cho phép trực quan hóa ranh giới quyết định của các mô hình phân loại trên dữ liệu 2D (ví dụ: “Polynomial Classification” hoặc thông qua Python Script).
- Nếu có thể, hãy thử chọn 2 đặc trưng số từ bộ Titanic (ví dụ:
agevàfaresau khi đã xử lý giá trị thiếu), và trực quan hóa ranh giới quyết định của mô hình Cây Quyết định và kNN (hoặc SVM) cho bài toán dự đoánsurvived. Quan sát xem các mô hình chia không gian đặc trưng như thế nào. - (Nếu không có widget trực tiếp, bài tập này có thể bỏ qua hoặc thay thế bằng việc thảo luận lý thuyết về hình dạng ranh giới quyết định của các thuật toán đó).
- Ảnh hưởng của Siêu tham số (Hyperparameter Tuning - Ý tưởng cơ bản):
- Quay lại với mô hình kNN cho bộ dữ liệu Titanic.
- Trong widget Test & Score, thử nghiệm với các giá trị khác nhau cho “Number of neighbors (k)” trong thiết lập của mô hình kNN (ví dụ: k=1, k=3, k=5, k=10, k=20).
- Ghi lại độ đo CA (Classification Accuracy) hoặc AUC cho mỗi giá trị k.
- Giá trị k nào cho kết quả tốt nhất? Điều này cho thấy tầm quan trọng của việc lựa chọn siêu tham số như thế nào?
- (Nâng cao hơn, nếu muốn thử: Orange có widget “Rank” hoặc các cách để lặp qua nhiều giá trị siêu tham số, nhưng việc thử thủ công vài giá trị cũng đủ để hiểu ý tưởng).
Gợi ý: Hãy nhớ rằng mục tiêu của các bài thực hành Orange trong chương này là để xây dựng trực giác về cách các mô hình hoạt động và được đánh giá, không phải để đạt được hiệu suất dự đoán cao nhất có thể.