mở hội nghị toàn cầu chuyên ngành Nơ ron IJCNN
( International Joint Conference on Neural Networks). Hàng loạt những lĩnh vực khác nhau nhƣ kỹ thuật tính, tối ƣu, sinh học, y học, thống kê, giao thông, hóa học…
Để nắm được các khái niệm sơ lược của mạng Nơ ron nhân tạo, trước hết ta xét một Nơ ron nhân tạo.
1.2.2. Mô hình một nơ ron nhân tạo
u1
u2
uk
um
w1
w2
wk
wm
Σ
X(t)
Hàm vào
a (t)
Hàm kích hoạt
Y(t)
Đầu ra
Hình 1.1. Mô hình một Nơ ron nhân tạo Hình 1.1 mô phỏng cấu trúc của Nơ ron nhân tạo, gồm ba bộ phận :
- Bộ tổng liên kết đầu vào
- Hàm kích hoạt
- Đầu ra
Mỗi Nơ ron có thể đƣợc kết nối với nhiều Nơ ron khác và nhận từ chúng các tín hiệu vào uk với các trọng số wk (với k=1,2,..,m)
Bộ tổng liên kết đầu vào phần tử Nơ ron có thể miêu tả nhƣ sau : X(t)=
n k
k
k kU t W
1
) ( .
Trong đó : - X(t) là tổng tất cả các đầu vào
-Uk(t) là các đầu vào ngoài,m là số đầu vào, k=1,…,m.
-Wk là trọng số liên kết các đầu vào ngoài.
Hàm kích hoạt là phần sử dụng hàm a(t) cho đầu ra y với đầu vào x(t) Y=a(x(t)) - đây là thành phần phi tuyến của Nơ ron.
Các hàm kích hoạt thường được sử dụng trong phần phi tuyến được trình bày trong bảng 1.1dưới đây:
Bảng 1.1. Bảng các hàm kích hoạt
1.2.3. Phân loại mạn nơ ron nhân tạo
Mạng Nơ ron nhân tạo mô phỏng cách thức hoạt động của bộ não người bằng các thiết bị điện tử (các chip Nơ ron) hoặc bằng phần mềm máy tính. Cũng nhƣ các Nơ ron sinh vật, các nơ ron nhân tạo có thể liên kết với nhau để tạo thành mạng Nơ ron nhân tạo. Có nhiều cách kết hợp các Nơ ron nhân tạo thành mạng, mỗi mạng kết hợp tạo thành một loại mạng Nơ ron nhân tạo khác nhau.
1)Theo số lớp ở trong mạng, ta phân mạng Nơ ron thành hai loại :
Mạng một lớp
Mạng nhiều lớp
2)Theo kiểu liên kết Nơ ron ta có :
Mạng truyền thẳng: trong đó liên kết các Nơ ron chỉ truyền đi theo một chiều nhất định, không tạo thành chu trình.
Mạng quy hồi: trong đó các liên kết Nơ ron tạo thành chu trình, trong đó một hoặc nhiều đầu ra của phần tử lớp sau truyền ngược tới đầu vào của lớp trước.
Mạng tự tổ chức: Xây dựng trên các đặc trưng tôpo giống như bộ não người, các Nơ ron đƣợc phân bố ở trong lớp sao cho có mối liên hệ về không gian. Nghĩa là tín hiệu vào tương tự nhau sẽ kích hoạt các Nơ ron gần nhau.
1.2.4. Kiến trúc mạn
1)Kiến trúc mạng perceptron một lớp
Một mạng Nơ ron dù dùng vào bất kỳ mục đích gì, bao giờ cũng có các Nơ ron đầu vào (lớp vào) và các Nơ ron đầu ra (lớp ra). Các Nơ ron đầu vào sẽ nhận các thông tin cần quan tâm từ môi trường bên ngoài, biến đổi chúng thành tín hiệu xử lý phù hợp với xử lý các Nơ ron trong mạng.
Có thể so sánh các Nơ ron đầu vào với các tế bào thần kinh giác quan sinh học. Các Nơ ron đầu ra có thể so với các tế bào thần kinh vận động khi xét đến vai trò của chúng là tạo ra các thông tin phán đoán hoặc điều khiển. Tuy nhiên còn có các Nơ ron đặt giữa các Nơ ron đầu vào và đầu ra . Những các Nơ ron này tạo thành lớp ẩn, chúng đảm nhiệm vai trò bên trong của mạng.
Mạng chỉ có 1 lớp gọi là mạng một lớp .
Hình 1.3. Kiến trúc mạng Nơ ron một lớp
Các thông tin từ bên ngoài X=[x1 , x2 ... xn ] được đưa tương ứng tới các Nơ ron của lớp vào (Input layer). Các Nơ ron là loại Nơ ron một đầu vào. Tập hợp tín hiệu đầu ra của Nơ ron này tạo thành ma trận P=[ p1 , p2 ... pn]. Ta cũng có thể coi ma trận này là véctơ tín hiệu vào của mạng Nơ ron khi không xét đến vai trò chuyển đổi thông tin của các Nơ ron lớp vào. Ở đây ta coi P chính là vectơ tín hiệu vào. Khái niệm kiến trúc một lớp có thể xuất phát từ cách khai thác trên, và lớp của mạng đáng quan tâm là lớp ra (Output layer)của mạng . Vectơ tín hiệu vào đƣợc biểu diễn dưới dạng ma trận sau :
P= 1
2
. .
R
P P
P
Thường thì các Nơ ron lớp vào sẽ liên kết với tất cả các Nơ ron lớp ra (fully connected). Các tín hiệu pi sẽ đƣợc đƣa đến từng Nơ ron của lớp ra (có S Nơ ron).
Các ma trận trọng số (ma trận hàng )của tường lớp ra sẽ hợp thành ma trận trọng số W có S hàng và R cột của lớp ra. Trong kiến trúc một lớp thì ma trận này cũng chính là trọng số của mạng Nơ ron.
Chú ý cách biểu diễn Wi, j cho biết trọng số đầu vào của Nơron i liên kết với các Nơ ron j.
Mỗi lớp ra có một hệ số bias riêng bj và cũng có thể liên kết với các hàm hoạt háo khác nhau. Kết quả đầu ra của mạng chính là tổ hợp các đầu ra của S Nơ ron, và nó đƣợc giọi là vector đầu ra A=
[ a1 , a2 ,...as ] vectơ tín hiệu ra :
Việc xác định số noron lớp vào R và số lƣợng Nơ ron lớp ra S sẽ căn cứ vào dạng thông tin mà mạng xử lý và dạng thông tin đƣa ra kết quả. Hơn nữa, đặc tính thông tin đầu ra của mạng cũng cho phép xác định hàm hoạt hóa của các Nơ ron lớp ra. Nhƣ vậy mạng có thể xác định hoàn toàn từ đặc tính của bài toán.
2) Kiến trúc mạng perceptron đa lớp
Lớp vào Lớp ra
Lớp ẩn
Hình 1.4. Kiến trúc mạng Nơ ron đa lớp 3) Kiến trúc mạng truyền thẳng
Kiến trúc mạng truyền thẳng là kiến trúc mà liên kết giữa các Nơ ron không tạo thành chu trình. Tín hiệu đi từ các Nơ ron vào lần lƣợt qua các lớp ẩn và cuối cùng đi ra ở Nơ ron lớp ra.
Hình 1.5. Kiến trúc truyền thẳng kinh điển 4) Kiến trúc mạng hồi quy
Trong mạng hồi quy có tồn tại những liên kết từ các Nơ ron lớp sau quay trở lại các Nơron lớp trước, chúng sẽ tạo thành các chu trình mà trong chu trình này các tín hiệu ra của Nơron lại truyền ngƣợc trở lại cho các Nơ ron đã kích hoạt chúng
Hình 1.6. Kiến trúc mạng hồi quy 1.2.5. Huấn luyện mạn Nơ ron
Các thông số cấu trúc của mạng Nơ ron bao gồm: Số tín hiệu vào, số tín hiệu ra, số lớp Nơ ron , số Nơ ron trên mỗi lớp, số lƣợng liên kết của mỗi Nơron.
Luyện mạng là quá trình hiệu chỉnh thông số cấu trúc của từng Nơ ron trong mạng để mạng thực hiện đươc những tính toán của người thiết kế ra chúng. Huấn luyện mạng là một quá trình gồm nhiều bước, thường được gọi là các khóa học. Tại mỗi khóa học, tất cả các Nơ ron trong mạng thực hiện các tính toán trên cơ sở thông số cấu trúc của mình, kết quả tính toán của mạng ở đầu ra đƣợc so sánh với "đáp án" (có thể là mẫu luyện - nếu là học có giám sát). Sai số tính toán được gọi là lỗi, căn cứ vào giá trị của lỗi, chương trình luyện mạng có thuật toán xác định những lƣợng hiệu chỉnh cho từng thông số của các Nơron để qua từng khóa học sai số lỗi được giảm đi. Quá trình này tiếp tục cho tới khi sai số tiến tới 0 hoặc đạt một giá trị định trước.
Quá trình huấn luyện cho mạng cũng đƣợc gọi là quá trình học. Khái niệm học trong mạng Nơ ron còn đƣợc hiểu theo hai nghĩa: học về cấu trúc và học về tham số. Thứ tự của việc học tham số là thay đổi cập nhật các tham số, bao gồm trọng số liên kết và lƣợng bù. Hầu hết các luật học tồn tại thuộc kiểu học tham số. Luật học tham số đƣợc chia làm 3 dạng chính: Học có giám sát, học không giám sát và học củng cố.
Học có giám sát: Trong học có giám sát, mạng đƣợc cung cấp một tập mẫu (x1,y1) …(xk,yk), là cặp giá trị vào - ra mong muốn. Khi có xk ở đầu vào, mong muốn nhận đƣợc từ đầu ra của mạng là yk, nhƣng thực tế lại nhận đƣợc ak. Sai khác giữa giá trị đầu ra thực tế ak và đầu ra mong muốn yk là cơ sở tạo tín hiệu về lỗi để mạng sửa đổi các thông số cấu trúc sao cho đầu ra thực sự tiếp theo ak+1 sẽ gần với đầu ra mong muốn yk+1 hơn.
Học không giám sát: Trong học không giám sát thì không có bất kỳ một thông tin phản hồi từ môi trường. Mạng phải tự tìm ra các đặc tính, quy luật, tương quan trong dữ liệu đầu vào và tập hợp lại để tạo đầu ra. Khi tự tìm ra các đặc điểm này, mạng đã trải qua các thay đổi về tham số của nó. Quá trình này đƣợc gọi là tự tổ chức.
Học củng cố: Trong thuật học có giám sát, các giá trị đầu ra (còn đƣợc gọi là đích) đƣợc biết chính xác đối với mỗi đầu vào. Tuy nhiên, trong thực tế có một số trường hợp chỉ biết được ít thông tin chi tiết. Thuật học dựa trên thông tin đánh giá này đƣợc gọi là thuật học củng cố, thông tin phản hồi đƣợc gọi là thông tin củng cố.
Mạng nơtron
Đầu vào Đầu ra
Học không giám sát
Mạng nơtron
Đầu vào Đầu ra
Đầu ra mong muốn Học có giám sát
Mạng nơtron
Đầu vào Đầu ra
Tạo tín hiệu lỗi
Tín hiệu củng cố Học củng cố
Tín hiệu củng cố
Hình 1.7. Ba dạng chính của luật học tham số
1.2.6. Ứn dụn của mạn nơ ron nhân tạo
Hơn 20 năm qua, mạng Nơ ron nhân tạo đã từng bước được đưa vào ứng dụng trong nhiều lĩnh vực của cuộc sống. Đặc biệt, gần đây, với sự ra đời của các chíp Nơ ron thì ứng dụng của mạng Nơ ron lại càng trở nên rộng rãi .
1) Lĩnh vực dân dụng:
- Điều khiển: Các thiết bị gia đình nhƣ máy giặt, điều hòa …
- Nhận dạng: Các thiết bị cảnh báo, chống trộm, báo động, báo cháy..
- Trí tuệ nhân tạo: Chế tạo các thiết bị thông minh như người máy, trò chơi...
2) Lĩnh vực công nghiệp:
- Điều khiển: Cảnh báo và phát hiện các sự cố, xây dựng các bộ điều khiển thích nghi, các bộ điều khiển tự chỉnh, thông minh hóa các cảm biến trong đo lường, phân tích an toàn trong hệ thống điện, xây dựng các hệ thống chuẩn đoán kỹ thuật…
- Nhận dạng: Nhận dạng tín hiệu, xử lý tín hiệu. Nhận dạng sai số, xấp xỉ hóa các đường đặc tính trong đo lường, phân loại mẫu, nhận dạng tiếng nói…
- Trí tuệ nhân tạo: Rôbốt công nghiệp.
- Dự báo. Sử dụng cho các bài toán dự báo ngắn hạn phụ tải điện, trung hạn và dài hạn, phục vụ quy hoạch và vận hành hệ thống điện.
3) Lĩnh vực y tế:
Nhận dạng sóng điện tim, điện não đồ, các tế bào ung thƣ. Trong điện não đồ thì sóng điện não EEG bao gồm bốn sóng là Delta, Theta, Alpha và Beta. Sử dụng mạng Nơ ron để nhận dạng ra bốn loại sóng đó rồi tiến hành so sánh điện não đồ của người mắc bệnh và người không mắc bệnh giúp cho quá trình chuẩn đoán bệnh đƣợc dễ dàng.
4)Lĩnh vực quân sự:
- Điều khiển:theo dừi đớch, những phần tử cảm biến.Chế tạo vũ khớ thụng minh.
- Nhận dạng: nhận dạng vân tay, hình ảnh, tiếng nói…
- Dự báo: Dự báo tình hình kinh tế, dự đoán tiền tệ, phân tích mức độ rủi ro, phân tích sử dụng hàng, phân tích thị trường, dự báo mức tăng trưởng GDP.
1.3. GIỚI THIỆU VỀ MATLAB VÀ GUIDE 1.3.1. Giới thiệu về Matlab
Matlab là một chương trình viết cho máy tính PC nhằm hỗ trợ cho các tính toán khoa học và kỹ thuật với các phần tử cơ bản là ma trận trên máy tính cá nhân do công ty "The MATHWORKS" viết ra. Thuật ngữ Matlab có đƣợc là do hai từ MATRIX và LABORATORY ghép lại.Matlab ngày càng trở thành công cụ rất đắc lực trong việc mô phỏng, tính toán, thiết kế, xây dựng các ứng dụng trong nhiều lĩnh vực khác nhau nhƣ điện, điện tử, xử lý tín hiệu, trí tuệ nhân tạo, tài chính…
Matlab đƣợc điều khiển bởi các tập lệnh, tác động qua bàn phím. Nó cũng cho phép một khả năng lập trình với cú pháp thông dịch lệnh - còn gọi là Script file các hàm. Các lệnh hay bộ lệnh của MATLAB lên đến số hàng ngàn và ngày càng đƣợc mở rộng bởi các phần Toolbox hay thông qua các hàm ứng dụng được xây dựng từ người sử dụng. Các lệnh của Matlab rất mạnh và hiệu quả, nó cho phép giải các loại hình toán khác nhau và đặc biệt hữu dụng cho các hệ phương trình tuyến tính hay các bài toán ma trận. Ở Matlab 7.0 đã có hơn 20 Toolbox các loại. Hiện tại và trong tương lai Matlab sẽ cho ta một sự lựa chọn hoàn chỉnh và phong phú các công cụ trợ giúp đắc lực cho những lĩnh vực nghiên cứu chuyên môn khác nhau. Trong luận văn này, tôi đã sử dụng các Toolbox chính sau của Matlab: Neural Network, GUIDE, các lệnh tạo đồ thị và một số hàm có sẵn trong Matlab.
1.3.2. Giới thiệu về Neural Network Toolbox
Neural Network Toolbox là một thƣ viện chứa các hàm mô phỏng về mạng Nơtron rất mạnh. Do sự ứng dụng mạnh mẽ của mạng Nơtron trong xử lý dữ liệu ở các lĩnh vực nghiên cứu khoa học và đời sống thì sự phát triển này là tất yếu. Mạng Nơtron đã đƣợc ứng dụng rộng rãi trong nhiều lĩnh vực và nó đã cho thấy sức mạnh của mình.Matlab đã tạo ra giao diện đồ họa cho phép người sử dụng tạo mạng, nhập dữ liệu, khởi động mạng, luyện mạng và mô phỏng mạng 1.3.3. Giới thiệu về GUIDE
GUIDE (the MATLAB Graphical User Interface Development Environment), cung cấp một tập công cụ để xây dựng giao diện đồ họa giữa người sử dụng và Matlab (GUIs –graphical user interfaces). Những công cụ này rất tiện dụng và hữu ích để đơn giản hóa quá trình thiết kế và xây dựng GUIs. Ta có thể sử dụng các công cụ của GUIDE để thiết kế các giao diện trong các chương trình Matlab. GUIDE có trình soạn thảo (the GUIDE Layout Editor) để định dạng GUI một cách dễ dàng bằng cách kích và kéo các bảng (panels), nút (buttons), vùng văn bản (text fields), thanh trƣợt (sliders), menu, … tới vùng trình bày.
Ta cũng có thể lập trình GUI để đáp ứng các yêu cầu thao tác của người sử dụng thông qua các giao diện chuẩn như chuột, bàn phím. Các thao tác này thường được lưu giữ dưới dạng các
„Callback funtions‟ của GUI. Để lưu giữ các thông tin về một GUI, thư viện GUIDE của Matlab sẽ tự động tạo một M-file chung cho tất cả các phần tử của một giao diện. Việc chạy M-file sẽ tương đương với việc khởi động GUI và hiển thị ra một khung làm việc (famework) cho các hàm (Callback) của GUI - những lệnh thực thi khi người sử dụng tác động vào một bộ phận của GUI.
Muốn thêm các chức năng khác, ta thêm mã vào sau các gọi hàm (callback) bằng cách sử dụng trình soạn thảo M-file.
Các phần tử thường dùng trong giao diện GUI
Nút nhấn (Push botton)
Nút nhấn tạo ra các hoạt động sau khi bị kích chuột vào. Khi ta kích chuột, nút sẽ chìm lún xuống và khi thả ra nút sẽ nổi lên và hàm callback đã được lập trình trước tương ứng với nút sẽ đƣợc thực thi.
Edit Text
Edit Text điều khiển các trường cho phép người sử dụng nhập hoặc sửa đổi các câu ký tự dạng văn bản. Chuỗi văn bản sẽ đƣợc đọc vào với lệnh “get (hObject,'string')”
Axes
Axes cho phép GUI hiển thị đồ họa (ví dụ: Đồ họa và hình ảnh), nó cho phép chúng ta điều khiển sự hiển thị của đồ họa.
Panels
Panels dùng để nhóm các thành phần của GUI, tạo ra một giao diện sử dụng điều khiển dễ hiểu, những thành phần liên quan với nhau đƣợc cho vào một nhóm.
Table
Table cho phép tạo ra các bảng số liệu trong giao diện của GUI.
Kết luận:
Từ khi xuất hiện, mạng Nơ ron nhân tạo là một công cụ rất mạnh cho các bài toán dự báo. Nhờ tính linh hoạt và khả năng tự học của mạng, việc áp dụng mạng Nơ ron nhân tạo trong dự báo ngắn hạn phụ tải điện sẽ mang lại nhiều thành công.
CHƯƠNG 2
MẠNG NƠRON MPL TRONG DỰ BÁO NGẮN HẠN PHỤ TẢI ĐIỆN