CHƯƠNG II: PHÁT HIỆN URL ĐỘC HẠI DỰA TRÊN HỌC SÂU
2.1. Khái quát về học máy và học sâu
2.1.1 Khái quát về học máy
2.1.1.1 Khái niệm học máy
Định nghĩa về học máy: Arthur Samuel, một người Mỹ đi tiên phong trong lĩnh vực trò chơi máy tính và trí tuệ nhân tạo, đã đặt ra thuật ngữ “Machine Learning”
vào năm 1959 khi còn ở IBM. Ông định nghĩa học máy là “lĩnh vực nghiên cứu cung cấp cho máy tính khả năng học hỏi mà không cần lập trình rõ ràng”. Tuy nhiên, trên thực tế không có định nghĩa được chấp nhận rộng rãi cho học máy. Các tác giả khác nhau định nghĩa thuật ngữ khác nhau.
Học máy là lập trình máy tính để tối ưu hóa tiêu chí hiệu suất bằng cách sử dụng dữ liệu mẫu hoặc kinh nghiệm trong quá khứ. Chúng ta có một mô hình được xác định tối đa một số tham số và việc học là thực thi chương trình máy tính để tối ưu hóa các tham số của mô hình bằng cách sử dụng dữ liệu đào tạo hoặc kinh nghiệm trong quá khứ. Mô hình có thể đưa ra dự đoán trong tương lai hoặc mô tả để kiến thức thu thập được từ dữ liệu.
Lĩnh vực nghiên cứu được gọi là học máy liên quan đến câu hỏi làm thế nào để xây dựng các chương trình máy tính tự động cải thiện theo kinh nghiệm. Học máy là một lĩnh vực con của trí tuệ nhân tạo (Artificial Intelligence - AI). Mục tiêu của học máy nói chung là hiểu cấu trúc của dữ liệu và điều chỉnh dữ liệu đó thành các mô hình mà con người có thể hiểu và sử dụng được.
Mặc dù học máy là một lĩnh vực trong khoa học máy tính, nhưng nó khác với các phương pháp tính toán truyền thống. Trong tính toán truyền thống, thuật toán là tập hợp các hướng dẫn được lập trình rõ ràng được máy tính sử dụng để tính toán hoặc giải quyết vấn đề. Thay vào đó, các thuật toán học máy cho phép máy tính đào tạo dữ liệu đầu vào và sử dụng phân tích thống kê để đưa ra các giá trị nằm trong một
phạm vi cụ thể. Do đó, học máy tạo điều kiện cho máy tính xây dựng mô hình từ dữ liệu mẫu để tự động hóa quy trình ra quyết định dựa trên dữ liệu đầu vào.
2.1.1.2 Phân loại học máy
Việc triển khai học máy được phân thành bốn loại chính, tùy thuộc vào bản chất của “tín hiệu” học tập hoặc “phản hồi” có sẵn cho một hệ thống học tập như sau:
Học máy có giám sát (Supervised learning): Học có giám sát là nhiệm vụ học một chức năng ánh xạ đầu vào thành đầu ra dựa trên các cặp đầu vào-đầu ra mẫu. Dữ liệu đã cho được dán nhãn. Cả hai bài toán phân loại và hồi quy đều là bài toán học có giám sát.
Ví dụ: Hãy xem xét các dữ liệu sau đây liên quan đến bệnh nhân vào phòng khám. Dữ liệu bao gồm giới tính và độ tuổi của bệnh nhân và mỗi bệnh nhân được dán nhãn là “khỏe mạnh” hoặc “ốm yếu”.
Bảng 2-1 Dữ liệu về bệnh nhân
Giới tính Tuổi Nhãn
M 48 sick
M 47 sick
F 18 healthy
M 23 sick
F 32 healthy
M 55 healthy
M 69 healthy
Học không có giám sát (Unsupervised learning): Học không giám sát là một phương pháp học máy, nơi bạn chỉ có dữ liệu đầu vào (X) và không có giá trị đầu ra tương ứng. Mục tiêu của việc học không giám sát là để mô hình hóa cấu trúc nền tảng
hoặc sự phân bố trong dữ liệu để hiểu rõ hơn về nó. Đây được gọi là học tập không giám sát vì không giống như việc học có giám sát ở trên, không có câu trả lời đúng và không có vị “giáo viên” nào cả. Các thuật toán được tạo ra chỉ để khám phá và thể hiện các cấu trúc hữu ích bên trong dữ liệu.
Các vấn đề học tập không giám sát có thể được phân ra thành hai việc: chia nhóm và kết hợp như sau:
Chia nhóm: Vấn đề về chia nhóm là nơi bạn muốn khám phá các nhóm vốn có bên trong dữ liệu, chẳng hạn như chia tập khách hàng theo hành vi tiêu dùng.
Kết hợp: Vấn đề về học tập quy tắc kết hợp là nơi bạn muốn khám phá các quy tắc mô tả dữ liệu của bạn, chẳng hạn như những người mua A cũng có khuynh hướng mua B.
Ví dụ: Hãy xem xét dữ liệu sau đây liên quan đến bệnh nhân vào phòng khám.
Dữ liệu bao gồm giới tính và tuổi của bệnh nhân.
Bảng 2-2 Bảng dữ liệu về giới tính, tuổi của bệnh nhân
Giới tính Tuổi
M 48
M 67
F 66
M 88
F 21
M 18
Học không có giám sát là một loại học tập giống như các phương pháp con người sử dụng để tìm ra rằng các đối tượng hoặc sự kiện nhất định thuộc cùng một lớp, chẳng hạn như bằng cách quan sát mức độ giống nhau giữa các đối tượng. Một
số hệ thống đề xuất mà bạn tìm thấy trên web dưới dạng tự động hóa tiếp thị dựa trên loại hình học tập này.
Học bán giám sát (Semi-Supervided Learning): Học bán giám sát là một cách tiếp cận học máy kết hợp dữ liệu nhỏ được gắn nhãn với một lượng lớn dữ liệu không được gắn nhãn trong quá trình đào tạo. Học bán giám sát nằm giữa học không giám sát và học có giám sát. .
Một ví dụ điển hình của nhóm này là chỉ có một phần ảnh hoặc văn bản được gán nhãn (ví dụ bức ảnh về người, động vật hoặc các văn bản khoa học, chính trị) và phần lớn các bức ảnh/văn bản khác chưa được gán nhãn được thu thập từ internet.
Thực tế cho thấy rất nhiều các bài toán Machine Learning thuộc vào nhóm này vì việc thu thập dữ liệu có nhãn tốn rất nhiều thời gian và có chi phí cao. Rất nhiều loại dữ liệu thậm chí cần phải có chuyên gia mới gán nhãn được (ảnh y học chẳng hạn).
Ngược lại, dữ liệu chưa có nhãn có thể được thu thập với chi phí thấp từ internet.
Học máy tăng cường (Reinforcement Learning): Reinforcement learning là hệ thống học tập tự động xác định hành vi dựa trên hoàn cảnh để tối đa hóa hiệu suất hoặc lợi ích cao nhất (maximizing the performance). Hiện tại, Reinforcement learning chủ yếu được áp dụng vào Lý Thuyết Trò Chơi (Game Theory), các thuật toán cần xác định nước đi tiếp theo để đạt được điểm số cao nhất hoặc lợi ích cao nhất.
Reinforcement Learning đã được áp dụng rộng rãi trong lý thuyết trò chơi, như trong các trò chơi máy tính như cờ vua, cờ caro, AlphaGo, và cả trò chơi video như Atari.
Trong các trường hợp này, hệ thống RL phải tìm ra nước đi tiếp theo để đạt được điểm số cao nhất hoặc đánh bại đối thủ
Ví dụ: Trong trò chơi Pong, mục tiêu của hệ thống RL là học cách điều khiển thanh di chuyển lên và xuống để đánh bóng và đạt được điểm số cao nhất. Hệ thống RL sẽ nhận dữ liệu đầu vào từ màn hình trò chơi và thông tin về vị trí và tốc độ của thanh và quả bóng. Hệ thống RL sẽ đưa ra quyết định về việc di chuyển thanh lên, xuống hoặc không di chuyển dựa trên trạng thái hiện tại của trò chơi. Sau đó, hệ thống RL sẽ nhận phản hồi từ môi trường trò chơi về kết quả của hành động, ví dụ như số
điểm đạt được hoặc việc mất điểm. Quá trình huấn luyện RL trong trò chơi sẽ diễn ra qua nhiều vòng lặp. Ban đầu, hệ thống RL sẽ thực hiện các hành động ngẫu nhiên.
Khi hành động dẫn đến kết quả tốt hơn, hệ thống sẽ cập nhật chiến lược của mình dựa trên phần thưởng (reward) nhận được. Dần dần, hệ thống sẽ học cách tối ưu hóa chiến lược chơi và đạt được kết quả tốt hơn. Quá trình huấn luyện RL trong trò chơi có thể sử dụng các thuật toán như Q-Learning hoặc Deep Q-Network (DQN). Các thuật toán này sẽ điều chỉnh giá trị Q (giá trị ước tính) của các cặp trạng thái-hành động trong quá trình học, để tìm ra chiến lược tối ưu.