Sự lựa chọn giải thuật toán học trong việc huấn luyện mạng nơ ron network để cho hiệu quả cao rất quan trọng, giúp chúng ta có được kết quả tốt hay xấu của quá trình phân tích dữ liệu cũ
Giới thiệu vấn đề 1
Giới thiệu vấn đề
Việc dự báo dòng chảy của các con sông là một việc làm dựa trên nền tảng toán học và khoa học dữ liệu để tìm ra quy luật hoạt động tự nhiên của dòng chảy, trên thực tế những năm gần đây ở Việt Nam việc dự báo dòng chảy của các con sông đã và đang hiện thực rất nhiều ví dụ như ứng dụng mạng nơ ron nhân tạo vào việc mô phỏng dòng chảy [1] bởi kết quả dự báo dòng chảy góp phần vào việc dự đoán các ảnh hưởng tiêu cực để có phương án giải quyết kịp thời cũng như góp phần nghiên cứu đến những yếu tố gây nên chúng.
Động cơ nghiên cứu
Việc dự báo dòng chảy trên sông góp phần vào việc giải quyết các bài toán thực tế đang gặp phải như:
- Ngăn chặn việc ảnh hưởng tiêu cực đến môi trường
- Ngăn chặn hậu quả do sông gây ra đối với Hệ Sinh Thái, cây trồng
- Điều chỉnh phù hợp việc khai thác thủy điện, sự xâm mặn của nước biển, nguồn nước sinh hoạt và tưới tiêu.
Mục tiêu nghiên cứu
Dữ liệu dòng chảy của các con sông là dữ liệu chuỗi thời gian, có rất nhiều phương pháp được xây dựng để dự báo chuỗi thời gian ví dụ phương pháp hồi quy đã được xây dựng từ thế kỷ 19 và phương pháp mạng nơ ron nhân tạo được phát triển gần đây
Mạng nơ ron nhân tạo là một mô hình ứng dụng lý thuyết toán học và giải thuật để giải quyết các dạng bài toán khác nhau, các bài toán về dự báo mực nước, dự báo dòng chảy… cũng được áp dụng nhiều và có hiệu quả ngày càng cao
Trong nước đã có những công trình nghiên cứu để thực hiện việc dự đoán lưu lượng nước của sông Đồng Nai như bài báo của thầy Lê Văn Dực [1], sử dụng mạng thần kinh nhân tạo(ANN) và giải thuật lan truyền ngược để dự đoán mặc dù đã có kết quả tốt nhưng bằng sử dụng những giải thuật huấn luyện mạng nơ ron khác nữa chúng tôi mong muốn có một giải thuật huấn luyện cho kết quả dự báo tốt hơn
Những kết quả đạt được
- Tìm hiểu và ứng dụng giải thuật Levenberg-Marquardt, giải thuật BFGS, giải thuật liên hợp độ dốc (Conjugate gradient) vào vấn đề huấn luyện mạng nơ ron dự báo dữ liệu chuỗi thời gian
- Hiện thực chương trình chạy thử nghiệm dựa trên giải thuật levenberg-Marquardt và dữ liệu chạy thử nghiệm là các dữ liệu dòng chảy trên sông Kết quả thực nghiệm cho thấy giải thuật Levenberg-Marquardt đem lại kết quả dự báo tốt hơn giải thuật lan truyền ngược.
Cấu trúc luận văn
Luận văn bao gồm những phần sau:
Chương 1: Giới thiệu vấn đề
Chương 2: Đề cập đến cơ sở lý thuyết giới thiệu về mạng nơ ron nhân tạo bao gồm cấu trúc, nguyên lý hoạt động và giải thuật được ứng dụng
Chương 3: Giới thiệu các công trình liên quan và giải thuật áp dụng
Chương 4: Giới thiệu về giải thuật Levenberg-Marquardt
Chương 5: Hiện thực, thử nghiệm và đánh giá giải thuật Chương 6: Tổng kết và báo cáo kết quả đạt được của đề tài
Cơ sở lý thuyết 3
Giới thiệu mạng Nơ ron nhân tạo
Mạng Nơ ron nhân tạo (Artificial Neural Network- ANN) là mô hình xử lý thông tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật, bao gồm số lượng lớn các Nơ ron được gắn kết để xử lý thông tin ANN giống như bộ não con người, được học bởi kinh nghiệm (thông qua huấn luyện), có khả năng lưu giữ những kinh nghiệm hiểu biết (tri thức) và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết (unseen data)
Trong quá trình phát triển, mạng nơ ron nhân tạo đã được ứng dụng thành công trong nhiều bài toán thực tế như nhận dạng chữ viết, nhận dạng tiếng nói, điều khiển tự động, dự báo chuỗi thời gian, dự báo dòng chảy các con sông…
Cấu trúc mạng Nơ ron nhân tạo
Cấu trúc của mạng bao gồm các đơn vị tính toán đơn giản (tượng trưng cho các nơ ron) được liên kết với nhau bằng các cạnh có trọng số (tượng trưng cho các khớp thần kinh) bao gồm:
Các đơn vị đầu vào, nhận tín hiệu từ bên ngoài
Các đơn vị đầu ra, gửi dữ liệu ra bên ngoài
Các đơn vị ẩn, tín hiệu vào của nó được truyền từ các đơn vị trước nó và tín hiệu ra được truyền đến các đơn vị sau nó trong mạng
Hàm kích hoạt là hàm toán học dung đế tính toán đầu ra cho một đơn vị (nơ ron) Thường sử dụng các hàm như:
Hình 2.2.1 minh họa một đơn vị tính toán trong mạng thần kinh nhân tạo.
Hình 2.2.1 Hình ảnh của một đơn vị tính toán trong mạng thần kinh nhân tạo (ANN) [16]
Các đơn vị liên kết với nhau tạo thành mạng nơ ron nhân tạo Sự liên kết giữa hai đơn vị được biểu thị bằng trọng số, giá trị các trọng số cho chúng ta biết độ mạnh yếu liên kết giữa các đơn vị
Hình dạng của mạng nơ ron nhân tạo rất khác nhau phụ thuộc vào số lượng các đơn vị và cách thức liên kết Có hai dạng mạng cơ bản mạng truyền thẳng và mạng hồi quy:
Mạng truyền thẳng (Feed-forward neural network): Một đơn vị ở lớp đứng trước sẽ kết nối với tất cả các đơn vị ở lớp đứng sau Tín hiệu chỉ được truyền theo một hướng từ lớp đầu vào qua các lớp ẩn (nếu có) và đến lớp đầu ra
Nghĩa là tín hiệu ra của một đơn vị không được phép truyền cho các đơn vị
5 trong cùng lớp hay ở lớp trước Đây là loại mạng rất phổ biến và được dung nhiều trong việc dự báo dữ liệu chuỗi thời gian (hình 2.2.2)
Mạng hồi quy (Recurrent neural network): Khác với mạng truyền thẳng, mạng hồi quy có chứa các liên kết ngược từ một đơn vị đến các đơn vị ở lớp trước nó (hình 2.2.3) Chức năng của một mạng nơ ron được quyết định bởi các nhân tố như: hình dạng mạng (số lớp, số đơn vị trên mỗi lớp, cách mà các lớp được liên kết với nhau) và các trọng số của các liên kết bên trong mạng
Hình dạng của mạng thường là cố định, và các trọng số được quyết định bởi một thuật toán huấn luyện (training algorithm)
Tiến trình điều chỉnh các trọng số để mạng “nhận biết” được quan hệ giữa đầu vào và đầu ra mong muốn được gọi là học (learning) hay huấn luyện
(training) Rất nhiều thuật toán huấn luyện đã được phát minh để tìm ra tập trọng số tối ưu làm giải pháp cho các bài toán
Các thuật toán đó có thể chia làm hai nhóm chính: Học có giám sát
(Supervised learning) và Học không có giám sát (Unsupervised Learning)
Học có giám sát: Mạng được huấn luyện bằng cách cung cấp cho nó các mẫu dữ liệu mẫu đầu vào đã được phân lớp đúng cho trước [7] Các cặp này có sẵn trong quá trình thu nhập dữ liệu Sự khác biệt giữa các đầu ra theo tính toán trên mạng so với các đầu ra mong muốn được thuật toán sử dụng để điều chỉnh các trọng số trong mạng Điều này thường được đưa ra như một bài toán xấp xỉ hàm số - cho dữ liệu huấn luyện bao gồm các cặp mẫu đầu vào x, và một đích tương ứng t, mục đích là tìm ra hàm f(x) hay đúng hơn là tìm bộ trọng số phù hợp nhất để thoả mãn tất cả các mẫu học đầu vào [6] Đây là mô hình học rất phổ biến trong việc áp dụng mạng nơ ron vào bài toán dự báo
Hình 2.2.4 Mô hình học có giám sát [4]
Học không có giám sát: với cách học không có giám sát, trong giai đoạn huấn luyện sẽ không dùng bộ dữ liệu có phân lớp đúng cho trước Mạng sẽ phải khám phá các đặc trưng, các điều chỉnh, các mối tương quan, hay các lớp trong dữ liệu vào một cách tự động Nói một cách khác, học không có giám sát luôn thực hiện một công việc tương tự như một mạng tự liên hợp, cô đọng thông tin từ dữ liệu vào.
Nguyên tắc hoạt động và luật huấn luyện
Mạng nơ ron nhân tạo được thiết kế bằng các trọng số giữa các nơ ron, hàm chuyển và luật huấn luyện Mục tiêu của việc huấn luyện là đưa hàm lỗi đạt được giá trị cựa tiểu, việc này trải qua một quá trình hoạt động kết hợp giữa việc tính toán tại điểm nốt mạng (đơn vị) gọi là perceptron, thuật toán và luật huấn luyện
Perceptron là đơn vị cơ bản của mạng như hình 2.3.1, nhận đầu vào là tổ hợp tuyến tính và sử dụng hàm toán học để tính toán, đầu ra là một giá trị hay kết quả phân lớp tùy thuộc vào bài toán đang ứng dụng
Một cách trực quan, perceptron được mô hình như hình 2.3.1 w 1 w 2 w 3 w 0 w n
Hình 2.3.1 Đơn vị mạng nơ ron [16]
8 Perceptron nhận đầu vào là tổ hợp tuyến tính của một vector n chiều w 1 n i i i w x
và đầu ra là một giá trị o = f w ( ), hay phân thành lớp ví dụ:
w i là biểu diễn giá trị đóng góp của x i vào giá trị xuất ra của perceptron
Xét một mạng nơ ron nhân tạo đơn giản bao gồm một đơn vị (perceptron)
Nếu xem các vector nhập (x x 0 , , , 1 x n ) là các điểm trên không gian n +1 chiều
( x 0 luôn là 1) thì perceptron biểu diễn một mặt quyết định (decision surface) xem một điểm có nằm trên một siêu phẳng (hyperplane) có phương trình là
0 w x hay không Perceptron sẽ xuất ra giá trị 1 cho các điểm nằm trên siêu phẳng này và xuất ra -1 cho các điểm còn lại
Trong thực tế, ta thường có sẵn một bộ dữ liệu mẫu gồm một tập các điểm được gán nhãn dương và âm Bài toán huấn luyện perceptron là bài toán xác định vector w sau cho siêu phẳng w x 0 phân chia các điểm trong tập mẫu một cách chính xác theo các nhãn của nó Thực tế có một số bộ dữ liệu mà không thể tìm thấy bất kỳ siêu phẳng nào có thể phân chia đúng các điểm của nó như hình 2.3.3, các bộ dữ liệu đó được gọi là tập dữ liệu không khả phân tuyến tính (not linearly separable) Ngược lại nếu một bộ dữ liệu có thể được
Hình 2.3.2 Siêu phẳng phân chia các điểm [4] Hình 2.3.3 không tìm được siêu phẳng chia các điểm [4]
9 phân chia đúng bởi một siêu phẳng nào đó thì gọi là khả phân tuyến tính điều này được trực quan hóa như hình 2.3.2
Quá trình huấn luyện một perceptron là một quá trình tìm kiếm một vector w trên một không gian thực n + 1 chiều sao cho nó có khả năng phân xuất ra các giá trị +1, -1 một cách đúng đắn cho một tập dữ liệu nào đó
Có hai luật huấn luyện được dùng trong mạng nơ ron đó là luật: Luật huấn luyện perceptron và luật delta [4] a) Luật perceptron: Để tìm một vector w thích hợp, trước hết ta áp dụng một perceptron với trọng số w ngẫu nhiên qua từng mẫu của tập dữ liệu huấn luyện và hiệu chỉnh các trọng số này khi có sự phân loại sai tập mẫu Quá trình này được lặp đi lặp lại cho đến khi perceptron đã phân loại đúng tất cả các mẫu của tập huấn luyện Các trọng số được cập nhập theo luật: i i i w w w
Ở đây o là giá trị xuất của perceptron, t là giá trị đích của mẫu huấn luyện hiện thời, x i là giá trị nhập thứ i, là hệ số học (learning rate) có vai trò điều tiết mức độ thay đổi của trọng số trong các bước cập nhập Nó thông thường được gán một giá trị dương nhỏ (ví dụ 0.1) và được điều chỉnh giảm khi số lần cập nhập trọng số tăng lên Giải thuật học này được chứng minh hội tụ sau một số hữu hạn lần cập nhập các trọng số đối với các tập dữ liệu mẫu khả phân tuyến tính và một hệ số học đủ nhỏ nhưng đối với các tập dữ liệu không khả phân tuyến tính thì sự hội tụ là không chắc b) Luật delta:
Luật perceptron không đảm bảo tính hội tụ đối với các tập mẫu không khả phân tuyến tính do đó người ta thiết kế giải thuật luật delta (Delta Rule) để vượt qua khó khăn này Luật delta sẽ hội tụ về một xấp xỉ tốt nhất cho các tập không khả phân tuyến tính Ý tưởng chính của luật delta là áp dụng phương pháp giảm độ dốc (gradient descent) để tìm kiếm vector trọng số đáp ứng tốt nhất tập huấn luyện Xét một perceptron thực hiện việc lấy tổ hợp tuyến tính
10 các giá trị nhập nhưng không phân ngưỡng kết quả Perceptron này gọi là perceptron không phân ngưỡng (unthresholded perceptron) hay còn gọi là đơn vị tuyến tính (linear unit) Giá trị xuất của perceptron được tính như sau
( ) o x w x Để áp dụng luật delta ta cần định nghĩa một hàm đánh giá, hay còn gọi là hàm lỗi (training error function) Có nhiều hàm lỗi được sử dụng nhưng thường dùng nhất là hàm sau:
Ở đây D là tập dữ liệu huấn luyện, d là một mẫu trong tập D, t kd là giá trị đích của mẫu d, o là giá trị xuất của perceptron kd
Mục đích của luật delta là tìm vector w sao cho E w ( ) đạt giá trị cựa tiểu
Hình 2.3.4 là một biểu diễn hàm lỗi của một đơn vị tuyến tính Trục thẳng đứng của đồ thị là giá trị hàm lỗi, hai trục ở mặt phẳng ngang là giá trị của các trọng số Phương pháp giảm độ dốc bắt đầu tìm với một vector trọng số ngẫu nhiên và duyệt qua các mẫu của tập huấn luyện, mỗi lần duyệt qua các trọng số sẽ được cập nhập theo hướng làm giảm giá trị hàm lỗi Quá trình này được lặp đi lặp lại cho đến khi đạt được giá trị cực tiểu của hàm lỗi
Hướng cập nhập các trọng số để làm giảm giá trị hàm lỗi được xác định theo vector độ dốc (gradient) của hàm lỗi E theo W, ký hiệu là E w ( )
Về mặt toán học vector độ dốc biểu diễn hướng làm tăng giá trị hàm E trong không gian trọng số, do đó - E w ( ) sẽ là hướng làm giảm giá trị hàm E
Trong hình 2.3.4 vector độ dốc được biểu diễn bằng dấu mũi tên Các trọng số sẽ được cập nhập theo quy luật sau: w w w
11 Luật huấn luyện này có thể được viết lại cho từng trọng số như sau: i i i w w w
Để thực hiện cập nhập các trọng số, ta thực hiện tính đạo hàm riêng phần của hàm E theo từng trọng số:
Thay (2.2) vào (2.1) ta được giá trị cập nhập trọng số qua từng bước ta được
Ở đây giá trị x id là giá trị đầu vào thứ i của mẫu d Phương pháp giảm độ dốc có hai hạn chế chính là tốc độ hội tụ đôi khi khá chậm và nếu có nhiều cực tiểu cục bộ (local minimum) trên bề mặt của hàm lỗi thì giải thuật dễ rơi vào cực tiểu cục bộ mà không đạt được cực tiểu toàn cục (global minimum), Hình 2.3.5 minh hoạ đường dẫn đến các điểm cực tiểu cục bộ của hàm lỗi
Hình 2.3.4 Hàm lỗi của một đơn vị tuyến tính [4]
Hình 2.3.5 Các điểm cực tiểu khác nhau của hàm lỗi [17] Để giải quyết các khó khăn này người ta đã phát triển phương pháp giảm độ dốc thành phương pháp giảm độ dốc tăng cường (incremental gradient descent) Khác với phương pháp giảm độ dốc ở trên phương pháp giảm độ dốc tăng cường thực hiện việc tính toán lỗi và cập nhập các trọng số ngay khi duyệt qua một mẫu của tập dữ liệu Giá trị cập nhập cho các trọng số của phương pháp giảm độ dốc tăng cường là
Ở đây các giá trị t, o, x i lần lượt là giá trị đích, giá trị xuất của mạng và giá trị nhập thứ i của mẫu huấn luyện hiện hành Hàm lỗi của phương pháp giảm độ dốc tăng cường không phải là hàm lỗi toàn cục cho toàn bộ dữ liệu huấn
13 luyện như phương pháp giảm độ dốc thường mà là hàm lỗi cho từng mẫu trong tập dữ liệu
E w t o Ở đây giá trị t d , o d lần lượt là giá trị đích và giá trị xuất của mạng cho mẫu d trong tập dữ liệu Với một hệ số học đủ nhỏ, phương pháp giảm độ dốc tăng cường có thể xấp xỉ tốt tùy ý phương pháp giảm độ dốc thông thường [4]
Theo Tom Mitchell [4] phương pháp giảm độ dốc tăng cường khác với phương pháp giảm độ dốc thông thường ở ba điểm sau
Kỹ thuật tìm kiếm sử dụng để tối ưu hóa việc tìm giá trị min của hàm
Tìm kiếm tuần tự (line search) và tìm kiếm theo vùng tin cậy (trust region) là hai kỹ thuật tìm kiếm giá trị cực tiểu toàn cục của hàm phi tuyến tính Sau đây chúng tôi sẽ giới thiệu sơ lược về mặt lý thuyết của hai kỹ thuật
Line search hay còn gọi là tìm kiếm tuần tự là một trong những phương pháp phổ biến giải quyết các bài toán về tìm kiếm điểm cực tiểu của hàm số trong không gian Euclid n chiều và có công thức chung:
Với x k điểm hiện tại, x k 1 điểm được tính toán tiếp theo, k bước nhảy và d k hướng tìm kiếm
- Việc xác định hướng giảm d k của hàm lỗi f x ( ) thỏa mãn điều kiện
T 0 k k g d và có sự đảm bảo rằng d k là hướng giảm của hàm lỗi f x ( )tại điểm x k [12]
Tùy vào cách tính d k mà phương pháp tìm kiếm tuần tự sẽ tương ứng với mỗi giải thuật cụ thể như sau:
+ Nếu d k = - g k tương ứng với giảm độ dốc nhất (steepest descent) hoặc
+ Nếu d k ( 2 f x ( k )) 1 g k tương ứng với giải thuật Newton
+ Nếu d k H g k k tương ứng với giải thuật tựa-Newton
- Có rất nhiều luật xác định độ lớn bước nhảy như: luật Armijo,luật Goldstein,luật Wolfe …[12]
Các bước trong line search:
- Chọn hướng tìm kiếm là hướng giảm theo g
- Chọn bước nhảy phù hợp, để làm giá trị f(x k g k ) giảm Việc tính toán
được gọi là line search
Phương pháp Trust-region đưa ra định nghĩa vùng tin cậy xung quanh điểm hiện tại của vòng lặp của hàm lỗi f(x) và chọn bước nhảy có độ lớn bằng với xấp xỉ tối thiểu của model của hàm lỗi f(x) trong vùng tin cậy[13] Cách chọn bước kế tiếp của Trust-region không giống như line search, trust-region chọn hướng tìm kiếm và độ lớn bước nhảy cùng lúc sau đó chọn bước đi nào làm giảm giá trị của hàm lỗi f(x) nếu bước nhảy nào không thỏa mãn thì chọn bước mới Bán kính vùng tin cậy ảnh hưởng nhiều đến hiệu quả mỗi bước đi, nếu bán kính nhỏ dẫn đến giải thuật bỏ lỡ khả năng bước nhanh tới sát giá trị cự tiểu của hàm mục tiêu ngược lại nếu bán kính vùng tin cậy lớn thì dẫn đến trường hợp điểm tiếp theo cách xa điểm giá trị của hàm mục tiêu, trong trường hợp này ta phải giảm bán kính vùng tin cây và thử lại
Trong phương pháp Trust-region, các bước liên tiếp không phụ thuộc nhau về chiều hướng như line search, bán kính vùng tin cậy liên tục thay đổi qua các vòng lặp để đưa khả năng tiếp cận đến điểm cực tiểu cao nhất, cụ thể là khi bán kính vùng tin cậy ở bước hiện tại thỏa mãn yêu cầu đi đến gần với điểm cựa tiểu của hàm mục tiêu thì bán kính vùng tin cậy bước kế tiếp tăng lên, chính vì điều này đã làm cho giải thuật Trust-region hộ tụ nhanh
Tìm kiếm theo vùng tin cậy không cần chọn định hướng theo giải thuật tựa-Newton [11] Các bước trong tìm kiếm theo vùng tin cậy:
- Cập nhật x k 1 x k s k nếu giá trị f(x)giảm
- Nế giá trị f(x)không giảm thì x k 1 x k tiếp tục cải thiện f(x)
Sự khác nhau giữa line search và trust region ở cách chọn bước đi Đối với kỹ thuật line search thì giải thuật chọn hướng giảm độ dốc trước tiếp theo là chọn độ lớn phù hợp cho bước nhảy còn kỹ thuật Trust-region thì giải thuật chọn độ lớn bước nhảy và chiều hướng cùng một lúc [13]
Ứng dụng mạng nơ ron trong công tác dự báo
2.5.1 Áp dụng mạng nơ ron trong dự báo dữ liệu chuỗi thời gian
Trong bài toán dự báo, một kiểu dữ liệu thường gặp là dữ liệu chuỗi thời gian, tức là dữ liệu được thu nhập, lưu trữ và quan sát theo sự tăng dần của thời gian
Ví dụ, số lượng hành khách lưu theo tháng hình 2.5.1, hay số lượng hàng hóa đã bán được của một siêu thị được lưu trữ theo từng quý là các dữ liệu chuỗi thời gian
Hình 2.5.1 Minh họa dữ liệu chuỗi thời gian được lưu trữ theo tháng [18]
Khi quan sát chuỗi thời gian ta nhận thấy bốn thành phần ảnh hưởng lên mỗi giá trị của chuỗi thời gian đó là xu hướng (trend), chu kỳ (cyclical), mùa (seasonal), bất quy tắc (irregular) Việc xác định một chuỗi thời gian có thành phần xu hướng hay thành phần mùa hay không rất quan trọng trong bài toán dự đoán chuỗi thời gian Nó giúp ta lựa chọn được mô hình dự đoán phù hợp hay giúp cải tiến mô hình đã có chính xác hơn Việc lựa chọn mạng nơ ron nhân tạo cho việc dự báo dữ liệu chuỗi thời gian dựa chủ yếu vào dữ liệu mà ta thu nhập đã và đang mang lại hiệu quả cao Mạng nơ ron nhân tạo truyền
17 thẳng với ít nhất một tầng ẩn và đủ số đơn vị cho tầng ẩn có thể xấp xỉ bất kỳ hàm khả đánh giá (measurable function) tuyến tính hay phi tuyến nào[14]
Như đã đề cập ở trên, dữ liệu chuỗi thời gian là dữ liệu được thu nhập, lưu trữ và quan sát theo sự tăng dần của thời gian X X 1 , 2 , X n
Mạng nơ ron học cấu hình mạng từ dữ liệu chuỗi thời gian bằng cách ánh xạ từ một vectơ dữ liệu đầu vào sang dữ liệu đầu ra (Hình 2.5.2) Một số lượng dữ liệu liên tiếp của dữ liệu chuỗi thời gian (cửa sổ đầu vào X t s , X t s 1 , X t ) được ánh xạ sang khoảng thích hợp (ví dụ [0,1] hoặc [-1,1]) và được sử dụng như dữ liệu đầu vào của tầng nhập Giá trị s của “cửa sổ đầu vào” tương ứng với số đơn vị ở tầng nhập Trong giai đoạn truyền tiến, những giá trị đó được truyền qua tầng ẩn rồi đến các đơn vị đầu ra Khi truyền tới đơn vị đầu ra, giá trị lỗi đượ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 tại thời điểm t+1 Sau đó, giá trị lỗi này được truyền ngược lại tới các kết nối giữa tầng ẩn và tầng đầu ra, kết nối giữa tầng đầu vào và tầng ẩn để cập nhập lại trọng số của các kết nối này
Các cửa sổ đầu vào có thể được chọn một cách ngẫu nhiên hoặc liên tiếp nhau từ dữ liệu chuỗi thời gian Chọn cửa sổ đầu vào 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 lỗi tối ưu cục bộ [14]
Hình 2.5.2 Huấn luyện mạng nơ ron nhân tạo trên dữ liệu chuỗi thời gian [14]
2.5.2 Phân chia tập dữ liệu dùng cho huấn luyện và kiểm tra
- Trong thực tế, khi huấn luyện, người ta thường chia tập dữ liệu thành các tập huấn luyện, kiểm tra và kiểm định (ngoài các mẫu) Tập huấn luyện thường là tập lớn nhất được sử dụng để huấn luyện cho mạng Tập kiểm tra thường chứa khoảng 10% đến 30% tập dữ liệu huấn luyện, được sử dụng để kiểm tra mức độ tổng quát hóa của mạng sau khi huấn luyện Kích thước của tập kiểm định cần được cân bằng giữa việc cần có đủ số mẫu để có thể kiểm tra mạng đã được huấn luyện và việc cần có đủ các mẫu còn lại cho cả pha huấn luyện và kiểm tra Tập kiểm định nên bao gồm các giá trị liên tục mới nhất
19 - Có hai cách thực hiện xác định tập kiểm tra Một là lấy ngẫu nhiên các mẫu từ tập huấn luyện ban đầu Lợi điểm của cách này là có thể tránh được nguy hiểm khi mà đoạn dữ liệu được chọn có thể chỉ điển hình cho một tính chất của dữ liệu (đang tăng hoặc đang giảm) Hai là chỉ lấy các dữ liệu ở phần sau của tập huấn luyện, trong trường hợp các dữ liệu gần với hiện tại là quan trọng hơn các dữ liệu quá khứ
- Tập dữ liệu kiểm tra ngẫu nhiên không nên lặp lại trong tập huấn luyện, bởi vì điều này có thể làm mất khả năng tổng quát hóa của mạng nơ ron, đặc biệt trong trường hợp kích thước của tập kiểm tra tương đối lớn so với tập huấn luyện ( khoảng 30 %) Phương pháp tất định, như sử dụng mỗi dữ liệu thứ n làm dữ liệu kiểm tra, cũng không nên được sử dụng bởi vì nó chịu ảnh hưởng bởi tính chu kỳ của dữ liệu
2.5.3 Xây dựng cấu trúc mạng
-Phương pháp thực hiện xây dựng cấu trúc mạng nơ ron bao gồm việc xác định sự liên kết giữa các nơ ron, đồng thời xác định cấu trúc của mạng bao gồm số lớp ẩn, số nơ ron trong từng lớp Ta có thể thực hiện lựa chọn số nơ ron trong các lớp ẩn bằng cách bắt đầu bằng một số nào đó dựa trên các luật
Sau khi thực hiện huấn luyện, kiểm tra lỗi tổng quát hóa của từng cấu trúc, có thể tăng hoặc giảm số các nơ ron
-Số lượng đơn vị trong mỗi lớp cũng là một vấn đề cần phải xem xét vì nó cũng ảnh hưởng nhiều đến chất lượng của công tác dự báo Số lượng các đơn vị ở tầng xuất luôn là 1 cho bài toán dự báo chuỗi thời gian Tuy nhiên việc chọn số đơn vị cho tầng ẩn và tầng nhập là việc không dễ Số đơn vị ở tầng nhập bằng số giá trị trong cửa sổ nhập, việc lựa chọn này dựa trên giả định của nhà dự báo về giá trị tại thời điểm hiện tại của chuỗi thời gian sẽ bị chi phối chủ yếu bởi giá trị của bao nhiêu thời điểm trước nó Việc lựa chọn thông số này phụ thuộc vào kinh nghiệm và sự hiểu biết của nhà dự báo vào chuỗi thời gian đang xét Số lượng đơn vị ở tầng ẩn cũng là một thông số cần phải lựa chọn cẩn thận và cũng không có một thủ tục hình thức nào giúp ta xác định được một cách tối ưu thông số này Thông thường có hai cách chủ yếu để tìm giá trị tối ưu cho số đơn vị ở lớp ẩn Cách thứ nhất ta chuẩn bị một nhóm các mạng nơ ron chỉ khác nhau số đơn vị ở lớp ẩn (số lượng đơn vị có
20 thể tăng dần theo một, hai hoặc ba), sau đó ta thực hiện huấn luyện và kiểm tra các mạng này trên tập dữ liệu đã chuẩn bị Mạng nơ ron có sai số nhỏ nhất là là mạng có cấu hình tốt nhất Phương pháp này khá tốn thời gian nhưng khá hiệu quả Cách thứ hai là thay đổi số đơn vị trong lớp ẩn ngay trong quá trình huấn luyện Cách này không cần phải tạo ra nhiều mạng nơ ron riêng biệt nhưng lại rất phức tạp Rất ít các hệ thống thương mại cho phép việc thay đổi số đơn vị trong quá trình huấn luyện
-Nhiều mô hình mạng nơ ron tầng vào-tầng ẩn-tầng ra đã được sử dụng hiệu quả trong bài toán dự báo chuỗi thời gian như: 8-8-1, 6-6-1, 5-5-1 [14]
2.5.4 Các tiêu chuẩn đánh giá Để đánh giá khả năng xấp xỉ một chuỗi thời gian của mạng nơ ron người ta thường dùng hàm tổng bình phương lỗi (sum of squared errors) sau:
Ở đây n là số điểm trong tập dữ liệu dùng để kiểm tra mạng, t k và o k lần lượt là giá trị mong muốn trong bộ dữ liệu và giá trị xuất của mạng nơ ron Mạng nơ ron có tổng bình phương lỗi càng nhỏ càng tốt
Ngoài ra người ta còn dùng các hàm khác là hàm độ lệch tuyệt đối nhỏ nhất (least absolute deviation), hiệu phần trăm (percentage differences)
- Huấn luyên mạng để học các mẫu từ dữ liệu bằng cách lần lượt đưa các mẫu vào cùng với những giá trị mong muốn Mục tiêu của việc huấn luyện mạng đó là tìm ra tập các trọng số cho ta giá trị nhỏ nhất toàn cục của chỉ số hiệu năng hay hàm lỗi
Các công trình liên quan (các giải thuật huấn luyện) 22
Giải thuật lan truyền ngược (BPA)
Trong các bài toán dự báo việc sử dụng các mạng nơ ron nhiều lớp rất phổ biến, tức là mạng gồm một lớp đầu vào, một lớp đầu ra và một hay nhiều lớp ẩn Các mạng nơ ron nhiều lớp ít sử dụng các đơn vị tuyến tính hay đơn vị phân ngưỡng mà chúng sử dụng các đơn vị có các hàm kích hoạt là các hàm khả vi
Một trong những đơn vị hay dùng nhất là đơn vị sigmoid (sigmoid unit):
Lý do hay dung sigmoid là do việc tính toán đạo hàm của nó rất đơn giản bằng ( ) * (1 x ( )) x
Một đơn vị sigmoid sẽ tính tổ hợp tuyến tính các giá trị đầu vào và đưa kết quả này vào hàm sigmoid để tính giá trị đầu ra net w x
Hình 3.1.2 Đơn vị xử lý của mạng nơ ron[4]
Giải thuật lan truyền ngược tìm tập các trọng số thích hợp cho một mạng nơ ron truyền thẳng nhiều lớp Nó áp dụng phương pháp giảm độ dốc để tối thiểu hóa bình phương sai số giữa kết quả xuất của mạng với kết quả xuất mong muốn Ý tưởng chính của giải thuật là giá trị lỗi sẽ được lan truyền ngược từ tầng xuất về tầng nhập để tính E w ( ) Hàm lỗi của giải thuật lan truyền ngược được định nghĩa tổng quát như sau:
Ở đây outputs là tập các đầu ra của mạng nơ ron, t kd và o kd lần lượt là giá trị đích và giá trị xuất của đầu ra thứ k của mẫu huấn luyện d Giải thuật lan truyền ngược áp dụng phương pháp giảm độ dốc để tìm ra điểm tối ưu của hàm lỗi Với mỗi mẫu trong tập huấn luyện, mạng nơ ron được áp dụng để tính đầu ra sau đó giá trị độ dốc của hàm lỗi được tính cho từng đơn của mạng Cuối cùng giải thuật áp dụng phương pháp giảm độ dốc để cập nhập các giá trị trọng số Để áp dụng phương pháp giảm độ dốc trước hết ta cần tính đạo hàm riêng phần của hàm lỗi cho từng trọng số Ta tính đạo hàm riêng phần này như sau: i ij i ij o
24 '( ) i i i i j ij j ij o o net f net o w net w
W ij là trọng số của cạnh nối đơn vị j đến đơn vị i
O j là kết quả xuất của đơn vị j f() là hàm kích hoạt của các đơn vị
Pred(i) là các đơn vị đứng trước đơn vị i trong mạng
được tính tùy theo ở tầng xuất hay tầng ẩn
Thay (3.1.4) và (3.1.2) vào (3.1.1) ta được công thức tính đạo hàm riêng phần của hàm lỗi theo trọng số w ij của đơn vị xuất i
Nếu đơn vị i là đơn vị ở tầng ẩn ở tầng ẩn thì việc tính toán phức tạp hơn bởi vì giá trị xuất của i không ảnh hưởng trực tiếp lên giá trị xuất của mạng nơ ron mà ảnh hưởng gián tiếp thông qua các đơn vị ở sau nó
Thay (3.1.6) và (3.1.2) vào (3.1.1) ta được công thức tính đạo hàm riêng phần của hàm lỗi theo trọng số w ij của đơn vị ẩn i:
Ở đây succ(i) là các đơn vị ở lớp ngay sau đơn vị i Các công thức này cho phép ta xây dựng một thủ tục tính đạo hàm riêng của hàm lỗi E theo các trọng số w ij như sau:
Bắt đầu tính toán từ các đơn vị ở tầng xuất, sau đó sử dụng kết quả vừa tính được vào việc tính toán ở các đơn vị ở tầng trước Nói cách khác thông tin về độ dốc được lan truyền từ tầng xuất đến tầng nhập Do đó giải thuật này được gọi là giải thuật lan truyền ngược Mỗi khi thông tin về đạo hàm riêng phần đã biết, bước tiếp theo trong giải thuật lan truyền ngược là cập nhập các trọng số w ij
Ở đây là hệ số học có vai trò điều tiết mức độ thay đổi của trọng số trong các bước cập nhập Cơ bản có hai phương pháp cập nhập các trọng số phân loại theo thời điểm cập nhập: học theo mẫu (learning by pattern) và học theo epoch (learning by epoch) Một epoch là một lần học duyệt qua tất cả các mẫu trong tập dữ liệu mẫu dùng để học
Trong phương pháp học theo mẫu đôi khi còn được gọi là học trực tuyến (online learning) áp dụng phương pháp giảm độ dốc tăng cường, cứ mỗi lần một mẫu trong tập dữ liệu được duyệt qua thì các trọng số sẽ được cập nhập
Phương pháp này cố gắng tối thiểu hàm lỗi tổng thể (overall error) bằng cách tối ưu hàm lỗi cho từng mẫu trong tập dữ liệu học Phương pháp này làm việc tốt cho các tập dữ liệu mẫu có kích cỡ lớn và chứa đựng nhiều thông tin dư thừa [3]
26 Phương pháp học theo epoch thực hiện lấy tổng tất cả thông tin về độ dốc (gradient) cho toàn bộ tập mẫu (pattern set) sau đó mới cập nhập các trọng số theo phương pháp giảm độ dốc thông thường, nghĩa là nó thực hiện việc cập nhập trọng số sau khi đã duyệt qua hết các mẫu trong tập dữ liệu Phương pháp này còn có tên gọi khác là học theo bó (batch learning)
Mặc dù giải thuật lan truyền ngược tương đối đơn giản nhưng trong thực tế việc lựa chọn một hệ số học phù hợp là không hề đơn giản Hệ số học quá nhỏ sẽ dẫn đến thời gian hội tụ của giải thuật quá lâu, ngược lại hệ số học quá lớn sẽ dẫn đến hiện tượng giao động (oscillation), ngăn không cho giá trị hàm mục tiêu hội tụ về một diểm nhất định
Hơn nữa, mặc dù ở một vài trường hợp cụ thể, điểm tối ưu cục bô có thể được chứng minh là luôn có thể đạt được nhưng không có gì đảm bảo giải thuật sẽ tìm được điểm tối ưu toàn cục của hàm lỗi [3] Một vấn đề khác nữa là kích cỡ của đạo hàm cũng ảnh hướng đến sự cập nhập các trọng số Nếu đạo hàm riêng phần quá nhỏ thì w nhỏ, nếu đạo hàm riêng phần lớn thì w lớn Độ lớn của đạo hàm riêng phần thay đổi không thể biết trước được theo hình dạng của hàm lỗi E trong mỗi lần lặp, do đó quá trình học không ổn định
Hình 3.1.3 Minh họa sự dao động của hệ số học [5] Để cho quá trình học ổn định người ta thêm vào một hệ số quán tính
Hệ số quán tính có tác dụng điều chỉnh mức độ ảnh hưởng của giá trị
ở bước lặp trước lên giá trị w t ij ( ) Hệ số này có tác dụng giúp cho
27 giải thuật không bị dừng ở tối ưu cực tiểu cục bộ và các vùng phẳng của bề mặt lỗi Nó cũng giúp tăng giá trị cập nhập ở những vùng mà độ dốc không đổi, do đó tăng tốc độ hội tụ[4]
Sau đây là mã giả cho giải thuật lan truyền ngược theo phương pháp học trực tuyến có áp dụng hệ số quán tính:
Khởi tạo tất cả các trọng số bằng các số nhỏ ngẫu nhiên While điều kiện dừng chưa thỏa
For each mỗi mẫu trong tập dữ liệu
Nhập mẫu vào mạng và tính toán giá trị đầu ra For each mỗi giá trị xuất của đơn vị k
For each đơn vị ẩn h, từ tầng ẩn cuối cùng đế tầng ẩn đầu tiên
For each wij trong mạng
Giải thuật lan truyền ngược cần hai thông số nhập vào đó là hệ số học và hệ số quán tính Đối với mỗi bài toán khác nhau các thông số này cần có các giá trị khác nhau để đạt được sự hiệu quả trong quá trình học Việc xác định các thông số này một cách đúng đắn không phải là một việc dễ dàng, cần nhiều công sức và kinh nghiệm
Giải thuật Broyden–Fletcher–Goldfarb–Shanno (BFGS)
Các thuật toán phổ biến nhất tựa Newton [5] là phương pháp BFGS[9], được đặt tên bởi các tác giả : Broyden, Fletcher, Goldfarb, và Shanno
Phương pháp BFGS có nguồn gốc từ phương pháp của Newton trong việc tối ưu hóa, một lớp học của kỹ thuật leo đồi dùng để tối ưu hóa tìm kiếm điểm dừng của một hàm, điểm có gradient bằng không Phương pháp của Newton giả định rằng các hàm có thể xấp xỉ cục bộ như một khai triển Taylor bậc hai, và sử dụng các đạo hàm bậc nhất hoặc bậc hai để tìm điểm cực trị của hàm số[2] Phương pháp BFGS cũng giống như phương pháp Newton [5] không cần đảm bảo sự hội tụ trừ khi hàm số có chuỗi bậc hai Taylor mở rộng gần như tối ưu Ma trận H trong giải thuật BFGS được cập nhật như sau:
Hình 3.2.1 Hàm số và cực trị của hàm số [19]
(Chấm tròn trên hình là cực trị của hàm số) Giải thuật BFGS:
0 , H 0 : x I khởi tạo điểm bắt đầu mà ma trận H
Giải thuật BFGS[9] được ứng dụng vào việc huấn luyện cho mạng nơ ron nhân tạo [8] trong các bài toán dự đoán về lượng nước mưa, quản lý và sản xuất năng lượng thủy lực [2].
Giải thuật độ dốc liên hợp
Về mặt ý tưởng giải thuật độ dốc lien hợp CG cũng giống như phương pháp giảm độ dốc, điểm khác biệt giữa hai phương pháp này là cách xây dựng tập các vetor hướng tìm kiếm (Search direction) Giải thuật CG xây dựng một tập vector liên hợp nhau đối với ma trận dương H của hàm mục tiêu còn phương pháp giảm độ dốc xây dựng tập vector không cần liên hợp với nhau, hình 3.3.1 biểu diễn sự suy giảm độ dốc và giảm độ dốc lien hợp
- Hai vector liên hợp đối với ma trận định nghĩa như sau:
Hai vector khác không d 1 và d 2 được gọi là liên hợp nhau đối với ma trận đối xứng dương A khi : d Ad 1 T 2 0
Như vậy tập vector khác không { , d d 1 2 , d N } được gọi là liên hợp đối với ma trận đối xứng dương H khi: d Hd i T j 0với 0 i j N 1
30 Hình 3.3.1 Biểu diễn sự giảm độ dốc liên hợp và giảm độ dốc [20] Ưu điểm của giải thuật CG là sẽ hội tụ sau một số hữu hạn bước lặp
Luật cập nhật trọng số của giải thuật CG :
1 k k k w w d Hướng tìm kiếm được cập nhật ở vòng lặp t như sau:
1 1 k k k k d g d Với k là kích thước bước nhảy (step size) và có nhiều cách tính:
Bảng 3.1 các cách tính bước nhảy
Giải thuật CG được hiện thực trên ngôn ngữ C# và chạy với dữ liệu thật từ trạm Phước Hòa cho kết quả như hình 3.3.2
Mã giả của giải thuật CG được hiện thực như sau:
Hình 3.3.3 là kết quả so sánh giữa hai giải thuật Levenberg-Mardquardt (LM) và giải thuật CG, cho thấy giải thuật LM cho kết quả huấn luyện tốt hơn
32 Hình 3.3.2: Kết quả của giải thuật CG khi chạy trên dữ liệu thật (dữ liệu trạm
Hình 3.3.3: Kết quả của giải thuật CG và LM khi chạy trên dữ liệu thật
(dữ liệu trạm Phước Hòa).
Giải Thuật Levenberg – Marquardt
Giải thuật Levenberg-Marquardt [5] được độc lập phát triển bởi Kenneth Levenberg và Donald Marquardt, cung cấp giải pháp số cho các bài toán tối thiểu hóa các hàm phi tuyến tính
Giải thuật Levenberg-Marquardt khác với đa số giải thuật đang áp dụng để huấn luyện mạng nơ ron, giải thuật Levenberg-Marquardt lấy ý tưởng của
33 phương pháp vùng tin cậy (Trust region) để huấn luyện huấn luyện mạng nơ ron
Giải thuật này có ưu điểm hội tụ nhanh và ổn định, trong lĩnh vực mạng nơ ron, giải thuật này phù hợp cho việc huấn luyện các bài toán có kích cỡ nhỏ và vừa
Qua việc tìm hiểu các giải thuật Levenberg Marquardt, BFGS và CG dùng để huấn luyện mạng nơ ron, chúng tôi đưa ra sơ đồ khái quát mối liên hệ giữa các giải thuật này như Hình 3.4.1:
Kết luận chương
Quá trình huấn luyện mạng nơ ron nói chung và huấn luyện mạng nơ ron cho công tác dự báo dữ liệu chuỗi thời gian nói riêng là một công việc không đơn giản Một trong những giải thuật thông dụng nhất hiện nay trong việc huấn luyện mạng nơ ron là giải thuật lan truyền ngược Giải thuật này rất hiệu quả trong việc cải thiện chất lượng mạng Tuy nhiên, giải thuật này rất dễ đưa mạng nơ ron rơi vào điểm tối ưu cục bộ, việc tìm ra một giải thuật khác khắc phục được nhược điểm của giải thuật lan truyền ngược rất được quan tâm
Một điều khác cũng đáng quan tâm đến việc huấn luyện mạng nơ ron là thời gian, nếu thời gian mà giải thuật tìm được điểm tối ưu cục bộ nhanh thì khi thoát ra khỏi điểm tối ưu cục bộ giải thuật cũng nhanh chóng tìm được tìm điểm tối ưu cục bộ khác mà điểm này tối ưu hơn hoặc có thể là điểm tối ưu toàn cục Với ý tưởng đi tìm điểm tối ưu toàn cục bằng cách thoát ra khỏi điểm tối ưu cục bộ hiện tại và bắt đầu một hành trình tìm kiếm mới thì yêu cầu hội tụ nhanh là rất quan trọng, theo chúng tôi tìm hiểu thì giải thuật Levenberg Marquardt đáp ứng được yêu cầu này
34 không dùng đạo hàm bậc 2 Các vector kế tiếp nhau trong tập vector định hướng tìm kiếm liên hợp với nhau
Cập nhật sử dụng các bước lặp có ma trận ngịch đảo
LM không dùng đạo hàm bậc 2
H: Ma trận vuông có các thành phần là đạo hàm bậc 2
Hình 3.4.1 Cây danh mục các giải thuật huấn luyện mạng neuron
Giải thuật huấn luyện Levenberg-Marquardt 35
Giải thuật Gauss-Newton
4.1.1 Giới thiệu biểu thức Newton
Mục đích của biểu thức Newton là dùng đạo hàm bậc hai của hàm lỗi để tìm ra hướng huấn luyện tốt hơn, làm giảm các bước dẫn tới điểm hội tụ trong quá trình huấn luyện, nhanh chóng đi đến điểm cực tiểu, hình 4.1.1 minh hoạ các bước đi đến điểm cực tiểu của biểu thức Newton và số các bước ít hơn so với giải thuật giảm độ dốc nhất được minh họa ở hình 4.2.1
Mỗi thành phần giảm độ dốc g là một hàm số của vector trọng số và những trọng số này là độc lập tuyến tính
Ở đây hàm F 1 , F 2 … F n là quan hệ phi tuyến tính giữa các trọng số và thành phần giảm độ dốc liên quan Mở rộng mỗi hàm g ở đẳng thức trên bằng cách áp dụng chỗi Taylor và lấy xấp xỉ hàm bậc nhất
Kết hợp định nghĩa vector độ dốc g, ta được
Thay thế vào ta được:
So sánh với phương pháp giảm độ dốc nhất (steepest decent), đạo hàm bậc hai của tổng hàm lỗi cần được tính toán cho mỗi thành phần của vector giảm độ dốc Để có được tối thiểu hóa tổng hàm lỗi E, mỗi phần tử của vector độ dốc sẽ bằng 0 Do đó ta có:
Có N đẳng thức cho N biến trọng số do đó tất cả các ∆w cần được tính
Không gian trọng số được cập nhật Biểu thức trên (4.1.1) được viết lại như sau:
Luật cập nhật trọng số: w k+1 = w k - H k
Hình 4.1.1: Hình minh họa các bước tìm kiếm điểm cực tiểu của hàm lỗi dùng
Biểu thức Newton [21] điểm yếu của giải thuật Newton là chi phí cho tính toán cao và phức tạp khi hiện thực do phải tính các thành phần của ma trận H là các đạo hàm bậc hai của hàm lỗi E nên ta phải tìm cách làm đơn giản hóa bằng giải thuật Gauss-
Từ biểu thức Newton ta thấy phải sử dụng đạo hàm bậc hai của hàm tổng lỗi để tính toán các giá trị thành phần trong ma trận H, điều này sẽ làm
39 cho giải thuật rất phức tạp để đơn giản hóa vấn đề tính toán ma trận H, ta tính ma trận H thông qua ma trận J (Jacobian) và H được tính như sau:
Giải thuật Gauss-Newton đưa ra luật cập nhật trọng số:
Giải thuật giảm độ dốc nhất
Giải thuật giảm độ dốc nhất là phương pháp gradient đơn giản nhất cho việc tối ưu hóa, phương pháp giảm độ dốc nhất tìm kiếm tuần tự, chính xác dọc theo chiều hướng có độ dốc giảm nhất
Giải thuật giảm độ dốc nhất như sau:
Bước 2 Tìm min f x ( k d k ) cho bước nhảy k ,
40 Hình 4.2.1: Biểu diễn từng bước di chuyển của giải thuật giảm độ dốc nhất [21].
Giải thuật Levenberg – Marquardt
Giải thuật Levenberg-Marquardt (LM) được kế thừa hai phương pháp giảm độ dốc nhất (steepest descent) và Gauss-Newton (GN)
Giải thuật Levenberg-Marquardt (LM) thừa hưởng tốc độ hội tụ của GN và sự ổn định của phương pháp giảm độ dốc nhất Theo các công trình nghiên cứu trước thì tốc độ hội tụ của LM sẽ chậm hơn so với GN nhưng sẽ nhanh hơn phương pháp giảm độ dốc nhất
Luật cập nhật tròng số của giảm độ dốc nhất (steepest descent) :
Kết hợp hai luật cập nhật trọng số của giảm độ dốc nhất và Gauss-Newton ta được luật cập nhật trọng số của LM:
Giải thuật này dựa vào tối thiểu hóa xấp xỉ tổng lỗi, ở mỗi bước t (độ dài) giảm của hàm tổng lỗi nằm trong vùng tin cậy (trust region)
Sự áp dụng giải thuật Levenberg – Marquardt (LM) và Neural network vào dự báo dòng chảy sẽ giải quyết những điểm yếu của BPA là sự hội tụ nhanh của LM, để cải tiến quá trình giảm độ dốc chậm ta sử dụng giải thuật Gauss-
41 + Giải thuật GN sử dụng để giải quyết các bài toán bình phương tối thiểu của hàm phi tuyến tính, dùng đạo hàm bậc hai để làm tối thiểu hóa giá trị tổng bình phương Ngoài ra giải thuật GN tìm ra giá trị phù hợp ở mỗi bước nhảy (step size) cho mỗi hướng do đó dẫn đến việc hội tụ nhanh
Quá trình huấn luyện của giải thuật LM gồm 2 giai đoạn : Giai đoạn Forward: Tính các thành phần như net,output và slope Giai đoạn Backward: Tính delta
4.3.2 Mã giả của giải thuật for tất cả mẫu
Forward computation for tất cả tầng for tất cả nốt của tầng tính net; tính output; tính slope; end; end;
Backward computation khởi tạo delta bằng với slope; for tất cả nốt ra tính error; for tất cả tầng for tất cả nốt của tầng trước đó for tất cả nốt của tầng hiện tại nhân delta với trọng số tính delta quay lui
( bằng các cộng các tích delta với trọng số vừa tính được với nhau) end; nhân delta với slope; end; end;
42 Mô hình hóa quá trình huấn luyện mạng nơ ron dùng giải thuật Levenberg- Marquardt được diễn tả như trong hình 4.3.1
Hình 4.3.1 Sơ đồ huấn luyện neural network cho giải thuật LM
Nhìn vào sơ đồ hình 4.3.1 chúng ta có thể thấy luồng hoạt động của giải thuật LM như sau:
- Ban đầu trọng số được hình thành ngẫu nhiên bằng hàm Random
- Từ trọng số này ta tính tổng lỗi trên tập huấn luyện
- Tính ma trận J - Tiếp theo tính trọng số mới dựa trên trọng số trước đó, ma trận J và các giá trị e thành phần Hệ số có tác dụng điều chỉnh độ lớn của bước nhảy và thay đổi qua các vòng lặp của giải thuật
- Tính tổng lỗi của trọng số mới
43 - So sánh tổng lỗi của trọng số mới và trọng số cũ để để quyết định tăng giảm hệ số
- Nhìn về phía bên phải của sơ đồ hình 4.3.1 chúng ta thấy có vòng lập con điều khiển bởi nhân tố m, vòng lặp con này đưa ra nhằm kiểm tra xem giải thuật có đang rơi vào giá trị cực tiểu cục bộ hay không, nếu có thì sẽ thoát khỏi cực tiểu cục bộ sau 5 lần tăng hệ số tùy thuộc vào trải nghiệm trong hiện thực chương trình cho mổi bộ dữ liệu huấn luyện mà chúng ta chọn m bằng 5 hay con số khác, trong chương trình của chúng tôi chúng tôi chọn m và m tùy vào từng bộ dữ liệu
- Khi E K 1 E K giải thuật không cập nhật lại trọng số vì hướng chọn này làm tang tổng lỗi nên không phải là hướng chọn hiệu quả, giải thuật giữ nguyên trọng số để chọn bước nhảy hiệu quả hơn
- Khi E K 1 E K giải thuật cập nhật lại trọng số và tiếp tục cho vòng lặp mới
Sau khi tìm hiểu và trình bày các giải thuật dùng cho việc huấn luyện mạng neural network, chúng tôi quyết định chọn giải thuật Levenberg-Marquardt làm giải thuật chính cho việc huấn luyện mạng nơ ron dự báo dòng chảy trên sông vì giải thuật Levenberg-Marquardt kết hợp được các ưu điểm của giải thuật Gauss-Newton và giải thuật giảm độ dốc nhất qua đó khắc phục được nhược điểm hội tụ lâu của giải thuật lan truyền ngược
Hiện thực, thử nghiệm và đánh giá giải thuật 44
Hiện thực
Hiện thực giải thuật bằng ngôn ngữ C# trên máy tính có cấu hình:
Processor: intel(R) core (TM) i5-3210M CPU@ 2.5GHz (4CPU), ~2.5GHz
Ram:8G OS: Window 10 Pro 64bit
Ngôn ngữ lập trình dùng để hiện thực giải thuật là C# và công cụ hiện thực là visual studio 2015
Giải thuật Levenberg-mardquardt và neural network được hiện thực như sau:
Ký hiệu: 10-10-1 có nghĩa là: lần lượt là số nút ở tầng nhập là 10,tầng ẩn là 10 và tầng xuất là 1
Ký hiệu 6-6-1 có nghĩa là: lần lượt là số nút ở tầng nhập là 6,tầng ẩn là 6 và tầng xuất là 1
Giai đoạn Forward: tính đầu ra và slope tại mỗi nốt
để tính đầu ra tại mỗi nốt của mạng
Giai đoạn Backward: tính lỗi ở tầng xuất và delta ở mỗi nốt i) Tầng xuất:
+ Tính lỗi tại nốt ở tầng xuất và khởi tạo s (slope): e t o: d : giá trị có được từ thực tế o : giá trị xuất ra được tính từ mạng nơ ron
+ Tính từ đầu vào của tầng xuất:
:Chỉ số k 1 n hidden + Tính tại mỗi nốt :
+ tính từ đầu vào của tầng ẩn tới đầu ra của tầng nhập:
Việc tính toán các thông số trong giải thuật LM được chúng tôi mô hình hóa như hình 5.1.1 ngay sau đây để dễ dàng hình dung
46 Hình 5.1.1: Mô hình miêu tả cách hoạt động giải thuật LM kết hợp với mạng nơ ron.
Thử nghiệm và đánh giá giải thuật
Thử nghiệm và đánh giá trên dữ liệu chúng tôi dùng bộ dữ liệu thực tế thu thập được để đưa vào hệ thống chạy thử nghiệm và so sánh các kết quả đạt được
Dữ liệu bao gồm 8 trạm quan trắc là các bộ dữ liệu lưu lượng dòng chảy (runoff) trên sông và một bộ dữ liệu mực nước:
Các bộ dữ liệu từ (1) đến (6) được đo theo tháng, còn các bộ dữ liệu (7),(8),(9) được đo theo ngày
(1) Dòng chảy ở trạm Phước Hòa, sông Bé, Bình Phước - 216 điểm
(2) Dòng chảy ở trạm Phước Long, sông Bé, Bình Phước - 216 điểm
(3) Dòng chảy ở trạm Ghềnh Ga, sông Lô, Hà Giang - 239 điểm
(4) Dòng chảy ở trạm Chiêm Hóa, sông Lô, Hà Giang - 239 điểm
47 (5) Mực nước ở trạm Châu Đốc, sông Hậu Giang, An Giang - 365 điểm
(6) Dòng chảy ở trạm Trị An, sông Đồng Nai 216 điểm
(7) Dòng chảy ở trạm Buôn Hồ, sông Serepok, Tây Nguyên - 8035 điểm
(8) Dòng chảy ở trạm Cầu 14, sông Serepok, Tây Nguyên - 8035 điểm
(9) Dòng chảy ở trạm Đức Xuyên, sông Serepok, Tây Nguyên - 3000 điểm
Tập dữ liệu huấn luyện của mỗi bộ dữ liệu là 90%, tập dữ liệu kiểm tra (test) của mỗi bộ dữ liệu là 10%
Tên trạm Tổng số điểm dữ liệu
Số điểm dữ liệu huấn luyện
Số điểm dữ liệu kiểm tra(test)
5.2.2 Cách đánh giá giải thuật
Chương trình hiện thực cho phép người dùng tiến hành đánh giá mạng nơ ron vừa huấn luyện trên một tập dữ liệu nằm ngoài tập dữ liệu huấn luyện
Các hàm sau đây được sử dụng để đánh giá kết quả và xuất ra cho người dùng:
1) Hàm trung bình tuyệt đối lỗi (mean absolute error):
2) Hàm phần trăm trung bình tuyệt đối lỗi (mean absolute percentage error):
3) Hàm tổng bình phương lỗi (sum of squared error):
4) Hàm trung bình bình phương lỗi (mean squared error):
n trong các công thức trên là số điểm trong tập kiểm tra, t k và o lần lượt k là giá trị thực trong tập dữ liệu và giá trị xuất của mạng nơ ron Dựa trên các giá trị này người dùng so sánh kết quả giữa các giải thuật để đánh giá hiệu quả của các giải thuật, thông qua việc đánh giá đó người dùng sẽ quyết định mạng có phù hợp với yêu cầu hay không, có cần được huấn luyện hay xây dựng lại không
5.2.3Thử nghiệm và đánh giá giải thuật trên bộ dữ liệu thật
Mạng nơ ron dùng để huấn luyện có cấu hình như sau: a) Giải thuật BP:
Số nơ ron tầng nhập, ẩn và xuất:
+ 6-6-1: đối với bộ dữ liệu nhỏ gồm (1) đến (6) ở mục 5.2.1
+ 10-10-1: đối với bộ dữ liệu lớn gồm (7) đến (9) ở mục 5.2.1
+ Thông số hệ số học và hằng số quán tính được chọn như bảng 5.2.3.1
N Hệ số học Hằng số quán tính
Bảng 5.2.3.1 Hệ số huấn luyện của giải thuật lan truyền ngược b) Giải thuật LM:
+ 6-6-1: đối với bộ dữ liệu nhỏ gồm (1) đến (6) ở mục 5.2.1
+ 10-10-1: đối với bộ dữ liệu lớn gồm (7) đến (9) ở mục 5.2.1
1 Kết quả trên bộ dữ liệu Dòng chảy ở trạm Phước Hòa sông Bé,
Hình 5.2.3.1 Đồ thị kết quả dự báo trên dữ liệu trạm Phước Hòa của giải thuật LM và BP
N MAE MAPE SSE MSE Runtime (s)
50 Bảng 5.2.3.2 Số liệu hàm lỗi của giải thuật LM trạm Phước Hòa
N MAE MAPE SSE MSE Runtime (s)
Bảng 5.2.3.3 Số liệu hàm lỗi của giải thuật BP trạm Phước Hòa
Nhận xét: Nhìn vào số liệu trung bình của năm lần chạy ở bảng 5.2.3.1 và bảng 5.2.3.2 ta rút ra được đối với bộ dữ liệu ở trạm Phước Hòa, giải thuật LM cho ra kết quả tốt ở các chỉ số MAE và MAPE, còn chỉ số SSE và MSE thì giải thuật BP cho kết quả tốt hơn nhưng những giá trị nhỏ nhất của các chỉ số thì thuộc về giải thuật LM , hình 5.2.3.1 là đồ thị biểu diễn kết quả dự báo 19 điểm cuối của dữ liệu trạm Phước Hòa
2 Dòng chảy ở trạm Phước Long, sông Bé, Bình Phước - 204 điểm.
Hình 5.2.3.2 Đồ thị kết quả dự báo trên dữ liệu trạm Phước Long của giải thuật LM và BP
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.4 Số liệu hàm lỗi của giải thuật LM trạm Phước Long
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.5 Số liệu hàm lỗi của giải thuật BP trạm Phước Long
Nhận xét: Đối với bộ dữ liệu ở trạm Phước Long, giải thuật LM cho ra kết quả tốt ở các chỉ số MAE, MAPE, SSE, MSE Tuy nhiên để giải thuật LM đạt được kết quả tốt hơn BP 13.86 % ở chỉ số MAPE thì giải thuật LM cần thời gian gấp khoảng 63 lần lần BP.
3 Mực nước ở trạm Châu Đốc, sông Hậu Giang, An Giang - 365 điểm
52 Hình 5.2.3.3 Đồ thị kết quả dự báo trên dữ liệu trạm Châu Đốc của giải thuật LM và BP
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.6 Số liệu hàm lỗi của giải thuật LM ở trạm Châu Đốc
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.7 Số liệu hàm lỗi của giải thuật BP ở trạm Châu Đốc
Nhận xét: Đối với bộ dữ liệu ở trạm Châu Đốc, giải thuật LM cho ra kết quả tốt ở các chỉ số MAE, MAPE, SSE, MSE Tuy nhiên để giải thuật LM đạt được kết quả tốt hơn BP thì giải thuật LM cần thời gian gấp khoảng 63 lần lần BP.
4 Dữ liệu trạm Trị An, 216 điểm
Hình 5.2.3.4 Đồ thị kết quả dự báo trên dữ liệu trạm Trị An của giải thuật LM và BP
N MAE MAPE SSE MSE Runtime (s)
Bảng 5.2.3.8 Số liệu hàm lỗi của giải thuật LM ở trạm Trị An
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.9 Số liệu hàm lỗi của giải thuật BP ở trạm Trị An.
Nhận xét: Đối với bộ dữ liệu ở trạm Trị An, giải thuật LM cho ra kết quả tốt ở các chỉ số MAE, MAPE, SSE, MSE Tuy nhiên để giải thuật LM đạt được kết quả tốt hơn BP thì giải thuật LM cần thời gian gấp khoảng 39 lần lần BP.
5 Dòng chảy ở trạm Chiêm Hóa, sông Lô, Hà Giang - 239 điểm
Hình 5.2.3.5 Đồ thị kết quả dự báo trên dữ liệu trạm Chiêm Hóa của giải thuật LM và BP
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.10 Số liệu hàm lỗi của giải thuật LM ở trạm Chiêm Hóa
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.11 Số liệu hàm lỗi của giải thuật BP ở trạm Chiêm Hóa.
Nhận xét: Đối với bộ dữ liệu ở trạm Chiêm Hóa, giải thuật LM cho ra kết quả tốt ở các chỉ số MAE, MAPE, SSE, MSE, kết quả tốt nhất trong các lần chạy kiểm tra là của giải thuật LM Tuy nhiên để giải thuật LM đạt được kết quả tốt hơn BP thì giải thuật LM cần thời gian nhiều hơn thời gian hơn so với giải thuật BP rất nhiều.
6 Dòng chảy ở trạm Ghềnh Ga, sông Lô, Hà Giang - 239 điểm
56 Hình 5.2.3.6: Kết quả huấn luyện của 2 giải thuật LM và BP dùng dữ liệu trạm Ghềnh Ga
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.12 Số liệu hàm lỗi của giải thuật LM ở trạm Ghềnh Ga
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.13 Số liệu hàm lỗi của giải thuật BP ở trạm Ghềnh Ga
Nhận xét: Đối với bộ dữ liệu ở trạm Ghềnh Ga, giải thuật LM cho ra kết quả tốt ở các chỉ số MAE, MAPE,còn ở các chỉ số SSE, MSE kết quả của giải thuật BP tốt hơn giải thuật LM Trong bộ dữ liệu Ghềnh Ga, giá trị nhỏ nhất của độ đo SSE và MSE thuộc về giải thuật BP
7 Dòng chảy ở trạm Đức Xuyên, sông Serepok, Tây Nguyên - 3000 điểm
Hình 5.2.3.7a: Kết quả huấn luyện của giải thuật LM dùng dữ liệu trạm Đức Xuyên
Hình 5.2.3.7b: Kết quả huấn luyện của giải thuật BP dùng dữ liệu trạm Đức
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.14 số liệu hàm lỗi của giải thuật LM ở trạm Đức Xuyên
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.15 số liệu hàm lỗi của giải thuật BP ở trạm Đức Xuyên
Nhận xét: Đối với bộ dữ liệu ở trạm Đức Xuyên, giải thuật LM cho ra kết quả tốt ở các chỉ số MAE, MAPE, SSE, MSE Tuy nhiên giải thuật LM có thời gian ít hơn giải thuật BP, giá trị các độ đo nhỏ nhất thuộc về giải thuật LM và lần chạy huấn luyện đạt được hiệu quả cao lại mất thời gian ngắn hơn nhiều so với thời gian ở các lần chạy huấn luyện của giải thuật BP.
8 Dòng chảy ở trạm Buôn Hồ, sông Serepok, Tây Nguyên - 8035 điểm
Hình 5.2.3.8a Kết quả huấn luyện của giải thuật LM dùng dữ liệu trạm Buôn Hồ
Hình 5.2.3.8b Kết quả huấn luyện của giải thuật BP dùng dữ liệu trạm Buôn Hồ
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.16 số liệu hàm lỗi của giải thuật LM ở trạm Buôn Hồ
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.17 số liệu hàm lỗi của giải thuật BP ở trạm Buôn Hồ
Nhận xét: Đối với bộ dữ liệu ở trạm Buôn Hồ, giải thuật LM cho ra kết quả tốt ở các chỉ số MAE, MAPE, SSE, MSE, giá trị tốt nhất của các độ cũng thuộc về giải thuật LM, về mặt thời gian hai giải thuật LM và BP có thời tương đương nhau.
9 Dòng chảy ở trạm Cầu 14, sông Serepok, Tây Nguyên - 8035 điểm
Hình 5.2.3.9a Kết quả huấn luyện của giải thuật LM dùng dữ liệu
Hình 5.2.3.9b Kết quả huấn luyện của giải thuật BP dùng dữ liệu trạm Cầu 14
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.18 số liệu hàm lỗi của giải thuật LM ở trạm Cầu 14
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.19 số liệu hàm lỗi của giải thuật BP ở trạm Cầu 14.
Nhận xét: Đối với bộ dữ liệu ở trạm Cầu 14, giải thuật LM cho ra kết quả tốt hơn giải thuật BP ở các chỉ số MAE, MAPE, SSE, MSE và sự chênh lệch này rất nhỏ, về mặt thời gian giải thuật LM nhiều hơn giải thuật BP gấp hơn 4 lần
10 Dữ liệu chứng khoán- 245 điểm
Với dữ liệu dòng chảy nó có đặc thù riêng, tính chất dữ liệu phụ thuộc vào mùa mưa, mùa nắng và theo vùng địa… Dữ liệu chứng khoán có các yếu tố như: Tỉ giá hối đoái, lạm phát, chính sách kinh tế, lãi suất …Những yếu tố
67 này phải mất nhiều thời gian đi sâu tìm hiểu để xác định giá trị đúng đắn để đưa vào huấn luyện, do thời gian không cho phép nên chúng tôi chỉ lấy giá khi đóng cửa mỗi ngày của mã một chứng khoán đưa vào huấn luyện Để kiểm tra hiệu quả huấn luyện trên dữ liệu khác dữ liệu dòng chảy, chúng tôi lấy dữ liệu chứng khoán [22] với mã chứng khoán AAA, từ ngày 7/8/2016 đến ngày 3/08/2017, tổng cộng 245 điểm, đây là dữ liệu chứng khoán của Công ty Cổ phần Nhựa và Môi trường Xanh An Phát Phương pháp huấn luyện giống như cách làm với dữ liệu dòng chảy chúng tôi thu được kết quả như sau:
Hình 5.2.3.10: Kết quả huấn luyện của 2 giải thuật LM và BP dùng dữ liệu chứng khoán
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.20 Số liệu hàm lỗi của giải thuật LM ở dữ liệu chứng khoán.
N MAE MAPE SSE MSE Runtime(s)
Bảng 5.2.3.21 Số liệu hàm lỗi của giải thuật BP ở dữ liệu chứng khoán.
Kết luận: kết quả từ 2 bảng 5.2.3.20 và 5.2.3.21 trên cho ta thấy, giải thuật
LM cũng cho hiệu quả cao hơn so với giải thuật BP trên dữ liệu chứng khoán.
Đánh giá chung
- Từ số liệu ghi lại các giá trị các độ đo từ bảng 5.3.2.1 đến 5.3.2.18 cho chúng tôi thấy rằng các chỉ số nhỏ, tức là hiệu quả huấn luyện quả tốt hơn được tô đậm và gạch chân, đều là của giải thuật LM, ngoại trừ Bảng 5.2.3.12 số liệu hàm lỗi của giải thuật BP ở trạm Ghềnh Ga cho chỉ số SSE và MSE tốt hơn giải thuật LM
- Nếu chỉ nhìn về kết quả huấn luyện đạt được thì giải thuật LM cho kết quả tốt hơn ở tất cả cá bộ dữ liệu, tuy nhiên xét đến thời gian do giải thuật LM phải tính toán phức tạp hơn giải thuật BP nên hiện tại đang tốn thời gian nhiều cho việc huấn luyện mới có được kết quả tốt hơn, tuy nhiên nhìn vào ba bộ dữ liệu lớn thì thời gian huấn luyện giải thuật LM và thời gian của giải thuật BP tương đương nhau
- Trong phần kết luận của chương 4, chúng tôi nêu ra lý do giải thuật Levenberg-Marquardt hội tụ nhanh nên chọn giải thuật LM để làm giải thuật huấn luyện cho dữ liệu dòng chảy trên sông, nhưng khi chạy thực nghiệm so sánh với kết quả của giải thuật BP, để giải thuật LM cho kết quả tốt hơn giải thuật BP cần thời gian lâu hơn là vì :
69 + Xét về mặt toán học, việc tính toán trong giải thuật LM phức tạp hơn, nhiều phép tình hơn do đó cần thời gian lâu hơn nhưng điều này đã được khắc phục [15]
+ Khi thử nghiệm với dữ liệu thực tế cho chúng tôi thấy giải thuật LM hội tụ nhanh hơn giải thuật BP nhưng cũng dễ dẫn đến giải thuật rơi vào hội tụ ở điểm cực tiểu cục bộ, vì vậy khi hiện thực giải thuật LM, trong các vòng lặp chúng tôi kiểm tra nếu giải thuật đang rơi vào cực tiểu cục bộ thì cần thoát ra khỏi vùng cực tiểu cục bộ và nhờ vào sự hội tụ nhanh mà giải thuật nhanh chóng hội tụ vào một điểm cực tiểu khác vì vậy theo thời gian giải thuật sẽ hội tụ về một điểm cực tiểu mà cho kết quả tốt với thời gian chấp nhận được
Chúng tôi lấy hai bộ dữ liệu nhỏ, hai bộ dữ liệu lớn dùng để minh họa cho tốc độ hội tụ của hai giải thuật LM và giải thuật BP, lấy độ đo trung bình tuyệt đối lỗi làm độ đo trong quá trình huấn luyện, hình 5.3.1, hình 5.3.2 , hình 5.3.3 và hình 5.3.4 là biểu đồ so sánh tốc độ giảm giá trị trung bình tuyệt đối lỗi của hai giải thuật LM và BP, qua đó cho ta thấy giải thuật LM chỉ qua hai epoch hoặc 3 thì giá trị MAE đã bằng giá trị MAE của giải thuật BP ở epoch 100
Hình 5.3.1 Biểu đồ so sánh giá trị MAE trong khi huấn luyện của hai giải thuật LM và BP với dữ liệu của trạm Phước Hòa
70 Hình 5.3.2 Biểu đồ so sánh giá trị MAE trong khi huấn luyện của hai giải thuật LM và BP với dữ liệu của trạm Phước Long
Hình 5.3.3 Biểu đồ so sánh giá trị MAE trong khi huấn luyện của hai giải thuật LM và BP với dữ liệu của trạm Đức Xuyên
Hình 5.3.4 Biểu đồ so sánh giá trị MAE trong khi huấn luyện của hai giải thuật LM và BP với dữ liệu của trạm Buôn Hồ
+ Để tìm ra một cấu hình mạng nhân tạo phù hợp cho bài toán là một quá trình khá phức tạp, vì thế để đưa ra một cấu hình phù hợp chúng tôi tham khảo tài liệu [14] và thử nghiệm các cấu hình trên để tìm ra cấu hình nào là tốt nhất Đối với bộ dữ liệu nhỏ chúng tôi thấy cấu hình 6-6-1 cho hiệu quả tốt nhất so với cấu hình 8-8-1 hoặc 10-10-1 Hình 5.3.5, hình 5.3.6, hình 5.3.7, hình 5.3.8 là đồ thị so sánh hiệu quả huấn luyện của 4 bộ dữ liệu nhỏ Đối với bộ dữ liệu lớn, qua việc thử nghiệm chúng tôi thấy cấu hình mạng nơ ron 10-10-1 cho hiệu quả huấn luyện tốt hơn Hình 5.3.9 và 5.3.10 là đồ thị so sánh hiệu quả huấn luyện của 2 bộ dữ liệu lớn
Hình 5.3.5 So sánh hiệu quả cấu hình trên dữ liệu trạm Phước Hòa
Hình 5.3.6 So sánh hiệu quả cấu hình trên dữ liệu trạm Phước Long
Hình 5.3.7 So sánh hiệu quả cấu hình trên dữ liệu trạm Châu Đốc Hình 5.3.8 So sánh hiệu quả cấu hình trên dữ liệu trạm Đức Xuyên
72 Hình 5.3.9 So sánh hiệu quả cấu hình trên dữ liệu trạm Trạm cầu 14
Hình 5.3.10 So sánh hiệu quả cấu hình trên dữ liệu trạm Trạm Buôn Hồ
+ Việc áp dụng một cấu hình mạng nhân tạo cho nhiều vùng là do dựa trên kết quả so sánh về hiệu quả huấn luyện của các cấu hình, huấn luyện trên các bộ dữ liệu khác nhau và cuối cùng lựa chọn ra cấu hình hiệu quả nhất đối với giái thuật BP để so sánh kết quả với giải thuật LM
+ Nếu áp dụng từng cấu hình mạng cho từng bộ dữ liệu thì bộ dữ liệu học cũng đảm bảo kết quả so sánh giữa hai giải thuật BP và giải thuật LM như nêu trong đề tài, vì với mỗi bộ dữ liệu chúng tôi lấy khoảng 90% số điểm làm dữ liệu huấn luyện cho cả hai giải thuật và có cùng cấu hình mạng nhân tạo và 10% số điểm dữ liệu còn lại làm dữ liệu kiểm tra Do đó bộ dữ liệu học đủ đảm bảo kết quả so sánh hiệu quả huấn luyện giữa hai giải thuật
Tổng kết 73
Tổng kết
Như vậy, so với mục tiêu ban đầu đặt ra đề tài đã hoàn thành xong việc huấn luyện mạng neural network và hiện thực bằng giải thuật Levenberg- Marquardt và cho kết quả tốt như mục tiêu đề ra Để hoàn thành luận văn này chúng tôi đã lần lượt thực hiện các công việc sau:
- Tìm hiểu cấu tạo, nguyên lý hoạt động của mạng nơ ron nhân tạo và các giải thuật huấn luyện như: BFGS, giải thuật độ dốc liện hợp(CG) và Levenberg-Marquardt
- Tìm hiểu về mặt ý tưởng các kỹ thuật để huấn luyện mạng nơ ron nhân tạo như: Line Search và Trust Region
- Tìm hiểu độ đo để so sánh kết quả các giải thuật
- Hoàn thành chương trình phần mềm dùng để huấn luyện mạng nơ ron bằng giải thuật LM
- Hoàn thành chạy thử nghiệm chương trình trên 9 bộ dữ liệu mẫu, trong đó có tám bộ dữ liệu về dòng chảy và mộ bộ dữ liệu về mực nước Kết quả thực nghiệm cho thấy giải thuật LM đem lại kết quả dự báo tốt hơn giải thuật lan truyền ngược.
Những đóng góp của đề tài
- Làm sáng tỏ giải thuật Levenberg-Marquardt và ứng dụng vào việc huấn luyện mạng nơ ron một cách rõ ràng và có hệ thống
- Cung cấp kết quả dự báo tốt hơn đối với việc huấn luyện neural network cho bài toán dự đoán dòng chảy trên sông nói chung
- Mặc dù giải thuật LM đem lại kết quả tốt hơn so với giải thuật BP nhưng lại chiếm nhiều tài nguyên bộ nhớ Bên cạnh ưu điểm hội tụ nhanh kèm theo nhanh rơi vào điểm tối ưu cục bộ
74 - Chương trình hiện thực nhằm mục đích cho việc chạy thử nghiệm trên dữ liệu thật của giải thuật nên tính năng của chương trình còn đơn giản và chưa có nhiều lựa chọn cho người sử dụng
Hướng phát triển của đề tài
- Trong phạm vi của đề tài này chúng tôi chỉ dùng dữ liệu dòng chảy, nếu kết hợpvới dữ liệu lượng mưa thì sẽ đem lại kết quả dự báo tốt hơn
- Mặc dù giải thuật LM cho kết quả huấn luyện tốt nhưng giải thuật có nhược điểm là chiếm nhiều bộ nhớ nên không phù hợp cho những bài toán có dữ liệu lớn như nhận dạng hình ảnh Để giải quyết tốt được vấn đề này thì có thể dùng giải thuật LM cải tiến được đề xuất bởi[15]
[1] Le Van Duc Applicability of artificial neural network model for simulation of monthly runoff in comparison with some other traditional models, Science & Technology Development, Vol 12, No.04 - 2009
[2] Yasar M., Baykan N.O, Prediction of Flow Duration Curves for Ungauged Basins with Quasi-Newton Method,Journal of Water Resource and Protection, 2013
[3] Riedmiller M., Advanced Supervised Learning In Multi-layer Perceptrons – From Backpropagation To Adaptive Learning Algorithms,
Int Journal of Computer Standards and Interfaces, 1994
[4] Mitchell T.M., Machine Learning, McGraw-Hill Science/ Engineering/
[5] Du K.-L., Swamy M N S., Neural Networks and Statistical Learning, Springer, 2014
[6] Bezdek J C (1981), Pattern recognition with fuzzy objective function algorithms Kluwer Academic Publishers
[7] Sathya R., Abraham A., Comparison of Supervised and unsupervised
Learning Algorithms for Pattern Classification.(IJARAI) International Journal of Advanced Research in Artificial Intelligence, Vol 2, No 2, 2013
[8] de Vos N J., Rientjes T H M., Constraints of artificial neural networks for rainfall-runoff modelling: trade-offs in hydrological state representation and model evaluation, Hydrology and Earth System
[9] Dai Y.H.,Mathematical Programming, Volume 138, Issue 1, pp 501–
76 [10] Mishra S., Gupta P., Pandey S.K., Shukla J.P., An Efficient Approach of Artificial Neural Network in Runoff Forecasting , International Journal of Computer Applications,Volume 92 – No.5, April 2014
[11].Vicente L N., A comparison between line searches and trust regions for nonlinear optimization ,Citeseer,1996.
[12].Shi Z.J., Applied Mathematics and Computation,Volume 157, Issue 2, Pages 393–405, Elsevier,5 October 2004
[13] Jorge N.,Stephen J W.,Numerical Optimization, pp 34-100,
[14] Kolarik T., Rudorfer G.,Time Series Forecasting Using Neural Networks ACM Sigapl Apl Quote Quad, vol 25, no 1, pages 86-94, 1994
[15] Wilamowski B M., Hao Y., Improved Computation for Levenberg–
Marquardt Training, IEEE Transactions on Neural Networks, Volume
21, Issue 6, June 2010 [16] www.researchgate.net
[22] Dữ liệu chứng khoán:http://www.bvsc.com.vn/DownloadMSData.aspx
Phụ lục A Bảng thuật ngữ Anh-Việt
Activation Function Hàm kích hoạt Artificial Neural Network Mạng nơ ron nhân tạo Backpropagation Algorithm Giải thuật lan truyền ngược
Batch Learning Học theo bó
Conjugate Gradient Liên hợp độ dốc Decision Surface Mặt quyết định
Feed-forward neural network Mạng truyền thẳng
Global Minimum Cực tiểu toàn cục Global Optimization Tối ưu toàn cục Global Strategy Chiến lược toàn cục
Gradient Descent Giảm độ dốc Heuristic Kỹ thuật dựa trên kinh nghiệm
Descent Giảm độ dốc tăng cường
Irregular Tính bất quy tắc
Learning By Epoch Học theo epoch Learning By Pattern Học theo mẫu
Learning Rate Hệ số học
Least Absolute Deviation Độ lệch tuyệt đối nhỏ nhất Linear Unit Đơn vị tuyến tính
Linearly Separable Khả phân tuyến tính Local Minimum Cực tiểu cục bộ Local Optimization Tối ưu cục bộ
Local search Tìm kiếm cục bộ
Line Search Tìm kiếm tuần tự
Mean Absolute Errors Trung bình tuyệt đối lỗi Mean Squared Errors Trung bình bình phương lỗi Measurable Function Hàm khả đánh giá
Momentum Term Hệ số quán tính
Online Learning Học trực tuyến
Overall Error Lỗi tổng thể
Percentage Differences Hiệu phần trăm Perceptron Training Rule Luật huấn luyện perceptron Probability Distribution Phân bố xác suất
Random Variable Biến ngẫu nhiên Recurrent Neural Network Mạng hồi quy
Sigmoid Unit Đơn vị sigmoid Sum Of Squared Errors Tổng bình phương lỗi Supervised Learning Học có giám sát
Time Series Chuỗi thời gian Time series data Dữ liệu chuỗi thời gian Training Algorithm Giải thuật huấn luyện Training Error Function Hàm lỗi huấn luyện Transfer Function Hàm truyền
Trust Region Vùng tin cậy
Unsupervised Learning Học không có giám sát Unthresholded Perceptron Perceptron không phân ngưỡng Unseen data Dữ liệu chưa biết
Chương trình có một giao diện duy nhất hình B1.3, gồm hai phân vùng
Phân vùng 1: để nhập vào các thông số tầng nhập, tầng ẩn, tầng xuất, learning rate, momentum, chọn bộ dữ liệu và chọn giải thuật huấn luyện
Hình B1.1 phần vùng 1 của chương trình thực nghiệm
Phân vùng 2: Sau khi huấn luyện mạng nơ ron xong và kết quả đạt được hiển thị bằng đồ thị, phần vùng 2 gồm 2 tab, tab Prediction hiển thị đồ thị kết quả dự đoán chạy trên dữ liệu test, tab MAE hiển thị đồ thị giá của độ đo MAE
Hình B1.2 phần vùng 2 của chương trình thực nghiệm
2 Code của chương trình gồm 8 lớp:
1 Lớp BP.cs chứa code chạy giải thuật BP gồm các thuộc tính và các hàm tính toán cho giải thuật, Hàm chạy giải thuật là hàm BP_Run()
2 Lớp NWLM2LayerForCG.cs chứa hàm dùng để chạy giải thuật CG
3 CG.cs chứa code chạy giải thuật CG Hàm chạy giải thuật là hàm Run()
4 Lớp LMA.cs chứa code chạy giải thuật Levenberg-Marquardt gồm các thuộc tính và các hàm tính toán cho giải thuật trong đó hàm chạy giải thuật là hàm Run();
5 Lớp Perceptron chứa hàm sigmoid dùng để tính toán tại mỗi nút của mạng nơ ron
6 Lớp SettingNN.cs nắm giữ thông số mạng: số nơ ron đầu vào, tầng ẩn và tầng xuất khi chạy chương trình
7 Lớp Form1.cs là lớp giao diện của chương trình
8 Lớp DataNormalize chứa dữ liệu đã chuẩn hóa để các giải thuật sử dụng khi chạy chương trình.