CHƯƠNG 1 TỔNG QUAN MẠNG NƠ-RON HỒI QUY Trong chương này tôi sẽ giới thiệu về cơ sở lý thuyết về mạng nơ-ron nhân tạo, cách thức hoạt động của mạng nơ-ron, các phiên bản mở rộng của mạng nơ-ron nhân tạo.1 Mạng nơ-ron nhân tạo 1.1 Kiến trúc mạng nơ-ron nhân tạo Mạng nơ-ron nhân tạo (Artificial Neural Network – ANN) là một 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, bao gồm số lượng lớn các Nơ-ron được gắn kết để xử lý thông tin. 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, ANN hoạt động giống như bộ não của con người, được học bởi kinh nghiệm (thông qua việc huấn luyện), có khả năng lưu giữ các tri thức và sử dụng các tri thức đó trong việc dự đoán các dữ liệu chưa biết (unseen data) [1]. Một mạng nơ-ron là một nhóm các nút nối với nhau, mô phỏng mạng nơ- ron thần kinh của não người. Mạng nơ-ron nhân tạo được thể hiện thông qua ba thành phần cơ bản: mô hình của nơ-ron, cấu trúc và sự liên kết giữa các nơ-ron.
Trong nhiều trường hợp, mạng nơ-ron nhân tạo là một hệ thống thích ứng, tự thay đổi cấu trúc của mình dựa trên các thông tin bên ngoài hay bên trong chạy qua mạng trong quá trình học.1 Kiến trúc mạng nơ-ron nhân tạo 4 Kiến trúc chung của một ANN được thể hiện ở hình 1.1, gồm 3 thành phần đó là lớp vào, lớp ẩn và lớp ra [2] Trong đó, lớp vào thể hiện cho các đầu vào của mạng; lớp ẩn gồm các nơ-ron, nhận dữ liệu đầu vào từ các nơ-ron ở lớp trước đó và chuyển đổi các đầu vào này cho các lớp xử lý tiếp theo; lớp ra thể hiện cho các đầu ra của mạng. Trong một mạng ANN có thể có nhiều lớp ẩn. Mạng nơron nhân tạo ngày nay gần giống với bộ não con người như: Có khả năng học, tức là sử dụng những kinh nghiệm để cải thiện hiệu suất. Khi thu thập được đủ một lượng mẫu thì ANN có thể khái quát hóa rất cao.
Một ANN có thể nhận ra được một ký tự viết tay, có thể phát hiện bom ở sân bay… 1.2 Hoạt động của mạng nơ-ron nhân tạo Hình 1.2 Quá trình xử lý thông tin của một mạng nơ-ron nhân tạo. Hoạt động của mạng nơ-ron nhân tạo được thể hình ở hình 1.2 với 3 chu trình: Đầu vào: Mỗi đầu vào tương ứng với 1 đặc trưng của dữ liệu. Ví dụ như trong ứng dụng của ngân hàng xem xét có chấp nhận cho khách hàng vay tiền hay không thì mỗi input là một thuộc tính của khách hàng như thu nhập, nghề nghiệp, tuổi, số con,… Đầu ra: Kết quả của một ANN là một giải pháp cho một vấn đề, ví dụ như với bài toán xem xét chấp nhận cho khách hàng vay tiền hay không thì đầu ra là “có” hoặc “không”. 5 Trọng số liên kết: Đây là thành phần rất quan trọng của một ANN, nó thể hiện mức độ quan trọng, độ mạnh của dữ liệu đầu vào đối với quá trình xử lý thông tin chuyển đổi 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 các trọng số của các dữ liệu đầu vào để có được kết quả mong muốn. Hàm tổng: Tính tổng trọng số của tất cả các đầu vào được đưa vào mỗi nơ- ron. Hàm tổng của một nơ-ron đối với n đầu vào được tính theo công thức sau: 𝑛 𝑌 = ∑ 𝑋𝑖 𝑊𝑖 𝑖=1 (1) Hàm chuyển đổi: Hàm tổng của một nơ-ron cho biết khả năng kích hoạt của nơ-ron đó còn gọi là kích hoạt bên trong. Các nơ-ron này có thể sinh ra một đầu ra hoặc không trong mạng ANN, nói cách khác rằng có thể đầu ra của một nơ-ron có thể được chuyển đến lớp tiếp trong mạng nơ-ron theo hoặc không.
Mối quan hệ giữa hàm tổng và kết quả đầu ra được thể hiện bằng hàm chuyển đổi. Việc lựa chọn hàm chuyển đổi có tác động lớn đến kết quả đầu ra của mạng ANN. Hàm chuyển đổi phi tuyến được sử dụng phổ biến trong mạng ANN là sigmoid hoặc tanh. 1 Hàm Sigmoid: 𝑓(𝑧) = 1 + exp(−𝑧) (2) 𝑒 𝑧 − 𝑒 −𝑧 Hàm Tanh: 𝑓(𝑧) = tanh(𝑧) = 𝑧 𝑒 + 𝑒 −𝑧 Trong đó, hàm tanh là phiên bản thay đổi tỉ lệ của sigmoid , tức là khoảng giá trị đầu ra của hàm chuyển đổi thuộc khoảng [-1, 1] thay vì [0,1] nên chúng còn gọi là hàm chuẩn hóa.
Kết quả xử lý tại các đầu ra của nơ-ron đôi khi rất lớn, vì vậy hàm chuyển đổi được sử dụng để xử lý đầu ra này trước khi chuyển đến lớp tiếp theo. Đôi khi thay vì sử dụng hàm chuyển đổi, người ta sử dụng giá trị ngưỡng để kiểm soát các đầu ra của các nơ-ron tại một lớp nào đó trước khi chuyển các đầu ra này đến các lớp tiếp theo. 6 Nếu đầu ra của một nơ-ron nào đó nhỏ hơn giá trị ngưỡng thì nó sẽ không được chuyển đến lớp tiếp theo. Mạng nơ-ron của chúng ta dự đoán dựa trên lan truyền thẳng là các phép nhân ma trận cùng với hàm kích hoạt để thu được kết quả đầu ra.
Nếu đầu vào x là vector 2 chiều thì ta có thể tính kết quả dự đoán bằng công thức sau: y1 = 𝑥𝑊1 + 𝑏1 yT = tanh(y1) (3) y2 = 𝑎1𝑊2 + 𝑏2 yT = 𝑦̂ = 𝑠𝑜𝑓𝑡𝑚𝑎𝑥(y2) Trong đó, y𝑖 là đầu vào của tầng thứ 𝑖, YT là đầu ra của tầng thứ 𝑖 sau khi áp dụng hàm kích hoạt. 𝑊1, 𝑏1, 𝑊2, 𝑏2 là các thông số cần tìm của mô hình mạng nơ-ron. Huấn luyện để tìm các thông số cho mô hình tương đương với việc tìm các thông số 𝑊1, 𝑏1, 𝑊2, 𝑏2, sao cho độ lỗi của mô hình đạt được là thấp nhất. Ta gọi hàm độ lỗi của mô hình là hàm suy hao.
Nếu ta có N dòng dữ liệu huấn luyện và C nhóm phân lớp, khi đó hàm suy hao giữa giá trị dự đoán 𝑦̂ và 𝑦 tính như sau: 1 𝐿(𝑦, 𝑦̂) = − ∑ ∑ 𝑦𝑛,𝑖 𝑙𝑜𝑔𝑦̂𝑛,𝑖 (4) 𝑁 𝑛∈𝑁 𝑖∈𝐶 Ý nghĩa công thức trên nghĩa là: lấy tổng trên toàn bộ tập huấn luyện và cộng dồn vào hàm loss nếu kết quả phân lớp sai. Độ dị biệt giữa hai giá trị 𝑦̂ và 𝑦 càng lớn thì độ lỗi càng cao. Mục tiêu của chúng ta là tối thiểu hóa hàm lỗi này. Ta có thể sử dụng phương pháp giảm độ dốc để tối tiểu hóa hàm lỗi.
Có hai loại giảm độ dốc, một loại với tốc độ học cố định được gọi là giảm độ dốc hàng loạt, loại còn lại có tốc độ học thay đổi theo quá trình huấn luyện được gọi là giảm độ dốc ngẫu nhiên. Phương pháp giảm độ dốc cần các đường dốc là các vector có được bằng cách 𝜕𝐿 𝜕𝐿 𝜕𝐿 𝜕𝐿 lấy đạo hàm của hàm suy hao theo từng thông số 𝜕𝑊1,𝜕𝑏1 , 𝜕𝑊2, 𝜕𝑏2. Để tính các đường 7 dốc này, ta sử dụng thuật toán lan truyền ngược. Đây là cách hiệu quả để tính đường dốc khởi điểm từ lớp đầu ra.
Áp dụng lan truyền ngược ta có các đại lượng: 𝛿3 = 𝑦 − 𝑦̂ 𝛿2 = (1 − 𝑡𝑎𝑛ℎ2 𝑧1 ) ∗ 𝛿3 𝑊2𝑇 𝜕𝐿 = 𝑎1𝑇 𝛿3 𝜕𝑊2 𝜕𝐿 (5) = 𝛿3 𝜕𝑏2 𝜕𝐿 = 𝑥 𝑇 𝛿2 𝜕𝑊1 𝜕𝐿 = 𝛿2 𝜕𝑏1 1.2 Các thành phần cơ bản của mạng nơ-ron nhân tạo 1.1 Đơn vị xử lý Còn được gọi là một nơ-ron hay một nút, thực hiện một công việc rất đơn giản: nó 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à sử dụng chúng để tính tín hiệu ra sẽ được lan truyền sang các đơn vị khác.3 Đơn vị xử lý 8 Trong đó: xi : các đầu vào wji : các trọng số tương ứng với các đầu vào θj : độ lệch aj : đầu vào mạng zj : đầu ra của nơron g(x): hàm chuyển (hàm kích hoạt). Trong một mạng nơron có ba kiểu đơn vị: - Các đơn vị đầu vào nhận tín hiệu từ bên ngoài. - Các đơn vị đầu ra gửi dữ liệu ra bên ngoài. - Các đơn vị ẩn, tín hiệu vào và tín hiệu ra của nó nằm trong mạng.
Mỗi đơn vị j có thể có một hoặc nhiều đầu vào: x0, x1, x2, xn, nhưng chỉ có một đầu ra zj. 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ó.2 Hàm kết hợp Mỗi một đơn vị trong một mạng kết hợp các giá trị đưa vào nó thông qua các liên kết với các đơn vị khác, sinh ra một giá trị gọi là đầu vào mạng. Hàm thực hiện nhiệm vụ này gọi là hàm kết hợp, được định nghĩa bởi một luật lan truyền cụ thể. Trong phần lớn các mạng nơron, chúng ta giả sử rằng mỗi một đơn vị cung cấp một bộ cộng như là đầu vào cho đơn vị mà nó có liên kết.
Tổng đầu vào đơn vị j đơn giản chỉ là tổng trọng số của các đầu ra riêng lẻ từ các đơn vị kết nối cộng thêm ngưỡng hay độ lệch θj : 𝑎𝑗 = ∑𝑛𝑖=1 𝑤𝑗𝑖 𝑥𝑖 + θj (6) Trường hợp wji > 0, nơ-ron được coi là đang ở trong trạng thái kích thích. Tương tự, nếu như wji < 0, nơ-ron ở trạng thái kiềm chế. Chúng ta gọi các đơn vị với luật lan truyền như trên là các đơn vị sigma. Trong một vài trường hợp người ta cũng có thể sử dụng các luật lan truyền phức tạp hơn.
Một trong số đó là luật sigma-pi, có dạng như sau: 9 𝑎𝑗=∑𝑛𝑖=1 𝑤𝑗𝑖 ∏𝑚 𝑘=1 𝑥𝑖𝑘 +θj (7) Rất nhiều hàm kết hợp sử dụng một "độ lệch" hay "ngưỡng" để tính đầu vào mạng tới đơn vị. Đối với một đơn vị đầu ra tuyến tính, thông thường, θj được chọn là hằng số và trong bài toán xấp xỉ đa thức θj = 1.3 Hàm kích hoạt Phần lớn các đơn vị trong mạng nơ-ron chuyển đầu vào mạng bằng cách sử dụng một hàm vô hướng gọi là hàm kích hoạt, kết quả của hàm này là một giá trị gọi là mức độ kích hoạt của đơn vị. Loại trừ khả năng đơn vị đó thuộc lớp ra, giá trị kích hoạt được đưa vào một hay nhiều đơn vị khác. Các hàm kích hoạt thường bị ép vào một khoảng giá trị xác định, do đó thường được gọi là các hàm bẹp.
Các hàm kích hoạt hay được sử dụng là: * Hàm đồng nhất (8) 𝑔(𝑥) = 𝑥 Nếu coi các đầu vào là một đơn vị thì chúng sẽ sử dụng hàm này. Đôi khi một hằng số được nhân với đầu vào mạng để tạo ra một hàm đồng nhất.