Phát triển mô hình

Một phần của tài liệu Mô hình hóa hệ thức hợp ứng dụng mạng nơron (Trang 73 - 110)

5.4.1. Phƣơng pháp luận

Vấn đề đặt ra trong phần này là làm như thế nào để người ta tạo ra được một mô hình mạng nơron phù hợp để áp dụng cho một bài toán cụ thể. Cơ sở phương pháp luận của nó là gì? Và các bước tiến hành như thế nàỏ

Khi phát triển mô hình mạng nơron người ta tiến hành thực hiện các bước sau:

Hình 5.4. Các bước phát triển mô hình

5.4.1.1. Thu thập dữ liệu và xử lý dữ liệu

Dữ liệu đóng một vai trò quan trọng trong các giải pháp ứng dụng mạng nơron. Chất lượng, độ tin cậy, tính sẵn có và phù hợp của dữ liệu được sử dụng để phát triển hệ thống giúp cho các giải pháp thành công. Trong bất kỳ quá trình xây dựng mô hình nào, hiểu rõ tường tận dữ liệu là công việc hết sức quan trọng. Mô hình mạng nơron cũng không nằm trong trường hợp ngoại lệ [15] và công tác xử lý sơ bộ

dữ liệu có ảnh hưởng mật thiết đến quá trình chạy mô hình. Các mô hình đơn giản cũng có thể đạt được những kết quả nhất định nếu như dữ liệu được xử lý tốt, thể hiện được những thông tin quan trọng. Bên cạnh đó các mô hình tốt chưa chắc cho ta kết quả mong muốn nếu như dữ liệu đưa vào quá phức tạp và rắc rốị Thông thường, trước khi xử lý sơ bộ dữ liệu, người ta sẽ chia dữ liệu thành các nhóm có vai trò khác nhau (nhóm để luyện mạng, nhóm để kiểm chứng,…) và các biến khác nhau sẽ dao động trong những khoảng giá trị khác nhaụ Để đảm bảo rằng tất cả các biến đều bình đẳng với nhau trong quá trình luyện mạng, các biến nên được chuẩn hóa (H.R. Maier, G.C. Dandy, 2000 [15]). Ngoài ra, các biến có thể được chuẩn hóa tương ứng với giới hạn của hàm truyền được sử dụng ở lớp rạ

5.4.1.2. Xây dựng mô hình

* Xác định thông số đầu vào mô hình.

Trong quá trình xây dựng mô hình thì việc lựa chọn các biến đầu vào hợp lý là rất quan trọng. Song không ít trường hợp khi ứng dụng mạng nơron người thiết lập thường ít chú trọng đến vấn đề nàỵ Lý do chính là các mạng nơron nhân tạo phụ thuộc vào các lớp dữ liệu cho sẵn, trong khi đó các phương pháp thống kê truyền thống lại sử dụng phương pháp tiếp cận từ các mô hình, nghĩa là cấu trúc của mô hình xác định trước, dưới sự giúp đỡ của công cụ phân tích hoặc kinh nghiệm sẵn có trước khi xác định các thông số của mô hình. Với cách tiếp cận dữ liệu của mạng nơron nhân tạo thì chúng có khả năng xác định cấu trúc mô hình nào cần thiết cho dữ liệu nhập vàọ Nhưng vấn đề đặt ra là khi ta chạy mô hình mạng nơron với một số lượng lớn các giá trị đầu vào và dựa vào mạng nơron để xác định các thông số đầu vào quan trọng của mô hình, thường dẫn đến tăng kích thước của mạng. Điều này dẫn tới một số bất lợi như giảm tốc độ xử lý của mạng và làm tăng số lượng dữ liệu cần thiết để ước lượng các trọng số có hiệu quả, nhất là khi gặp phải những bài toán phức tạp, với nhiều giá trị đầu vào và nếu không có sự sàng lọc để ưu tiên, lựa chọn các biến đầu vào một cách hợp lý thì vấn đề càng trở nên trầm trọng. Do đó, chúng ta phải sử dụng các kỹ thuật phân tích để xác định các thông số đầu vào thích

* Xác định cấu trúc của mạng.

Cấu trúc của mạng được xác định bởi số lượng các trọng số kết nối (các thông số tự do) và cách thức hình thành các “dòng chảy” (la truyền dữ liệu trong mạng). Công việc xác định cấu trúc của mạng là một trong những nhiệm vụ quan trọng nhất nhưng cũng khó khăn nhất trong xây dựng mô hình.

Phương pháp thực hiện xây dựng 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.

