Professional Documents
Culture Documents
CẤU TRÚC DỮ LIỆU
CẤU TRÚC DỮ LIỆU
1. Cấu trúc đầu vào song song với Network tĩnh (không có phản hồi
hoặc giữ chậm)
Mạng này tương tự mạng gồm 4 nơron hoạt động song song và mỗi mạng có
2 đầu vào và 1 đầu ra
2. Cấu trúc đầu vào nối tiếp với mạng động học
1
Lệnh khởi tạo mạng này:
3. Cấu trúc đầu vào song song đối với mạng động học
Trong một số trường hợp, mạng phải phản ứng với nhiều dãy đầu vào nối
tiếp trong cùng một thời gian. Khi này sẽ biểu diễn mạng dưới dạng một tập
song song các đầu vào nối tiếp nhau.
Ví dụ có 2 dãy đưa vào mạng:
2
Cấu trúc mạng động học giống như trong phần 2:
Đầu vào P là một mảng, mỗi phần tử của mảng bao gồm 2 phần tử của 2 dãy
và xuất hiện cùng thời điểm:
nhận được:
3
CÁC KIỂU LUYỆN MẠNG
Luyện tăng dần Incremental Training, trong đó trọng lượng và bias được cập nhật
mỗi lần khi đầu vào (input) đưa đến mạng.
Luyện cả khóa Batch Training , trong đó trọng lượng và bias được cập nhật chỉ khi
tất cả các đầu vào được đưa đến mạng
1. Incremental Training với mạng tĩnh (Incremental Training with
Static Networks)
(File Incremental_Training_1)
Xem lại mạng tĩnh trong ví dụ đầu tiên:
Để luyện mạng tăng dần, trọng lượng và bias được cập nhật mỗi lần khi đầu vào
(input) đưa đến mạng, sử dụng hàm adapt.
Giả định muốn luyện mạng để tạo ra một hàm tuyến tính:
Thực hiện khởi động mạng với các trọng lượng và bias bằng không:
4
Kết quả đầu ra của mạng luôn bằng không, vì trọng số và bias của mạng cho
bằng không và tốc độ luyện mạng cũng bằng không.
Khi luyện mạng với tốc độ học , mạng sẽ điều chỉnh sau mỗi lần đưa đến
đầu vào:
Đối với :
Đối với :
Đối với :
5
Vì nên trọng số và bias của mạng phải thay đổi:
Thực hiện khởi động mạng tuyến tính với các trọng lượng và bias ban đầu bằng
không, tốc độ học :
Để luyện mạng động học này, đưa vào đầu vào và target:
% - Đầu vào ban đầu bị giữ chậm (we assign the first
term in the sequence as the initial condition for the delay)
Luyện mạng sử dụng lệnh adapt:
6
Đối với : % Thực ra đầu vào là , trong đó được
nhân với trọng số , nhân với trọng số
Batch Training
Batch Training với mạng tĩnh (Batch Training with Static Networks)
(file Batch_Training_1)
Batch Training có thể được dùng với adapt or train, nhưng train hay dùng
hơn (adapt chỉ dùng cho Incremental training).
Khởi tạo mạng:
net = newlin([-1 1;-1 1],1,0,0.1);
net.IW{1,1} = [0 0];
net.b{1} = 0;
P = [1 2 2 3; 2 1 3 1];
T = [4 5 7 7];
For batch training of a static network with adapt, the input vectors must be
placed in one matrix of concurrent vectors.
Khi sử dụng lệnh adapt, sẽ dẫn tới trains, (hàm thích nghi mặc định cho mạng
tuyến tính) và learnwh (hàm học mặc định cho trọng lượng và bias)
[net,a,e,pf] = adapt(net,P,T);
a=0000
e=4577
Giá trị trọng số và bias sau khi Batch Training:
7
Giải thích kết quả:
Đối với , , , vì trọng
lượng và bias không được cập nhật nên các đầu ra đều bằng 0
Thực hiện cập nhật với đầu vào thứ nhất (nhưng không sử dụng để tính )
Thực hiện cập nhật với đầu vào thứ hai (nhưng không sử dụng để tính )
Thực hiện cập nhật với đầu vào thứ ba (nhưng không sử dụng để tính )
Thực hiện cập nhật với đầu vào thứ bốn (kết thúc)
8
Khi sử dụng lệnh train (file Batch_Training_2 ), các phần tử của mảng vectơ
đầu vào nối tiếp được chuyển vào được chuyển thành ma trận vectơ đầu vào
song song:
net = newlin([-1 1;-1 1],1,0,0.1);
net.IW{1,1} = [0 0];
net.b{1} = 0;
T = [4 5 7 7];
Hàm luyện mặc định cho mạng tuyến tính là hàm trainc, hàm học mặc định
cho trọng lượng và bias là learnwh:
net.inputWeights{1,1}.learnParam.lr = 0.1;
net.biases{1}.learnParam.lr = 0.1;
net.trainParam.epochs = 1;
net = train(net,P,T);
Kết quả nhận được cũng giống như khi sử dụng lệnh adapt:
»net.IW{1,1}
ans = 4.9000 4.1000
»net.b{1}
ans = 2.3000
Batch Training với mạng động học (Batch Training With Dynamic Networks)
(file Batch_Training_3)
9
Đối với : % Thực ra đầu vào là , trong đó được
nhân với trọng số , nhân với trọng số
10
PERCEPTRON
Perceptron là 1 nơron, sử dụng hàm chuyển đổi hardlim:
Mỗi một đầu vào đươc trọng lượng hóa với trọng lượng , được
lấy tổng cùng với bias thành và sau đó qua hàm hardlim. Đầu ra của
Perceptron bằng 1 nếu , ngược lại, .
Ứng dụng Perceptron trong phân loại mẫu (xem Matlab – Demos – Perceptron
– decision boundary nnd4db )
Nếu đường phân chia đi qua gốc tọa độ, nếu cho phép phân loại
2 tập đầu vào không nằm trên 2 phía khác nhau của trục tọa độ
11
Cấu trúc Perceptron
12
p2 = [1;-1]
a2 = sim(net,p2) % cho ra kết quả bằng 0
Trong đó p là đầu vào, t là target. Đầu ra của mạng so sánh với target, có sai số
sẽ quay về thay đổi trọng số mạng để sai số tiến đến 0.
Khi học không giám sát: Trọng lượng các phần tử của mạng và bias thay đổi
chỉ theo đầu vào và không có tập target. Luật học này thường được thực hiện
cho các mạng nơron thực hiện việc phân nhóm loại đầu vào thành các nhóm.
Lệnh (luật học) learnp sẽ thay đổi trọng lượng đối với đầu vào p và bias theo
sai số e=t-a. Vectơ target t phải chứa các phần tử 0 hoặc 1
Ví dụ
13
Quá trình sẽ được lặp đi lặp lại cho đến khi không còn sai số.
Demo luật học Perceptron (xem Matlab – Demos – Perceptron – Perceptron
Learning Rule nnd4pr )
Luyện Perceptron
(File Perceptron_1)
Để minh họa cho việc luyện Perceptron, xem xét một bài toán phân loại đơn
giản khi dùng Perceptron để phân loại 4 vectơ đầu vào, mỗi vectơ có hai phần
tử:
14
Như vậy đầu ra không đúng với hàm đích , do đó, sử dụng quy tắc học
của Perceptron để tìm sự thay đổi của trọng lượng và bias:
Khi đó:
Khi này đưa đến vectơ đầu vào thứ hai ; đầu ra Perceptron khi này:
Vì target , do đó sai số khi này bằng 0 và sẽ không thay đổi trọng lượng
và bias:
15
Vì , do đó , trọng lượng và bias được thay đổi:
;
Để xác định lời giải có đúng hay không, cần phải thực hiện một pass qua tất cả
các vectơ đầu vào (trong trường hợp này là 4). Dùng chung ;
cho các đầu vào nhận được
và không đúng với target.
Việc tính một chu trình cho từng vectơ đầu vào (trong trường hợp này là 4)
được gọi là một EPOCH
EPOCH thứ hai:
Đối với vectơ thì nên ;
Đối với vectơ :
Vì nên ;
Vì nên ;
Thực hiện pass qua tất cả 4 vectơ đầu vào, dùng chung
cho cả nhận được hoàn toàn đúng
với target.
16
(File Perceptron_1)
p = [[2;2] [1;-2] [-2;2] [-1;1]];
t =[0 1 0 1];
net = newp([-2 2;-2 +2],1);
net.trainParam.epochs = 3;
net = train(net,p,t);
a = sim(net,p)
a=
[0] [0] [1] [1]
Graphical User Interface (GUI)
17
P= [0 0 1 1;0 1 0 1];
T =[0 0 0 1];
Vào Import, sẽ xuất hiện P và T, đặt P vào Input Data, T vào Target Data,
sau đó Close.
Tạo mạng:
Vào New, xuất hiện cửa sổ Create New Data :
18
Luyện mạng:
Trên cửa sổ Create New Data, kích đúp vào Create
Khi này, quay trở lại cửa sổ Network/Data Manager sẽ thấy tên mạng là
Network1 tại ô Network, input P tại ô Input Data, target T tại ô Target Data:
Kích đúp vào ô Open nằm ở phía dưới cửa sổ Network/Data Manager, sẽ
xuất hiện cửa sổ Network: Network1:
19
Kích vào ô Train và chọn:
Input =P
Target =T
Đặt tên cho Training Results – Outputs là Network_ouputs (có thể đổi tên)
Training Results – Errors là Network_errors (có thể đổi tên)
như dưới đây:
20
Đánh giá kết quả luyện mạng:
Theo cửa sổ Neural Network Training (nntraintool) nhận được ở trên, đánh
giá được:
Số EPOCH luyện mạng là 5,
Sai số (performance) bằng không.
21
Kích vào các dòng P,T, Network_ouputs, Network_errors để kiểm tra lại.
Trong cửa sổ Network: Network1, vào ô Simulate, đặt P,T, đặt tên cho
Outputs và Errors (kèm theo chữ S), rồi kích vào Simulate Network.
Quay trở lại cửa sổ Network/Data Manager để kiểm tra việc mô phỏng.
Ô Reinitialize dùng để đặt trọng lượng và bias.
Ô View/Edit Weights dùng để đặt hoặc kiểm tra trọng lượng và bias sau khi
luyện mạng:
Kết quả W=[2 1] , b=[-3]
22
Chuyển mạng và các dữ liệu ra cửa sổ Matlab
Từ cửa sổ Network/Data Manager, kích vào ô Export, toàn bộ các dữ liệu
P,T, mạng Network1 và Outputs, Errors được chuyển ra cửa số Matlab:
23
Kích vào Save để lưu dưới định dạng .MAT, đặt tên file là nntool_2.
Muốn mở file nntool_2, từ cửa sổ Matlab, gõ nntool > Network/Data
Manager>Import>Load from Disk File>Browse>nntool_2:
24
CÁC LĨNH VỰC ỨNG DỤNG MẠNG RƠ RON
1. Phân loại, nhận dạng mẫu (chữ viết)
2. Dự báo (giá cổ phiếu, tỷ giá)
QUÁ TRÌNH LUYỆN MẠNG NƠ RON
Cơ sở dữ Mạng đã
liệu huấn luyên
Sai số nhỏ
Lựa chọn
Mạng Nơ Tính sai
mẫu
ron số
25