Mô hình neural 2 lớp

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 32)

Đầu vào

Lớp 1 (lớp ẩn)

Lớp 2 (lớp ra) a1 = f1 (W1 p + b1) a2 = f2 (W2 p + b2)

Theo hình vẽ trên mạng có R đầu vào, có S1 neural ở lớp thứ nhất, S2 neural ở lớp thứ hai. Đầu ra của các lớp trước là đầu vào của lớp sau.lớp thứ hai có đầu vào gồm S1 phần tử trong vectơ ra a1, có ma trận W2 với kích thước S2 x S1. Lớp cuối cùng đưa ra kết quả của mạng gọi là lớp ra. Các lớp còn lại gọi là các lớp ẩn. Mạng trên cớ một lớp ẩn (lớp 1) và lớp ra (lớp 2). Mạng nhiều lớp có khả năng lớn hơn mạng 1 lớp. Ví dụ mạng hai lớp với hàm truyền sigmoid ở lớp ẩn, hàm truyền tuyến tính tại lớp ra thì có thể được huấn luyện để xấp xỉ bất cứ hàm phi tuyến nào. Nhưng mạng một lớp không có khả năng này. Tùy vào từng bài toán cụ thể mà ta lựa chọn số đầu vào, số neural trên lớp ra của mạng. Ví dụ nếu

ta có 4 biến được sử dụng là đầu vào thì sẽ có mạng với 4 đầu vào, nếu có 2 tham số ra thì trên lớp ra của mạng sẽ có 2 neural ra tương ứng với 2 tham số ra đó. Dạng của hàm truyền tại lớp ra cũng phụ thuộc vào đặc tính của biến ra, Chẳng hạn nếu biến ra có giá trị nằm trong khoảng [-1,1] thì hàm truyền hard limit có thể được chọn cho các neural trên lớp ra.

Như vậy, đối với mạng neural một lớp thì kiến trúc mạng được thiết kế dễ dàng tùy thuộc vào bài toán. Nhưng đối với mạng neural một lớp thì kiến trúc mạng được thiết kế dễ dàng tùy thuộc vào bài toán. Nhưng đối với mạng neural nhiều lớp (có ít nhất 1 lớp ẩn) thì vấn đề tìm ra số lớp ẩn và số neural trên từng lớp ẩn là rất khó. Đây vẫn là lĩnh vực đang được nghiên cứu. Trong thực tế chỉ dùng 1 đến 2 lớp ẩn. Trường hợp dùng 3 hay 4 lớp là rất hiếm. Đối với mỗi neural có thể có hoặc không có hệ số mẫu bias b. Hệ số này tạo thêm cho mạng một biến phụ, do đó mạng có nhiều năng lực hơn so với mạng không có hệ số bias. Ví dụ đơn giản neural không có hệ số bias sẽ cho kết quả net input n là 0 nếu đầu vào p là 0. Điều này không tốt và có thể tránh được nếu neural có hệ số bias.

1.2.7.3. Cơ chế huấn luyện của mạng neural MLP

Năm 1986, thuật toán huấn luyện cho mạng MLP được đưa ra bởi Rumelhart và McClelland. Nguyền lý của luật học này là việc lan truyền ngược sai số còn gọi là lan truyền ngược độ nhạy (backpropagating the sensitivites) từ lớp ra trở lại các lớp ẩn và đến đầu vào mạng từ đó tìm cách hiệu chỉnh ma trận trọng số và các hệ số bias để tối thiểu hoá sai số trung bình bình phương (mean square error). Các nghiên cứu và thực nghiệm cho thấy rằng: phương pháp học có giám sát với thuật toán lan truyền ngược sai số là phương pháp huấn luyện phổ biến và hiệu quả đối với mạng neural nhiều tầng truyền thẳng MLP áp dụng trong các bài toán dự báo [3]. Việc huấn luyện mạng với thuật toán lan truyền ngược sai số gồm hai pha ngược chiều nhau: quá trình truyền thẳng (lan truyền xuôi) và quá trình lan truyền ngược. Với tập mẫu huấn luyện mạng {p1, t1} ,{ p2, t2} , ...., {pQ, tQ} trong đó là đầu vào ra đích của mạng. Khi mẫu pq được lan truyền qua mạng và cho ra tín hiệu đầu ra là aq, thuật toán sẽ điều chỉnh các tham số của mạng để tối thiểu hoá sai số bình phương trung bình.