Tuy nhiên, các thực nghiệm cho thấy rằng, số lớp ẩn sử dụng trong mạng không nên vượt quá 4 lớp. Bên cạnh đó, việc chọn lựa số đầu vào mạng cũng mang một tính chất quyết định đến cấu trúc của mạng để có được khả năng tổng quát hóa tốt.

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.

Bất kể phương pháp nào thì luật tổng quát nhất là thực hiện chọn cấu trúc mạng cho ta lỗi tổng quát hóa trên tập dữ liệu huấn luyện là nhỏ nhất. Khi thực hiện điều chỉnh, nên giữ các tham số còn lại không thay đổi để tránh tạo ra các cấu trúc khác có khả năng đưa lại các phức tạp không cần thiết trong quá trình lựa chọn số tối ưu các nơron trong lớp ẩn.

5.4.1.3. Luyện mạng

Quá trình tối ưu hóa các trọng số kết nối được gọi là quá trình “luyện” mạng hay quá trình “học”. Nó tương đương với quá trình ước lượng các tham số trong các mô hình thống kê kinh điể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ỗị

Vấn đề đặt ra là khi nào kết thúc quá trình huấn luyện. Có hai quan điểm trong vấn đề này:

Quan điểm thứ nhất cho rằng chỉ nên ngừng huấn luyện chừng nào không có tiến triển nào của hàm lỗi nữa đối với dữ liệu trên một số tập các tham số của mạng

được chọn ngẫu nhiên. Nói cách khác là xác định được khả năng đạt đến được điểm cực tiểu toàn cục lớn nhất.

Quan điểm thứ hai lại cho rằng cần thực hiện xem xét thường xuyên khả năng tổng quát hóa của mạng bằng cách: sau một số chu kỳ nào đó thực hiện kiểm tra và kiểm tra sự tổng quát hóa của mạng, sau đó lại tiếp tục quá trình huấn luyện.

Cả hai quan điểm này đều thống nhất rằng kết quả kiểm tra trên tập kiểm định là chính xác nhất bởi lẽ nó thể hiện trực tiếp kết quả lời của mạng sau khi được huấn luyện.

Việc thực hiện huấn luyện mạng còn cần phải xem xét khả năng của mạng nơron với một số nào đó lần thực hiện huấn luyện mạng trên các tập khởi tạo ban đầu của các tham số. Sau khi thực hiện huấn luyện trên tất cả các tham số này cần thực hiện đánh giá lại kết quả, từ đó đưa ra kết luận về số lần tối đa thực hiện huấn luyện cho mạng cho từng bài toán cụ thể của mình.

Một phương pháp khác là thực hiện vẽ đồ thị có thể theo dõi trạng thái lỗi của mạng, từ đó có thể quan sát được các vùng mà mạng có trạng thái không thay đổi đối với dữ liệu vàọ Thông thường, số lần tối đa thực hiện huấn luyện cho mạng thường có khoảng biến thiên lớn: từ vài nghìn cho đến vài chục, vài trăm nghìn chu kỳ, việc theo dõi được trạng thái của mạng đối vơi tập huấn luyện và khả năng tổng quát hóa để có thể ngừng khi cần là khá quan trọng. Có thể thực hiện cập nhật đồ thị sau mỗi chu kỳ để có thể theo dõi được các tham số nàỵ

5.4.1.4. Kiểm chứng mạng

Một khi mạng đã được luyện, khả năng của chúng phải được kiểm chứng bằng một tập dữ liệu độc lập theo tiêu chí đã chọn. Nếu lỗi trong quá trình kiểm chứng có sự khác biệt nhiều so với lỗi được nghi nhận trong quá trình luyện, điều đó chứng tỏ hai khả năng xảy ra: Một là hai tập dữ liệu đã được sử dụng không đại diện được cho tổng thể, hai là mạng đã được luyện quá khớp. Quá trình kiểm chứng kém đôi khi cũng do cấu trúc của mạng thiếu hoặc đầu vào chưa xử lý,…

* Sử dụng mô hình cho công tác nghiên cứu: Một mạng nơron đã được huấn luyện với cơ sở dữ liệu hoàn chỉnh sẽ là một công cụ rất tốt cho công tác nghiên cứụ Bản thân mạng đã chứa đựng những thông tin về quá trình mà nó “học” được nên ta có thể sử dụng để khảo sát mỗi liên hệ giữa đầu vào và đầu ra của bài toán dự báo dữ liệu điều này góp phần hoàn thiện hơn các lý thuyết của quá trình dự báo dữ liệụ

