Có nhiều thuật toán lan truyền ngược khác nhau. Cách thực hiện đơn giản nhất là cập nhật trọng số và ngưỡng trực tiếp sao cho hàm hiệu suất giảm nhanh nhất _ gradient có giá trị âm. Mỗi vòng lặp thuật toán được viết lại như sau:
xk+1 = xk - kgk
- 38 - gk: gradient hiện tại.
k : tốc độ học.
Có hai cách thực hiện gradient descent là chế độ incremental và chế độ batch. Trong chế độ incremental, gradient được tính và cập nhật trọng số sau mỗi ngõ vào đưa vào mạng. Trong chế độ batch, tất cả các ngõ vào đưa vào mạng trước khi cập nhật trọng số.
a. Huấn luyện incremental (ADAPT)
Trong chế độ incremental, việc huấn luyện mạng sử dụng hàm adapt. Có
nhiều thông số phải được thiết lập để hướng dẫn huấn luyện ở chế độ incremental. Đầu tiên, hàm net.adaptFcn xác định sử dụng loại hàm huấn luyện. Giá trị mặc
định là hàm adaptwb. Thông số xác định hàm học là net.biases{i,j}.learnFcn,
net.inputWeight{I,j}.learnFcn và net.layerweights{i,j}.learnFcn. Cuối cùng là
thông số xác định số lần huấn luyện net.adaptParam.passes.
b. Hàm gradient descent (LEARNGD)
Đối với thuật toán giảm gradient nhanh nhất, trọng số và ngưỡng di chuyển theo hướng gradient âm của hàm hiệu suất. Với thuật toán này, hàm học là
learngd. Hàm learngd có một thông số học là tốc độ học lr. Tốc độ học càng lớn,
thì bước nhảy càng lớn. Nếu tốc độ học quá lớn, thuật toán sẽ không ổn định. Nếu tốc độ học quá nhỏ, thuật toán sẽ hội tụ lâu.
c. Hàm gradient descent có quán tính (LEARNGD)
Bổ sung cho hàm learngd hội tụ nhanh hơn, mạng feedforward có thể sử
dụng thuật toán learndm _ giảm dốc nhất có quán tính. Quán tính cho phép mạng đáp ứng không chỉ với gradient cục bộ, mà còn theo hướng mới của mặt phẳng sai số. Hoạt động giống bộ lọc thông thấp, moment cho phép mạng bỏ qua các biểu hiện nhỏ trên mặt phẳng sai số.
Moment thay đổi trọng số bằng tổng một phần sự thay đổi trọng số cuối cùng và sự thay đổi mới nhất theo quy luật học backpropagation. Biên độ ảnh hưởng của độ thay đổi trọng số cuối cùng cho phép có là trung bình bằng một hằng số moment,
- 39 -
là số giữa (0,1). Khi moment bằng 0, trọng số thay đổi theo gradient. Khi moment bằng 1, trọng số thay đổi dựa trên sự thay đổi trọng số cũ và bỏ qua giá trị gradient.
d. Huấn luyện batch (TRAIN)
Ở chế độ này sử dụng hàm train, các trọng số và ngưỡng được cập nhật chỉ sau khi toàn bộ tập huấn luyện đã đi qua mạng. Gradient của mỗi mẫu huấn luyện được cộng dồn để xác định độ thay đổi của trọng số và ngưỡng.
e. Chế độ huấn luyện Batch gradient descent (TRAINGD)
Tương đương với hàm learngd trong chế độ này là traingd, thực hiện hàm
huấn luyện giảm dốc nhất chuẩn. Trọng số và ngưỡng được cập nhật theo chiều hướng gradient âm của hàm hiệu suất.
Có bảy thông số huấn luyện đối với hàm traingd là epochs, show, goal,
time, min_grad, max_fail và lr.
f. Chế độ huấn luyện Batch gradient descent với momentum
(TRAINGDM)
Thuật toán này tương đương với learngdm nhưng có hai điểm khác biệt.
Thứ nhất, gradient được tính bằng cách lấy tổng các gradient trong mỗi mẫu huấn luyện, trọng số và ngưỡng chỉ được cập nhật sau khi tất cả các mẫu huấn luyện đi qua mạng.
Thứ hai, nếu hàm hiệu suất mới với số vòng lặp cho trước vượt quá hàm hiệu suất của vòng lặp trước đó hơn max-perf-inc thì trọng số và ngưỡng mới sẽ bị hủy bỏ, hệ số moment cho bằng 0.