CHƯƠNG 2 : CƠ SỞ LÝ THUYẾT
2.4. HỌC SÂU (DEEP LEARNING)
2.4.4. Phương pháp tối ưu
2.4.4.1. Gradient Descent [26]
Huấn luyện mạng giống như dạy con người cách học. Chúng ta đưa ra dữ liệu để mơ mình hóa, nó sẽ dự đốn và phản hồi lại cho chúng ta có phải dự đốn đó là đúng hay không. Việc này sẽ lặp lại đến khi mơ hình chạm đến độ chính xác mà chúng ta mong muốn. Mỗi lần lặp lại, “Optimizers” sẽ cập nhật trọng số để làm cho hàm mất mát là nhỏ nhất. Hàm mất mát đóng vai trị như người hướng dẫn để “optimizer” biết có phải nó đang đi đúng hướng để chạm đến đáy của đồ thị, giá trị vùng nhỏ nhất. Để đạt được điều này, chúng ta phải sử dụng Gradient Descent (GD) hoặc những thay đổi của GD.
GD là một thuật toán tối ưu của máy học, lặp đi lặp lại để giảm giá trị của hàm mất mát. Một vài loại GD thường gặp:
Stochastic gradient descent (SGD)
Batch gradient descent
Mini-batch gradient descent
2.4.4.2. Optimizer: Adam [27]
Adaptive Moment Estimation (Adam) là một tổ hợp của Adagrad, làm việc rất tốt trên những đoạn dóc thưa thớt, với RMSprop, làm viêc tốt trong việc cài đặt trực tuyến và thay đổi. Adam thiết lập một hàm số mũ trung bình cho độ dóc (gradient) để thay đổi “learning rate” thay vì một hằng số như trong Adagrad. Nó giúp giữ trung bình phân rã theo cấp số nhân của “gradient” trước đó.
Thuật toán Adam trước hết cập nhật một hàm số mũ trung bình trượt cho gradient (mt) và bình phương gradient (vt). Siêu tham số (hyper-parameters) β1, β2 ∈ [0, 1) điều khiển tỉ lệ phân rả theo cấp số nhân của trung bình trượt được biểu diễn như sau:
𝑚𝑡 = 𝛽1 ∗ 𝑚𝑡−1+ (1 − 𝛽1) ∗ 𝑔𝑡 (4)
𝜐𝑡 = 𝛽2∗ 𝜐𝑡−1+ (1 − 𝛽2) ∗ 𝑔𝑡2 (5)
Giá trị trung bình trượt được khởi tạo là 0 sẽ dẫn đến việc tính tốn bị lệch xung quanh 0 và đặc biệt là trong thời gian khởi tạo. Xu hướng khởi tạo này có thể dễ dàng bị phản tác dụng dẫn đến ước tính điều chỉnh bị sai lệch.
𝑚̂𝑡 = 𝑚𝑡
1−𝛽1𝑡 (6)
𝜐̂𝑡 = 𝜐𝑡
1−𝛽2𝑡 (7)
Trong đó: 𝑚̂𝑡, 𝜐̂𝑡 là ướt tính điều chỉnh sai lệnh.
Tham số được cập nhật được biểu diễn theo công thức dưới đây:
θ𝑡+1 = 𝜃𝑡− 𝜂∗𝑚̂𝑡
√𝜐̂𝑡+𝜀 (8)