Chương 1 Cơ sở lý thuyết 1.1 Các thuật toán tối ưu và mạng nơ-ron nhân tạo 1.1 Mạng nơ-ron nhân tạo Mạng nơ-ron nhân tạo (Artifical Neural Networks) là một điểm nóng nghiên cứu trong lĩnh vực trí tuệ nhân tạo từ những năm 1980 [37]. Nó trừu tượng hóa tế bào thần kinh não người từ góc độ xử lý thông tin và mô hình hóa các mạng khác nhau theo các kết nối khác nhau. Cụ thể, mạng nơ-ron nhân tạo được sử dụng để mô phỏng quá trình truyền thông tin từ các tế bào nơ-ron trong não. Nó bao gồm nhiều nơ-ron nhân tạo được kết nối và có thể được sử dụng để khai thác và điều chỉnh các mối quan hệ phức tạp ẩn trong dữ liệu.
Bên cạnh đó, các kết nối giữa các nơ-ron khác nhau có trọng lượng khác nhau, mỗi kết nối đại diện cho mức độ ảnh hưởng của một nơ-ron này lên nơ-ron khác. Mạng nơ-ron nhân tạo Mạng nơ-ron nhân tạo (Artifical Neural Networks - ANN) là một mô hình tính toán lấy cảm hứng từ mạng nơ-ron sinh học, bao gồm các đơn vị xử lý (được gọi là tế bào thần kinh - nơ-ron) và các kết nối giữa chúng với các hệ số (trọng số) liên kết với các kết nối. Các kết nối này tạo nên cấu trúc tế bào nơ-ron và đi liền với nó là các thuật toán huấn luyện [37]. Deboeck và Kohonen [7] đã mô tả mạng nơ-ron như một tập hợp các kỹ thuật toán học có thể được sử dụng để xử lý tín hiệu, dự báo và phân cụm và gọi nó là kỹ thuật hồi quy song song, nhiều lớp và phi tuyến tính.
Người ta nói thêm rằng mô hình mạng nơ-ron giống như việc đưa một đường thẳng, mặt phẳng hoặc 13 siêu phẳng đi qua một tập hợp các điểm dữ liệu. Đường thẳng, mặt phẳng hoặc siêu phẳng này có thể được điều chỉnh thông qua bất kỳ tập dữ liệu nào để xác định các mối quan hệ có thể tồn tại giữa đầu vào và đầu ra hoặc nó có thể được trang bị để xác định một biểu diễn của dữ liệu ở quy mô nhỏ hơn. Mạng truyền thẳng (Feed-forward neural network) Dòng dữ liệu từ đơn vị đầu vào đến đơn vị đầu ra chỉ được truyền thẳng. Việc xử lý dữ liệu có thể mở rộng ra nhiều lớp, nhưng không có các liên kết phản hồi.
Nghĩa là, các liên kết mở rộng từ các đơn vị đầu ra tới các đơn vị đầu vào trong cùng một lớp hay các lớp trước đó là không cho phép.1: Mạng nơ-ron truyền thẳng nhiều lớp (Feed-forward neural network) Mạng nơ-ron truyền thẳng là một mạng nơ-ron nhân tạo đơn giản trong lĩnh vực trí tuệ nhân tạo. Như có thể thấy trong hình 1.1, một mạng nơ-ron truyền thẳng bao gồm một lớp đầu vào, một hoặc nhiều lớp ẩn và một lớp đầu ra. Bên trong nó, các tham số được truyền từ lớp đầu vào qua lớp ẩn đến lớp đầu ra. Khi thiết kế mạng nơ-ron, số lượng lớp ẩn, số lượng nơ-ron trên mỗi lớp và việc lựa chọn các hàm kích hoạt đều là những yếu tố quan trọng cần xem xét.
Khi số lượng lớp ẩn tăng lên, một mạng nơ-ron nhân tạo có thể được xem như một hệ thống động phi tuyến thích ứng bao gồm một số lượng lớn các nơ-ron thông qua các kết nối khác nhau, có thể được sử dụng để tính gần đúng một loạt các hàm phức tạp. Mặc dù cấu trúc của mạng nơ-ron nhân tạo tương đối đơn giản, nhưng không dễ để làm cho mạng nơ-ron nhân tạo có khả năng học hỏi. Mãi đến khoảng năm 1980, thuật toán backpropagation đã giải quyết hiệu quả 14 vấn đề học tập của mạng nơ-ron nhiều lớp và trở thành thuật toán học mạng nơ- ron phổ biến nhất [23]. Bởi vì một mạng nơ-ron nhân tạo có thể được sử dụng như một bộ xấp xỉ hàm, nó có thể được coi là một hàm có thể học được và được áp dụng để giải các phương trình đạo hàm riêng.
Về mặt lý thuyết, với đủ dữ liệu huấn luyện và nơ-ron, mạng nơ-ron nhân tạo có thể tìm ra lời giải cho các phương trình đạo hàm riêng. Hàm tổn thất (Loss function) Để huấn luyện một mạng và xét xem nó thực hiện tốt đến đâu, ta cần xây dựng một hàm tổn thất để cung cấp cách thức đánh giá khả năng hệ thống một cách không nhập nhằng. Việc chọn hàm tổn thất là rất quan trọng bởi vì hàm này thể hiện các mục tiêu thiết kế và quyết định thuật toán huấn luyện nào có thể được áp dụng. Để phát triển một hàm tổn thất đo được chính xác cái chúng ta muốn không phải là việc dễ dàng.
Một vài hàm cơ bản được sử dụng rất rộng rãi. Một trong số chúng là hàm trung bình bình phương lỗi (mean square error function - MSE) hoặc hàm trung bình sai số tuyệt đối (mean absolute error - MAE). 1 N MSE = ∑ (y pred − yexact )2 , N i=1 1 N MAE = ∑ |y pred − yexact |, N i=1 với N là số lượng mẫu trong tập huấn luyện, y pred , yexact theo thứ tự là đầu ra dự đoán qua mạng nơ-ron và đầu ra thực tế. Định lý xấp xỉ phổ quát Năm 1991, Kurt Hornik đã chứng minh được định lý mà bây giờ chúng ta gọi là định lý xấp xỉ phổ quát (universal approxiamtion theorem) sau Định lý 1.1 ([18]) Cho ϕ : R → R là một hàm số liên tục, bị chặn và không đồng nhất bằng hằng số.
Ký hiệu Im là hình vuông đơn vị trong Rm , tức tập [0, 1]m. Ký hiệu C(Im ) là không gian các hàm số liên tục trong Im. Khi đó, với mọi ε > 0 và f ∈ C(Im ), tồn tại số nguyên dương N, các số thực vi , bi và các 15 vector wi ∈ Rm , i = 1, 2, ., N sao cho N F(x) = ∑ vi ϕ(wTi x + bi ), i=1 thỏa mãn |F(x) − f (x)|< ε, với mọi x ∈ Im. Hay hàm số có dạng F(x) trù mật trong C(Im ).
Khẳng định vẫn đúng khi thay Im bằng tập compact bất kỳ.1 cho chúng ta một khẳng định về việc mạng nơ-ron có thể xấp xỉ mọi hàm số liên tục trên tập compact. Tuy nhiên, phiên bản năm 1991 chỉ áp dụng cho mạng nơ-ron một tầng ẩn với số nơ-ron trong tầng đó không giới hạn, chứ không áp dụng cho mạng nhiều tầng ẩn. Nếu chỉ sử dụng một tầng ẩn, số lượng nơ-ron trong đó có thể sẽ phải tăng lên tới hàng triệu khiến việc huấn luyện thực tế là bất khả thi. Cho tới 2017, Zhou Lu [26] và Hanin [15] đã chứng minh các phiên bản của định lý dành cho mạng có chiều sâu thay vì chiều rộng không giới hạn.
Đây là cơ sở của rất nhiều hướng tiếp cận sử dụng mạng nơ-ron trong các bài toán khác nhau và đặc biệt trong luận văn là sử dụng mạng nơ-ron để xấp xỉ nghiệm cũng như các hệ số của phương trình đạo hàm riêng.2 Thuật toán tối ưu dựa trên đạo hàm cấp 1 Ta gọi các phương pháp chỉ sử dụng gradient hoặc đạo hàm bậc nhất để tìm kiếm giá trị tối ưu là phương pháp bậc nhất. Thuật toán cơ bản nhất của phương pháp này là Stochastic Gradient Descent, thực hiện các bước theo hướng giảm gradient của hàm mục tiêu. Thuật toán này đã cho thấy, mặc dù nó đơn giản, nhưng hoạt động khá tốt trong các bài toán học máy. Một phương pháp bậc nhất phức tạp hơn là thuật toán Adam được thiết kế để ít nhạy cảm với nhiễu và gra- dient nhỏ hơn SGD.
Stochastic Gradient Descent Gradient Descent là một thuật toán để tìm điểm cực tiểu của một hàm mục tiêu. Nó dựa trên lý thuyết về gradient của một hàm L luôn hướng theo hướng tăng tối đa, vì vậy bằng cách di chuyển theo hướng ngược lại của gradient, người ta 16 có thể đạt được sự cải thiện về giá trị của hàm mục tiêu. Trong học máy, hàm mục tiêu thường có thể được viết dưới dạng tổng các hàm. n L = ∑ Li , i=1 Khi tổng này có một số lượng lớn các số hạng, tương ứng với một lượng lớn các điểm dữ liệu, các phép tính toán của phương pháp trở nên quá nặng.
Thuật toán Stochastic Gradient Descent giải quyết vấn đề tính toán này bằng cách chọn ngẫu nhiên một trong các hàm trong tổng, sau đó tính gradient theo hướng giảm của hàm này. Tuy nhiên, chỉ sử dụng một trong các hàm để ước lượng gradient thường dẫn đến sự không ổn định trong quá trình hội tụ của hàm mục tiêu. Do đó, người ta thường sử dụng một tập hợp con các hàm từ tổng hay còn gọi là là một minibatch khi ước tính gradient. Một thông số quan trọng trong SGD là tỷ lệ học (learning rate) ε.
Tham số này xác định kích thước bước nhảy trong mỗi lần lặp. Nếu kích thước bước nhảy quá lớn, chúng ta sẽ nhận được một dãy các trạng thái không ổn định qua các vòng lặp của thuật toán có thể dẫn đến việc không có khả năng hội tụ đến một giá trị hợp lý của hàm mục tiêu. Tuy nhiên, nếu kích thước bước quá nhỏ, thuật toán có thể bị mắc kẹt trong khu vực có độ dốc nhỏ, dẫn đến lỗi tương tự. Với điểm khởi đầu là θ = θ0 , qua mỗi vòng lặp ta cập nhật lại giá trị của điểm này tại một minibatch có m điểm dữ liệu ε m θ := θ − ∑ ▽θ Li , m i=1 Moment Vì SGD không lưu bất kỳ thông tin nào của gradient và tính toán gradient chỉ qua một vài mẫu huấn luyện, hướng của các bước nhảy có thể dao động rất nhiều giữa mỗi lần lặp.
Các thuật toán sử dụng moment được thiết kế để làm giảm những dao động này. Ta quan tâm đến 2 moment của một biến ngẫu nhiên, moment thứ nhất là giá trị kỳ vọng của nó và moment thứ hai là phương sai của biến ngẫu nhiên đó. Những đại lượng này được sử dụng trong một số phương pháp tối ưu hóa trong học sâu và đây được gọi là phương pháp momentum. Thay vì quy tắc cập nhật 17 tiêu chuẩn của các tham số được sử dụng trong SGD, các thuật toán sử dụng phương pháp momentum sử dụng quy tắc cập nhật chứa các moment của hàm mục tiêu.
Ví dụ, nếu ta chỉ sử dụng moment thứ nhất, quy tắc cập nhật sẽ trở thành v := αv − ε▽L(θn ), θn := θn−1 + v, với L là hàm mục tiêu, v là giá trị trung bình giảm dần theo cấp số nhân của các gradient trong quá khứ và α là siêu tham số xác định tốc độ phân rã theo cấp số nhân. Adam Thuật toán Adam, được trình bày lần đầu trong bài báo "Adam: A Method For Stochastic Optimization" do Diederik P.