F(x)= E[e2] = E [ (t -a)2 ] (1.1)

với x là vectơ trọng số và hệ số bias của mạng được viết như sau:

Khi mạng có nhiều đầu ra thì (1.1) được viết dưới dạng vectơ như sau: F(x)= E[eTe] = E [ (t -a)T(t-a) ]

đây là trị trung bình của sai số bình phương và thực tế là không tính được mà chỉ có thể xấp xỉ bởi:

Mục tiêu của huấn luyện mạng là nhằm điều chỉnh W là b sao cho đạt giá trị nhỏ nhất. Gọi là hàm chất lượng của mạng (performance index). Các bước của quy trình huấn luyện mạng MLP.

Chuẩn bị tập mẫu đầu vào dưới dạng {pi, ti} trong đó xi là đầu vào cho mạng và ti là giá trị đầu ra mong muốn tương ứng với pi (còn gọi là giá trị mục tiêu).

 Các bước thực hiện

- Bước 1: Khởi tạo ban đầu các giá trị , đặt dữ liệu đầu vào {pi, ti} lan truyền giá trị qua các neural ở các lớp từ lớp ẩn đầu tiên cho đến lớp cuối cùng.

- Bước 2: Tính giá trị lỗi ở lớp ra, kiểm tra giá trị lỗi có nhỏ hơn ngưỡng không đồng thời kiểm tra đầu ra của mạng và ti có trùng nhau không nếu đúng, nhẩy tới B6 đồng thời tăng số mẫu nhận dạng đúng trong tập mẫu lên 1. Còn sai thì thực hiện B3.

- Bước 3: Tính toán lỗi và lan truyền ngược các giá trị lỗi từ lớp ra cho đến lớp ẩn đầu tiên.

- Bước 4: Tính lại trọng số liên kết từ lớp ẩn đầu tiên cho đến lớp ra. - Bước 5: cộng thêm giá trị lỗi của mẫu pi vào giá trị tổng lỗi và đồng thời tăng số mẫu chưa nhận dạng đúng lên 1.

đúng làm B7.

- Bước 7: Kiểm tra số mẫu nhận dạng đúng = số mẫu trong tập thì kết thúc việc học ngược lại thì quay lại B1 bắt đầu học với lần tiếp theo.

Ngoài ra thuật toán dừng khi đã hết số lần học hoặc tỉ lệ lỗi của các mẫu chưa nhận dạng đúng nhỏ hơn ngưỡng cho phép. Trong quá trình truyền thẳng các tham số mạng là cố định, ngược lại trong quá trình lan truyền ngược các tham số này được hiệu chỉnh và cập nhật để mạng có thể nhận dạng các mẫu đã được học một cách chính xác. Có nhiều yếu tố ảnh hưởng đến quá trình huấn luyện mạng, đó là: hàm truyền f, hàm giá E, hệ số học η và các tham số khởi tạo. Do đó ta cần lưu ý trong việc lựa chọn các yếu tố này sao cho phù hợp.

Kết thúc một lần đưa tất cả các mẫu huấn luyện qua mạng được gọi là một lần epoch. Quá trình huấn luyện lặp cho đến khi sai số ở đầu ra mạng đạt đến một giá trị chấp nhận được (nhỏ hơn ngưỡng sai số ta định ban đầu). Thường thì thủ tục học của mạng lan truyền ngược sai số khá lâu. Nó đòi hỏi hàng nghìn hoặc hàng chục nghìn epoch mới có thể hội tụ tới lời giải. Nếu các tham số không đúng, thủ tục học có thế không hội tụ.