* Sử dụng mô hình cho thiết kế: Khi thiết kế bất kỳ hệ thống nào, các quá trình xử lý thường được ước tính thông qua các công cụ mô phỏng. Mạng nơron sau khi được huấn luyện tỏ ra rất hữu ích khi thiết kế các hệ thống tương tự mà nó đã được huấn luyện. Mạng sẽ cung cấp các thông số hữu ích hỗ trợ quá trình đưa ra quyết định và lựa chọn các thông số vận hành phù hợp với các thông số đầu vào công cụ hệ thống cần thiết kế.

5.4.2. Xây dựng chƣơng trình máy tính

Có rất nhiều chương trình được hỗ trợ để chạy các ứng dụng của mạng nơron. Có thể kể đến như: Neural Works Predict, Neural Solution, Neural Network Toolbox,…Trong đó, bộ công cụ Neural Network Toolbox của Matlab được xem là rất hữu ích cho các ứng dụng kỹ thuật.

Matlab (Matrix Laboratory) là một ngôn ngữ lập trình thực hành bậc cao được sử dụng để giải các bài toán về kỹ thuật. Matlab tích hợp được việc tính toán, thể hiện kết quả, cho phép lập trình, giao diện làm việc rất dễ dàng cho người sử dụng. Với Matlab, tất cả các vấn đề và giải pháp đều được trình bày bằng ngôn ngữ các ký hiệu toán học rất quen thuộc và dễ hiểụ Có thể kể ra một số mảng ứng dụng tiêu biểu của Matlab như:

 Sử dụng các hàm có sẵn trong thư viện, các phép tính toán học thông thường.

 Cho phép lập trình tạo ra những ứng dụng mới

 Cho phép mô phỏng các mô hình thực tế

 Phân tích, khảo sát và hiển thị dữ liệu

 Cho phép phát triển, giao tiếp với một số phần mềm khác như C++.

Matlab là một hệ thống tương giao, các phần tử dữ liệu là một mảng (mảng này không đòi hỏi về kích thước). Chúng cho phép giải quyết các vấn đề liên quan đến lập trình bằng máy tính, đặc biệt sử dụng các phép tính về ma trận hay véctơ.

Bộ công cụ mạng nơron (Neural Network Toolbox) nằm trong nhóm công cụ phân tích dữ liệu và thống kê của Matlab. Ta có thể sử dụng công cụ này để tạo ra các mạng nơron; luyện và mô phỏng mạng với các dữ liệu đầu vào, đầu ra trên môi trường Matlab. Xem [10].

Trong phạm vi luận văn này, tác giả xây dựng giao diện ứng dụng được thiết kế bằng công cụ “Graphic User Interface” dựa trên ngôn ngữ lập trình của Matlab.

Giao diện bao gồm các phần sau:

* Dữ liệu: gồm hai phần chính: thao tác dữ liệu và xử lý dữ liệu

Thao tác dữ liệu (khung số liệu): cho phép người dùng upload dữ liệu từ các file trên máy tính (nút Nhập) cũng như lưu các dữ liệu sau khi xử lý (nut Lưu), sau khi luyện vào ổ cứng. Ngoài ra chương trình còn cung cấp thêm tính năng xóa các dữ liệu không cần thiết (nút Xóa), liên kết với workspace của Matlab (nút Workspace), hiển thị các đặc tính của dữ liệu được chọn.

*Xử lý dữ liệu (khung xử lý số liệu): Cung cấp các tính năng xử lý dữ liệu đầu vào và đầu ra như các phương pháp chuẩn hóa, khử chuẩn hóạ Sau khi xử lý dữ liệu được hiển thị trong phần “Số liệu”.

Vẽ đồ thị minh họa: Phần này cung cấp công cụ trực quan bằng đồ thị để biểu diễn dữ liệu trước và sau xử lý, trước và sau khi luyện mạng nơron,…cho phép người dùng các tùy chọn rất linh hoạt, cụ thể là:

- Có thể vẽ dữ liệu đầu vào, đầu ra hoặc lỗi sau khi luyện mạng hoặc mô phỏng và nhất là biểu diễn kết quả tối ưu hóạ

- Đối với lỗi, có thể biểu thị ở giá trị phần trăm hoặc trực tiếp.

- Ngoài ra phần này còn cho phép hiển thị các thông số khác như: giá trị sai số bình phương trung bình gốc: RMSE (Root Mean Squared Errors) và sai số tuyệt đối trung bình: MAE (Mean Absoluted Errors).

Mạng nơron: Hỗ trợ các thao tác liên quan đến mạng nơron, gồm hai phần chính:

