Thuật Toán Trong ChatGPT (phần 5): Mạng Nơ Ron Nhân Tạo
1. So Sánh
Mạng nơ ron (Neural network) là mô hình tính toán các giá trị input để cho ra một kết quả output, dựa trên việc mô phỏng hoạt động của hệ thần kinh trong bộ não con người. Vỏ não chứa 6 lớp nơ-ron, bắt đầu với lớp I liên tiếp với bề mặt não và mở rộng sâu dần vào trong đến lớp VI. Các nơ-ron trong mỗi lớp thực hiện các chức năng khác nhau.
Tương tự như vậy mạng nơ ron chứa các lớp (layer), mỗi lớp chứa các nơ ron. Ví dụ dưới đây là một mạng nơ ron 3 lớp, tiếp nhận các tín hiệu đầu vào có giá trị x1, x2 rồi phân tích qua 2 lớp ẩn (hidden layers), sau đó xuất kết quả ra ở lớp cuối cùng với các giá trị y1, y2.
Hãy cùng hình dung một tình huống mô phỏng bộ não xử lý thông tin về âm thanh, mà ở đó x1 là giá trị tần số âm thanh, x2 là giá trị cường độ âm thanh. Bộ não dựa trên 2 giá trị này để đưa ra giá trị y1 là số lượng nước mắt tiết ra, và y2 là số lượng nước bọt tiết ra.
2. Phân tích
Chúng ta cùng phân tích xử lý của mạng nơ ron với ví dụ đã nêu ở trên.
2-1 Biến Đổi Tuyến Tính
Lớp đầu tiên (layer 1) bao gồm 2 nơ ron như đã nêu, và có thêm 1 nơ ron biểu thị cho sự sai số của tín hiệu (bias), và được ký hiệu như hình dưới đây.
Cường độ dòng điện kích thích nơ ron thứ 1 của lớp thứ 1 được tính như sau:
Tất cả các cường độ dòng điện kích thích các nơ ron ở lớp thứ 1 có thể được biểu diễn bằng phép nhân ma trận như dưới đây:
Trong đó:
2-2 Biến Đổi Phi Tuyến Tính
Chúng ta đã sử dụng phép biến đổi tuyến tính để tính toán ra cường độ dòng điện a kích hoạt mỗi nơ ron. Tiếp theo chúng ta sẽ dùng phép biến đổi phi tuyến tính, thông qua hàm kích hoạt h(), để tính ra giá trị output z của mỗi nơ ron, trong đó công thức tổng quát là z=h(a). Hiện nay hàm kích hoạt được sử dụng phổ biến nhất là hàm số ReLU được định nghĩa như sau:
Hình dưới đây mô tả xử lý biến đổi này cho tất cả các nơ ron của lớp thứ 1:
2-3 Tiếp Nối Các Lớp
Các giá trị output của lớp thứ 1 sẽ tiếp tục hành trình xử lý để trở thành giá trị input của lớp thứ 2 để tính toán ra cường độ dòng điện kích thích các nơ ron của lớp 2 như mô tả bởi hình dưới đây:
2-4 Kết Quả
Ở ví dụ này chúng ta đã sử dụng 2 lớp phân tích (hidden layers) để cho ra kết quả ở lớp cuối cùng (output layer) với 2 giá trị y1 và y2.
Ở lớp kết quả cuối cùng này thì hàm kích hoạt được sử dụng khác với hàm kích hoạt ở các lớp phân tích trước. Có hai loại hàm kích hoạt thường được sử dụng ở lớp kết quả cuối cùng này tuỳ theo từng thể loại kết quả:
(1) Với loại kết quả là các giá trị hồi quy, ví dụ như ở đây thì input là giá trị cường độ âm thanh và giá trị tần số âm thanh, muốn cho ra output là giá trị lượng nước mắt và nước bọt tiết ra, thì hàm kích hoạt ở output layer thường được dùng là hàm Identity: I(x) = x
Hàm Identity là hàm xuất ra những gì nó nhận được mà không thay đổi gì, tín hiệu đầu vào input cứ thế được giữ nguyên để thành tín hiệu đầu ra, như hình dưới đây. Quá trình chuyển đổi bằng hàm Identity cũng giống như hàm kích hoạt trong các lớp ẩn(hidden layer) và được biểu hiện bằng một mũi tên duy nhất.
(2) Với loại kết quả là các giá trị phân loại, ví dụ như ở đây thì input là giá trị cường độ âm thanh và giá trị tần số âm thanh, muốn cho ra output là một tên cảm xúc trong danh sách các loại cảm xúc {Buồn(y1), Vui(y2), Giận(y3), Lo(y4), Sợ(y5), Không cảm xúc(y6)}, thì hàm kích hoạt ở output layer thường được dùng là hàm Softmax dưới đây. Kết quả phân loại sẽ là tên cảm xúc tương ứng với giá trị y lớn nhất.
exp(x) là hàm số mũ ex (e là hằng số Euler có giá trị bằng 2,7182…). Ở đây, giả sử rằng có tổng cộng n lớp đầu ra, thì công thức tính yk ở trên là cho đầu ra thứ k. Tử số của hàm softmax là hàm mũ của tín hiệu đầu vào ak, và mẫu số là tổng các hàm mũ của tất cả các tín hiệu đầu vào. Hàm softmax có thể được biểu diễn như trong hình bên dưới. Như trong hình, đầu ra softmax được kết nối bằng các mũi tên từ tất cả các tín hiệu đầu vào. Như có thể thấy được từ mẫu số của công thức trên, mỗi nơron đầu ra sẽ bị ảnh hưởng bởi tất cả các tín hiệu đầu vào.
3. Quan Điểm
Đứng trên quan điểm của một nhà thần kinh học, qua nội dung phân tích ở trên chúng ta đã thấy một sự tương quan giữa bộ não con người và mạng nơ ron, bộ não con người như thể được tích hợp sẵn các chức năng để Decode các tín hiệu đầu vào rồi Analyze chúng để cuối cùng cho ra các tín hiệu mệnh lệnh truyền tới các bộ phận khác của cơ thể, tương tự như vậy mạng nơ ron mô phỏng chức năng Decode tín hiệu của bộ não để biến đổi tuyến tính các tín hiệu đầu vào thành cường độ dòng điện kích thích, rồi sau đó thực hiện phép biến đổi phi tuyến tính để biến cường độ dòng điện kích thích thành kết quả output của nơ ron.
Đứng trên quan điểm của một nhà toán học, thì bộ não con người cũng như mạng nơ ron nhân tạo hoạt động giống như một Hàm số, nhận các tín hiệu input đầu vào x, thực hiện các phép biến đổi f(x), để cuối cùng cho ra kết quả output y = f(x).
Để kiến thiết nên được một mạng nơ ron, chúng ta cần tìm ra hàm số đó, tức là dựa trên các cặp giá trị (input, output) đang có trong cơ sở dữ liệu để hình thành nên một hàm số mô phỏng mối quan hệ giữa các giá trị input và output. Sau khi đã hình thành nên được hàm số mô phỏng đó rồi thì chúng ta có thể sử dụng nó để dự đoán kết quả của một giá trị input chưa có trong cơ sở dữ liệu sẽ cho ra output như thế nào. Ví dụ như khi đã hình thành nên được hàm số mô phỏng mối quan hệ giữa input là âm thanh với output là tên cảm xúc như ở ví dụ trên, thì chúng ta có thể dự đoán ra được một âm thanh mới chưa từng được nghe sẽ gây ra cảm xúc gì cho con người. Quá trình hình thành nên hàm số mô phỏng đó được gọi là Learning. Hãy đón đọc bài viết tiếp theo để biết được về quá trình hình thành nên hàm số mô phỏng này, hay nói cách khác là quá trình learning của mạng nơ ron được thực hiện như thế nào.