3.2. Cơ sở lý thuyết về các mô hình học sâu
3.2.3. Cơ chế lan truyền tín hiệu trong mạng nơ ron
a. Luật Perception (Perception rule)
Perceptron được phát triển dựa trên một mạng nơ ron nhân tạo được McCulloch và Pitts đề xuất vào năm 1943 có tên “Threshold logic unit”. Vì vậy, lý thuyết cơ chế lan truyền tín hiệu trong mạng nơ ron được nói đến trong nghiên cứu này chủ yếu là áp dụng trên mạng nơ ron đơn giản kể trên. Một cách tổng quát, ý tưởng của việc huấn luyện mạng nơ ron là dựa trên việc đánh giá các vector trọng số và các giá trị ngưỡng. Việc đánh giá này được thực hiện thông qua các vòng lặp. Tại mỗi một vòng lặp, mạng nơ ron sử dụng các luật học để cập nhật trọng số và giá trị ngưỡng. Quá trình lặp đi lặp lại này được gọi là huấn luyện mạng nơ ron. Tập các mẫu đưa vào huấn luyện được gọi là tập học.
Để đơn giản và dễ hình dung, chúng ta sẽ lấy một ví dụ về học giám sát. Giả sử mạng nơ ron nhận các tín hiệu đầu vào có giá trị 𝑥1, 𝑥2… 𝑥𝑛. Với 𝑛 tín hiệu đầu vào, chúng ta có 𝑛 giá trị trọng số tương ứng cần hiệu chỉnh 𝑤1, 𝑤2, … , 𝑤𝑛. Một hàm activation 𝑎 với giá trị ngưỡng được định nghĩa từ trước nhằm phục vụ quá trình học của mạng nơ ron. Giả sử hàm activation là một hàm linear, ta có:
𝑎 = 𝑤1𝑥1+ 𝑤2𝑥2+ ⋯ + 𝑤𝑛𝑥𝑛 PT 3.66
Giả sử đầu ra 𝑦 gồm hai giá trị, được số hóa đưa về 0 hoặc 1. Gọi 𝜃 là giá trị ngưỡng của hàm activation. Các tín hiệu số sau khi đi qua hàm activation sẽ cho ra kết quả như sau:
𝑦 = {1 𝑛ế𝑢 𝑎 ≥ 𝜃 0 𝑛ế𝑢 𝑎 < 𝜃
39
Để đơn giản, chúng ta đưa các giá trị trọng số và giá trị mẫu đầu vào về dạng ma trận. Gọi 𝒗 là vector cột các giá trị đầu vào 𝑥. Như vậy, PT 3.66 có thể viết thành 𝑎 = 𝒘. 𝒗. Giá trị ngưỡng được thiết lập ngay từ ban đầu và có thể xem như nó là một trọng số. Vì vậy, với vector 𝒘 có n chiều ban đầu, nay sẽ trở thành
vector (n+1) chiều. Như vậy, việc đánh giá giá trị trọng số và giá trị ngưỡng ban đầu bây giờ sẽ chỉ quy về cập nhật một vector trọng số duy nhất với. Quay trở lại với ví dụ trên, để dễ hình dung, ta sẽ chọn giá trị ngưỡng 𝜃 = 0. Như vậy,
{𝒘. 𝒗 ≥ 0 ⟹ 𝑦 = 1 𝒘. 𝒗 < 0 ⟹ 𝑦 = 0
Theo lý thuyết tích vector vô hướng, 𝒘. 𝒗 = 0 khi hai vector là trực giao với nhau. Vector trọng số sẽ được cập nhật thường xuyên qua mỗi vòng lặp nhằm thỏa mãn giá trị đầu ra 𝑦. Tích của hai vector phụ thuộc vào giá trị cos(𝒘⃗⃗⃗ , 𝒙⃗⃗ ). Do vậy, để cập nhật giá trị trọng số, chúng ta cần điều chỉnh hướng xoay của 𝒘⃗⃗⃗ qua mỗi vòng lặp thông qua một vector 𝒘⃗⃗⃗⃗ ′ có công thức như sau:
𝒘′ = 𝒘 + 𝛼𝒗 PT 3.67
Hoặc
𝒘′ = 𝒘 − 𝛼𝒗 PT 3.68
Giá trị 𝛼 được chọn sao cho 0 < 𝛼 < 1, được gọi là learning rate. Việc lựa chọn giá trị 𝛼 còn phụ thuộc vào kinh nghiệm của người nghiên cứu, không được quá bé hoặc quá lớn. Để trực quan hóa quá trình cập nhật trọng số, chúng ta quan sát hình bên dưới mô tả quá trình cập nhật tích 𝒘. 𝒗 từ giá trị âm về dương.
Và ngược lại, quá trình cập nhật tích 𝒘. 𝒗 từ dương sang âm được mô tả như hình bên dưới.
Hình 3.13 Cập nhật giá trị trọng số y từ 0 về 1 [36, p. 66]
40
Nếu gọi 𝑡 là giá trị mục tiêu cần tính toán đầu ra, thì độ biến thiên vector trọng số được cập nhật như sau
∆𝒘 = 𝛼(𝑡 − 𝑦)𝒗 PT 3.69
PT 3.69 được gọi là luật perception. Trong trường hợp mạng nơ ron gồm nhiều lớp, việc cập nhật trọng số theo công thức PT 3.69 sẽ có nhiều khó khăn. Chính vì vậy, chúng ta cần một phương pháp để xác định trọng số một cách thuận tiện hơn – Thuật toán gradient descent, được trình bày chi tiết ở mục tiếp theo.
b. Gradient descent
Delta rule xác định trọng số cần tìm thông qua việc tối ưu hóa hàm lỗi trên tổng tập huấn luyện, với tham số chính là vector trọng số cần tìm.
Gọi hàm lỗi cần tối thiểu là 𝑦(𝑥). Chúng ta cần tìm 𝑥0 sao cho
𝑦(𝑥0) ≤ 𝑦(𝑥)
Giả sử giá trị hiện tại của 𝑥 là 𝑥∗. Mục tiêu của chúng ta là xác định hướng di chuyển 𝑥∗sao cho 𝑥∗càng gần vị trí của 𝑥0 càng tốt.
Theo lý thuyết đạo hàm, 𝑥∗ sẽ tiến đến 𝑥0 khi 𝑑𝑦
𝑑𝑥 tiến về 0. Sự thay đổi vị trí của 𝑥∗ sẽ dẫn đến sự thay đổi giá trị của y. Để rõ hơn công thức Delta rule, ta kí hiệu 𝑑𝑦
𝑑𝑥=∆𝑦
∆𝑥
∆𝑦 =∆𝑦 ∆𝑥∆𝑥
Hình 3.14 Cập nhật giá trị trọng số sao cho y từ 1 về 0 [36, p. 67]
Hình 3.15 Quá trình tối ưu hóa hàm lỗi [36, p. 82]
41
Gọi 𝛿𝑦 là sự biến thiên giá trị y sau khi cập nhật hàm lỗi. Giả sử sự biến thiên này xấp xỉ ∆𝑦. Như vậy:
𝛿𝑦 ≈ 𝑑𝑦 𝑑𝑥∆𝑥
Giả sử chúng ta có thể tính được sự chênh lệch ∆𝑥 dựa vào đạo hàm,
∆𝑥 = −𝛼𝑑𝑦 𝑑𝑥 PT 3.70 Với 𝛼 > 0 và đủ nhỏ để 𝛿𝑦 ≈ ∆𝑦 thì 𝛿𝑦 = −𝛼 (𝑑𝑦 𝑑𝑥) 2 PT 3.71
Công thức PT 3.70 đảm bảo 𝑥 luôn di chuyển về hướng tiệm cận giá trị 𝑥∗. Việc lặp đi lặp lại công thức PT 3.70 giúp chúng ta tìm ra được giá trị 𝑥0, và kĩ thuật này được gọi là “Gradient descent”.
c. Ứng dụng gradient descent trong mạng nơ ron
Trong mạng nơ ron nhiều lớp, việc ứng dụng thuật toán gradient descent có chút phức tạp hơn. Gọi hàm lỗi cần tối thiểu hóa là 𝐸 = (𝑤1, 𝑤2… 𝑤𝑛). Dữ liệu 𝒙
đầu vào có thể được chia làm nhiều batch để huấn luyện. Gọi 𝑝 là chỉ số mẫu cho mỗi tập huấn luyện. Như vậy, độ lỗi trong xuyên suốt quá trình học của mạng sẽ được tính bằng tổng lỗi các tập huấn luyện như sau:
𝐸 = 1
𝑁∑ 𝑒𝑝 𝑁
𝑝=1
PT 3.72
Với 𝑒𝑝 là độ lỗi cho mỗi mẫu 𝑝, 𝑡𝑝 là giá trị mục tiêu cần huấn luyện, ta có công thức tính 𝑒𝑝 như sau:
𝑒𝑝 = (𝑡𝑝 − 𝑦𝑝)2 PT 3.73
Vì mạng nơ ron gồm nhiều lớp, các giá trị đầu ra cho mỗi lớp tương ứng với giá trị hàm activation 𝑎𝑝, nên qua mỗi lớp, công thức PT 3.73 có thể được viết lại như sau:
𝑒𝑝 = (𝑡𝑝 − 𝑎𝑝)2 PT 3.74
Để tiện cho quá trình đạo hàm về sau, công thức tính độ lỗi cho mỗi mẫu sẽ được hiệu chỉnh thành:
42
𝑒𝑝 =1
2(𝑡𝑝 − 𝑎𝑝)2 PT 3.75
Áp dụng công thức cập nhật trọng số PT 3.70 và việc phân tích hàm activation 𝑎𝑡 theo 𝑤𝑖 và 𝑥𝑖𝑝, ta có công thức learning rule mới:
∆𝑤𝑖 = 𝛼(𝑡𝑝 − 𝑎𝑝)𝑥𝑖𝑝 PT 3.76
Được đề xuất lần đầu bởi Widrow và Hoff vào năm 1960.