CHƯƠNG I: GIỚI THIỆU VỀ HỌC MÁY - MACHINE LEARNING I.Giới thiệu về học máy.Định nghĩa Trong hai thập kỷ qua, Học máy đã trở thành một trong những trụ cột của công nghệ thông tin và cùng với đó, một công cụ khá trung tâm, mặc dù thường là ẩn, một phần cuộc sống của chúng ta. Với số lượng ngày càng tăng của dữ liệu trở nên có sẵn lý do chính đáng để tin rằng phân tích dữ liệu thông minh sẽ trở thànhthậm chí còn phổ biến hơn như một thành phần cần thiết cho tiến bộ công nghệ. Mục đích của chương này là cung cấp cho người đọc một cái nhìn tổng quan về phạm vi rộng lớn của các ứng dụng có trung tâm là máy học vấn đề và để mang lại một số mức độ trật tự cho các vấn đề. Sau đó, chúng ta sẽ thảo luận về một số công cụ cơ bản từ thống kê và lý thuyết xác suất, vì chúng tạo thành ngôn ngữ mà trong đó nhiều vấn đề học máy phải được diễn đạt để trở nên dễ giải quyết.
Cuối cùng, chúng tôi sẽ phác thảo một tập hợp các thuật toán khá cơ bản nhưng hiệu quả để giải quyết một vấn đề quan trọng, cụ thể là phân loại. Các công cụ phức tạp hơn, một cuộc thảo luận về tổng quát hơn các vấn đề và phân tích chi tiết sẽ tiếp theo trong các phần sau của cuốn sách. Học máy (machine learning) là khả năng của chương trình máy tính sử dụng kinh nghiệm, quan sát, hoặc dữ liệu trong quá khứ để cải thiện công việc của mình trong tương lai thay vì chỉ thực hiện theo đúng các quy tắc đã được lập trình sẵn. Chẳng hạn, máy tính có thể học cách dự đoán dựa trên các ví dụ, hay học cách tạo ra các hành vi phù hợp dựa trên quan sát trong quá khứ.
Học máy có thể xuất hiện dưới nhiều hình thức. Bây giờ chúng ta thảo luận về một số ứng dụng, các loại dữ liệu mà chúng xử lý và cuối cùng, chúng tôi chính thức hóa vấn đề theo kiểu cách điệu hơn một chút. Điều sau là chìa khóa nếu chúng ta muốn tránh phát minh lại bánh xe cho mọi ứng dụng mới. Thay vào đó, phần lớn nghệ thuật của máy học là giảm thiểu một loạt các vấn đề khá khác nhau để một tập hợp các nguyên 1 mẫu khá hẹp.
Phần lớn khoa học của máy học là sau đó để giải quyết những vấn đề đó và cung cấp các đảm bảo tốt cho các giải pháp. Xét một số ví dụ sau. Ví dụ thứ nhất là học cách đánh cờ. Chương trình có thể quan sát các ván cờ cùng với kết quả (thắng hay thua) để cải thiện khả năng chơi cờ và tăng số ván thắng trong tương lai.
Trong trường hợp này, kinh nghiệm là các ván cờ trong quá khứ (có thể là ván cờ chương trình tự chơi với chính mình), được sử dụng để học cách làm tốt hơn công việc chơi cờ với tiêu chí đánh giá là số ván thắng. Ví dụ thứ hai là học nhận dạng các ký tự. Chương trình được cung cấp dữ liệu dưới dạng ảnh chụp các ký tự (chữ cái) cùng mã UNICODE của ký tự đó. Sau khi học, chương trình cần có khả năng nhận dạng các ảnh chụp ký tự mới, tức là xác định được mã UNICODE của các ảnh mới chụp ký tự đã được học.
Tương tự quá trình học thông thường, một hệ thống học máy cần có khả năng ghi nhớ, thích nghi, và đặc biệt là tổng quát hóa. Tổng quát hóa là khả năng của hệ thống học máy ra quyết định chính xác trong các trường hợp mới, chưa gặp, dựa trên kinh nghiệm học được từ dữ liệu hoặc các quan sát trước đó.Lý do cần tới học máy Học máy là một nhánh nghiên cứu rất quan trọng của trí tuệ nhân tạo với khá nhiều ứng dụng thành công trong thực tế. Hiện nay, học máy là một trong những lĩnh vực phát triển mạnh nhất của trí tuệ nhân tạo. Có một số lý do giải thích cho sự cần thiết và phát triển của học máy: • Thứ nhất, rất khó xây dựng hệ thống thông minh có thể thực hiện các công việc liên quan đến trí tuệ như thị giác máy, xử lý ngôn ngữ tự nhiên mà không sử dụng tới kinh nghiệm và quá trình học.
Thông thường, khi viết chương trình, cần có thuật toán rõ ràng để chuyển đổi đầu vào thành đầu ra. Tuy nhiên, trong nhiều bài toán, rất khó để xây dựng được thuật toán như vậy. Như trong ví dụ về nhận dạng chữ ở trên, người 2 bình thường có khả năng nhận dạng các chữ rất tốt nhưng rất khó để giải thích vì sao từ đầu vào là ảnh lại kết luận được đây là ký tự cụ thể nào. Học máy cho phép tìm ra giải pháp cho những trường hợp như vậy dựa trên dữ liệu, chẳng hạn bằng cách tìm ra điểm chung và riêng giữa rất nhiều ảnh chụp các ký tự.
• Thứ hai, nhiều ứng dụng đòi hỏi chương trình máy tính phải có khả năng thích nghi. Ví dụ, hành vi mua sắm của khách hàng có thể thay đổi theo thời điểm cụ thể trong ngày, trong năm, hoặc theo tuổi tác. Việc xây dựng thuật toán cố định cho những ứng dụng cần thích nghi và thay đổi là không phù hợp. Học máy mang lại khả năng thích nghi nhờ phân tích dữ liệu thu thập được.
• Thứ ba, việc tìm được chuyên gia và thu thập được tri thức cần thiết cho việc thiết kế thuật toán để giải quyết các vấn đề tương đối khó, trong khi dữ liệu ngày càng nhiều và có thể thu thập dễ dàng hơn. Khả năng lưu trữ và tính toán của máy tính cũng ngày càng tăng, cho phép thực hiện thuật toán học máy trên dữ liệu có kích thước lớn. • Cuối cùng, bản thân khả năng học là một hoạt động trí tuệ quan trọng của con người, do vậy học tự động hay học máy luôn thu hút được sự quan tâm khi xây dựng hệ thống thông minh.Các loại thuật toán Các thuật toán học máy được phân loại theo kết quả mong muốn của thuật toán. Các loại thuật toán thường dùng bao gồm: 1.
Học có giám sát Trong đó, thuật toán tạo ra một hàm ánh xạ dữ liệu vào tới kết quả mong muốn. Một phát biểu chuẩn về một việc học có giám sát là bài toán phân loại: chương trình cần học (cách xấp xỉ biểu hiện của) một hàm ánh xạ một vector [X1, X2, X3,. Xn ] tới một vài lớp bằng cách xem xét một số mẫu dữ liệu - kết quả của hàm đó. 3 Học có giám sát là một hướng tiếp cận của Máy học để làm cho máy tính có khả năng "học".
Trong hướng tiếp cận này, người ta "huấn luyện" máy tính dựa trên những quan sát có dán nhãn. Ta có thể hình dung những quan sát này như là những câu hỏi, và nhãn của chúng là những câu trả lời. Ý tưởng của học có giám sát là: bằng việc ghi nhớ và tổng quát hóa một số quy tắc từ một tập câu hỏi có đáp án trước, máy tính sẽ có thể trả lời được những câu hỏi dù chưa từng gặp phải, nhưng có mối liên quan. Ví dụ ta dạy máy tính "1 + 1 = 2" và hy vọng nó sẽ học được phép tính cộng, x + 1 và trả lời được là "2 + 1 = 3".
Học có giám sát mô phỏng việc con người học bằng cách đưa ra dự đoán của mình cho một câu hỏi, sau đó đối chiếu với đáp án. Sau đó con người rút ra phương pháp để trả lời đúng không chỉ câu hỏi đó, mà cho những câu hỏi có dạng tương tự. Trong học có giám sát, các quan sát bắt buộc phải được dán nhãn trước. Đây chính là một trong những nhược điểm của phương pháp này, bởi vì không phải lúc nào việc dán nhãn chính xác cho quan sát cũng dễ dàng.
Ví dụ như trong dịch thuật, từ một câu của ngôn ngữ gốc có thể dịch thành rất nhiều phiên bản khác nhau trong ngôn ngữ cần dịch sang. Tuy nhiên, việc quan sát được dán nhãn cũng lại chính là ưu điểm của học có giám sát bởi vì một khi đã thu thập được một bộ dữ liệu lớn được dán nhãn chuẩn xác, thì việc huấn luyện trở nên dễ dàng hơn rất nhiều so với khi dữ liệu không được dán nhãn. Ví dụ: Trong nhận dạng chữ viết tay, ta có ảnh của hàng nghìn ví dụ của mỗi chữ số được viết bởi nhiều người khác nhau. Chúng ta đưa các bức ảnh này vào trong một thuật toán và chỉ cho nó biết mỗi bức ảnh tương ứng với chữ số nào.
Sau khi thuật toán tạo ra một mô hình, tức một hàm số mà đầu vào là một bức ảnh và đầu ra là một chữ số, khi nhận được một bức ảnh mới mà mô hình chưa nhìn thấy bao giờ, nó sẽ dự đoán bức ảnh đó chứa chữ số nào. 4 Hình 1 Ví dụ này khá giống với cách học của con người khi còn nhỏ. Ta đưa bảng chữ cái cho một đứa trẻ và chỉ cho chúng đây là chữ A, đây là chữ B. Sau một vài lần được dạy thì trẻ có thể nhận biết được đâu là chữ A, đâu là chữ B trong một cuốn sách mà chúng chưa nhìn thấy bao giờ.
Phân loại(Classification) Khi đầu ra mong muốn của chúng ta là một tập hữu hạn và rời rạc. Khi đó bài toán của chúng ta được gọi là bài toán phân loại. VD2 phía trên có thể xếp vào bài toán phân loại; Các đầu ra mong muốn của chúng ta là: tích cực, tiêu cực và trung tính; Khi đó, tập dữ liệu huấn luyện có thể giống thế này: Bảng 1 Text Label “Món này ngon phết, giá cả sinh viên nhưng Tích cực phải chờ khá lâu vì đông khách.” “Chờ lâu quá thể đáng. Hồi quy(Regression) Khi đầu ra mong muốn là một dải giá trị liên tục.
Chẳng hạn như giá trị xác suất, khi đó bài toán sẽ thuộc loại hồi quy. VD3 phía trên là một bài toán dự đoán điểm tin cậy trong [0; 1]; Nó thể hiện xác suất một người sẽ trả các khoản vay của mình. Khi đó, dữ liệu sẽ giống như sau: Bảng 2 Nghề nghiệp Thu nhập Tuổi Điểm tin cậy Lập trình viên > 1000$ 25 0.3 … … … … Học có giám sát là thuật toán phổ biến nhất trong các thuật toán machine learning. Hạn chế khi sử dụng thuật toán này là chúng ta cần cung cấp dữ liệu có gán nhãn.
Trong nhiều trường hợp, để có được dữ liệu gán nhãn này rất tốn rất nhiều chi phí. Chẳng hạn trong VD2, nếu ta cần 10.