Trang bìa BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN CƠ SỞ Tìm hiểu mạng Neural nhân tạo để dự báo mưa tại Việt Nam Giảng viên hướng dẫn Vương Xuân Chí Sinh. LỜI MỞ ĐẦU Dự báo thời tiết ra đời từ xa xưa, từ khi có sự xuất hiện của con người và càng ngày càng gắn bó với cuộc sống của chúng ta. Từ thuở ban đầu, con người đã có thể “dự đoán” trước các hiện tượng tự nhiên sẽ xảy ra trong khoản thời gian gần. Dần dần kinh nghiệm quan sát được tích lũy dần được đúc kết thành các bài toán dự báo, cho phép tính toán khá chính xác hiện tượng thời tiết sắp xảy ra. Hiện nay trên thế giới các hệ thống dự báo thời tiết nghiệp vụ được thực hiện bởi 3 phương pháp chính: Phương pháp Synôp, Phương pháp thống kê và phương pháp số trị. Mỗi phương pháp đều có ưu nhược điểm riêng. Ứng dụng mạng nơron nhân tạo là một trong những phương pháp thống kê, đó là một phương pháp mới, có nhiều ưu thế vượt trội trong việc giải quyết các vấn đề phi tuyến. Với những ưu thế vượt trội của việc ứng dụng mạng nơron nhân tạo như tính mềm dẻo, khả năng dung thứ lỗi cao, giải quyết được các vấn đề phi tuyến thích hợp trong việc xử lý dữ liệu có tính biến động lớn,… Đó là những lý do để em chọn đề tài: Tìm hiểu mạng Neural nhân tạo để dự báo mưa tại Việt Nam Chương I: Lý Thuyết Mạng Nơron 1. Mạng nơron nhân tạo Mạng noron nhân tạo (Artifical Neural Networks) mô phỏng lại mạng noron sinh học là một cấu trúc khối gồm các đơn vị tính toán đơn giản được liên kết chặt chẽ với nhau trong đó các liên kết giữa các noron quyết định chức năng của mạng. 2. Lịch sử phát triển của mạng nơron nhân tạo Năm 1943, McCulloch và Pitts đã đưa ra khả năng liên kết và một số liên kết cơ bản của mạng nơron. Năm 1949, Hebb đã đưa ra các luật thích nghi trong mạng nơron. Năm 1958, Rosenblatt đưa ra cấu trúc Perception. Năm 1969, Minsky và Papert phân tích sự đúng đắn của Perception. Năm 1976, Grossberg dựa vào tính chất sinh học đã đưa ra một số cấu trúc của hệ động học phi tuyến với các tính chất mới. Năm 1982, Hoppfield đã đưa ra mạng học phi tuyến với các tính chất mới và Rumelhart đưa ra mô hình song song (Parallel Distributer Processing – PDS) và một số kết quả, thuật toán.
Lý Thuyết Mạng Nơron
Mạng nơron nhân tạo
Mạng nơ-ron nhân tạo (Artificial Neural Networks) là hệ thống mô phỏng mạng nơ-ron sinh học, gồm một khối các đơn vị tính toán đơn giản được liên kết chặt chẽ với nhau Các liên kết giữa các nơ-ron quyết định chức năng của mạng và khả năng học của nó, cho phép nó nhận diện, dự đoán và giải quyết các bài toán phức tạp dựa trên dữ liệu.
Lịch sử phát triển của mạng nơron nhân tạo
- Năm 1943, McCulloch và Pitts đã đưa ra khả năng liên kết và một số liên kết cơ bản của mạng nơron
- Năm 1949, Hebb đã đưa ra các luật thích nghi trong mạng nơron
- Năm 1958, Rosenblatt đưa ra cấu trúc Perception
- Năm 1969, Minsky và Papert phân tích sự đúng đắn của Perception
- Năm 1976, Grossberg dựa vào tính chất sinh học đã đưa ra một số cấu trúc của hệ động học phi tuyến với các tính chất mới
- Năm 1982, Hoppfield đã đưa ra mạng học phi tuyến với các tính chất mới và
Rumelhart đưa ra mô hình song song (Parallel Distributer Processing – PDS) và một số kết quả, thuật toán.
Các đặc trưng cơ bản của mạng nơron
- Gồm một tập các đơn vị xử lý (các noron nhân tạo)
- Trạng thái kích hoạt hay đầu ra của đơn vị xử lý
Liên kết giữa các đơn vị được xem xét ở mức tổng quát và mỗi liên kết được đặc trưng bởi một trọng số W_jk, cho biết hiệu ứng mà tín hiệu của đơn vị j tác động lên đơn vị k Trọng số này đại diện cho mức độ ảnh hưởng, điều chỉnh hoặc biến đổi tín hiệu giữa hai đơn vị, từ đó làm rõ cách thông tin được truyền qua mạng Việc xác định W_jk là yếu tố cốt lõi để hiểu cấu trúc và động lực của hệ thống, đồng thời giúp đánh giá mức độ phụ thuộc và tương tác giữa các đơn vị trong mạng.
- Một luật lan truyền quyết định cách tính tín hiệu ra của từng đơn vị từ đầu vào của nó
Một hàm kích hoạt, hay hàm chuyển (activation function, transfer function), xác định mức độ kích hoạt dựa trên mức độ kích hoạt hiện tại và các tín hiệu đầu vào, đồng thời mỗi đơn vị có một tham số điều chỉnh (bias, offset) để điều chỉnh ngưỡng kích hoạt của nó.
- Phương pháp thu thập thông tin (luật học - learning rule)
- Môi trường hệ thống có thể hoạt động.
Các thành phần cơ bản của mạng nơron nhân tạo
Nơ-ron, còn được biết đến như một nút (node) trong mạng nơ-ron nhân tạo, thực hiện một nhiệm vụ cơ bản: nhận tín hiệu đầu vào từ các neuron ở lớp trước hoặc từ nguồn bên ngoài, sau đó tính toán để tạo ra tín hiệu đầu ra và lan truyền sang các đơn vị khác trong mạng.
Hình 1.1 – Đơn vị xử lý (Processing Unit)
Trong một nơ-ron của mạng neural, xi là các đầu vào và wji là các trọng số tương ứng với từng đầu vào xi; θj là độ lệch (bias) của nơ-ron thứ j Đầu vào mạng (net-input) của nơ-ron j được tính aj = ∑i wji xi + θj, sau đó đầu ra của nơ-ron zj được sinh ra từ hàm kích hoạt g(x) theo công thức zj = g(aj) Hàm kích hoạt g(x) đóng vai trò chuyển đổi các giá trị đầu vào thành đầu ra của nơ-ron, giúp mô hình học được các đặc trưng phi tuyến và tối ưu hóa quá trình học.
Trong một mạng nơron có ba kiểu đơn vị:
- Các đơn vị đầu vào (Input units), nhận tín hiệu từ bên ngoài
- Các đơn vị đầu ra (Output units), gửi dữ liệu ra bên ngoài
Các đơn vị ẩn trong một mạng neural nhận tín hiệu đầu vào và sinh ra tín hiệu đầu ra zj, với mỗi đơn vị j có thể có nhiều đầu vào x0, x1, x2, … xn nhưng chỉ một đầu ra duy nhất Tín hiệu đầu vào cho một đơn vị có thể là dữ liệu từ bên ngoài mạng, là đầu ra của một đơn vị khác, hoặc là đầu ra của chính nó, cho phép mạng thể hiện sự phụ thuộc và hồi quy thời gian giữa các thành phần Nhờ cơ chế này, các đơn vị ẩn có thể tích luỹ và kết hợp thông tin từ nhiều nguồn khác nhau để tạo ra các biểu diễn ngày càng phức tạp từ dữ liệu đầu vào, từ đó nâng cao khả năng dự đoán và nhận dạng của hệ thống.
Mỗi đơn vị trong một mạng nơ-ron nhận giá trị đầu vào từ các đơn vị liên kết khác thông qua các liên kết và sinh ra một giá trị được gọi là net input Hàm thực hiện nhiệm vụ này được gọi là hàm kết hợp (combination function), được xác định bởi một luật lan truyền cụ thể Trong phần lớn các mạng nơ-ron, mỗi đơn vị cung cấp một tập đầu vào cho các đơn vị mà nó liên kết Tổng đầu vào của đơn vị j được tính bằng tổng các đầu ra từ các đơn vị kết nối, mỗi đầu ra được nhân với trọng số của liên kết, và cộng thêm ngưỡng hay bias θj.
Nếu wji >0 nơron được coi là ở trạng thái kích thích Nếu wji < 0 nơron được coi là ở trạng thái kiềm chế.
Trong mạng nơ-ron, hầu hết các đơn vị nơ-ron nhận đầu vào và chuyển đổi nó qua một hàm vô hướng gọi là hàm kích hoạt Kết quả của hàm kích hoạt là mức độ kích hoạt của đơn vị, một giá trị scalar được dùng làm đầu vào cho các đơn vị tiếp theo Nếu đơn vị thuộc lớp ẩn, mức kích hoạt này được truyền tới một hoặc nhiều đơn vị khác trong mạng; nếu là lớp ra, giá trị kích hoạt có thể đóng vai trò là đầu ra của hệ thống Hàm kích hoạt cho phép mạng nơ-ron học các mối quan hệ phi tuyến giữa đầu vào và đầu ra, từ đó tăng khả năng biểu diễn và dự đoán.
Các hàm kích hoạt hay được sử dụng là:
Hàm tuyến tính (Linear function) g(x) = x
Khi coi các đầu vào như một đơn vị, hệ thống sẽ sử dụng hàm này Đôi khi một hằng số được nhân với net-input để tạo ra một hàm đồng nhất.
Hình 1.2: Hàm tuyến tính (Linear function)
Binary step function (hàm bước nhị phân), hay còn gọi là hàm ngưỡng hoặc hàm Heaviside, là một hàm rời rạc có đồ thị hình bước Đầu ra của hàm này chỉ nhận một trong hai giá trị cố định, thường là 0 hoặc 1, tùy ngưỡng được thiết lập dựa trên đầu vào; khi đầu vào vượt ngưỡng, đầu ra nhảy từ 0 lên 1 (và ngược lại theo định nghĩa) Hàm bước nhị phân được ứng dụng làm ngưỡng kích hoạt đơn giản trong các hệ thống quyết định và mạng nơ-ron.
Dạng hàm này được sử dụng trong các mạng chỉ có một lớp Trong hình vẽ sau, θ được chọn bằng 1.
Hình 1.3: Hàm tuyến tính (Linear function)
Hàm sigmoid (Sigmoid function (logsig))
Hàm này đặc biệt thuận lợi khi sử dụng cho các mạng được huấn luyện
Thuật toán Lan truyền ngược (backpropagation) được sử dụng để huấn luyện mạng nơ-ron vì nó cho phép dễ dàng tính đạo hàm, từ đó có thể giảm đáng kể khối lượng tính toán trong quá trình huấn luyện Hàm mục tiêu của phương pháp này được ứng dụng cho các hệ thống mà đầu ra mong muốn nằm trong khoảng [0, 1], thích hợp cho các bài toán phân loại nhị phân và dự đoán xác suất.
Hàm sigmoid lưỡng cực (Bipolar sigmoid function (tansig))
Hàm này có các thuộc tính tương tự hàm sigmoid Nó làm việc tốt đối với các ứng dụng có đầu ra yêu cầu trong khoảng [-1,1]
Hình 1.5: Hàm sigmoid lưỡng cực
Để biểu diễn các ánh xạ phi tuyến trong mạng nơ-ron, hàm kích hoạt của nơ-ron ẩn đóng vai trò thiết yếu Sự kết hợp của các hàm kích hoạt giúp mạng nơ-ron học được các đặc trưng phi tuyến, và đặc tính này cho phép các mạng nơ-ron sâu (nhiều lớp) biểu diễn các ánh xạ phi tuyến một cách hiệu quả Tuy nhiên, đối với quá trình lan truyền ngược (backpropagation), hàm kích hoạt cần có tính khả vi và được định nghĩa trên một khoảng xác định để tối ưu gradient Vì vậy, hàm Sigmoid là một lựa chọn phổ biến nhất cho vai trò này.
Hàm kích hoạt của các nơron đầu ra được chọn sao cho phù hợp với sự phân phối của các giá trị đích mong muốn.
Cấu trúc của mạng nơron
Cấu trúc của mạng nơ ron được xác định bởi số lớp, số nơ ron trên mỗi lớp, và sự liên kết giữa các nơ ron Dựa vào cách thức liên kết các nơ ron, mạng nơ ron được chia thành hai loại chính: mạng nơ ron feedforward, nơi tín hiệu di chuyển một chiều từ đầu vào đến đầu ra và không có vòng lặp, và mạng nơ ron hồi tiếp (recurrent), nơi các nơ ron được liên kết theo chu trình để có khả năng lưu trữ trạng thái và xử lý chuỗi dữ liệu Việc lựa chọn loại liên kết ảnh hưởng đến khả năng học, thời gian huấn luyện và phạm vi ứng dụng, từ phân loại hình ảnh đến dự báo chuỗi thời gian và nhận diện mẫu.
5.1 Mạng truyền thẳng (Feed-forward neural network)
Dòng dữ liệu từ đầu vào đến đầu ra được truyền thẳng qua các lớp xử lý mà không có liên kết phản hồi Mạng có thể mở rộng thành nhiều lớp, nhưng vẫn là hệ thống feedforward: các liên kết từ các đơn vị đầu ra tới các đơn vị đầu vào trong cùng lớp hoặc các lớp trước đó bị loại bỏ.
Hình 1.6: Mạng nơron truyền thẳng nhiều lớp (Feed-forward neural network)
5.2 Mạng hồi quy (Recurrent neural network):
Có chứa các liên kết ngược, nghĩa là các nơron lớp ra tới nơron lớp vào trong cùng một lớp hoặc các lớp trước đó
Hình 1.7: Mạng nơron hồi quy (Recurrent neural network)
Huấn luyện mạng
Chức năng của một mạng nơ-ron được xác định bởi hai yếu tố chính: hình trạng mạng (số lớp, số đơn vị trên mỗi tầng và cách các lớp 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 trạng mạng thường cố định, trong khi các trọng số được tối ưu bởi một thuật toán huấn luyện nhằm cho mạng nhận biết quan hệ giữa đầu vào và đích mong muốn Quá trình điều chỉnh trọng số để mạng học được mối quan hệ này được gọi là học (learning) hoặc huấn luyện (training) Có nhiều thuật toán học được phát minh để tìm tập trọng số tối ưu cho các bài toán, và các thuật toán đó chia thành hai nhóm chính: học có thầy (supervised learning) và học không có thầy (unsupervised learning).
6.1 Học có thầy (Supervised learning)
Quá trình huấn luyện mạng nơ-ron diễn ra bằng cách cung cấp cho mạng các cặp mẫu gồm đầu vào và các giá trị đầu ra mong muốn (target values) Các cặp này do “thầy giáo” hướng dẫn hoặc từ hệ thống mà mạng hoạt động trên đó Sự khác biệt giữa đầu ra thực tế và đầu ra mong muốn được thuật toán sử dụng để điều chỉnh các trọng số của mạng nhằm tối ưu hóa khả năng dự đoán Điều này thường được xem như một bài toán xấp xỉ hàm số, giúp mô hình học cách nhận diện và dự đoán chính xác hơn.
Trong học máy, dữ liệu huấn luyện được đặc trưng bởi các cặp mẫu đầu vào x và đích tương ứng t Mục tiêu là tìm ra một hàm f(x) nhằm khớp mọi cặp mẫu đầu vào x với đích t đã cho Quá trình này cho phép mô hình học từ dữ liệu, tổng quát hóa kiến thức và dự đoán đúng đắn cho các trường hợp mới.
Hình 1.8: Mô hình học có thầy (Supervised learning model)
6.2 Học không có thầy (Unsupervised Learning)
Trong học không thầy, không có phản hồi từ môi trường để xác định xem đầu ra của mạng có đúng hay không, mạng phải tự khám phá các đặc trưng, các điều chỉnh, các mối tương quan và các lớp trong dữ liệu đầu vào Trong thực tế, với phần lớn các biến thể của học không thầy, các đích học được trùng với đầu vào Nói cách khác, học không thầy thường 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 để tạo ra các biểu diễn mang ý nghĩa.
Hàm mục tiêu
Để huấn luyện một mạng và đánh giá xem nó hoạt động ở mức nào, ta cần xây dựng một hàm mục tiêu (hàm chi phí) làm thước đo rõ ràng cho hiệu suất hệ thống Việc chọn hàm mục tiêu rất quan trọng vì nó phản ánh các mục tiêu thiết kế và quyết định những thuật toán huấn luyện có thể được áp dụng Phát triển một hàm mục tiêu có thể đo đúng những gì ta mong muốn không phải là dễ dàng Có một số hàm cơ bản được sử dụng rộng rãi, trong đó một trong những ví dụ phổ biến nhất là hàm tổng bình phương lỗi.
Trong đó, p là số thứ tự của mẫu trong tập huấn luyện và i là số thứ tự của đơn vị đầu ra Tpi và ypi tương ứng là đầu ra mong muốn và đầu ra thực tế của mạng đối với đơn vị đầu ra thứ i trên mẫu thứ p, cho phép so sánh giữa giá trị kỳ vọng và kết quả thực tế để ước lượng sai số và phục vụ cho quá trình tối ưu hóa mô hình.
Trong các ứng dụng thực tế, khi cần thiết có thể làm phức tạp hàm số bằng một vài yếu tố bổ sung để kiểm soát được sự phức tạp của mô hình Việc thêm các yếu tố này cho phép hàm số thể hiện đúng hơn các quan hệ trong dữ liệu, đồng thời cho phép điều chỉnh mức độ phức tạp nhằm tối ưu hóa hiệu suất, độ ổn định và khả năng tổng quát của mô hình trong dự báo và phân tích.
Mạng truyền thẳng và thuật toán lan truyền ngược
Để đơn giản và tránh hiểu nhầm, mạng truyền thẳng trình bày trong phần này là mạng truyền thẳng có nhiều lớp (MLP - MultiLayer Perceptron) Đây là một trong những mạng truyền thẳng điển hình, thường được sử dụng trong các hệ thống nhận dạng
Một mạng truyền thẳng nhiều lớp bao gồm một lớp vào, một lớp ra và một hoặc nhiều lớp ẩn Các nơron đầu vào thực chất không phải các nơron theo đúng nghĩa, bởi lẽ chúng không thực hiện bất kỳ một tính toán nào trên dữ liệu vào, đơn giản nó chỉ tiếp nhận các dữ liệu vào và chuyển cho các lớp kế tiếp Các nơron ở lớp ẩn và lớp ra mới thực sự thực hiện các tính toán, kết quả được định dạng bởi hàm đầu ra (hàm chuyển) Cụm từ “truyền thẳng” (feed forward) (không phải là trái nghĩa của lan truyền ngược) liên quan đến một thực tế là tất cả các nơron chỉ có thể được kết nối với nhau theo một hướng: tới một hay nhiều các nơron khác trong lớp kế tiếp (loại trừ các nơron ở lớp ra)
Hình 1.9: Mạng nơron truyền thẳng nhiều lớp
P: Vector đầu vào (vector cột)
W i : Ma trận trọng số của các nơron lớp thứ i
(S i x R i : S hàng (nơron) - R cột (số đầu vào)) b i : Vector độ lệch (bias) của lớp thứ i (S i x1: cho S nơron) n i : net input (S i x1) f i : Hàm chuyển (hàm kích hoạt) a i : net output (S i x1)
Trong mạng neural, mỗi liên kết gắn với một trọng số được cộng dồn vào tín hiệu khi tín hiệu đi qua liên kết đó Trọng số có thể dương, thể hiện trạng thái kích thích, hoặc âm, thể hiện trạng thái kiềm chế Mỗi nơ-ron tính toán mức kích hoạt bằng cách cộng các đầu vào và áp dụng một hàm kích hoạt Khi đầu ra của tất cả các nơ-ron trong một lớp mạng đã thực hiện tính toán, lớp kế tiếp có thể bắt đầu xử lý vì đầu ra của lớp hiện tại tạo đầu vào cho lớp kế tiếp Sau khi tất cả các nơ-ron đã tính toán, kết quả được trả về bởi các nơ-ron đầu ra Tuy nhiên, kết quả có thể chưa đáp ứng yêu cầu; khi đó một thuật toán huấn luyện được áp dụng để điều chỉnh các tham số của mạng.
Xét trường hợp mạng có hai lớp như hình 1.9, công thức tính toán cho đầu ra như sau:
Mạng nơ-ron có nhiều lớp thể hiện khả năng biểu diễn và xấp xỉ các hàm toán học phức tạp tốt hơn so với mạng chỉ có một lớp Ví dụ, một mạng hai lớp với lớp đầu tiên dùng hàm sigmoid và lớp thứ hai dùng hàm đồng nhất có thể áp dụng để xấp xỉ các hàm toán học khá tốt, trong khi các mạng một lớp không có khả năng này.
Thiết kế cấu trúc mạng
Mặc dù về lý thuyết tồn tại một mạng nơ-ron có thể mô phỏng một bài toán với độ chính xác bất kỳ, việc xác định mạng đó không hề dễ dàng Để định nghĩa chính xác một kiến trúc mạng, cần xác định số lớp ẩn và số đơn vị xử lý ở mỗi lớp cho từng bài toán cụ thể, đó là một thách thức cực đại Thực tế, việc tối ưu hóa kiến trúc mạng nơ-ron để đạt hiệu suất cao đòi hỏi nghiên cứu dữ liệu, thử nghiệm và điều chỉnh liên tục, chứ không chỉ dựa trên các giả định lý thuyết.
Vì các mạng neural có hai lớp ẩn có thể biểu diễn các hàm ở mọi dạng nên về lý thuyết không có lý do để dùng mạng có nhiều hơn hai lớp ẩn Nghiên cứu cho thấy đối với phần lớn các bài toán thực tế, chỉ cần một lớp ẩn là đủ để mạng học các đặc trưng quan trọng Các bài toán đòi hỏi hai lớp ẩn hiếm khi xuất hiện trong thực tế Ngay cả khi một bài toán yêu cầu nhiều lớp ẩn, hầu hết các trường hợp thử nghiệm cho thấy hiệu năng tốt hơn khi chỉ dùng một lớp ẩn, thay vì mở rộng thêm lớp ẩn.
12 hơn một lớp Việc huấn luyện mạng thường rất chậm khi mà số lớp ẩn sử dụng càng nhiều
Số đơn vị trong lớp ẩn:
Trong thiết kế một mạng, số lượng đơn vị ở mỗi lớp là yếu tố quan trọng quyết định khả năng nhận dạng và biểu diễn dữ liệu Sử dụng quá ít đơn vị có thể khiến mạng không nhận diện được đầy đủ các tín hiệu trong một tập dữ liệu phức tạp, dẫn đến hiện tượng underfitting (không khớp với dữ liệu).
Việc sử dụng quá nhiều đơn vị trong mạng neuron sẽ làm tăng thời gian huấn luyện và có thể gây khó khăn cho quá trình tối ưu Số lượng lớn các đơn vị có thể dẫn đến hiện tượng quá khớp (overfitting), khi mạng nắm quá nhiều thông tin trong khi bộ dữ liệu huấn luyện (training set) lại không đủ đại diện cho các đặc trưng của bài toán.
Số lượng đơn vị ẩn tối ưu phụ thuộc vào nhiều yếu tố, bao gồm số đầu vào và đầu ra của mạng, số trường hợp trong tập huấn luyện, mức nhiễu của dữ liệu đích, độ phức tạp của hàm mất mát và của vấn đề, kiến trúc mạng (số lớp, độ sâu, kết nối) và thuật toán huấn luyện được áp dụng Không có một con số cố định cho mọi bài toán: cần thực hiện thử nghiệm và tinh chỉnh dựa trên hiệu suất trên tập kiểm định, cân nhắc giữa khả năng biểu diễn và chi phí tính toán để xác định số lượng ẩn tối ưu cho từng trường hợp.
Trong phần lớn các trường hợp, không có cách đơn giản để xác định số tối ưu các đơn vị trong lớp ẩn mà không phải luyện mạng với các mức số đơn vị khác nhau và dự báo lỗi tổng quát hóa cho từng lựa chọn Phương pháp thử-sai (trial-and-error) được xem là cách tiếp cận hiệu quả nhất Trong thực tế, có thể áp dụng phương pháp Lựa chọn tiến (forward selection) hay Lựa chọn lùi (backward selection) để xác định số đơn vị trong lớp ẩn.
Lựa chọn tiêu chí đánh giá hiệu năng của mạng làm bước đầu Tiếp theo, chọn một số lượng nhỏ đơn vị ẩn, tiến hành huấn luyện và thử nghiệm mạng, ghi nhận hiệu suất Sau đó, tăng nhẹ số đơn vị ẩn và lặp lại quá trình huấn luyện và thử nghiệm cho đến khi lỗi đạt mức chấp nhận được hoặc không còn tiến triển đáng kể so với lần thử trước.
Trong so sánh với lựa chọn tiến, lựa chọn lùi bắt đầu bằng một số lớn các đơn vị trong lớp ẩn và dần giảm xuống cho đến khi xác định được số lượng tối ưu Quá trình này tốn thời gian nhưng có tác dụng tìm ra số lượng đơn vị phù hợp cho lớp ẩn, từ đó tối ưu hóa hiệu suất của mạng và độ khớp với dữ liệu.
8.2 Thuật toán lan truyền ngược (Back-Propagation)
Cần phân biệt rõ giữa kiến trúc của một mạng và thuật toán học của nó Các mô tả ở trên nhằm làm rõ các yếu tố kiến trúc của mạng và cách mạng tính toán các đầu ra từ tập đầu vào Dưới đây là mô tả về thuật toán học được sử dụng để điều chỉnh hiệu năng của mạng, sao cho mạng có khả năng sinh ra các kết quả mong muốn.
Có hai dạng thuật toán để luyện mạng nơ-ron: học có thầy và học không có thầy Các mạng nơ-ron truyền thẳng nhiều lớp được luyện chủ yếu bằng phương pháp học có thầy, dựa trên việc yêu cầu mạng thực hiện chức năng của nó và sau đó trả lại kết quả, kết hợp kết quả này với các đầu ra mong muốn để điều chỉnh các tham số của mạng Quá trình này cho phép mạng học thông qua những sai sót của nó và cải thiện dần hiệu suất bằng cách tối ưu hóa sự phù hợp giữa kết quả thực tế và kết quả mong muốn.
Thuật toán lan truyền ngược là một dạng tổng quát của các phương pháp tối ưu dựa trên sai số, trong đó thuật toán trung bình bình phương tối thiểu (Least Mean Squares - LMS) được xem như một trường hợp đặc biệt Đây là một họ thuật toán xấp xỉ nhằm tìm các điểm tối ưu cho hiệu suất của mạng neural hoặc hệ thống, thông qua quá trình cập nhật tham số dựa trên sai số và gradient của hàm mất mát Mục tiêu là tối ưu hóa chỉ số hiệu suất của mô hình và đạt được hiệu quả cao nhất trong quá trình học.
Ứng dụng mạng nơron dự báo thời tiết
Cấu trúc mạng lan truyền ngược
Mạng nơ ron có nhiều cấu trúc và luật học khác nhau; trong số đó, mạng lan truyền ngược (Backpropagation) nổi bật nhờ khả năng hiệu chỉnh sai số đầu ra một cách nhanh chóng và hiệu quả trong quá trình huấn luyện Quá trình học diễn ra qua hai pha chính: truyền tiến để tính toán đầu ra dựa trên trọng số hiện tại và dữ liệu đầu vào, sau đó lan truyền ngược sai số qua các lớp để cập nhật trọng số theo hướng giảm hàm mất mát Nhờ cơ chế tối ưu gradient, mạng lan truyền ngược có thể học các mối quan hệ phi tuyến phức tạp và áp dụng cho nhiều kiến trúc như MLP, CNN, RNN, cho phép xử lý dữ liệu hình ảnh, âm thanh, văn bản và chuỗi thời gian với hiệu suất ngày càng cao Các công cụ triển khai phổ biến như TensorFlow và PyTorch giúp world-ready hóa các mô hình này, đồng thời mở rộng phạm vi ứng dụng từ nhận diện và phân loại đến dự báo và phân tích chuỗi thời gian Tuy nhiên, để đạt hiệu quả tốt, cần lượng dữ liệu lớn, chú ý đến hiện tượng quá khớp và khả năng giải thích kết quả còn hạn chế ở một số mô hình.
Networks) so với một vài luật học khác Mạng được chọn ba lớp truyền thẳng
(Hình 2.1): lớp vào, lớp ẩn (ở giữa), lớp ra
Hình 2.1: Cấu trúc mạng nơron ba lớp lan truyền ngược
1.1 Lớp vào (Input Layer) Đầu vào: xj , (j = 1, , 4 cho thực nghiệm, x1 : nhiệt độ; x2 : độ ẩm; x3 : mây; x4: mưa)
Trong lớp vào của mạng nơ ron, số lượng nơ ron được chọn (ví dụ q = 1, ,m; trong thực nghiệm chọn 3 nơ ron) Trong đó q là nơ ron thứ q của lớp vào; v_qj là trọng số đầu vào thứ j nối với nơ ron thứ q Tổng số trọng số đầu vào trong thực nghiệm này là 3 × 4 trọng số, tức là 12 trọng số liên kết giữa các tín hiệu đầu vào và các nơ ron của lớp vào.
1.2 Lớp ẩn (Hidden Layer) Đầu ra số (Digital Output) của lớp vào chính là đầu vào của lớp ẩn, là một hàm của đầu vào tương tự (Analog Output)
Hàm tương tác đầu ra của mỗi nơ ron của tất cả các lớp: chọn hàm Sigmoid fq (.):
Chọn l = 18 nơ ron cho lớp ẩn Số này được chọn theo thực nghiệm từ những kết quả tối ưu và giá trị lỗi trong quá trình huấn luyện.
Tổng đầu ra của nơron thứ i(neti ) và đầu ra (bị chặn) yi có thể xác định theo:
Trong mạng nơ-ron, i đại diện cho nơ-ron thứ i trong lớp đầu ra, và số nơ-ron của lớp đầu ra được xác định dựa trên cách mã hóa đặc trưng đầu ra Trong bối cảnh bài toán đã nêu, kích thước lớp đầu ra được thiết lập là n = 3, tức có ba nơ-ron đầu ra để biểu diễn các mục tiêu đầu ra Việc chọn đúng số nơ-ron ở lớp đầu ra ảnh hưởng trực tiếp đến khả năng suy đoán và độ chính xác của mô hình.
Dùng thuật học lan truyền ngược sử dụng phương pháp hạ Gradient
Hoạt động của mạng nơ ron gồm hai pha, hay hai giai đoạn: pha học xác định các tham số w_ij của mạng nhằm cho phép mô hình học từ dữ liệu huấn luyện; sau pha học, mạng chuyển sang pha chạy thử để kiểm tra và thể hiện khả năng suy luận của mạng đối với các mẫu lạ chưa được học, từ đó đánh giá tính khái quát và hiệu suất của hệ thống.
Có nhiều kỹ thuật xác định Δwij, nhưng ở đây chúng tôi chọn kỹ thuật hạ Gradient (gradient descent) để tối ưu trong trường hợp hàm mục tiêu là một hàm số bậc hai nhiều biến có dạng parabol với điểm đáy, tức là có điểm cực tiểu Đạo hàm riêng bậc nhất của hàm số này chỉ ra hướng cập nhật giúp giảm giá trị của hàm mất mát, từ đó cập nhật các trọng số một cách có hướng Cách cập nhật trọng số được thể hiện qua Δwij = - η ∂L/∂wij, trong đó η là tốc độ học và ∂L/∂wij là đạo hàm riêng của hàm mất mát L đối với trọng số wij, giúp hội tụ đến minima một cách hiệu quả.
Hình 2.2 minh họa phương pháp gradient descent Theo phương pháp hạ Gradient, quá trình cập nhật trọng số diễn ra theo hướng giảm của hàm mất mát; trọng số liên kết giữa các lớp, ví dụ giữa lớp ẩn và lớp ra, được cập nhật để tối ưu hóa mạng Cụ thể, mỗi lần cập nhật, các trọng số được cập nhật theo công thức w ← w − η ∂L/∂w, trong đó η là tốc độ học (learning rate) và ∂L/∂w là đạo hàm riêng của hàm mất mát L đối với trọng số đó Quá trình này lặp đi lặp lại cho mọi liên kết giữa các lớp nhằm giảm giá trị của hàm mất mát và cải thiện khả năng dự đoán của mạng.
Trong đó: η là hằng số học Nó chỉ tốc độ cập nhật trọng số từng bước lặp của thuật toán
Thuật toán hạ gradient (gradient descent) là kỹ thuật tối ưu hóa được dùng để cập nhật trọng số của mạng nơ-ron bằng cách giảm thiểu hàm lỗi Quá trình tính toán trọng số từ lớp đầu vào tới lớp đầu ra diễn ra qua truyền thẳng (forward pass), nơi các trọng số hiện tại được áp dụng để ước lượng đầu ra và sai số tương ứng Ngược lại, quá trình tính toán trọng số từ lớp ra về lớp đầu vào — được gọi là lan truyền ngược (backpropagation) — giúp sai số được truyền ngược và các trọng số được cập nhật sao cho sai số ngày càng giảm và quá trình học hội tụ nhanh hơn Thuật toán lan truyền ngược (BP) là cơ chế chủ yếu để tính toán gradient và cập nhật trọng số dựa trên sai số ở đầu ra.
Thuật toán BP có thể tóm tắt như sau:
Xét mạng với q lớp truyền thẳng, q = 1, 2, …, Q ký hiệu q neti và q yi lần lượt là tổng đầu vào và đầu ra của nơron thứ i trong lớp q
Mạng có m nút đầu vào và n nút đầu ra q wij biểu thị trọng số liên kết từ q-1 yj tới qyi
- Đầu vào: Một tập các cặp huấn luyện {(x(k), d(k)| k = 1, 2, …, p)}
Ở Bước 0 (khởi tạo), chọn tốc độ học η = 0.5 và Emin = 0 (là giá trị lỗi cực đại chấp nhận được); các trọng số được khởi tạo với giá trị ngẫu nhiên nhỏ nhằm đảm bảo sự khởi động ổn định cho quá trình tối ưu; bước lặp khởi đầu được đặt với k = 1 để bắt đầu vòng lặp tối ưu hóa.
- Bước 1 (lặp huấn luyện): Đưa mẫu đầu vào thứ k tới lớp đầu vào:
- Bước 2 (lan truyền tiến): Lan truyền tiến tính tín hiệu qua mạng sử dụng:
Với mỗi i và q tới khi mọi đầu ra của lớp ra Q yi đều được áp dụng
- Bước 3 (tính toán lỗi): Tính giá trị lỗi E và tín hiệu lỗi Q δi cho lớp đầu ra:
- Bước 4 (lan truyền ngược lỗi): Lan truyền ngược trở lại để cập nhật các trọng số và tính toán tín hiệu lỗi q -1 δi cho các lớp trước:
Trong Bước 5 (lặp 1 chu kỳ), hệ thống thực hiện kiểm tra toàn bộ tập dữ liệu luyện đã được duyệt Nếu k < p, giá trị k được tăng lên thành k+1 và chương trình quay về Bước 1 để thực hiện lần lặp tiếp theo; ngược lại, khi k không còn nhỏ hơn p, tiến hành Bước 6 để tiếp tục quá trình xử lý.
Ở Bước 6 (kiểm tra lỗi toàn thể), ta tiến hành kiểm tra lỗi tổng thể của mô hình Nếu E < Emin, quá trình huấn luyện được kết thúc Nếu không, kiểm tra xem đã đạt đến giới hạn số chu kỳ (vòng lặp) chưa; nếu chưa, thiết lập E = 0 và k = 1 rồi bắt đầu một chu kỳ mới bằng cách quay lại bước 1.
Xây dựng hệ thống dự báo thời tiết
Thu thập dữ liệu lịch sử từ các năm trước cho phép phân tích 4 tham số chính ảnh hưởng đến thời tiết: nhiệt độ, độ ẩm, mây và mưa Mỗi tham số có các thuộc tính và mức độ phụ thuộc riêng, khi được đánh giá đồng bộ sẽ cho thấy các mẫu thời tiết và xu hướng biến đổi rõ rệt Ví dụ, nhiệt độ thay đổi theo mùa và theo tháng, trong khi độ ẩm, lượng mây và lượng mưa biểu hiện các mô hình phụ thuộc chu kỳ khí hậu và điều kiện địa lý Hiểu rõ mối quan hệ giữa các tham số này giúp xây dựng mô hình dự báo thời tiết chính xác hơn và hỗ trợ quyết định về ứng phó với biến đổi khí hậu.
Nếu tháng đó rơi vào mùa mưa thì nhiệt độ có thể thấp (27.0 o C)… Dựa trên các đặc điểm đó ta xây dựng bài toán:
Với bốn yếu tố chính ảnh hưởng đến thời tiết trên, ta có thể phân chia mỗi yếu tố thành các trường hợp cụ thể như sau:
Biến nhiệt độ (kí hiệu ND), có các khoảng giá trị: thấp nếu ND từ 0 đến 25.5; trung bình ND từ 25.5 đến 27.0; cao ND từ 27.0 đến 45;
Biến độ ẩm (kí hiệu ĐA):Thấp nếu ĐA từ 0 – 80; Cao nếu ĐA từ 80 - 100
Biến lượng mưa (kí hiệu M): Không mưa (0); Rải rác: M từ 1 đến 2; Nhỏ: M từ 3 đến 50; lớn: M từ 51 đến 1000
Biến lượng mây (MA) Ít nếu MA từ 0 đến 20; Nhiều: MA từ 20 đến 30; Rất nhiều nếu lượng mây lớn hơn 30.