CHƯƠNG 2. CƠ SỞ LÝ THUYẾT
2.1. MẠNG NƠRON NHÂN TẠO
2.1.2. Một đơn vị tính toán trong mạng nơron
Như đã trình bày, mỗi nốt trong mạng nơron nhân tạo được xem như là một đơn vị tính toán hay một đơn vị xử lý thông tin. Một nơron nhân tạo còn được gọi là một nút, một nốt (node), cũng có khi được gọi là một perceptron. Nó cũng có các thành phần, các kết nối và vai trò tương tự một nơron sinh học.
Quá trình tính toán của một nốt trong mạng nơron nhân tạo được minh họa trong Hình 2.4.
Hình 2.4 Quá trình tính toán của một đơn vị tính toán (một nốt)
1Nguồn: http://dms.irb.hr/tutorial/tut_nnets_short.php, ngày 27-11-2012
Chương 2. Cơ sở lý thuyết 11
Một nốtk sẽ nhận một tập dữ liệu đầu vào làx1, x2,…, xp.Sau khi xử lý, tính toán sẽ cho ra một kết quả đầu rayk.Kết quả đầu rayk, thông qua các kết nối, sẽ được chuyển đến một nốt kế tiếp ở tầng tiếp theo như là dữ liệu đầu vào của nốt kế tiếp đó. Mỗi kết nối được đặc trưng bởi một trọng số của riêng nó. Tức là một tín hiệu tại đầu vào xjcủa kết nối j nối với nốt k sẽ được nhân với trọng số kết nốiwkj. Trong đó, k là chỉ số của nơron tại đầu ra của kết nối đang xét, còn jlà chỉ số đầu vào của kết nối. Các trọng số kết nối của một nốt có thể nhận cả các giá trị âm và các giá trị dương.
Mộthàm tổng hợp(summing junction hay sumarization function) dùng để tính tổng các tín hiệu đầu vào của nốt, đã được nhân với các trọng số kết nối tương ứng.
Mộthàm hoạt tính hay hàm kích hoạt(activation function) để giới hạn biên độ đầu ra của nơron. Hàm kích hoạt cũng được xem xét như là một hàm nén. Nó nén (giới hạn) phạm vi biên độ cho phép của tín hiệu đầu ra trong một khoảng giá trị hữu hạn.
Một đơn vị tính toán còn bao gồm mộthệ số điều chỉnh bias bk. Hệ số hiệu chỉnh bk
có tác dụng làm tăng lên hoặc giảm đi đầu vào thực của hàm kích hoạt, tùy theo nó dương hay âm.
Kết quả củahàm tổng hợpsẽ được chuyển qua cho hàm kích hoạt. Kết quả của hàm
kích hoạt là kết quả đầu raykcủa nơron.
Các nốt tương ứng với tầng nhập, tầng ẩn, tầng xuất gọi là nốt nhập, nốt ẩn và nốt xuất. Các nốt cùng tầng không kết nối với nhau. Một nốt là một đơn vị tính toán hay một đơn vị xử lý thông tin.
Mỗi nốt nhận thông tin đầu vào (input) và xuất kết quả xử lý đầu ra (output).
“Output” của một nốt bất kỳ có thể trở thành “input” của một nốt khác, thông qua kết nối giữa hai nốt đó. Mỗi kết nối được gán cho một trọng số (connection weight).
Có hai cách truyền tín hiệu hay kết quả đầu ra (output) trong mạng nơron, tạo nên hai mô hình kết nối (topology) mạng nơron: mạng lan truyền tiến (feedforward
neural network- FFNN) và mạng hồi quy (recurrent neural network).
Mạng lan truyền tiến là mạng mà kết quả đầu ra đi từ tầng nhập, qua tầng ẩn và đến thẳng tầng xuất. Đây là mô hình được sử dụng nhiều nhất cho vấn đề dự báo.
Hình 2.5 Mạng nơron lan truyền tiến
Mạng hồi quy là mạng mà kết quả đầu ra ở một tầng ẩn trở thành dữ liệu đầu vào của tầng nhập, được minh họa trong Hình 2.6.
Hình 2.6 Mạng nơron hồi quy
Chương 2. Cơ sở lý thuyết 13
2.1.4. Quá trình xử lý trong mạng nơron
Tập dữ liệu đầu vào (x1, x2,…, xp) đưa vào tầng nhập. Các nốt nhập sẽ sử dụng dữ liệu đầu vào (x1, x2,…, xp) để tính toán kết quả đầu ra y=f(x1, x2,…, xp). Sau đó, truyền kết quả tính toán đầu raythành đầu vào của tầng ẩn tiếp theo.
Các nốt ở tầng ẩn sẽ sử dụng đầu vào của mình để tiếp tục tính toán kết quả đầu ra một cách tương tự, và truyền kết quả đầu ra qua tầng kế tiếp. Quá trình như thế được tiếp tục cho đến tầng xuất của mạng nơron.
2.1.5. Quá trình huấn luyện mạng nơron
Quá trình huấn luyện mạng nơron là quá trình điều chỉnh các trọng số sao cho giá trị đầu ra của mạng nơron gần với kết quả mong muốn nhất.
Một số giải thuật để huấn luyện mạng nơron là: giải thuật lan truyền ngược (Backpropagation), và các giải thuật cải tiến trên nó là giải thuật lan truyền ngược kết hợp momentum,giải thuật Resilient Backpropagation (RPROP).
Sau đây, chúng tôi trình bày khái quát các giải thuật huấn luyện trong mạng nơron:
giải thuật lan truyền ngược, giải thuật lan truyền ngược kết hợp momentum và giải thuật RPROP.
2.1.6. Giải thuật lan truyền ngược
Giải thuật lan truyền ngược (backpropagation) lặp lại quá trình duyệt tập dữ liệu huấn luyện, xem nó là dữ liệu đầu vào, sau đó tính toán giá trị đầu ra và tính toán lỗi của quá trình huấn luyện. Lỗi (error) là sự chênh lệch giữa giá trị đầu ra và giá trị thực hay giá trị mong muốn, thông qua hàm lỗi E. Sau đó, các trọng số của các kết
nối sẽ được điều chỉnh sao cho hàm lỗiElà tối thiểu.
Công thức điều chỉnh trọng số là:
điểm hiện tại t,llà hệ số học, là đạo hàm riêng phần của hàm lỗi
Etheo trong sốwij. Công thức tính giá trị hàm lỗi của nốt xuất là:
Errj= Oj(1 - Oj)(Tj - Oj)
với Ojlà giá trị đầu ra của nốt j.Tjlà giá trị đã biết từ tập huấn luyện.
Công thứ tính giá trị hàm lỗi với các nốt ẩn là:
với wjk là trọng số của kết nối từ nốt j tới nốt k ở tầng kế tiếp, Errk là giá trị lỗi ở nốtk.
Công thức để cập nhật các trọng số là:
vớillà hệ số học (learning rate).
Công thức để cập nhật bias là:
2.1.7. Giải thuật lan truyền ngược kết hợp momentum
Giải thuật lan truyền ngược được trình bày ở phần trên có nhược điểm là chỉ có thể tìm được cực trị cục bộ chứ không phải cực trị toàn cục. Ngoài ra, còn có vấn đề chọn hệ số họclsao cho phù hợp. Hệ số họclcó ảnh hưởng quan trọng tới thời gian cần thiết để chạm tới ngưỡng hội tụ của hàm lỗi. Nếu hệ số học quá nhỏ, mạng nơron sẽ cần thực hiện nhiều bước, mỗi bước là mỗi lần tính toán kết quả xuất và hiệu chỉnh các trọng số của mạng, để đạt tới được kết quả chấp nhận được, dẫn tới thời
Chương 2. Cơ sở lý thuyết 15
gian hội tụ lâu hơn. Nếu hệ số học quá lớn sẽ làm hàm lỗi dao động qua lại giữa cực trị, ngăn cản lỗi giảm xuống giá trị nhất định [10].
Để giải quyết nhược điểm trên, người ta đưa ra khái niệm momentum. Momentum là hệ số góp phần giúp cho quá trình chỉnh sửa trọng số giảm khả năng rơi vào các điểm tối thiểu cục bộ và đồng thời giảm thời gian huấn luyện. Giá trị trọng số ở lần huấn luyện hay lần lặp thứt+1được tính dựa trên giá trị của các trọng số ở các lần lặpttrước đó.
Công thức như sau:
Vớillà hệ số học, vààlà hệ số momentum.
2.1.8. Giải thuật Resilient Backpropagation (RPROP)
Giải thuật lan truyền ngược kết hợp momentum giúp khắc phục được một số nhược điểm của giải thuật lan truyền ngược thông qua việc bổ sung hệ số momentum. Tuy nhiên, cũng giống như việc lựa chọn hệ số học, việc lựa chọn hệ số momentum phù hợp vẫn phụ thuộc kinh nghiệm của người sử dụng và phương pháp thử sai. Nếu lựa chọn được giá trị hệ số học và hệ số momentum phù hợp, kết quả huấn luyện sẽ tốt.
Ngược lại, nếu lựa chọn các hệ số không phù hợp, kết quả huấn luyện có thể sẽ tệ hơn. Vấn đề là chúng ta chưa có cách thức tối ưu nào hay công thức nào để lựa chọn hai hệ số này một cách tốt nhất. Ngoài ra, giá trị cập nhật trọng số phụ thuộc vào giá trị đạo hàm riêng phần của hàm lỗi theo trọng số tương ứng. Giá trị này là không kiểm soát được, nên việc cập nhật trọng số cũng không thể kiểm soát được.
Giải thuật Resilient Backpropagation (RPROP) là giải thuật để huấn luyện được đề xuất bởi RiedMiller và các cộng sự vào năm 1993 [5]. Giải thuật RPROP này tốt hơn giải thuật giải thuật lan truyền ngược và giải thuật lan truyền ngược kết hợp momentum, vì nó hiệu chỉnh trực tiếp trọng số dựa vào độ dốc cục bộ, chứ không theo kinh nghiệm. Về mặt toán học, RPROP hiệu chỉnh trọng số kết nối dựa vào sự đổi dấu của đạo hàm riêng phần .
theo công thức:
Công thức trên có ý nghĩa như sau: nếu đạo hàm riêng phần đổi dấu, nghĩa là giá trị cập nhật trọng số mới nhất là quá lớn và giá trị hàm lỗi đã qua giá trị cục bộ thì giá trị cập nhật∆ij phải giảm đi theo một hệ số ŋ-. Ngược lại, nếu đạo hàm riêng phần không đổi dấu, giá trị cập nhật sẽ được tăng lên theo một hệ sốŋ+, điều này làm tăng tốc độ hội tụ.
Sau khi đã xác định giá trị cập nhật cho mỗi trọng số, thì việc cập nhật trọng số được thực hiện theo quy tắc sau: nếu đạo hàm dương (lỗi tăng), trọng số sẽ giảm đi giá trị cập nhật. Ngược lại, nếu đạo hàm âm, giá trị cập nhật sẽ được thêm vào trọng số:
Tuy nhiên, có một ngoại lệ, nếu đạo hàm riêng phần đổi dấu, tương đương với giá trị cập nhật trước đó quá lớn và hàm lỗi vượt qua cực trị, giá trị cập nhật sẽ đổi dấ u, nhưng vẫn giữ nguyên phần trị cập nhật.
Đồng thời đạo hàm riêng phần được gán bằng 0:
Chương 2. Cơ sở lý thuyết 17
Đoạn mã giả ở Hình 2.7 sau trình bày nội dung cốt lõi của giải thuật RPROP. Toán tử minimum (maximum) trả về giá trị nhỏ nhất (lớn nhất) của hai thông số đầu vào.
Toán tử sign trả về +1 nếu toán hạng của nó là dương, -1 nếu toán hạng của nó là âm, nếu toán hạng bằng 0 trả về 0.
Hình 2.7 Mã giả của giải thuật RPROP
Ban đầu, tất cả các giá trị cập nhật∆ijđược gán bằng giá trị khởi tạo∆0, và∆0thường được gán bằng 0.1. Tuy nhiên, kết quả thực nghiệm [5] đã cho thấy việc lựa chọn giá trị khởi tạo ∆0không thực sự quan trọng. Cho dù với ∆0lớn hơn hay nhỏ hơn, sự hội tụ nhanh vẫn đạt được. Phạm vi của giá trị cập nhật được giới hạn trong đoạn [∆min;
∆max]. Với∆maxlà giới hạn trên,∆max= 50.0 và∆minlà giới hạn dưới ,∆min=1e-6. Việc chọn lựa hệ số giảm (decrease factor - ŋ-) và hệ số tăng (increase factor – ŋ+) được thực hiện như sau: nếu hàm đạo hàm đổi dấu, hàm lỗi nhảy qua cực trị cục bộ, có nghĩa là giá trị cập nhật trước đó quá lớn. Nhưng vì chúng ta không biết hàm lỗi đã nhảy qua giá trị cục bộ một khoảng bao nhiêu, cần lùi lại bao nhiêu, nên giá trị trung bình được lựa chọnŋ-= 0.5. Hệ số tăng phải đủ lớn để đạt được sự hội tụ nhanh, tuy
ŋ = 1.2.
Chúng tôi vừa trình bày xong giải thuật lan truyền ngược, lan truyền ngược kết hợp hệ số momentum và giải thuật RPROP. Ngoài ra, còn nhiều giải thuật khác nữa không được trình bày ở đây. Trong đề tài của mình, chúng tôi sử dụng giải thuật RPROP để huấn luyện mạng nơron. Tiếp theo, chúng tôi sẽ trình bày ứng dụng mạng nơron vào việc dự báo dữ liệu chuỗi thời gian.
2.1.9. Ứng dụng mạng nơron vào việc dự báo dữ liệu chuỗi thời gian
Mạng nơron nhận dữ liệu chuỗi thời gian làm thông số đầu vào và tính toán đầu ra như là kết quả dự báo tương lai. Và mạng nơron truyền thẳng là mạng thường được dùng trong công tác dự báo dữ liệu chuỗi thời gian. Mạng nơron truyền thẳng với ít nhất một tầng ẩn có thể xấp xỉ với bất kỳ hàm khả đánh giá (measurable function) tuyến tính hay phi tuyến [6]. Mạng nơron sẽ nhìn chuỗi thời gianX1, X2,... như là một vectơ đầu vào, rồi ánh xạ vectơ ra một giá trị đầu ra. Giá trị đầu ra xem như là kết quả dự báo.
Tuy nhiên, mạng nơron dự báo được tốt hay không là nhờ vào quá trình huấn luyện bằng dữ liệu thực tế được thu thập theo thời gian. Mục đích của quá trình huấn luyện là để mạng nơron điều chỉnh tập trọng số cho phù hợp.
Hình 2.8 minh họa quá trình huấn luyện mạng nơron để dự báo dữ liệu chuỗi thời gian. Trong quá trình huấn luyện, mạng nơron chỉ sử dụng một tập dữ liệu liền kề, có kích thước nhỏ hơn(Xt-s, Xt-s+1, …, Xt)làm vectơ đầu vào, truyền qua tầng ẩn rồi đến nốt xuất, tính toán ra giá trịXt+1.
Giá trị lỗi (error) được tính toán dựa vào sự khác biệt giữa giá trị đầu ra với giá trị của dữ liệu chuỗi thời gian thực tế tại thời điểm t+1. Sau đó, giá trị lỗi này được
dùng để cập nhập lại trọng số của các kết nối này.
Mỗi tập đầu vào(Xt-s, Xt-s+1, …, Xt)xem như nằm trong một cửa sổ trượt có chiều dài là s. Kích thước cửa sổ trượt s tương ứng với số nốt nhập của mạng nơron.
Chương 2. Cơ sở lý thuyết 19
Để huấn luyện, vị trí của cửa sổ trượt có thể được chọn một cách ngẫu nhiên hoặc liên tiếp nhau. Chọn vị trí cửa sổ trượt một cách ngẫu nhiên sẽ phức tạp hơn, tuy nhiên sẽ đảm bảo cấu hình mạng tốt hơn và tránh được việc dữ liệu trong cửa sổ trượt là đặc trưng cục bộ [3]. Để đơn giản, thông thường người ta sẽ chọn cửa sổ trượt liên tiếp nhau, trượt từ đầu đến hết tập dữ liệu huấn luyện. Mỗi lần cửa sổ trượt qua hết các dữ liệu tập huấn luyện, ta gọi đó là một epoch.
Hình 2.8 Quá trình huấn luyện mạng nơron và cửa sổ trượt
2.1.10. Đánh giá khả năng dự báo của mạng
Lỗi của một giá trị được dự báo được tính bằng độ chênh lệch giữa giá trị thực tế ( ) và giá trị được dự báo bởi mạng nơron ( :
Khả năng dự báo của mạng nơron được đánh giá bằng một trong số các chỉ số tính toán lỗi như sau Error! Reference source not found.: tổng bình phương lỗi (Sum
Squared Error - SSE), căn bậc 2 trung bình bình phương lỗi (Root Mean Squared