1.2.7.4. Các nhân tố của quá trình học lan truyền thẳng

Trong phần này chúng ta sẽ đề cập đến các nhân tố quan trọng ảnh hưởng tới tốc độ hội tụ, tốc độ học, các cực tiểu cục bộ, khả năng dự báo của mạng lan truyền ngược sai số. Các nhân tố đó là:

+ Khởi tạo các trọng số. + Hằng số học Anpha.

+ Hàm giá (sự đánh giá sai số trên lớp ra). + Các luật cập nhật.

+ Tập mẫu học và sự báo.

+ Cấu trúc mạng (số lớp, số neural trên mỗi lớp). + Các hàm biến đổi.

1.2.7.5. Khởi tạo các trọng số

Các giá trị của trọng số được khởi tạo ban đầu của mạng lan truyền ngược sai số ảnh hưởng rất lớn đến tới lời giải cuối cùng. Các trọng số này thường được khởi tạo bằng những số ngẫu nhiên nhỏ. Việc khởi tạo tất cả các trọng số bằng nhau sẽ làm cho việc học của mạng trở nên không tốt. Các trọng số khởi tạo ban đầu cũng không được quá lớn vì nếu không hàm sigmoidal hoặc các hàm dạng này sẽ bị bão hòa ngay từ lúc bắt đầu hoặc bằng 0 hoặc bằng 1. Điều này làm cho hệ thống sẽ bị tắc ngay tại một điểm cục bộ hoặc tại mộ vùng bằng phẳng nào đấy gần ngay tại điểm xuất phát.

Một cách tốt nhất để chọn các trọng số ban đầu là thực hiện một cách tự động bằng chương trình. Giá trị khởi động ban đầu cả các trọng số trên lớp thứ m được chọn ngẫu nhiên trong khoảng [-1/n , 1/n], trong đó n là tổng trọng số có trên lớp m.

1.2.7.6. Hằng số học α (Anpha)

Một nhân tố ảnh hưởng tới hiệu lực và độ hội tụ của giải thuật học lan truyền ngược sai số là hằng số học α . Không có một giá trị duy nhất tốt phù hợp với tất cả các bài toán khác nhau. Hằng số học được chọn bằng thực nghiệm cho mỗi bài toán ứng dụng cụ thể bằng phương pháp thử và sai. Giá trị α lớn làm tăng tốc quá trình hội tụ. Điều này là không thuận lợi vì thủ tục học sẽ kết thúc rất nhanh tại một cực tiểu cục bộ gần nhất. Nếu giá trị của hằng số học quá nhỏ tốc độ hội tụ của giải thuật lại trở nên rất chậm. Do đó chúng ta cần chọn một giá trị thỏa hiệp giữa tốc độ học và việc ngăn chặn về các cực tiểu cục bộ. Các giá trị của hằng số học nằm trong khoảng 10-3 và 10 đã được sử dụng thành công cho rất nhiều bài toán cụ thể. Nói chung giá trị của hằng số học nằm trong khoảng [ 0.3 , 0.6] được chứng minh bằng thực nghiệm là khá tốt cho việc lựa chọn ban đầu của quá trình tìm kiếm hằng số học thích hợp.

Một vấn đề nảy sinh khác là các giá trị tốt của hằng số học tại thời điểm bắt đầu của quá trình học có thể là không tốt đối với giai đoạn sau của quá trình học. Do đó một phương pháp hiệu quả hơn là sử dụng hằng số học thích nghi. Phương pháp trực giác là kiểm tra xem liệu các trọng số mới đã làm hàm giảm giá chưa. Nếu chưa khi đó quá trình hiệu chỉnh các trọng số đã phóng quá xa, lúc này hằng số học α cần phải

được giảm đi. Mặt khác nếu vài vòng lặp liên tiếp làm giảm hàm giá, khi đó chúng ta cần phải thử tăng giá trị của hàm số học. Bằng biểu thức, hằng số học thích nghi cần được cập nhật theo quy tắc sau:

∆α = +a nếu ∆E "luôn" nhỏ hơn 0 ∆α = -bα nếu ∆E >0

∆α = 0 trường hợp còn lại

Trong đó ∆E là thay đổi hàm giá, a,b là các hằng số dương. Ý nghĩa của việc "luôn" nhỏ hơn 0 được đánh giá dựa trên k lặp liên tiếp.

1.2.7.7. Tập mẫu học và dự báo

Chúng ta luôn yêu cầu tập mẫu học phải đủ và đúng. Tuy nhiên không có một thủ tục hay một nguyên tắc chọn mẫu học phù hợp cho mọi trường hợp. Một nguyên tắc rút ra từ kinh nghiệm là tập mẫu học phải bao phủ toàn bộ không gian của tín hiệu vào và sau đó sau quá trình học của véctơ vào lời giải nên chọn một cách ngẫu nhiên từ tập mẫu học. Một cách chính xác hơn, giả định là không gian tín hiệu vào được phân chia một cách tuyến tính thành M các vùng riêng biệt với ranh giới là các siêu phẳng (hyperplans). Gọi P là giới hạn dưới của số mẫu học trong tập mẫu. Nếu chọn P sao cho tỉ số P/M lớn hơn một rất nhiều có thể cho phép mạng trong quá trình học phân biệt được các vùng tách rời ra. Trong một số trường hợp việ tỉ lệ hóa hay chuẩn hóa mẫu học sẽ giúp cho việc học của mạng tốt hơn nhiều. Đối với các mạng neural lan truyền ngược sai số sử dụng hàm biến đổi là sigmoidal khi đó vector vào và vector ra lời giải cần được tỷ lệ hóa một cách đúng đắn.

Mạng Neural nhiều lớp lan truyền ngược sai số rất tốt cho việc dự báo hay việc sản sinh một lời giải. Một mạng được gọi là dự báo tốt khi nó nội suy các tín hiệu vào chưa biết một cách hợp lý. Nói một cách khác là mạng có khả năng nội suy tốt. Một mạng neural lan truyền ngược sai số với số lượng các trọng số lớn (số tham số học lớn) với một tập mẫu học có một số lượng mẫu học nhất định có thể học rất tốt. Hiện tượng này thường được gọi là quá trình học quá (overtrain or overfiting). Với số lượng trọng số quá nhỏ, mạng neural có thể không học được

các mẫu học và cho kết quả rất tồi đối với tập kiểm tra. Để cải thiện khả năng học và dự báo, chúng ta phải làm cho mạng ít nhạy cảm với những thay đổi nhỏ của tín hiệu vào. Nói một cách khác là đối với một thay đổi nhỏ của tín hiệu vào, các thành phần của tín hiệu ra không thay đổi. Điều này có thể được thực hiện bằng việc thêm vào tập mẫu học những thay đổi nhỏ của tín hiệu vào vẫn giữ nguyên giá trị véctơ lời giải. Điều này có một bất lợi nhỏ là sẽ kéo dài thời gian tính toán trong quá trình học. Một cách khác là biến đổi dạng của hàm giá trong giải thuật lan truyền ngược sai số. Hàm giá mới là tổng của hàm giá được định nghĩa trong phương trình sau và một số hạng là hàm jacobien của hàm giá:

Trong đó xj là thành phần thứ j của vector vào, lý do căn bản cho giải pháp trên là tín hiệu vào thay đổi nhỏ, hàm giá mới sẽ không thay đổi. Để tối thiểu hóa hàm giá mới, các tác giả Drucker và LeCum đã xây dựng một mạng lan truyền ngược kép. Mạng lan truyền ngược kép: một lan truyền hai tín hiệu sai số 𝜕/w jE và một lan truyền tín hiệu 𝜕/w bjE . Kỹ thuật này đã cải thiện rõ rệt khả năng dự báo của mạng neural nhiều lớp lan truyền ngược sai số.

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.

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 32)

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

(63 trang)