Chương 1 Cơ sở lý thuyết 1.1 Một số khái niệm cơ bản Máy học (Machine learning) là phương pháp giúp máy tính học từ dữ liệu mà không cần lập trình tường minh. [32] Một chương trình máy tính được gọi là học được từ kinh nghiệm E liên quan đến họ các công việc T và được đo hiệu suất bằng P nếu hiệu suất đo bởi P của chương trình khi thực hiện công việc trong T được cải thiện bằng kinh nghiệm E. Các bài toán máy học được chia làm hai loại chính là bài toán học có giám sát (supervised learning) [3] và bài toán học không giám sát (unsupervised learning) [1]. • Học có giám sát Cho tập các cặp đầu vào - đầu ra D = {(xi , yi)N i=1 }.
Mục tiêu của các bài toán học có giám sát là xây dựng ánh xạ f từ đầu vào xi đến đầu ra 9 LUẬN VĂN THẠC SỸ Võ Thị Quỳnh Trang yi. Khi đó, D được gọi là tập dữ liệu huấn luyện (training set) và N là số lượng mẫu huấn luyện. Thông thường, đầu vào của mỗi mẫu huấn luyện xi là một vectơ số d - chiều. Nó còn được gọi là đặc trưng hay thuộc tính của dữ liệu.
Đầu ra của mẫu yi có thể là một biến thuộc tập hữu hạn C = {c 1, c 2,. , ck } hoặc một biến có giá trị thực. Trong trường hợp yi thuộc tập hữu hạn, bài toán đó là bài toán phân loại (classication) [25], ngược lại, nếu yi nhận giá trị thực, đó là bài toán hồi quy (regression) [40]. • Học không giám sát Đối với các bài toán học không giám sát, dữ liệu chỉ có tập đầu vào i=1 và mục tiêu là tìm các thông tin "thú vị" từ dữ liệu.
Các bài D = {xi }N toán học không giám sát thường có định nghĩa kém rõ ràng hơn so với các bài toán học có giám sát vì bài toán không chỉ ra cụ thể thông tin cần tìm kiếm hay cách đánh giá độ chính xác của mô hình (trong các bài toán học có giám sát, ta có thể biết kết quả đúng sai dựa vào việc so sánh kết quả dự đoán với kết quả đúng). Hai lớp bài toán chính của học không giám sát là bài toán phân cụm (clustering) [52] và bài toán giảm chiều (dimensionality reduction) [49]. Các thuật toán máy học giúp máy tính giải quyết các vấn đề liên quan đến tri thức trong thực tế và đưa ra quyết định. Một số thuật toán máy học đơn giản có thể kể đến như thuật toán hồi quy logistic (logistic regression) [4] áp dụng trong việc quyết định cho vay tín dụng (credit scoring) [48], thuật toán Naive Bayes [30] trong bài toán phân loại email rác.
Chất lượng của các thuật toán máy học phụ thuộc nhiều vào biểu diễn dữ liệu được cung cấp. Một số bài toán có thể giải được bằng việc trích xuất 10 LUẬN VĂN THẠC SỸ Võ Thị Quỳnh Trang đúng đặc trưng và sử dụng thuật toán máy học đơn giản để đưa ra kết quả. Ví dụ, trong bài toán xác định người nói từ âm thanh, một trong những đặc trưng quan trọng là kích thước sóng âm, đặc trưng này dùng để phân biệt giọng nam, nữ và trẻ em. Tuy nhiên, trong một số bài toán, rất khó để biết đặc trưng nào cần được trích xuất và biểu diễn thế nào cho hợp lý.
Chẳng hạn, ta cần viết một chương trình xác định trong bức ảnh có chứa xe ô tô không. Rõ ràng một trong những cách xác định xe ô tô là dựa vào số lượng bánh xe của phương tiện, đây có thể coi là một đặc trưng của bài toán. Nhưng để mô tả chính xác cho máy tính cách xác định bánh xe dựa vào các điểm ảnh là rất khó. Từ đó, phương pháp học sâu (deep learning) được phát triển không chỉ ánh xạ từ biểu diễn đầu vào đến kết quả mà còn có thể học được cách biểu diễn dữ liệu phù hợp cho bài toán.2 Học sâu Học sâu (deep learning) [8] là phương pháp cho máy tính học từ kinh nghiệm và hiểu thực tế thông qua các khái niệm phân cấp, với mỗi khái niệm được định nghĩa bởi khái niệm đơn giản hơn liên quan đến nó.
Bằng cách học thông qua kinh nghiệm, phương pháp này không cần người dùng phải quy định cụ thể từng kiến thức cho máy tính. Đồ thị thể hiện cách xây dựng các khái niệm này bao gồm nhiều lớp (số lượng lớp là độ sâu của mô hình), do đó phương pháp này được gọi là học sâu. Các thuật toán học sâu được xây dựng dựa trên các mạng nơ-ron nhân tạo (Artificial Neural Networks - ANNs) [53]. Mạng nơ-ron nhân tạo cung cấp một phương thức chung, thiết thực trong việc học các hàm giá trị thực, giá 11 LUẬN VĂN THẠC SỸ Võ Thị Quỳnh Trang trị rời rạc hay giá trị véc tơ.
Thuật toán lan truyền ngược (back propagation) [14] sử dụng hướng giảm gradient (gradient descent) [38] nhằm điều chỉnh tham số trong mạng sao cho khớp nhất có thể với bộ dữ liệu trong tập huấn luyện. Việc học trong mạng nơ-ron nhân tạo tập trung chủ yếu vào việc tối ưu hóa lỗi trong tập dữ liệu huấn luyện. Các thuật toán này đã được áp dụng thành công trong nhiều ứng dụng của cuộc sống như nhận diện khuôn mặt (face recognition) [18], nhận diện giọng nói [35] hay chương trình trả lời tự động (chatbot) [41]. Cách thức học của mạng nơ-ron nhân tạo được lấy cảm hứng từ việc quan sát hệ thống học tập sinh học được xây dựng bằng các nơ-ron liên kết với nhau thành một mạng phức tạp.
Mạng nơ-ron nhân tạo được xây dựng từ một tập hợp các đơn vị đơn giản kết nối dày đặc với nhau, trong đó mỗi đơn vị có đầu vào là giá trị thực (có thể là đầu ra của đơn vị khác) và tạo ra một đầu ra có giá trị thực (có thể trở thành đầu vào cho nhiều đơn vị khác). Đơn vị đó là perceptron. Giới thiệu về perceptron Perceptron [37] là đơn vị cơ bản của mạng nơ-ron nhân tạo, được mô tả như Hình 1. Perceptron có đầu vào là một véc-tơ mang giá trị thực, thực hiện tính tổ hợp tuyến tính đối với đầu vào đó.
Perceptron nhận giá trị 1 nếu kết quả của phép tính lớn hơn ngưỡng cho trước và nhận giá trị −1 trong trường hợp ngược lại. Cụ thể, cho đầu vào X = [1, x1 , x2 ,. , xn ], khi đó, giá trị đầu ra o(X ) của perceptron được tính bởi công thức: 1 nếu W T · X > 0 o(X ) = −1 ngược lại 12 LUẬN VĂN THẠC SỸ Võ Thị Quỳnh Trang Trong đó W = [w0 , w1,. , wn] với w i là hằng số nhận giá trị thực, được gọi là trọng số của mô hình.
Tham số này quyết định mức độ ảnh hưởng của đầu vào xi đối với giá trị đầu ra của perceptron. Việc học trong perceptron tương đương với việc chọn lựa bộ tham số w 0, w1 ,. , wn sao cho khớp với bộ dữ liệu huấn luyện. Để tìm được bộ trọng số phù hợp với dữ liệu, đầu tiên cần xác định giá trị lỗi của mô hình (hay còn gọi là hàm mất mát).
Một trong những cách tính giá trị này là 1 2 d∑ E(W ) = (t d − od ) ∈D với D là tập dữ liệu huấn luyện, t d là mục tiêu đầu ra của mẫu dữ liệu d , od là đầu ra do mô hình dự đoán. Khi đó, E là một hàm của W vì od phụ thuộc vào W. Tham số trong mô hình được cập nhật thông qua gradient của E. Gradient [51] của E là một véc-tơ với các thành phần là đạo hàm của E theo thành phần đó.
Quy tắc cập nhật như sau: W = W − η∇E (W ) trong đó η là một hằng số dương được gọi là tốc độ học (learning rate). Giá trị này nhằm xác định kích thước bước giảm tiếp theo trong mỗi vòng lặp. Quá trình cập nhật tham số trong mô hình được thực hiện cho đến khi thu được giá trị nhỏ nhất của E hoặc thỏa mãn một điều kiện nào đó quy định trước. 13 LUẬN VĂN THẠC SỸ Võ Thị Quỳnh Trang Hình 1.1: Kiến trúc của một perceptron Một cách trực quan, có thể coi perceptron như một siêu phẳng quyết định trong không gian n−chiều biểu diễn đầu vào.
Giá trị đầu ra của perceptron bằng 1 biểu diễn các đối tượng nằm về một phía của siêu phẳng và các giá trị bằng −1 biểu diễn các đối tượng nằm ở phía còn lại, Hình 1. Tập dữ liệu có thể phân tách được bởi một siêu phẳng được gọi là tách được tuyến tính (linear separable). Trong trường hợp tập dữ liệu được biểu diễn như Hình 1.2b, cần nhiều hơn một siêu phẳng để phân tách dữ liệu, nói cách khác, kiến trúc mạng nơ-ron cần nhiều perceptron hơn. Một trong những kiến trúc cơ bản là mạng nơ-ron nhiều lớp (multi-layer perceptron).
Mạng nơ-ron nhiều lớp Mạng nơ-ron nhiều lớp (multi-layer perceptron) [33] là một mô hình học sâu cơ bản. Mục tiêu của mô hình là xấp xỉ hàm mục tiêu f ∗ (có thể là hàm tuyến tính hoặc phi tuyến). Ví dụ, trong bài toán phân lớp, hàm mục tiêu y = f ∗(x) ánh xạ giữa đầu vào x với lớp y tương ứng. Khi đó, mô hình mạng nơ-ron nhiều lớp sẽ xây dựng ánh xạ y = f (x, θ ) và tìm các giá trị của tham số θ sao cho đạt kết quả xấp xỉ tốt nhất với hàm f ∗.
14 LUẬN VĂN THẠC SỸ Võ Thị Quỳnh Trang Hình 1.2: Mặt phẳng quyết định tạo bởi perceptron với đầu vào hai chiều. a) Tập dữ liệu luyện có thể phân tách rõ ràng bởi một perceptron. b) Tập dữ liệu luyện không thể tách tuyến tính.3: Kiến trúc một mạng nơ-ron nhiều lớp Kiến trúc một mạng nơ-ron nhiều lớp được minh họa như Hình 1. Mạng bao gồm một lớp đầu vào (input layer), một hoặc nhiều lớp ẩn (hidden layer) và một lớp đầu ra (output layer).
Số lượng lớp trong mạng được gọi là độ sâu của mô hình. Mô hình mạng nơ-ron nhiều lớp có đặc điểm sau: 15 LUẬN VĂN THẠC SỸ Võ Thị Quỳnh Trang 1. Mô hình của mỗi nơ-ron trong mạng nơ-ron nhiều lớp chứa một hàm kích hoạt phi tuyến (nonlinear activation function) [43]. Hàm này giúp mạng nơ-ron nhiều lớp có thể xấp xỉ được hàm phi tuyến.
Một hàm kích hoạt phổ biến là hàm sigmoid [12] được cho bởi công thức: 1 yi = 1 + exp(−vi ) với vi là giá trị địa phương tại nơ-ron i và yi là đầu ra của nơ-ron đó.