CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN 1. Mạng Nơ- ron tích chập 1. Mạng Nơ- ron nhân tạo Mạng Nơ-ron nhân tạo (Artificial Neural Network – ANN hay Neural Network) là mô hình xử lý thông tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật hay còn gọi là mạng Nơ-ron sinh học (Hình 1. Cấu tạo từ số lượng lớn các nơ-ron được kết nối với nhau để xử lý thông tin.
ANN giống như bộ não con người, được học bởi kinh nghiệm thông qua huấn luyện, có khả năng lưu giữ những kinh nghiệm tri thức và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết. ANN được giới thiệu năm 1943 bởi nhà thần kinh học Warren McCulloch và nhà logic học Walter Pits. 1: Mạng Nơ-ron sinh học1 Một số ứng dụng của Mạng Nơ-ron được sử dụng trong nhiều lĩnh vực khác nhau như kinh tế, giáo dục, y tế, công nghệ thông tin, công nghệ blockchain,… để giải quyết một số bài toán phúc tạp đòi hỏi độ chính xác cao trong khai phá dữ liệu, nhận dạng hình ảnh….đỉnh hình là các giao dịch chứng khoán, nén hình ảnh, tối ưu quãng đường di chuyển,….com 6 Cấu trúc của một mô hình ANN gồm 3 tầng: lớp đầu vào (input layer), các lớp ẩn (hidden layers) và lớp cuối cùng là lớp đầu ra (output layer); các hình tròn được gọi là node được mô tả trong hình 1.2 [2], trong đó, lớp ẩn có thể có nhiều lớp nơ-ron để nhận dữ liệu từ các lớp trước để xử lý sau đó chuyển đổi các dữ liệu này cho các lớp kế tiếp. 2: Cấu trúc mạng Nơ-ron nhân tạo [2] Mỗi mô hình luôn có một lớp đầu vào, một lớp cuối cùng, có thể có hoặc không có các lớp ẩn.
Tổng số các lớp trong môn hình được quy ước là số lớp (không tính lớp đầu vào) Mỗi node trong mạng ANN được gọi là một Nơ-ron. Các dữ liệu đầu vào được truyền đến mỗi Nơ-ron nhận xử lý chúng và trả ra một kết quả duy nhất. Kết quả đầu ra của nơ- ron này có thể làm dữ liệu đầu vào của các nơ-ron khác. Quá trình xử lý của một nơ-ron trong ANN được mô tả như Hình 1.
Trong đó, đầu vào là dữ liệu input, còn đầu ra là dữ liệu output. Trọng số liên kết hay trọng số (connection weights hay gọi tắt là weights) là thành phần rất quan trọng, thể hiện mức độ quan trọng đối với quá trình xử lý dữ liệu từ lớp này sang lớp khác. Quá trình học của ANN thực ra là quá trình điều chỉnh trọng số của các dữ liệu đầu vào. 3: Quá trình xử lý của một nơ-ron trong ANN [1] Hàm tính tổng của tích trọng số và dữ liệu vào của một Nơ -ron có k dữ liệu đầu vào của lớp thứ i là: ai xk wi ,k (1.
1) Hàm kích hoạt hay hàm chuyển đổi (activation function) tính toán đầu ra của một nơ-ron để chuyển đến lớp tiếp theo trong mạng nơ-ron. Trong mạng Hàm kích hoạt phi tuyến được sử dụng vì mạng chỉ sử dụng các hàm kích hoạt tuyến tính có thể lược giản thông qua các biến đổi đại số thành mô hình perceptron một lớp (là mô hình ANN đơn giản nhất, không có lớp ẩn). Một số hàm kích hoạt phi tuyến thường dùng là ReLU (Rectified Linear Unit), sigmoid, logistic, Gaussian, tanh, softmax. 2) 1 e x ex e x Hàm tanh: tanh x (1.
3) ex e x Hàm ReLU: ReLU x max 0, x (1. 4: Đồ thị và công thức các hàm kích hoạt: (a) Hàm Sigmoid; (b) Hàm Tanh; (c) Hàm ReLU2 9 Hàm tổng của mạng Nơ-ron đầu ra tùy thuộc và bộ dữ liệu mà nó có thể có giá trị rất lớn, vì vậy hàm kích hoạt được dùng để xử lý đầu ra để chuyển đến lớp tiếp theo. Ngoài việc sử dụng hàm kích hoạt, ta cũng có thể sử dụng các hàm ngưỡng (threshold function) để kiểm soát đầu ra của mạng nơ-ron. Một số dạng mạng nơ-ron nhân tạo: Một ANN được gọi là mạng liên kết đầy đủ (fully connected) nếu mọi đầu ra từ một tầng liên kết với mọi nơ-ron của tầng kế tiếp.
Một ANN được gọi là mạng liên truyền tiến (feedforward network) nếu không có bất kỳ đầu ra của một nút là đầu vào của một nút khác thuộc cùng tầng (hoặc thuộc một tầng phía trước). Một ANN được gọi là mạng phản hồi (feedback network) nếu các đầu ra của một nút liên kết ngược lại làm các đầu vào của một nút thuộc cùng tầng (hoặc thuộc một tầng phía trước). Nếu phản hồi là liên kết đầu vào đối với các nút thuộc cùng tầng, thì đó gọi là mạng phản hồi bên (lateral feedback network). Một ANN được gọi là mạng hồi quy (recurrent network) nếu các mạng phản hồi có các vòng lặp kín (closed loops).
Quá trình học của mạng nơ-ron là quá trình xử lý và truyền dữ liệu theo các kết nối và thay đổi giá trị trọng số tại các nút để đạt được kết quả tốt nhất. Mạng nơ-ron thường được huấn luyện theo ba phương pháp học, đó là học có giám sát, học không giám sát và học tăng cường: Học có giám sát (supervised learning): là phương pháp học từ một tập dữ liệu huấn luyện ta đã biết trước nhãn của dữ liệu cần học và số lớp cần phân loại của bộ dữ liệu được đem đi huấn luyện. Đây là phương pháp học phổ biến nhất trong các phương pháp học của mạng nơ-ron. Mục đích của phương pháp này là từ tập dữ liệu đã gán nhãn qua quá trình học tạo ra một hàm số thật tốt để khi có dữ liệu mới ta có thể tính hay dự đoán được nhãn tương ứng của dữ liệu đó [1].
10 Phương pháp học có giám sát được chia làm hai loại chính: - Phân loại (classification): Nếu các nhãn của bộ dữ liệu đầu vào được chia thành một số hữu hạn nhóm. Ví dụ: Gmail xác định xem một email có spam hay không, bài toán nhận dạng chữ viết tay,… - Hồi quy (Regression): Nếu các nhãn của bộ dữ liệu đầu vào không được chia thành các nhóm mà là một giá trị thực cụ thể. Ví dụ bài toán về dự đoán giá nhà, dự đoán tuổi,…. Học không giám sát (Unsupervised Learning): trong thuật toán này chúng ta không biết được dữ liệu đầu ra hay nhãn của nó mà chỉ có dữ liệu đầu vào.
Thuật toán sẽ dựa vào cấu trúc của dữ liệu để thực hiện các công việc như phân nhóm hay giảm chiều của dữ liệu,…để thuận tiện trong lưu trữ và tính toán. Học không giám sát dựa trên các quan hệ tương tự, sự đồng xuất hiện, hay các phép biến đổi ma trận. Một số thuật toán học không giám sát như K-mean, DBSCAN, Spectral Clustering, Hierarchical clustering- Apriori (Association Rule Mining)- PCA, SVD,… Học tăng cường (Reinforcement Learning): là phương pháp học để đưa ra một chuỗi các quyết định. Học tăng cường bằng cách thử nghiệm dữ liệu để khám phá ra hành động nào là tốt nhất như trò chơi.
Máy tính sử dụng thử và sai (trial and error) để đưa ra giải pháp cho vấn đề. Các máy (agent) sẽ nhận được phần thưởng (reward) hoặc hình phạt (penalty) cho những hành động(action) mà nó thực hiện. Mục tiêu của nó là tối đa hóa tổng phần thưởng. Môi trường học thường được biểu diễn dưới dạng quy trình quyết định markov (Markov Decision Process - MDP) trạng thái hữu hạn và các thuật toán học tăng cường liên quan đến các kỹ thuật quy hoạch động.
Hiện tại, học tăng cường được ứng dụng trong các lĩnh vực kinh doanh, tiếp thị, quảng cáo giúp phân tích hành vi khách hàng từ đó đưa ra các chiến lược kinh 11 doanh phù hợp. Một điểm mạnh rất lớn của học tăng cường được ứng dụng trong việc trợ giúp các hệ thống đề xuất như tin tức, ứng dụng âm nhạc và các ứng dụng loạt phim như Netflix, v. Các ứng dụng này hoạt động theo sở thích của khách hàng. Đặc biệt học tăng cường thường được sử dụng chính trong Lý thuyết trò chơi, thuật toán xác định các hành động để đạt được số điểm tốt nhất.
Ví dụ như AlphaGo, Alpha Zero là các thuật toán chơi game cho các trò chơi như cờ vua, shogi và cờ vây. 5: Trò chơi Alpha Go3 Thuật toán lan truyền ngược Thuật toán lan truyền ngược (Backpropagation Algorithm) là thuật toán cốt lõi giúp các mô hình học sâu có thể dễ dàng thực thi tính toán được. Nhờ thuật toán này mà thuật toán tối ưu với đạo hàm (gradient descent) có thể nhanh hơn hàng triệu lần. Thuật toán lan truyền ngược tìm kiếm một vecto các trọng số (weight vecto) giúp cực tiểu hoá lỗi tổng thể của hệ thống khi huấn luyện, sử dụng kỹ thuật giảm theo hướng vecto gradient nhưng với độ phức tạp của hàm lỗi lớn hơn, nó còn gọi là một dạng tổng quát của thuật toán trung bình bình phương tối thiểu (Least Means Square – LMS).
Giả sử J(W,b, X, Y) là hàm lỗi của bài toán, trong đó W, b là tập hợp tất cả các ma trận trọng số giữa các lớp và vecto hướng của mỗi lớp; X, Y là cặp dữ liệu 3 khoahoc.tv 12 huấn luyện với mỗi cột tương ứng với một điểm dữ liệu. Đầu vào các lớp ký hiệu là z, đầu ra mỗi node ký hiệu là a. Đầu ra của node thứ i trong lớp thứ l ký hiệu là ai (l ). Vecto biểu diễn đầu ra của lớp thứ l được ký hiệu là a ( l ) d (l ) ( d ( l ) là số node trong lớp l ).Khi đó đầu ra dự đoán ŷ của dữ liệu đầu vào x của mạng neural truyền thẳng đa lớp được tính như sau: a(0) x (1.
9) Đây là bước truyền thẳng vì cách tính toán được thực hiện từ lớp đầu tiên đến lớp cuối cùng của mạng nơ-ron. Phương pháp phổ biến nhất để tối ưu mạng nơ-ron truyền thẳng đa lớp là phương pháp trượt dốc (Gradient Descent). Để áp dụng phương pháp này, ta cần tính đạo hàm của hàm lỗi theo ma trận trọng số W (l ) và vecto hướng b(l ). 11) N n1 n 1 2 Từ công thức (1.11) ta thấy việc tính toán trực tiếp các giá trị này cực kỳ phức tạp vì hàm lỗi không phụ thuộc trực tiếp vào các hệ số.
Do đó, phương pháp lan truyền ngược được sử dụng phổ biến nhất giúp tính đạo hàm ngược từ lớp cuối cùng đến lớp đầu tiên.Lớp cuối cùng được tính toán trước vì nó gần hơn với dự 13 đoán đầu ra và hàm lỗi. Việc tính toán đạo hàm của các lớp trước được dựa trên quy tắc chuỗi mắt xích hay còn gọi là đạo hàm của hàm hợp.