Tổng quan về matlab và neural network toolbox [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

Sinh Viên: Đỗ Yến Hoa TỔNG QUAN VỀ MATLAB VÀ NEURAL NETWORK TOOLBOX Phần 1: Giới thiệu vầ Matlab MATLAB là phần mềm cung cấp môi trường tính toán số và lập trình, do công ty MathWorks thiết kế. MATLAB cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác. Với thư viện Toolbox, MATLAB cho phép mô phỏng tính toán, thực nghiệm nhiều mô hình trong thực tế và kỹ thuật. MATLAB được sử dụng trong nhiều lĩnh vực, bao gồm xử lý tín hiệu và ảnh, truyền thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài chính, hay tính toán sinh học. Với hàng triệu kĩ sư và nhà khoa học làm việc trong môi trường công nghiệp cũng như ở môi trường hàn lâm, MATLAB là ngôn ngữ của tính toán khoa học.  Mỗi năm Mathworks - công ty sản xuất và phân phối MATLAB đưa ra thị trường 2 bản cập nhật rxxxxa vào đầu năm và rxxxb vào cuối năm (với xxxx là năm phát hành). Với các bạn bắt đầu tìm hiểu và sử dụng Matlab, nên sử dụng bản r2008a vì dung lượng không quá lớn, chạy nhanh với các máy tính có tài nguyên phần cứng không cao. 1. Lịch sử Matlab là viết tắt từ "MATrix LABoratory", được Cleve Moler phát minh vào cuối thập niên 1970, và sau đó là chủ nhiệm khoa máy tính tại Đại học New Mexico. MATLAB, nguyên sơ được viết bởi ngôn ngữ Fortran, cho đến 1980 nó vẫn chỉ là một bộ phận được dùng nội bộ của Đại học Stanford. Năm 1983, Jack Little, một người đã học ở MIT và Stanford, đã viết lại MATLAB bằng ngôn ngữ C và nó được xây dựng thêm các thư viện phục vụ cho thiết kế hệ thống điều khiển, hệ thống hộp công cụ (tool box), mô phỏng... Jack xây dựng MATLAB trở thành mô hình ngôn ngữ lập trình trên cơ sở ma trận (matrix-based programming language).

Steve Bangert là người đã viết trình thông dịch cho MATLAB. Công việc này kéo dài gần 1½ năm. Sau này, Jack Little kết hợp với Moler và Steve Bangert quyết định đưa MATLAB thành dự án thương mại - công ty The MathWorks ra đời thời gian này - năm 1984. Phiên bản đầu tiên MATLAB 1.0 ra dời năm 1984 viết bằng C cho MS-DOS PC được phát hành đầu tiên tại IEEE Conference on Design and Control (Hội nghị IEEE về thiết kế và điều khiển) tại Las Vegas, Nevada. Ban đầu Matlab được phát triển để hỗ trợ sinh viên sử dụng hai thư viện  LINPACK và EISPACK dùng cho đại số tuyến tính (viết bằng Fortran) mà không cần biết lập trình Fortran. Năm 1986, MATLAB 2 ra đời trong đó hỗ trợ UNIX. Năm 1987, MATLAB 3 phát hành. Năm 1990 Simulink 1.0 được phát hành gói chung với MATLAB. Năm 1992 MATLAB 4 thêm vào hỗ trợ 2-D và 3-D đồ họa màu và các ma trận truy tìm. Năm này cũng cho phát hành phiên bản MATLAB Student Edition  (MATLAB ấn bản cho học sinh). Năm 1993 MATLAB cho MS Windows ra đời. Đồng thời công ty này có trang web là www.mathworks.com Năm 1995 MATLAB cho Linux ra đời. Trình dịch MATLAB có khả năng chuyển dịch từ ngôn ngữ MATLAB sang ngôn ngữ C cũng được phát hành trong dịp này. Năm 1996 MATLAB 5 bao gồm thêm các kiểu dữ liệu, hình ảnh hóa, bộ truy sửa lỗi (debugger), và bộ tạo dựng GUI. Năm 2000 MATLAB 6 cho đổi mới môi trường làm việc MATLAB, thay thế LINPACK và EISPACK bằng LAPACK và BLAS.[1] Năm 2002 MATLAB 6.5 phát hành đã cải thiện tốc độ tính toán, sử dụng phương pháp dịch JIT (Just in Time) và tái hỗ trợ MAC. Năm 2004 MATLAB 7 phát hành, có khả năng chính xác đơn và kiểu nguyên, hỗ trợ hàm lồng nhau, công cụ vẽ điểm, và có môi trường phân tích số liệu tương tác. Đến tháng 12, 2008, phiên bản 7.7 được phát hành với SP3 cải thiện Simulink cùng với hơn 75 sản phẩm khác. Năm 2009 cho ra đời 2 phiên bản 7.8 (R2009a) và 7.9 (R2009b). Năm 2010 phiên bản 7.10 (R2010a) cũng đã được phát hành.

Hiện nay đã có phiên bản R2014a, R2014b và R2015a. Matlab được dùng rộng rãi trong giáo dục, phổ biến nhất là giải các bài toán số trị (cả đại số tuyến tính lẫn giải tích) trong nhiều lĩnh vực kĩ thuật. 2. Khởi động và chuẩn bị thư mục làm việc trong Matlab Trước khi khởi động matlab thì người dùng phải tạo 1 thứ mục làm việc để chưa các file chương trình của mình Matlab sẽ thông dịch các lệnh được lưu trong file có dạng *.m Sau khi đã cài đặt Matlab , để khởi chạy chương trình người dùng chỉ cần nhấp vào biểu tượng của nó trên màn hình Sau khi đã khởi động xong thì kế tiếp là chỉ thư mục làm việc của mình đã tạo để làm việc cho Matlab. Nhấp vào biếu tượng … trên màn hình và chọn thư mục làm việc của mình. 3. Quản lý không gian làm việc của Matlab Không gian làm việc của Matlab gồm có các phần cơ bản sau: -

Cửa sổ trợ giúp Help Window.

-

Nút Start: Ở góc dưới bên trái màn hình, cho pháp chạy các ứng dụng

mẫu (Demos), các công cụ và cửa sổ chưa hiển thị khi khởi động matlab -

Command Window (Cửa sổ nhập lệnh): Ở chính giữa màn hình, nơi

các dòng lệnh được hiển thị bằng dấu ‘>>’. Đây là dấu hiệu cho thấy Matlab đang chờ đánh 1 câu lệnh. Có thể xóa trắng toàn bộ cửa sổ lệnh bằng lệnh: >> clc hoặc vào edit/clear command window. Khi thực hiện lệnh này toàn bộ các giá trị của các biến hiện có không thay đổi hay mất đi. -

Command History (Cửa sổ quá trình lệnh) Lưu lịch sử các lệnh đã gõ.

-

Workspace (Cửa sổ không gian làm việc): Nơi lưu giữ các biến và dữ

liệu do người dùng nhập vào ngoại trừ những biến cục bộ thuộc về một M-file. Dùng lệnh 'who' hoặc 'whos' để liệt kê các biến hiện có trong không gian làm việc. Để biết giá trị của biến, ta gõ tên biến tại dấu nhắc lệnh. Để xóa một hàm hoặc biến khỏi không gian làm việc, sử dụng lệnh 'clear': >> clear tên_biến

-

Current Directory (Cửa sổ địa chỉ thư mục hiện thời): Thư mục hiện

thời là nơi chương trình Matlab sẽ tìm các M-file, và các file không gian làm việc (.mat files) đã tải và lưu lại. Để tạo một file.m trong thư mục làm việc người dùng có thể thực hiện:

 Nhấp vào biểu tượng hoặc vào File\New\M-File:  Cửa sổ soạn thảo xuất hiện, gõ chương trình cần thiết vào file. Sau khi đã hoàn tất nhấn vào biểu tượng để lưu vào thư mục hiện tại (D:\ThucHanh_Matlab).

 Để thực thi tập lệnh có trong file.m trong thư mục làm việc thì người dùng chỉ cần gõ tên file đó và Matlab sẽ tự động thực thi các dòng lệnh có trong file.m này (ví dụ để thực thi các lệnh có trong file test.m, chỉ cần gõ lệnh test).

4. Ngôn ngữ lập trình Ngôn ngữ lập trình dùng trong hệ tính toán số cũng có tên gọi là MatLab. Nó thuộc kiểu lập trình thủ tục (với một số đặc điểm của lập trình hướng đối tượng mới được bổ sung trong các phiên bản gần đây. 4.1.

Các kiểu dữ liệu

MatLab có đầy đủ các kiểu dữ liệu đơn giản như: số nguyên, số thực, kí tự, logic (boolean). Chuỗi kí tự được đặt trong dấu nháy đơn hoặc nháy kép, chẳng hạn "Viet Nam". Kiểu dãy (sequence) có dạng dau:buoc:cuoi bao gồm một véc-tơ gồm các phần tử bắt đầu từ số dau tăng dần theo từng buoc cho đến bằng (không vượt quá) số cuoi. Kết quả cho ra một véc-tơ hàng: 1.2:0.2:1.7 %chú thích: tương đương với [1.2 1.4 1.6] 1.2:0.2:1.8 %chú thích: tương đương với [1.2 1.4 1.6 1.8] Kiểu ma trận đóng vai trò trung tâm trong MatLab. Ví dụ một ma trận hai hàng ba cột như sau (hết một hàng cần dấu chấm phẩy để phân tách, nhưng không nhất thiết xuống dòng):

[ -3 4 5.2; 2.1 -8 7.6 ] MatLab còn có một số kiểu dữ liệu khác cao cấp hơn: kiểu cell, kiểu struct (bản ghi). 4.2.

Các phép tính với ma trận:

Các phép cộng trừ hai ma trận cùng kích thước được thực hiện bình thường. Đặc biệt với phép nhân, MatLab phân biệt hai toán tử:  *  dành cho phép nhân ma trận và  .*  dành cho nhân từng cặp phần tử tương ứng của hai ma trận. >> a = [2 3; 2 4] 2 3 2 4 >> a * a % chính là bình phương ma trận A 10 18 12 22 >> a.* a % chỉ là bình phương TỪNG PHẦN TỬ của A 4

9

4 16 Với phép tính lũy thừa cũng tương tự. Chẳng hạn, với ví dụ trên ta có thể viết lần lượt là  a^2  và  a.^2 .

4.3.

Cú pháp

Trước đây MatLab không phân biệt chữ in, chữ thường (giống như Fortran). Các phiên hơn gần đây lại có sự phân biệt này (theo ngôn ngữ C). Các từ khóa đều viết chữ thường. 

Tên biến là một dãy kí tự được bắt đầu bằng chữ cái, có độ dài tối đa là

31 kí tự, bao gồm các chữ cái, chữ số và dấu gạch dưới ( _ ), có phân biệt chữ hoa và chữ thường. Ví dụ : x ; a12 ; b_a. 

Lệnh gán có dạng giống như nhiều ngôn ngữ lập trình khác: tên_biến =

giá_trị_biểu thức. Thông thường máy sẽ in ra kết quả của biến sau khi gán, nếu ta không kết thúc lệnh gán bởi dấu . Ví dụ t = 2 * 3 % hiện thị t = 6 t = t + 1; % t có giá trị bằng 7 nhưng không hiển thị lên màn hình. 

Khai báo hàm số (ví dụ như hàm bình phương tên tham số vào là x, tên

tham số ra là y: function y = binhPhuong(x) binhPhuong = x * x; end 

Cấu trúc rẽ nhánh, lặp:

for i = 1:3 % chú ý rằng vòng lặp theo dạng dãy disp(1/i) end i=0 while i < 4 i = i + 1;

% không cho hiển thị ra màn hình

disp(i)

% hiển thị giá trị i

end

4.4.

Cú pháp đặc biệt (syntactic sugar)

Để tăng tốc độ lập trình, nhất là thao tác từ dấu nhắc lệnh, MatLab cho phép nhiều kiểu cú pháp viết tắt. Chẳng hạn để xem hướng dẫn về lệnh  plot  thì hai câu lệnh sau là tương đương: doc('plot') doc plot % chú thích: cách viết gọn, đồng thời bỏ dấu ngoặc tròn và dấu nháy Một ví dụ nữa là các số trong một véc-tơ hàng không cần có dấu phẩy ngăn cách v1 = [2, 3, 4] v2 = [5 6 7] % cũng hợp lệ! Và ngay cả cách gọi file lệnh từ dấu nhắc cũng là một dạng rút gọn đặc biệt. Chẳng hạn ta cần chạy file  tinhtong.m  trong thư mục hiện hành: >> tinhtong

4.5.

Tính năng vẽ đồ thị

Vẽ đồ thị là một tính năng được trau chuốt trong MatLab; với rất nhiều kiểu đồ thị khác nhau như biểu đồ dạng đường, biểu đồ chấm điểm, các lớp màu (patch) hai chiều, đường đồng mức và các đường cong, mặt cong ba chiều. Ngoài ra MatLab còn

cung cấp giao diện để người dùng trực tiếp biên tập hình vẽ, điền vào các ghi chú theo ý muốn. Vẽ đồ thị dạng đường Giả sử có dãy số liệu V đo theo thời gian t. Trong MatLab, V và t đều có dạng vec tơ có cùng độ dài. Khi đó lệnh vẽ đồ thị với trục hoành là t và trục tung là V có dạng: plot(t, V) xlabel('t (s)') % viết tiêu đề các trục ylabel('V (m/s)')

Vẽ đồ thị dạng lớp màu Một cách hiệu quả để biểu thị các trường vật lí trong không gian hai chiều là dùng lớp màu. Chẳng hạn T là một ma trận 2 chiều lưu giữ giá trị nhiệt độ của một tấm kim loại hình chữ nhật, thì việc hiển thị phân phối nhiệt độ bằng một lớp màu được thực hiện dễ dàng: pcolor(T)

Vẽ trường vec tơ Cũng như đồ thị lớp màu, việc hiển thị trường vec tơ rất cần thiết trong các ngành khoa học - vật lí. Để vẽ trường véc-tơ hai chiều của các ma trận u và v, dùng lệnh: quiver(u,v)

Phần 2: Giới thiệu về Neural Network Toolbox MATLAB cung cấp cho người dùng các toolbox tiêu chuẩn tùy chọn. Người dùng cũng có thể tạo ra các hộp công cụ riêng của mình gồm các "mfiles" được viết cho các ứng dụng cụ thể. Chúng ta có thể sử dụng các tập tin trợ giúp của MATLAB cho các chức năng và các lệnh liên quan với các toolbox có sẵn (dùng lệnh help). 1. Tổng quan về neural network toolbox: Link tham khảo: http://www.mathworks.com/products/neural-network/features.html Neural Network Toolbox cung cấp các hàm và các ứng dụng để mô hình hóa các hệ thống phi tuyến phức tạp mà không phải là dễ dàng mô hình hóa với một phương trình hình thức đóng . Neural Network Toolbox hỗ trợ học có giám sát với nạp trước, cơ sở hướng tâm và mạng động . Nó cũng hỗ trợ học không giám sát với bản đồ tự tổ chức và các lớp cạnh tranh . Với các toolbox người dùng có thể thiết kế , huấn luyện , hình dung và mô phỏng mạng nơron. Có thể sử dụng Neural Network Toolbox cho các ứng dụng như gắn kết dữ liệu, nhận dạng mẫu , bó cụm , dự báo chuỗi thời gian , và mô hình hóa hệ thống động và kiểm soát. Để tăng tốc độ huấn luyệnvà xử lý dữ liệu lớn ,người dùng có thể phân phối các tính toán và dữ liệu trên bộ vi xử lý đa lõi , GPU , và các cụm máy tính bằng cách sử dụng Parallel Computing Toolbox.

Data Fitting, Clustering, and Pattern Recognition Gắn kết dữ liệu, Phân cụm, Nhận dạng mẫu Giống như các bản sao trong hệ thần kinh sinh vật, một mạng nơ ron có thể học do đó có thể được huấn luyện để tìm giải pháp , nhận dạng các mẫu , phân loại dữ liệu , và dự báo các sự kiện tương lai . Hành vi của một mạng nơ ron được xác định bằng cách tính toán các yếu tố cá nhân của nó được kết nối và bởi mức độ của những điểm kết nối, hoặc trọng số . Các trọng số được điều chỉnh tự động bằng cách huấn luyện

mạng theo một luật học quy định cho đến khi nó thực hiện các công việc mong muốn một cách chính xác . Neural Network Toolbox bao gồm dòng lệnh hàm và các app để tạo, huấn luyện và mô phỏng mạng nơron. Các ứng dụng sẽ dễ dàng phát triển khi dùng mạng nơ ron cho các tác vụ như gắn kết dữ liệu (bao gồm cả dữ liệu chuỗi thời gian), nhận dạng mẫu, và bó cụm. Sau khi tạo ra mạng của bạn trong tool này , bạn có thể tự động tạo ra mã MATLAB để nắm bắt công việc của bạn và tự động hóa các nhiệm vụ. Network Architectures: Kiến trúc mạng Neural Network Toolbox hỗ trợ một loạt các kiến trúc mạng có giám sát và không có giám sát. Với cách tiếp cận mô-đun của toolbox để xây dựng mạng, bạn có thể phát triển kiến trúc mạng tùy chỉnh cho các vấn đề cụ thể của bạn. Bạn có thể xem các kiến trúc mạng bao gồm tất cả nguyên liệu đầu vào, các lớp, kết quả đầu ra, và mối liên kết. Supervised Networks: Mạng có giám sát Mạng nơron có giám sát được huấn luyện để tạo ra kết quả mong muốn trong phản ứng để lấy mẫu đầu vào, làm cho chúng đặc biệt thích hợp để mô hình hóa và kiểm soát hệ thống động, phân loại dữ liệu nhiễu, và dự đoán các sự kiện trong tương lai. Neural Network Toolbox bao gồm bốn loại mạng giám sát: feedforward, radial basis, dynamic, and learning vector quantization. Mạng feedforward có các kết nối một chiều từ các lớp đầu vào đến các lớp đầu ra. Chúng thường được sử dụng nhất để dự đoán, nhận dạng mẫu, và kết nối các hàm phi tuyến. Mạng feedforward hỗ trợ bao gồm feedforward lan truyền ngược, feedforward backpropagation, cascade-forward backpropagation, feedforward inputdelay backpropagation, linear, và các mạng perceptron. Radial basis networks  cung cấp một thay thế, phương pháp nhanh chóng để thiết kế mạng feedforward phi tuyến . Biến thể hỗ trợ bao gồm hồi quy tổng quát và các mạng thần kinh xác suất. Dynamic networks  Mạng động sử dụng bộ nhớ và phản hồi thường xuyên kết nối để nhận ra mô hình không gian và thời gian trong dữ liệu . Chúng thường được sử

dụng để dự báo chuỗi thời gian , mô hình hóa hệ thống động phi tuyến , và các ứng dụng hệ thống điều khiển . Có sẵn dynamic networks trong toolbox bao gồm tập trung và phân phối thời gian trì hoãn , tự hồi quy phi tuyến ( NARX ) , layer-recurrent , mạng Elman , và mạng Hopfield. Toolbox cũng hỗ trợ huấn luyện động của mạng tùy chỉnh với các kết nối tùy ý . Learning vector quantization (LVQ) networks  sử dụng một phương pháp để phân loại mô hình mà không phải là tuyến tính tách rời. LVQ cho phép bạn chỉ định ranh giới lớp và granularity phân loại.

Unsupervised Networks: Mạng không giám sát Mạng nơron không giám sát được huấn luyện bằng cách cho phép các mạng liên tục điều chỉnh bản thân để đầu vào mới. Chúng tìm thấy mối quan hệ trong dữ liệu và có thể tự động xác định hệ thống phân loại. Neural Network Toolbox bao gồm hai loại tự tổ chức, mạng lưới không được giám sát: các lớp cạnh tranh và bản đồ tự tổ chức (competitive layers and self-organizing maps) Competitive layers:  Lớp cạnh tranh nhận ra và nhóm vectơ đầu vào tương tự, cho phép chúng tự động sắp xếp các yếu tố đầu vào thành các loại. Lớp cạnh tranh thường được sử dụng để phân loại và nhận dạng mẫu. Self-organizing maps  Bản đồ tự tổ chức học để phân loại các vector đầu vào tương tự. Giống như lớp cạnh tranh, chúng được sử dụng để phân loại và nhận dạng mẫu. Tuy nhiên, chúng khác nhau từ các lớp cạnh tranh bởi vì chúng có thể bảo vệ cấu trúc liên kết của các vector đầu vào, đầu vào gần đó được gán vào categories gần đó

Training Algorithms Training and learning functions are mathematical procedures used to automatically adjust the network's weights and biases. The training function dictates a global algorithm that affects all the weights and biases of a given network. The learning function can be applied to individual weights and biases within a network.

Neural Network Toolbox supports a variety of training algorithms, including several gradient descent methods, conjugate gradient methods, the LevenbergMarquardt algorithm (LM), and the resilient backpropagation algorithm (Rprop). The toolbox’s modular framework lets you quickly develop custom training algorithms that can be integrated with built-in algorithms. While training your neural network, you can use error weights to define the relative importance of desired outputs, which can be prioritized in terms of sample, time step (for time-series problems), output element, or any combination of these. You can access training algorithms from the command line or via apps that show diagrams of the network being trained and provide network performance plots and status information to help you monitor the training process. A suite of learning functions, including gradient descent, Hebbian learning, LVQ, Widrow-Hoff, and Kohonen, is also provided. Training Algorithms: Giải thuật huấn luyện Chức năng huấn luyện và học là những thủ tục toán học được sử dụng để tự động điều chỉnh trọng số và độ lệch. Các chức năng đào tạo ra lệnh một thuật toán toàn cầu có ảnh hưởng đến tất cả các trọng lượng và những thành kiến của một mạng nào đó. Các chức năng học tập có thể được áp dụng cho trọng lượng cá nhân và những thành kiến trong một mạng. Neural Network Toolbox hỗ trợ một loạt các thuật toán đào tạo, trong đó có một số phương pháp gradient descent, phương pháp Gradient liên hợp, thuật toán LevenbergMarquardt (LM), và thuật toán lan truyền ngược hồi (Rprop). Khung mô-đun của hộp công cụ cho phép bạn nhanh chóng phát triển các thuật toán đào tạo tùy chỉnh có thể được tích hợp với xây dựng trong các thuật toán. Trong khi đào tạo mạng lưới thần kinh của bạn, bạn có thể sử dụng trọng số lỗi để xác định tầm quan trọng tương đối của kết quả mong muốn, mà có thể được ưu tiên về mẫu, thời gian bước (cho vấn đề thời gian series), yếu tố đầu ra, hoặc bất kỳ sự kết hợp của các. Bạn có thể truy cập vào các thuật toán đào tạo từ dòng lệnh hoặc qua các ứng dụng cho thấy sơ đồ của

mạng được đào tạo và cung cấp lô hiệu suất mạng và tình trạng thông tin để giúp bạn theo dõi quá trình đào tạo. Một bộ các chức năng học tập, bao gồm cả gốc gradient, học tập Hebbian, LVQ, Widrow-Hoff, và Kohonen, cũng được cung cấp.

Preprocessing and Postprocessing Preprocessing the network inputs and targets improves the efficiency of neural network training. Postprocessing enables detailed analysis of network performance. Neural Network Toolbox provides preprocessing and postprocessing functions and Simulink blocks that enable you to:  Reduce the dimensions of the input vectors using principal component analysis  Perform regression analysis between the network response and the corresponding targets  Scale inputs and targets so they fall in the range [-1,1]  Normalize the mean and standard deviation of the training set  Use automated data preprocessing and data division when creating your networks

Tiền xử lý và Xử lý sau Tiền xử lý các yếu tố đầu vào mạng và mục tiêu cải thiện hiệu quả của đào tạo mạng lưới thần kinh . Xử lý sau cho phép phân tích chi tiết về hiệu suất mạng . Neural Network Toolbox cung cấp tiền xử lý và xử lý sau các chức năng và các khối Simulink cho phép bạn : - Giảm kích thước của các vector đầu vào bằng cách sử dụng phân tích thành phần chính - Thực hiện phân tích hồi quy giữa các phản ứng của mạng và các chỉ tiêu tương ứng - Đầu vào quy mô và mục tiêu để họ rơi trong khoảng [ -1,1 ] - Chuẩn hóa độ lệch trung bình và tiêu chuẩn của tập huấn luyện

- Sử dụng tiền xử lý dữ liệu tự động và các bộ phận dữ liệu khi tạo mạng lưới của bạn

Improved Generalization Improving the network’s ability to generalize helps prevent overfitting, a common problem in neural network design. Overfitting occurs when a network has memorized the training set but has not learned to generalize to new inputs. Overfitting produces a relatively small error on the training set but a much larger error when new data is presented to the network. Neural Network Toolbox provides two solutions to improve generalization:  Regularization modifies the network’s performance function (the measure of error that the training process minimizes). By including the sizes of the weights and biases, regularization produces a network that performs well with the training data and exhibits smoother behavior when presented with new data.  Early stopping uses two different data sets: the training set, to update the weights and biases, and the validation set, to stop training when the network begins to overfit the data.

Cải thiện sự khái quát Cải thiện khả năng của mạng để khái quát giúp ngăn ngừa overfitting , một vấn đề phổ biến trong thiết kế mạng lưới thần kinh . Overfitting xảy ra khi một mạng lưới đã thuộc lòng tập huấn luyện nhưng đã không học được khái quát hóa để đầu vào mới . Overfitting sản xuất một lỗi tương đối nhỏ trên tập huấn luyện nhưng một lỗi lớn hơn nhiều khi dữ liệu mới được trình bày vào mạng. Neural Network Toolbox cung cấp hai giải pháp để cải thiện tổng quát: Hợp thức đổi chức năng hoạt động của mạng ( các biện pháp của lỗi đó quá trình đào tạo tối thiểu ) . Bằng cách bao gồm các kích thước của các trọng lượng và những thành kiến , theo quy tắc tạo ra một mạng lưới hoạt động tốt với các dữ liệu huấn luyện và thể hiện hành vi mượt mà khi trình bày với dữ liệu mới .

Dừng ban đầu sử dụng hai bộ dữ liệu khác nhau : tập huấn luyện, để cập nhật các trọng lượng và những thành kiến , và các thiết lập xác nhận, ngừng tập luyện khi mạng bắt đầu overfit dữ liệu.

Simulink Blocks and Control Systems Applications Simulink Support Neural Network Toolbox provides a set of blocks for building neural networks in Simulink. All blocks are compatible with Simulink Coder™. These blocks are divided into four libraries:  Transfer function blocks, which take a net input vector and generate a corresponding output vector  Net input function blocks, which take any number of weighted input vectors, weight-layer output vectors, and bias vectors, and return a net input vector  Weight function blocks, which apply a neuron's weight vector to an input vector (or a layer output vector) to get a weighted input value for a neuron  Data preprocessing blocks, which map input and output data into the ranges best suited for the neural network to handle directly Alternatively, you can create and train your networks in the MATLAB environment and automatically generate network simulation blocks for use with Simulink. This approach also enables you to view your networks graphically. Simulink Khối và ứng dụng hệ thống kiểm soát Hỗ trợ Simulink Neural Network Toolbox cung cấp một tập hợp các khối để xây dựng mạng lưới thần kinh trong Simulink. Tất cả các khối tương thích với Simulink Coder ™. Các khối này được chia thành bốn thư viện: -

Chuyển các khối chức năng, trong đó có một vector đầu vào net và tạo ra một vector đầu ra tương ứng

-

Khối chức năng đầu vào lưới, trong đó có bất kỳ số lượng các vector đầu vào có trọng số, lớp cân vectơ đầu ra, và vectơ thiên vị, và trả về một vector đầu vào net

-

Khối chức năng cân, mà áp dụng các vector trọng lượng của một tế bào thần kinh với một vector đầu vào (hay một vector đầu ra lớp) để có được một giá trị đầu vào cân nhắc đối với một tế bào thần kinh

-

Khối tiền xử lý dữ liệu, đầu vào và đầu ra dữ liệu bản đồ vào phạm vi thích hợp nhất cho các mạng thần kinh để xử lý trực tiếp

Ngoài ra, bạn có thể tạo và đào tạo mạng lưới của bạn trong môi trường MATLAB và tự động tạo ra các khối mô phỏng mạng để sử dụng với Simulink. Phương pháp này cũng cho phép bạn xem mạng của bạn bằng đồ họa. Control Systems Applications You can apply neural networks to the identification and control of nonlinear systems. The toolbox includes descriptions, examples, and Simulink blocks for three popular control applications:  Model predictive control, which uses a neural network model to predict future plant responses to potential control signals. An optimization algorithm then computes the control signals that optimize future plant performance. The neural network plant model is trained offline and in batch form.  Feedback linearization, which uses a rearrangement of the neural network plant model and is trained offline. This controller requires the least computation of these three architectures; however, the plant must either be in companion form or be capable of approximation by a companion form model.  Model reference adaptive control, which requires that a separate neural network controller be trained offline, in addition to the neural network plant model. While the controller training is computationally expensive, the model reference control applies to a larger class of plant than feedback linearization. You can incorporate neural network predictive control blocks included in the toolbox into your Simulink models. By changing the parameters of these blocks, you can tailor the network's performance to your application. Ứng dụng hệ thống kiểm soát Bạn có thể áp dụng các mạng thần kinh để xác định và kiểm soát các hệ thống phi tuyến. Bộ công cụ bao gồm giới thiệu, ví dụ, và các khối Simulink cho ba ứng dụng điều khiển phổ biến:

- Mô hình điều khiển dự phòng, trong đó sử dụng một mô hình mạng thần kinh để dự đoán phản ứng nhà máy trong tương lai để tín hiệu điều khiển tiềm năng. Một thuật toán tối ưu hóa sau đó tính tín hiệu điều khiển nhằm tối ưu hóa hiệu suất nhà máy trong tương lai. Mô hình nhà máy mạng nơ ron được đào tạo offline và ở dạng hàng loạt. - Phản hồi tuyến tính, trong đó sử dụng một sắp xếp lại các mô hình máy mạng lưới thần kinh và được đào tạo offline. Bộ điều khiển này đòi hỏi sự tính toán ít nhất trong ba kiến trúc; Tuy nhiên, nhà máy hoặc phải ở dạng đồng hành hoặc có khả năng xấp xỉ bởi một mô hình dạng đồng. - Mô hình tham chiếu điều khiển thích nghi, mà đòi hỏi một bộ điều khiển mạng lưới thần kinh riêng biệt được đào tạo offline, ngoài các mô hình máy mạng thần kinh. Trong khi đào tạo điều khiển là tính toán đắt tiền, kiểm soát tài liệu tham khảo mô hình áp dụng cho một lớp lớn hơn của nhà máy hơn so với thông tin phản hồi tuyến tính. Bạn có thể kết hợp mạng nơron khối điều khiển dự phòng bao gồm trong hộp công cụ vào các mô hình Simulink của bạn. Bằng cách thay đổi các thông số của các khối, bạn có thể chỉnh hiệu suất của mạng để ứng dụng của bạn.

2. Cách sử dụng Neural Network Toolbox trong Matlab Tại phần cửa sổ Command Window gõ lệnh: >> nnstart -

Fitting data: làm cho khớp

Bài toán ví dụ: rằng bạn có dữ liệu từ một ứng dụng nhà ở . Bạn muốn thiết kế một mạng lưới có thể dự đoán giá trị của một ngôi nhà ( trong $ 1000 ) , được 13 mẩu thông tin địa lý và bất động sản. Bạn có tổng cộng 506 nhà ví dụ mà bạn có những 13 hạng mục dữ liệu và giá trị thị trường liên quan của họ .

Levenberg-Marquardt (trainlm)  Bayesian Regularization (trainbr) Scaled Conjugate Gradient (trainscg)

Chọn một thuật toán huấn luyện , sau đó nhấp vào Train .. Levenberg - Marquardt ( trainlm ) được khuyến cáo cho hầu hết các vấn đề , nhưng đối với một số vấn đề ồn ào và nhỏ Bayesian Hợp thức ( trainbr ) có thể mất nhiều thời gian nhưng có được một giải pháp tốt hơn . Đối với những vấn đề lớn , tuy nhiên , Scaled Conjugate Gradient ( trainscg ) được khuyến khích vì nó sử dụng các tính toán độ dốc mà có nhiều bộ nhớ hiệu quả hơn so với các tính toán Jacobian hai thuật toán khác sử dụng . Ví dụ này sử dụng mặc định Levenberg - Marquardt . Việc đào tạo tiếp tục cho đến khi lỗi xác nhận thất bại trong việc giảm sáu lần lặp lại ( xác nhận ngừng) .

-

Pattern Recognition Tool & Classification : nhận dạng & phân loại mẫu

Ví dụ, giả sử bạn muốn phân loại một khối u lành tính hay ác tính, dựa trên tính đồng nhất của kích thước tế bào, độ dày bụi, nguyên phân, vv Bạn có 699 trường hợp ví dụ mà bạn có 9 mặt hàng của dữ liệu và các phân loại chính xác là lành hay ác tính

Clustering: phân cụm dữ liệu Time series: số liệu theo chuỗi thời gian Dự đoán và mô hình hóa Giả sử, ví dụ, rằng bạn có dữ liệu từ một quá trình trung hòa độ pH. Bạn muốn thiết kế một mạng có thể dự đoán pH của dung dịch trong một chiếc xe tăng từ giá trị quá khứ của pH và các giá trị quá khứ của axit và cơ sở tốc độ dòng chảy vào bể. Bạn có tổng cộng năm 2001 bước thời gian mà bạn có những series. Chú ý rằng cửa sổ mở này là khác nhau hơn so với các khung mở cho ảnh minh hoạ khác. Điều này là bởi vì ntstool có thể được sử dụng để giải quyết ba loại khác nhau của các vấn đề chuỗi thời gian. Trong loại đầu tiên của loạt vấn đề thời gian, bạn có muốn để dự đoán giá trị tương lai của một chuỗi thời gian y (t) từ các giá trị quá khứ của rằng chuỗi thời gian và

giá trị quá khứ của một thời gian thứ hai loạt x (t). Đây là hình thức dự đoán được gọi là tự hồi quy phi tuyến với ngoại sinh (từ bên ngoài) đầu vào, hoặc NARX (xem "NARX Network" (narxnet, closeloop)), và có thể được viết như sau: y (t) = f (y (t - 1), ..., y (t - d), x (t - 1), ..., (t - d)) Mô hình này có thể được sử dụng để dự đoán giá trị tương lai của một cổ phiếu hay trái phiếu, dựa trên các biến như kinh tế như tỷ lệ thất nghiệp, GDP, vv Nó cũng có thể được sử dụng để nhận dạng hệ thống, trong đó mô hình được phát triển để đại diện cho các hệ thống năng động, chẳng hạn như hoá chất quy trình, hệ thống sản xuất, robot, xe hàng không vũ trụ, vv Trong loại thứ hai của loạt vấn đề thời gian, chỉ có một loạt liên quan. Các giá trị tương lai của một chuỗi thời gian y (t) được dự đoán chỉ từ các giá trị quá khứ của loạt bài này. Đây là hình thức dự đoán được gọi là tự hồi quy phi tuyến, hoặc NAR, và có thể được viết như sau: y (t) = f (y (t - 1), ..., y (t - d)) Mô hình này cũng có thể được sử dụng để dự đoán công cụ tài chính, nhưng không cần sử dụng một loạt đồng. Thứ ba vấn đề chuỗi thời gian là tương tự như các loại đầu tiên, trong đó hai loạt có liên quan, một loạt đầu vào x (t) và một loạt sản lượng / mục tiêu y (t). Ở đây bạn muốn dự đoán giá trị của y (t) từ giá trị trước đó của x (t), nhưng không có kiến thức về các giá trị trước đó của y (t). Mô hình đầu vào / đầu ra này có thể được viết như sau: y (t) = f (x (t - 1), ..., x (t - d)) Các mô hình NARX sẽ cung cấp những dự đoán tốt hơn so với mô hình đầu vàođầu ra này, bởi vì nó sử dụng các thông tin bổ sung có trong các giá trị trước đó của y (t). Tuy nhiên, có thể có một số ứng dụng trong đó các giá trị trước đó của y (t) sẽ không có sẵn. Đó là những trường hợp duy nhất mà bạn sẽ muốn sử dụng các mô hình đầu vào-đầu ra thay vì các mô hình NARX. Đối với ví dụ này, chọn mô hình NARX và nhấn Next để tiếp tục.