Thuật toán lan truyền ngược sai số của ANN

Một phần của tài liệu Ảnh hưởng của phương pháp shuffle đối với giải thuật tiến hóa vi phân ứng dụng trong dự báo chuỗi thời gian (Trang 38 - 41)

CHƯƠNG I : TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU

1.2. Mạng neural nhân tạo

1.2.8. Thuật toán lan truyền ngược sai số của ANN

1.2.8.1. Khái niệm

Thuâ ̣t toán lan truyền ngược sai số (BP) dựa vào việc khái quát các quy luâ ̣t delta đã được đưa ra bởi Rumelhart (1986) để hiệu chỉnh các tro ̣ng số của các cung liên kết trong quá trình luyện mạng.

Lan truyền ngược là một phương pháp cho phép xác định tập tro ̣ng số tốt nhất của mạng giải một bài toán được cho. Việc áp dụng phương pháp lan truyền ngược là một quá trình lặp đi lặp lại nhiều lần hai tiến trình chính: lan truyền tiến để thực hiện ánh xạ và lan truyền ngược sai số để cập nhâ ̣t các tro ̣ng số.

1.2.8.2. Cấu trúc mạng

Mạng neural lan truyền ngược sai số như đã nói ở phần cấu trúc luôn có một lớp vào và một lớp ra.Số lớp ẩn có thể thay đổi từ 0 đến vài lớp. Đối với một bài

toán cụ thể, số lượng neural trên lớp vào và ra là cố định vì số neural trên lớp vào bằng số biến của vector vào và số neural trên lớp ra bằng số biến của vector lời giải.

Như đã đề cập, đại đa số các mạng neural lan truyền ngược sai số đã được công bố chỉ gồm có 1 lớp ẩn, song kích thước của lớp ẩn này (số lượng neural trên lớp ẩn) là một câu hỏi luôn được đặt ra cho các ứng dụng sử dụng mạng neural lan truyền ngược. Các phân tích chính về vấn đề số lượng neural trên lớp ẩn có lẽ sẽ không thực hiện được bởi tính phức tạp và bản chất không tiền định của các thủ tục học. Do đó kích cỡ của lớp ẩn thường được xác định bằng thực nghiệm. Một chỉ dẫn mang tính chung là đối với những mạng neural có kích thước đáng kể (tín hiệu vào có khoảng hàng trăm hoặc hàng nghìn biến), kích thước của lớp ẩn cần thiết ban đầu chỉ là 1 phân số nhỏ của neural trên lớp vào.

Nếu mạng không có khả năng hội tụ về lời giải, chúng ta cần tăng dần số neural trên lớp ẩn. Nếu mạng có khả năng hội tụ về lời giải, chúng ta cần giảm số lượng neural trên lớp ẩn.

Các tro ̣ng số của mạng là các hệ số của mô hình. Phương pháp giảm gradient được dùng để câ ̣p nhâ ̣t những hệ số này sao cho giảm thiểu sai số của mô hình. Sai số được đo bằng phương pháp sai số trung bình bình phương là phương pháp thường được sử dụng để xây dựng các mô hình. Quy trình huấn luyện của thuật toán lan truyền ngược BP.

Ban đầu tăng tro ̣ng số của các nút kết nối từ i đến j ở bước lan truyền thứ n, Δwij(n) được tính bởi công thức:

Với α và ε là hệ số momen và tốc độ học.

* Bắt đầu tính toán với giá trị ban đầu của các trọng số.Các bước của thuâ ̣t toán như sau:

+ Bước 1: Thực hiện các bước từ 2-9 cho đến khi ngừng các điều kiện là phù hợp.

+ Bước 2: Đối với mỗi cặp luyện của tâ ̣p dữ liệu, tiến hành các bước từ 3-8.

(1) Lan truyền tiến:

+ Bước 3: Mỗi neural đầu vào (Xi, I = 1, 2, …, n) nhâ ̣n tín hiệu đầu vào xi và gửi nó đến tất cả các nút trong lớp kế tiếp (lớp ẩn).

