Chương 1 Học Sâu Và Bài Toán Phân Loại Ảnh 1.1 Tổng quan về học máy Nói khái quát, học máy (machine learning) có thể được hiểu là lĩnh vực nghiên cứu về những thuật toán, tự động cải thiện hiệu suất của một tác vụ nào đó (task) thông qua việc sử dụng tiên nghiệm (prior) và dữ liệu (data). Việc cải thiện hiệu suất này thông thường được gọi là huấn huyện mô hình (model training). Các thuật toán học máy xây dựng mô hình dựa trên cấu trúc ban đầu của mô hình (model architecture) và điều chỉnh các tham số của mô hình dựa trên các dữ liệu mẫu (sample data), hay còn được gọi là dữ liệu luyện (training data). Học máy là sự giao thoa của rất nhiều lĩnh vực khác nhau.
Một lĩnh vực con của học máy là học thống kê (statistical learning) liên quan mật thiết đến thống kê tính toán (computational statistics), tức là tập trung vào việc đưa ra quyết định sử dụng máy tính. Tuy nhiên, không phải tất các thuật toán học máy đều dựa trên thống kê. Bên cạnh đó, các phương pháp tối ưu toán học (mathematical optimization) cũng là xương sống của học máy nói chung, bởi chúng cung cấp những lý thuyết, phương pháp và các công cụ, sử dụng trong việc tối ưu tham số trong mô hình học máy. Ngoài ra, khai phá dữ liệu (data mining) cũng có thể là một lĩnh vực gắn liền với học máy, khi mà nó tâp trung vào việc khai phá phân tích dữ liệu lớn và hỗn tạp, cuối cùng trả về những tập dữ liệu con hữu ích và có giá trị.2 Quá trình phát triển của học máy Mặc dù mới được quan tâm nhiều trong một vài thập kỷ gần đây, tuy nhiên những nền móng của học máy đã xuất hiện từ rất sớm.
Năm 1763, hai năm sau khi nhà toán học Thomas Bayes qua đời, công trình của ông mang tên "An Essay towards solving a Problem in the Doctrine of Chances" [20] được chỉnh sửa và công bố bởi người bạn 1 Hình 1.1: Học máy - lĩnh vực quan trọng trong ngành khoa học máy tính. Nguồn https://bit. của ông là Richard Price. Đây là cột mốc quan trọng, đánh dấu sự ra đời của định lý Bayes, xương sống của lý thuyết xác suất nói chung và ngành học máy nói riêng.
Năm 1805, Adrien-Marie Legendre xuất bản công trình "Méthode des moindres carrés" [21], hay còn được biết đến với tên gọi là Phương Pháp Bình Phương Tối Thiểu. Đây là một trong những phương pháp cơ bản của học máy, sử dụng để khớp một mô hình với một tập dữ liệu cho trước. Năm 1913, Andrey Markov mô tả một kỹ thuật mà ông sử dụng để phân tích những bài thơ. Về sau, nó trở nên biết được rộng rãi với tên gọi Xích Markov (Markov chain).
Đây là nền móng của bộ môn Quá trình ngẫu nhiên (Random process), được áp dụng rộng rãi trong học máy, đặc biệt trong lĩnh vực học tăng cường (Reinforcement learning). Năm 1950, nhà khoa học máy tính Alan Turing đưa ra một thuật ngữ nổi tiếng - Phép Thử Turing (the Turing test). Phép thử này có thể được miêu tả đơn giản như sau: để một trí tuệ nhân tạo vượt qua được phép thử này, nó phải đủ thông mind để thuyết phục con người rằng nó thực chất không phải là một trí tuệ nhân tạo. Định nghĩa này có thể coi như là một ranh giới tối thượng mà một trí thông minh nhân tạo có thể đạt đến, đó là tiệm cận đến khả năng lập luận logic (logical inference) của con người.
Năm 1952 đánh dấu một bước tiến lớn của học máy, khi mà một chương trình có thể tự động học trong khi hoạt động ra đời. Chương trình này là một phần mềm chơi cờ đam (checkers) được tạo ra bởi nhà khoa học máy tính Arthur Samuel và các cộng sự, khi mà nó có khả năng tự động phát triển khả năng chơi cờ đam thông qua việc tập luyện đối kháng cùng con người.2: Minh họa phép thử Turing. Ở phép thử này, máy tính sẽ cố đánh lừa con người rằng nó thực sự là con người. Một trong những phát kiến cách mạng được ra đời vào năm 1970 bởi Seppo Lin- nainmaa và các cộng sự, khi họ lần đầu tiên đưa ra phương pháp tổng quát về việc tính sai phân, được gọi là sai phân tự động (automatic differentiation) [22].
Phiên bản ngược của phương pháp này sau đó được phát triển và ứng dụng bởi Rumelhart và các cộng sự vào năm 1986 [23] trong việc học biểu diễn (representation learning). Nó vẫn được sử dụng rộng rãi cho đến tận ngày nay, là một công cụ tối quan trọng trong việc tối ưu các tham số của một mô hình mạng học sâu, được biết đến với cái tên quen thuộc đó là lan truyền ngược (backpropagation). Những thập niên cuối của thế kỷ 20 chứng kiến sự mở rộng của ngành học máy khi hàng loạt những phương pháp học máy cổ điển được phát minh, có thể kể đến như Thuật toán rừng ngẫu nhiên (random forest) [24], máy véc tơ hỗ trợ (support-vector machines) [25], hay những mô hình mạng như mạng nơ ron hồi quy (recurrent neural network) [26] hay bộ nhớ dài-ngắn hạn (long-short term memory) [27]. Đây đều là những phát kiển kinh điển, là nền móng của rất nhiều mô hình học máy hiện đại và bản thân chúng vẫn còn tỏ ra hữu hiệu đối với một số tác vụ nhất định cho tới tận ngày nay.
Tuy nhiên, cho đến cuối thập niên đầu tiên của thế kỷ 21, với sự gia tăng tốc chóng mặt về tốc độ tính toán nhờ bộ xử lý đồ họa (graphics processing unit - GPU), học máy nói chung, hay một mảng con của nó là học sâu (deep learning), bắt đầu có sự phát triển rực rỡ. Cũng bắt đầu từ đây, giới nghiên cứu bắt đầu tập trung nhiều hơn vào học sâu, lĩnh vực tưởng chừng như bị lãng quên do những rào cản về tính toán. Các mô hình học sâu, với ưu thế về độ phức tạp và số tham số, dần tỏ ra vượt trội các phương pháp truyền thống trong tất cả các tác vụ học máy: xử lý ảnh, xử lý ngôn ngữ tự nhiên, xử lý âm thanh,. Hiện nay, học máy đã và đang len lỏi vào mọi ngóc ngách trong cuộc sống, từ những tác vụ đơn giản hằng ngày như mua sắm, lướt mạng, cho đến những công việc phức tạp, đòi hỏi độ chính xác cao như đưa tên lửa lên quỹ đạo hay vận hành nhà máy đều 3 Hình 1.3: Minh họa mô hình LSTM - một trong những mô đun được sử dụng nhiều nhất trong các tác vụ xử lý dữ liệu theo dạng chuỗi thời gian.
có sự trợ giúp của trí tuệ nhân tạo. Có thể trong tương lai, trình độ khoa học kỹ thuật đạt tới tột đỉnh và học máy sẽ đạt đến trình độ vượt qua phép thử Turing.3 Các hướng tiếp cận của học máy Về cơ bản, học máy có thể chia thành ba nhánh chính, dựa trên dữ liệu mà chúng ta sử dụng để huấn luyện mô hình học máy, bao gồm: học giám sát (supervised learn- ing), học không giám sát (unsupervised learning), và học tăng cường (reinforcement learning). Học giám sát Với học giám sát, mô hình được cung cấp đầu vào và nhãn của đầu vào đó. Mục đích cuối cùng của học giám sát đó chính là học được một ánh xạ từ tập đầu vào đến tập nhãn, dựa trên những cặp đầu vào - nhãn được cung cấp trước đó.
Một số tác vụ học giám sát tiêu biểu có thể kể đến như: bài toán phân loại, bài toán hồi quy,. Học không giám sát Với học không giám sát, mô hình chỉ được cung cấp đầu vào. Nhãn của đầu vào không được sử dụng để huấn luyện mô hình. Mục đích cuối cùng của học giám sát đó chính là học được biểu diễn "có ích" của dữ liệu (representation learning), tức là ánh xạ được dữ liệu đầu vào đến một không gian khác, mà các chiều của không gian đó 4 Hình 1.4: Minh họa ba hướng tiếp cận của học máy.
Một số tác vụ học bán giám sát tiêu biểu có thể kể đến như: bài toán phân cụm, bài toán học biểu diễn,. Học tăng cường Trong học tăng cường, mô hình sẽ được gọi là tác tử (software agents) và sẽ được tương tác với môi trường (environment). Nhiệm vụ của học tăng cường là giúp tác tử ra quyết định và tương tác với môi trường sao cho phần thưởng tích lũy trong quá trình tương tác đó đạt cực đại. Tác tử, môi trường, và phần thưởng sẽ thay đổi theo từng bài toán cụ thể.
Một số bài toán sử dụng học tăng cương có thể kể đến như: điều khiển tối ưu (optimal control), giải thuật tiến hóa (genetic algorithm), .1 Tổng quan về học sâu Như đã đề cập ở phần trước, học sâu là một lớp các mô hình học máy mà sử dụng ít nhất một lớp xử lý ẩn (hidden layer) ngoài lớp đầu vào và lớp đầu ra. Hầu hết các mô hình học sâu hiện nay đều dựa trên mạng nơ ron nhân tạo (artificial neural network), ví dụ như mạng nơ ron tích chập (convolutional neural networks) hay lớp tuyến tính (linear layer),. Trong mạng học sâu, mỗi lớp mạng có thể được coi như là ánh xạ dữ liệu thô lên một không gian trừu tượng và biểu diễn hiệu quả hơn dữ liệu đầu vào. Ví dụ, với một mạng nơ ron tích chập dùng để phân lớp ảnh, đầu vào sẽ là một ten sơ (tensor) chứa giá trị các pixel bức ảnh ở ba dải màu (đỏ - xanh lá - xanh lam); lớp thứ nhất sẽ cho đầu ra là biểu diễn của các cạnh trong bức ảnh; lớp thứ hai sẽ cho đầu ra là biểu diễn cách sắp xếp của các cạnh trong bức ảnh đó; lớp thứ thứ ba sẽ có đầu ra là biểu 5 diễn trừu tượng của cái mũi, cái tai xuất hiện trong bức ảnh; và tương tự.
; và ở lớp tích chập cuối cùng sẽ có đầu ra là biểu diễn trừu tượng của bức ảnh ban đầu, là đầu vào của các lớp phân lớp tuyến tính về sau. Chính vì vậy, học sâu còn có tên gọi khác là học biểu diễn (representation learning), và thuật ngữ này cũng được lấy đề đặt tên cho Hội Nghị Quốc Tề về Học Biểu Diễn (International Conference on Learning Representation), cùng với Hội Nghị Quốc Tề về Học Máy (International Conference on Machine Learning), và Những Tiến Bộ về Hệ Thống Xử Lý Thông Tin Thần Kinh (Advances in Neural Information Processing Systems) chính là các sự kiện hàng đầu về học sâu nói riêng và học máy nói chung hiện nay.5: Những hội nghị học máy háng đầu hiện nay. Trong ngành khoa học máy tính, những hội nghị (conferences) được đánh giá cao hơn nhiều so với tạp chỉ (journals). Từ trái sang phải: Advances in Neural Information Processing Systems (NeurIPS), International Conference on Machine Learning (ICML), và International Conference on Learning Representation (ICLR).