* Tạo mạng nơron: Cho phép ta tạo một mạng lan truyền ngược hai lớp với các thông số như: tên mạng, hàm luyện mạng, số nơron và hàm truyền của từng lớp.

* Luyện và kiểm chứng mạng: Như ta đã biết, số liệu thu thập được sẽ được chia làm hai phần: Phần để luyện mạng (chiếm khoảng 70%) và phần còn lại dùng để kiểm chứng mạng (chiếm khoảng 30%).

Hình 5.6. Phân chia số liệu đã thu thập được

Phần này gồm có hai chức năng chính là: Luyện mạng (nút Luyện) và kiểm chứng mạng (nút Mô phỏng). Sau khi xác định được các thông số như mạng, đầu

vào, đích, số thế hệ luyện, thao tác luyện mạng sẽ được thực hiện với tùy chọn so sánh.

Tùy chọn so sánh: Đây là một kỹ thuật nhằm hạn chế khả năng luyện mạng

quá khớp của mạng đối với dữ liệu đã chọ Nếu không có tùy chọn này, mạng sẽ luyện cho hết số thế hệ luyện và trong nhiều trường hợp, mạng sẽ đạt được sai số rất nhỏ, nghĩa là rất khớp vơi 70% số liệu để luyện, nhưng đối với 30% còn lại dùng để kiểm chứng, mạng sẽ cho kết quả mô phỏng với sai số lớn. Điều này nói lên mạng đã không tổng quát hóa tốt được. Để hạn chế điều này, trong quá trình luyện mạng có so sánh, sai số của tập kiểm chứng (30%) cũng được giảm dần và luôn được theo dõi, khi mạng bắt đầu quá khớp, sai số của tập kiểm chứng bắt đầu tăng, lúc đó quá trình luyện mạng sẽ được dừng. Thông thường, với nguồn số liệu dồi dào, người ta sẽ chia dữ liệu thành ba phần: luyện mạng (Training), so sánh (Validating) và kiểm chứng mạng (Testing). Nhưng đối với các trường hợp số lượng mẫu quan sát hạn chế, ta có thể sử dụng tập kiểm chứng đóng vai trò làm tập so sánh trong quá trình luyện mạng. Miễn là tập luyện và tập kiểm chứng phải độc lập với nhaụ

5.5. ỨNG DỤNG MÔ HÌNH CHO TRẠM XỬ LÝ NƢỚC THẢI

Trong môi trường nước thì thành phần các chất có mối liên hệ với nhau, đặc biệt là các chất DO là lượng oxy hòa tan trong nước, BOD là nhu cầu oxy sinh hóa và COD nhu cầu oxy hóa học.

DO là lượng oxy hòa tan trong nước cần thiết cho sự hô hấp của các sinh vật trong nước, thường được tạo ra do sự hòa tan từ khí quyển. Nồng độ oxy tự do nằm trong khoảng 8-10ppm, khi nồng độ DO thấp, các loài sinh vật nước giảm hoặc bị chết. Do vậy DO là một chỉ số quan trọng để dánh giá sự ô nhiễm nguồn nước.

BOD là lượng oxy cần thiết để sinh vật oxy hóa các chất hữu cơ theo phản ứng:

Vi khuẩn:

Chất hữu cơ + O2 = CO2 + H2O + tế bào mới + sản phẩm trung gian (5.1)

trình phân huỷ sinh học là phép đo quan trọng đánh giá ảnh hưởng của một dòng thải đối với nguồn nước. BOD có ý nghĩa biểu thị lượng các chất thải hữu cơ trong nước có thể bị phân huỷ bằng các vi sinh vật.

COD là lượng oxy cần thiết để oxy hoá các hợp chất hoá học trong nước bao gồm cả vô cơ và hữu cơ. Như vậy, COD là lượng oxy cần để oxy hoá toàn bộ các chất hoá học trong nước, trong khi đó BOD là lượng oxy cần thiết để oxy hoá một phần các hợp chất hữu cơ dễ phân huỷ bởi vi sinh vật.

Toàn bộ lượng oxy sử dụng cho các phản ứng trên được lấy từ oxy hoà tan trong nước (DO). Do vậy nhu cầu oxy hoá học và oxy sinh học cao sẽ làm giảm nồng độ DO của nước, có hại cho sinh vật nước và hệ sinh thái nước nói chung. Nước thải hữu cơ, nước thải sinh hoạt và nước thải hoá chất là các tác nhân tạo ra

Một phần của tài liệu Mô hình hóa hệ thức hợp ứng dụng mạng nơron (Trang 73 - 110)

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

(110 trang)