+ Bước 4: Mỗi neural trong lớp ẩn (Zj, j = 1, 2, …, p) cộng tổng các tro ̣ng số của tín hiệu đầu vào.

Zinj = voj + ∑xivij với i = 1, 2, ….,n Với vij các trọng số của cung liên kết.

Voj là giá trị nghiêng.

Hàm hoạt động thì được áp dụng để tính giá trị đầu ra.

Zj = f(Zinj) + Bước 5: Mỗi neural trong lớp xuất (Yk, k = 1, 2, ….,m) cộng tổng các tro ̣ng số của tín hiệu đầu vào.

(2) Lan truyền ngược sai số:

+ Bước 6: Mỗi neuron trong lớp xuất (Yk, k = 1, 2, …, m) tính sai số sử dụng mẫu đích phù hợp với các mẫu luyện đầu vào.

δk = (tk – yk).f(Yink) Tính số hạng hiệu chỉnh trọng số (để câ ̣p nhâ ̣t wij).

+ Bước 7: Mỗi nút trong lớp ẩn (Zj, j = 1, 2, …, p) cộng tổng delta đầu vào (từ các nút trong lớp kế tiếp).

(3) Câ ̣p nhâ ̣t các tro ̣ng số:

+ Bước 8: Mỗi neuron trong lớp xuất, Yk, k = 1, 2, …., m, câ ̣p nhâ ̣t tro ̣ng số (j = 0, 1, …, p).

Mỗi nút ẩn (Zj, j = 1, 2, …, p) câ ̣p nhâ ̣t tro ̣ng số (i = 1, 2, ., n). + Bước 9. Kiểm tra lại nếu các điều kiện ngừng là an toàn.

1.2.8.3. Sự hội tụ của thuật toán huấn luyện mạng

Thuật toán huấn luyện ngược hội tụ đến một giải pháp nào đó mà nó tối thiểu hóa được sai số trung bình bình phương vì cách thức hiệu chỉnh trọng số và hệ số

bias của thuật toán là ngược hướng với vector gradient của hàm sai số trung bình bình phương đối với trọng số.

Ta có thể hình dung phương pháp này như sau: ném 1 quả bóng trên mặt lỗi rồi để nó tự lăn xuống điểm thấp nhất trên mặt lỗi. Tuy nhiên, đối với mạng MLP thì hàm sai số trung bình bình phương thường phức tạp và có nhiều cực trị địa phương nên mặt lỗi sẽ nhấp nhô, có nhiều điểm trũng (các cực trị đựa phương). Do đó, khi quả bóng được thả từ 1 điểm ngẫu nhiên trên mặt lỗi thì nó có thể lăn xuống điểm trũng gần đó nhất và điểm trũng này chưa chắc đã là điểm trũng thấp nhất trên mặt lỗi. Vì thế các phép lặp huấn luyện mạng có thể chỉ đạt đến các cực trị cục bộ của hàm sai số trung bình bình phương mà không đạt đến giá trị cực trị toàn cục. Quá trình huấn luyện sẽ hội tụ như thế nào phụ thuộc vào các điều kiện ban đầu của quá trình huấn luyện. Đặc biệt là việc chọn hệ số học α như thế nào sau từng bước lặp để tăng khả năng hội tụ của mạng.

Như vậy, khi một quá trình huấn luyện theo thuật toán lan truyền ngược hội tụ, ta chưa thể khẳng định rằng nó đã hội tụ đến phương án tối ưu mà mới chỉ đặt ra ngưỡng sai số để đánh giá. Nếu ngưỡng sai số tương đối nhỏ thì có thế dừng quá trình huấn luyện mạng

Một phần của tài liệu Ảnh hưởng của phương pháp shuffle đối với giải thuật tiến hóa vi phân ứng dụng trong dự báo chuỗi thời gian (Trang 38 - 41)

Tải bản đầy đủ (PDF)

(63 trang)