Chương I: GIỚI THIỆU TỔNG QUAN Trong những năm gần đây, Mạng nơ-ron nhân tạo (thuật ngữ gốc: Articial Neural Network - ANN ) nổi lên như một công cụ toán học hiệu quả trong việc xây dựng các hệ thống thông minh có khả năng như thậm chí vượt trội con người trong nhiều lĩnh vực. Các ví dụ điển hình của ANN có thể được tìm thấy trong các hệ thống nhận diện (khuôn mặt, chữ viết tay, số…), hay ở các trò chơi chiến thuật như cờ vây. ANN về bản chất là một hàm phi tuyến cực kỳ phức tạp với nhiều lớp và rất nhiều tham số cấu thành. Nhờ đó, ANN có thể xấp xỉ một hàm mất mát, được xây dựng bằng cách ánh xạ một tập dữ liệu đầu vào đến một tập dữ liệu đầu ra theo tiêu chuẩn nào đó, với độ chính xác tùy ý và phụ thuộc vào độ phức tạp của mạng.
Để xây dựng được một ANN, chúng ta cần giải thuật học phù hợp để tìm được cấu hình mạng cùng bộ tham số tối ưu cho bộ dữ liệu học. Có nhiều giải thuật dùng để tối ưu trọng số cho một ANN đã biết trước cấu hình như Backpropagation, Adagrad, RMSprop, Adam… Các giải thuật này đều dựa vào việc tính đạo hàm để cập nhật tham số và chúng thường có ưu điểm là rất nhanh chóng hội tụ đến một nghiệm cục bộ hiệu quả nào đó trên không gian tìm kiếm. Tuy nhiên, ưu điểm cũng chính là nhược điểm của các phương pháp tiếp cận bằng đạo hàm, chúng dễ mắc vào cục bộ khi miền tìm kiếm là đa cực trị. Hơn thế nữa khi tối ưu trên không gian hàm nhiều biến, tồn tại rất nhiều những “điểm yên ngựa” nơi mà đạo hàm riêng bằng 0 nhưng lại không phải là cực trị của hàm tại đó.
Các thuật toán dựa trên đạo hàm khác nhau đề xuất các phương pháp riêng để xử lý việc cập nhật tham số khi gặp điểm yên ngựa, nhưng vẫn không thể tránh khỏi triệt để những vấn đề trong thực nghiệm. Giải thuật tiến hóa, đã được minh chứng là rất hiệu quả trong các bài toán tối ưu liên tục, cũng là một ứng cử viên sáng giá trong việc huấn luyện ANN. Không chỉ loại trừ được những bất lợi của việc cập nhật tham số phải tính đạo hàm, giải thuật tiến hóa còn giúp việc tối ưu kiến trúc và các thành phần khác của mạng một cách đồng thời. Giải thuật tiến hóa đa nhiệm, một khái niệm mới được đề cập gần đây dựa trên cơ sở rằng các bài toán tối ưu có thể có nhiều điểm chung tương đồng trong tập tối ưu và việc giải cùng lúc nhiều bài toán góp phần thúc đẩy tốc độ tìm ra được lời giải tốt nhanh hơn.
So với giải thuật tiến hóa thông thường, sự trao đổi tri thức dùng chung giữa các nhiệm vụ trong 1 quá trình tối ưu góp phần cải thiện tốc độ hội tụ chung của quần thể. Nhờ đó giải thuật tiến hóa đa nhiệm hứa hẹn là một công cụ hiệu quả trong huấn luyện ANN truyền thẳng. Các nghiên cứu về giải thuật tiến hóa đa nhiệm còn nhiều hạn chế và có tiềm năng phát triển cải tiến. Như vậy, luận văn này tiến hành nghiên cứu tổng quan về vấn đề huấn luyện ANN truyền thẳng bằng giải thuật tiến hóa đa nhiệm.
Trên cơ sở kết quả đạt được, luận văn tổng kết, đánh giá và đưa ra hướng phát triển của đề tài trong tương lai.1 Tính cấp thiết của đề tài Đề tài hướng đến việc phát triển giải thuật học hiệu quả cho việc huấn luyện ANN, từ đó có ứng dụng to lớn trong các vấn đề thực tiễn đòi hỏi phát triển các hệ thống thông minh mà ANN là cốt lõi. Kết quả đồ án cũng là minh chứng cho tính hiệu quả của giải thuật tiến hóa đa nhiệm trong giải quyết các bài toán tối ưu liên tục phức tạp. Vì các lý do đó mà tôi tin tưởng luận văn này vừa có sự đóng góp cho cộng đồng nghiên cứu học thuật lại đồng thời có tính ứng dụng thực tiễn.2 Mục đích và đối tượng nghiên cứu Luận văn nhằm mục đích nghiên cứu Giải thuật tiến hóa đa nhiệm vụ (thuật ngữ gốc: Multi-Factorial Evolutionary Algorithm - MFEA) cho bài toán tối ưu liên tục và vấn đề huấn luyện ANN truyền thẳng nhiều lớp. Trên cơ sở đó, luận văn đề xuất phương pháp mã hóa trên không gian chung cho các ANN truyền thẳng nhiều lớp đồng thời phát triển và cả tiến giải thuật tiến hóa đa nhiệm để giải quyết bài toán.
Theo định hướng đó, tác giả cài đặt thực nghiệm giải thuật đề xuất theo mô hình đơn nhiệm và đa nhiệm, đồng thời so sánh với các phương pháp tiếp cận dựa trên đạo hàm để làm cơ sở phân tích tính hiệu quả và tính thực tiễn của giải thuật đề xuất. Thực nghiệm giải thuật cần chỉ ra và phân tích được tính hiệu quả của mô hình đa nhiệm trong huấn luyện đồng thời các ANN truyền thẳng.3 Phạm vi và phương pháp nghiên cứu Mô hình ANN sử dụng trong luận văn là Mạng nơ-ron truyền thẳng (thuật ngữ gốc: Feedforward Neural Network - FNN ) áp dụng cho bài toán phân loại nhị phân thực hiện trên bài toán n-bit và bộ dữ liệu phân loại nhị phân của 2 Asuncion and Newman được cung cấp tại [1]. Các giải thuật đề xuất đưọc đánh giá tính hiệu quả bằng độ đo Trung bình của bình phương lỗi (thuật ngữ gốc: Mean Square Error - MSE ) và tính chính xác của mô hình phân loại. Việc so sánh kết quả thực nghiệm là thước đo kiểm chứng tính thực tiễn của giải thuật đề xuất trong việc phát triển các giải thuật học.4 Cấu trúc của luận văn Cấu trúc các Chương tiếp theo của luận văn gồm các phần như sau: • Chương II trình bày các kiến thức tổng quan về ANN, bài toán tối ưu hóa liên tục (thuật ngữ gốc: continuous optimization), giải thuật Giải thuật tiến hóa (thuật ngữ gốc: Evolutionary Algorithm - EA) và MFEA.
• Chương III bàn về phương pháp sử dụng EA và MFEA làm giải thuật học cho ANN cùng các nghiên cứu liên quan. • Chương IV trình bày chi tiết giải thuật học cho mạng FNN nhiều lớp dựa trên MFEA. • Chương V tổng hợp kết quả thực nghiệm giải thuật đề xuất với các phương pháp tiếp cận dựa trên đạo hàm và EA đơn nhiệm. • Chương VI đưa ra kết luận về tính hiệu quả và tính thực tiễn của giải thuật đè xuất, đồng thời bàn luận về các hướng nghiên cứu phát triển của đề tài.
3 Chương II: CƠ SỞ LÝ THUYẾT II.1 Tổng quan về mạng nơ-ron Trong Khoa học máy tính, mạng nơ-ron hay Mạng nơ-ron nhân tạo (thuật ngữ gốc: Articial Neural Network - ANN ) là một mô hình tính toán, được xây dựng mô phỏng theo ý tưởng của các mạng nơ-ron sinh học Hình II. ANN gồm có một nhóm các nơ-ron nhân tạo (nút) nối với nhau, và xử lý thông tin bằng cách truyền theo các kết nối và tính giá trị mới tại các nút bằng các hàm kích hoạt phi tuyến [2].1 (phải) minh họa các thành phần cơ bản của một nơ-ron trong ANN tương ứng với một nơ-ron sinh học, bao gồm các đầu vào, trọng số, hàm kích hoạt và đầu ra.1: Cấu trúc nơ-ron sinh học (trái) và mô hình toán học tương ứng (phải). Nguồn: https://medium.com/@samuelsena/pengenalan-deep-learning-8fbb7d8028ac Tùy vào lĩnh vực cụ thể và từng dạng dữ liệu đặc thù mà mô hình của ANN có thể được phát triển cho phù hợp. Dựa vào kiến trúc mạng mà người ta có thể phân ra làm 3 dạng ANN chính: Mạng nơ-ron truyền thẳng (thuật ngữ gốc: Feedforward Neural Network - FNN ), Mạng nơ-ron tích chập (thuật ngữ gốc: Convolutional Neural Network - CNN ), Mạng nơ-ron hồi qui (thuật ngữ gốc: Recurrent Neural Network - RNN ).
Trong phạm vi nghiên cứu của luận văn, chúng ta chỉ quan tâm đến FNN. Do đó kể từ đây trở về sau, bất cứ khi nào nhắc đến thuật ngữ ANN mà không có diễn giải gì thêm, chúng ta mặc định xem nó là FNN. Một FNN cơ bản bao gồm 3 lớp cấu tạo chính bao gồm: lớp đầu vào (input layer), lớp đầu ra (output layer) và lớp ẩn (hidden layer). Mục tiêu của FNN là xấp xỉ một hàm f ∗ sao cho ánh xạ y = f ∗ (x), x ∈ X, y ∈ Y khớp với một bộ dữ 4 liệu X, Y [3].
Khi ấy, lớp đầu vào tương ứng với số chiều của x và tương tự lớp đầu ra tương ứng với số chiều của y. Để minh họa rõ hơn cách thức hoạt động của FNN, chúng ta cùng xét đến lớp các bài toán phân loại, vốn là lớp bài toán kinh điển của lĩnh vực Học máy (thuật ngữ gốc: Machine Learning - ML) [4]. Trong Hình II.2, ta thấy 2 lớp phân loại được gán nhãn dữ liệu xanh và đỏ. Bài toán đặt ra là khi có một điểm dữ liệu màu xám thì nó được phân vào lớp xanh hay lớp đỏ? Hình II.2: Minh họa bài toán phân loại.
[5] Trong mục này, tác giả tổng kết lại cấu trúc và các thành phần cơ bản của ANN cùng các giải thuật cơ bản cho ANN.1 Các thành phần cơ bản của mạng nơ-ron nhân tạo II.1 Đơn vị xử lý Mỗi đơn vị xử lý của ANN là một nút mạng, chúng nhận tín hiệu vào từ các đơn vị phía trước hay một nguồn bên ngoài và tính toán tín hiệu ra sẽ được lan truyền sang các đơn vị khác. Trong một ANN có ba kiểu đơn vị: Hình II.3: Minh họa các đơn vị xử lý của mạng nơ-ron nhân tạo. • đơn vị đầu vào (thuật ngữ gốc: input unit ): nhận tín hiệu từ bên ngoài. • đơn vị đầu ra (thuật ngữ gốc: output unit ): gửi dữ liệu ra bên ngoài.
5 • đơn vị ẩn (thuật ngữ gốc: hidden unit ): tín hiệu vào và ra của nó nằm trong mạng hay còn gọi là các đơn vị trung gian. Mỗi đơn vị có thể có một hoặc nhiều đầu vào, nhưng chỉ có một đầu ra. Một đầu vào tới một đơn vị có thể là dữ liệu từ bên ngoài mạng, hoặc đầu ra của một đơn vị khác, hoặc là đầu ra của chính nó.4 minh họa chi tiết mô hình toán học của một đơn vị xử lý trong mạng với các thành phần như sau: Hình II.4: Minh họa mô hình toán học của một đơn vị xử lý trong mạng nơ-ron nhân tạo. • xi : các đầu vào của ANN • w ji : các trọng số tương ứng với các đầu vào • θj : độ lệch (thuật ngữ gốc: bias) • σ : hàm kết hợp, được định nghĩa bởi một luật lan truyền cụ thể.
Trong phạm vi luận văn này chúng ta chỉ quan tâm đến luật lan truyền bằng phép nhân ma trận.