Chương 1 Cơ sở lý thuyết 1.1 Tổng quan Máy học (Machine Learning) [14] là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các hệ thống cho phép máy tính có thể học dựa trên dữ liệu để giải quyết những vấn đề cụ thể. Ứng dụng của Máy học trong những năm gần đây xuất hiện ở khắp mọi nơi, từ việc nhận dạng khuôn mặt, vân tay, cử chỉ, tiếng nói đến các hệ thống quản trị rủi ro tài chính, các mô hình xử lí ảnh y khoa,. Máy học có thể ứng dụng hầu hết các loại dữ liệu từ cấu trúc (bảng số liệu kinh tế, số liệu nông nghiệp,.) và cả dữ liệu phi cấu trúc (hình ảnh, văn bản, tín hiệu âm thanh,. Các thuật toán Máy học thường được chia thành bốn loại chính [14] gồm có: Học có giám sát Học có giám sát (Supervised learning): thuật toán học nhận một số ví dụ huấn luyện và nhãn tương ứng để xây dựng một hàm dự đoán đầu ra mong muốn.
Đầu ra của một hàm có thể là một giá trị liên tục, thuật toán này gọi là Hồi quy (Regression), hay thuật toán Phân loại (Classification) với đầu ra dùng để dự đoán một nhãn phân loại cho một đối tượng đầu vào. Để xây dựng mô hình học có giám sát thường phải có sự nỗ lực từ con người để gán nhãn cho tập dữ liệu. Học không giám sát 12 Học không giám sát (Unsupervised learning): Không có bất kì nhãn nào được cung cấp cho thuật toán học, thuật toán sẽ đi tìm cấu trúc bên trong dữ liệu để thực hiện các nhiệm vụ nhất định, ví du như phân cụm (Clustering), giảm số chiều của dữ liệu (Dimension reduction), tìm luật kết hợp (Association),. Học bán giám sát Học bán giám sát (Semi-supervised learning): là một lớp kỹ thuật Máy học sử dụng cả các ví dụ được gắn nhãn và không được gắn nhãn khi huấn luyện một mô hình.
Các ví dụ được gắn nhãn được sử dụng để tìm hiểu các lớp của dữ liệu và các ví dụ không được gắn nhãn được sử dụng để tinh chỉnh ranh giới giữa các lớp. Học tăng cường Học tăng cường (Reinforcement learning): dữ liệu huấn luyện sẽ được thuật toán học xây dựng mô hình, mô hình này dùng để dự đoán và nhận phản hồi từ môi trường từ đó tự động cải thiện mô hình. Một số bài toán tiêu biểu cho hình thức học tăng cường là là công nghệ xe tự lái, tự động chơi game,.2 Phương pháp Học kết hợp Học kết hợp (Ensemble Learning) [37] là một cách tiếp cận nhằm tìm kiếm hiệu suất dự đoán tốt hơn cho mô hình Máy học bằng cách kết hợp các dự đoán từ nhiều bộ phân loại khác nhau. Học kết hợp có thể được coi là một cách để bù đắp cho các thuật toán học kém bằng cách thực hiện nhiều tính toán bổ sung.
Sự thành công của một hệ thống học kết hợp phụ thuộc vào sự đa dạng của các bộ phân loại, nếu mỗi bộ phân loại mắc các lỗi khác nhau, các bộ phân loại sẽ học được nhiều thông tin hơn, sự kết hợp của các bộ phân loại này có thể làm giảm tổng lỗi và cải thiện mô hình. Học kết hợp được chia thành ba loại chính gồm: Đóng bao Đóng bao (Bagging) [17] là một trong những thuật toán học kết hợp ra đời sớm nhất, trực quan và đơn giản nhất. Ý tưởng của thuật toán này là dùng các tập hợp con khác nhau của dữ liệu để huấn luyện. Mỗi tập hợp con 13 dữ liệu được sử dụng để huấn luyện một bộ phân loại khác nhau và cùng loại thuật toán.
Các bộ phân loại riêng lẽ sau đó được kết hợp bằng cách bỏ phiếu đa số, tức là đối với bất kỳ trường hợp nhất định nào, lớp được chọn bởi hầu hết các bộ phân loại sẽ là quyết định tổng hợp cuối cùng. Các thuật toán Đóng bao gồm Bagged Decision Trees [24], Random Subspaces [26], Random Forest [32],.1: Thuật toán Đóng bao [15]. Tăng cường Tăng cường (Boosting) [23] là một thuật toán tương tự như Đóng bao, thuật toán này cũng tạo ra một nhóm các bộ phân loại bằng cách lấy mẫu lại dữ liệu, sau đó được kết hợp bằng cách bỏ phiếu đa số. Tuy nhiên, trong thuật toán Tăng cường, tập dữ liệu huấn luyện cho mỗi bộ phân loại tiếp theo tập trung vào trường hợp được phân loại sai bởi các bộ phân loại được huấn luyện trước đó.
Thuật toán này xây dựng các bộ phân loại mà mỗi bộ phân loại sau sẽ học cách sửa chữa lỗi của các bộ phân loại trước tạo thành một chuỗi các bộ phân loại mà cái sau sẽ tốt hơn cái trước. Các thuật toán tăng cường có thể kể đến như AdaBoost [22], Gradient Boosting Machine [12], Stochastic Gradient Boosting [11], XGBoost [31], LightGBM [8],.2: Thuật toán Tăng cường [15]. Xếp chồng Trong Xếp chồng (Stacking) [6], đầu tiên, tất cả các bộ phân loại khác được huấn luyện bằng cách sử dụng dữ liệu có sẵn, sau đó một thuật toán kết hợp được huấn luyện để đưa ra dự đoán cuối cùng bằng cách sử dụng tất cả các dự đoán của các thuật toán khác làm đầu vào.3: Thuật toán xếp chồng [15].3 Phương pháp Học chủ động Học chủ động (Active learning) [4] là một phương pháp Máy học tương tác với người dùng để gán nhãn các mẫu dữ liệu chưa được gán nhãn nhằm tối ưu hóa chất lượng mô hình dựa trên kiến thức của người gán nhãn. Thách thức chính của Học chủ động chính là tìm ra truy vấn tối ưu để đưa cho người dùng gán nhãn.
Truy vấn tối ưu là quá trình tìm kiếm những cá thể mà việc có nhãn của chúng sẽ được nhiều cải tiến nhất trong mô hình với số lượng truy vấn ít nhất. Hai chiến lược lựa chọn truy vấn gồm: • Lấy mẫu không chắc chắn (Uncertainty sampling): là tập hợp các kỹ thuật để xác định các mẫu không được gắn nhãn ở gần ranh giới quyết định trong mô hình học máy (Hình 1. Các mẫu dữ liệu này được mô hình cho rằng không chắc chắn trong việc dự đoán, hay có thể nói rằng đây là những mẫu mà mô hình "biết nó không biết".4: Lấy mẫu không chắc chắn sẽ tìm thấy các mẫu gần với ranh giới quyết định [20]. • Lấy mẫu đa dạng (Diversity sampling): ý tưởng chính của lấy mẫu đa dạng chính là xác định đâu là các điểm thiếu sót trong mô hình: mô hình "không biết rằng nó không biết" hoặc xác định "ẩn số chưa biết" để khám phá và mở rộng ranh giới quyết định (Hình 1.5: Lấy mẫu đa dạng sẽ tìm thấy các mẫu khác biệt tối đa với các mẫu đào tạo hiện có [20].2 Mạng nơ-ron nhân tạo 1.1 Cấu trúc mạng nơ-ron Mạng nơ-ron nhân tạo (Artificial Neural Network hay Neural network) là một mô hình tính toán được xây dựng phỏng theo các mạng nơ-ron sinh học [27].
Các đơn vị cơ bản của mạng là các nơ-ron, một mạng nơ-ron được cấu thành bởi các nơ-ron đơn lẻ được gọi là các percepton. Các nơ- ron có thể nhận một loạt đầu vào và trả về đầu ra tương ứng.6 là một nơ-ron nhân tạo điển hình, trong đó nơ-ron nhận n đầu vào x1 , x2 , ., xn với các trọng số tương ứng w1 , w2 , ., wn và hệ số bias b. Sau đó, tổng trọng số y = ∑ni=1 wi xi + b chuyển qua một hàm kích hoạt f và nơ-ron trả về kết quả đầu ra z = f (y). Đầu ra sẽ là đầu vào của nơ-ron tiếp theo.
Các nơ-ron trong mạng kết nối với nhau theo một chiều duy nhất, quá trình này được gọi là lan truyền tiến (Feedforward).6: Nơ-ron nhân tạo Hàm kích hoạt (Activation function) thường là một hàm phi tuyến, dùng để ánh xạ tổng trọng số của đầu vào thành đầu ra tương tứng phụ thuộc vào vấn đề của bài toán. Một số hàm kích hoạt thường dùng như: • Hàm Sigmoid: 1 σ (x) =. 1 + e−x • Hàm Tanh: ex − e−x tanh(x) =. ex + e−x • Hàm ReLU: 0 x ≤ 0, ReLU(x) = x x > 0.
• Hàm softplus, một phiên bản của ReLu: softplus(x) = log(1 + ex ).7: Các hàm kích hoạt thường dùng: (a) Hàm Sigmoid; (b) Hàm ReLU và hàm Softplus; (c) Hàm Tanh [27].2 Thuật toán lan truyền ngược Trong quá trình huấn luyện mạng nơ-ron, thuật toán lan truyền ngược (Backpropagation) [19] được sử dụng phổ biến nhất dùng để tối ưu hóa các tham số trong một mô hình. Đối với mạng như Hình 1.6, giả sử mục tiêu tối ưu hóa cho đầu ra z là z0 , theo Quy tắc dây chuyền (Chain rule), đạo hàm của z đối với wi và b như sau: ∂z ∂z ∂y = ∂ wi ∂ y ∂ wi ∂ f (y) = xi , ∂y ∂z ∂z ∂y = ∂b ∂y ∂b ∂ f (y) =. ∂y Mỗi tham số w và b sẽ được cập nhật theo tham số tốc độ học tập η (learning rate): ∂z ∆wi = η(z0 − z) ∂ wi ∂ f (y) = η(z0 − z)xi , ∂y 19 ∂z ∆b = η(z0 − z) ∂b ∂ f (y) = η(z0 − z)xi. ∂y Quá trình huấn luyện mạng nơ-ron nhân tạo gồm hai bước: 1.
Lan truyền tiến: Cho một tập hợp các tham số và một đầu vào, mạng nơ-ron sẽ tính toán các giá trị tại mỗi nơ-ron theo thứ tự chuyển tiếp. Lan truyền ngược: Tính toán lỗi tại mỗi biến để được tối ưu hóa và cập nhật các tham số với các đạo hàm riêng tương ứng của chúng theo thứ tự ngược lại. Hai bước trên sẽ lặp đi lặp lại cho đến khi đạt được tối ưu mục tiêu. Mạng Perceptron nhiều lớp (Multi-layer Perceptron - MLP) là sự kết hợp của các tầng perceptron gồm 3 tầng (Hình1.8): • Lớp đầu vào: Là lớp bên trái cùng của mạng thể hiện cho các đầu vào của mạng • Lớp ẩn: Là lớp nằm giữa thể hiện cho việc suy luận logic của mạng.
• Lớp đầu ra: Là lớp bên phải của mạng thể hiện cho các đầu ra của mạng.8: Mạng perceptron nhiều lớp [10]. 20 Với sự bùng nổ trong lĩnh vực Máy học (đặc biệt là Học sâu), nhiều kiến trúc mạng nơ-ron đã được ra đời. Các kiến trúc mạng nơ-ron có thể kể đến như: Mạng nơron truyền thẳng (Feedforward neural network) [7], Mạng nơ-ron tích chập (Convolutional neural network-CNN) [35], Mạng nơ-ron hồi quy (Recurrent neural network) [16], và một số kiến trúc mạng nơ-ron hiện đại khác.3 Phương pháp dựa trên đồ thị 1.1 Đồ thị Đồ thị là đối tượng cơ bản trong nghiên cứu các phương pháp trên đồ thị. Một đồ thị thường được ký hiệu bởi G = (V, E), trong đó: • V là tập các đỉnh • E là tập các cạnh Một cạnh e = u, v có hai đỉnh u và v, được nối bởi e.