1. Trang chủ
  2. » Giáo Dục - Đào Tạo

HỆ MỜ & NƠRON TRONG KỸ THUẬT ĐIỀU KHIỂN - TS. NGUYỄN NHƯ HIỀN & TS. LẠI KHẮC LÃI - 7 ppsx

19 348 3
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 541,16 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Như vậy, mạng đã được huấn luyện vào lúc các đầu vào có mặt trong 3 khóa Như đã biết từ việc tính bằng tay, mạng hội tụ với sự xuất hiện của véc tơ vào thứ 6.. Chú ý: Hàm huấn luyện mặc

Trang 1

qua tất cả các véc tơ vào để thấy được kết quả của tất cả các giá trị đích mong

muốn Điều này không đúng cho đầu vào thứ 4, nhưng thuật toán hội tụ trong

lần thứ 6 Giá trị cuối cùng là:

W(6) = [-2 -3] và b(6) = 1

Đển đây kết thúc sự tính toán bằng tay Bây giờ ta cần làm thế nào để sử

dụng hàm huấn luyện? Theo mã định nghĩa perceptron như đã chỉ ra trên hình

vẽ trước, với giá trị ban đầu của hàm trọng và độ dốc bằng 0, ta có:

net = newp(l-2 2;-2 +2],1);

Quan sát giá trị của đầu vào đơn

p = [2; 2];

ta có đích

t = (0);

Đặt kỳ huấn luyện epochs = 1, như vậy train sẽ đi qua các véc tơ vào ở

một lần

net.trainparam.epochs = 1;

net = train(net,p,t);

Hàm trọng mới và độ dốc mới là:

w =

-2 -2

b =

- 1

Vậy với giá trị ban đầu của hàm trọng và độ dốc = 0, sau khi huấn luyện

với chỉ véc tơ thứ nhất, chúng có giá trị [-2 -2] và -1 giống như khi ta tính

bằng tay Bây giờ áp dụng cho véc tơ vào thứ 2 (p2) Đầu ra là 1, hàm trọng và

độ dốc sẽ được thay đổi, nhưng bây giờ đích là 1, sai lệch sẽ bằng 0 nên sự

thay đổi sẽ bằng 0 Ta có thể đi theo cách này, bắt đầu từ kết quả trước và áp

dụng véc tơ đầu vào mới ở các lần sau Tuy nhiên ta có thể làm công việc đó

một cách tự động với hàm train Sau đây ta sẽ áp dụng hàm train cho một

khóa huấn luyện từng đầu vào lần lượt thông qua chuỗi của tất cả 4 véc tơ

vào Đầu tiên ta định nghĩa mạng:

net : newp([-2 2;-2 +2[,1);

net.trainParam.epochs = 1;

Các véc tơ vào và đích là:

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Trang 2

p = [[2;2] [1;-2] 1-2;2] [-1;1]]

t - [0 1 0 1]

Để huấn luyện ta sử dụng:

net = train(net,p,t);

Hàm trọng và độ dốc mới là:

w =

-3 -1

b =

0

Kết quả này tương tự như kết quả ta đã tính bằng tay trước đây Mô

phỏng cuối cùng sự huấn luyện mạng cho mỗi đầu vào là:

a = sim(net,p)

a =

[0] [0] [1] [1]

Đầu ra mạng không bằng giá trị đích Vì vậy cần huấn luyện mạng thểm

một số lần nữa Ta sẽ thử 4 khóa huấn luyện Các kết quả cho ra như sau:

TRAINC, Epoch 0/20

TRAINC, Epoch 3/20

TRAINC, Performance goal met

Như vậy, mạng đã được huấn luyện vào lúc các đầu vào có mặt trong 3

khóa (Như đã biết từ việc tính bằng tay, mạng hội tụ với sự xuất hiện của véc

tơ vào thứ 6 Điều này xuất hiện ở giữa của khóa 2 nhưng đển khóa huấn

luyện thứ 3 ta mới nhận ra sự hội tụ của mạng) Hàm trọng và độ dốc cuối

cùng là:

w =

-2 -3

b =

1

Kết quả mô phỏng ở đầu ra và sai số của các đầu vào riêng biệt là:

a =

0 1.00 0 1.00

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Trang 3

error = [a(1) – t(1) a(2) - t(2) a(3) - t(3) a(4) - t(4)]

error =

Vậy ta thấy rằng thủ tục huấn luyện đã thành công Mạng hội tụ và kết

quả đúng với đích đầu ra của 4 véc tơ đầu vào

Chú ý: Hàm huấn luyện mặc định của mạng được thiết lập với lệnh newp

là trains (bạn đọc có thể tìm hiểu thểm bằng cách gõ lệnh net.trainFcn từ

cửa sổ lệnh của Matlab) Hàm huấn luyện này áp dụng cho các luật học

perceptron dưới dạng thuần tuý Trong đó, mỗi thành viên của véc tơ vào

được áp dụng riêng lẻ thành chuỗi và sự hiệu chỉnh hàm trọng và độ dốc được

tiến hành sau mỗi lần xuất hiện của 1 véc tơ vào Vậy, huấn luyện perceptron

với hàm trình sẽ hội tụ ở một số hữu hạn các bước, ngoại trừ bài toán không

thể giải quyết được với perceptron đơn giản

Hàm trạm có thể được sử dụng trong các trường hợp khác nhau cho các

mạng khác đều cho kết quả tốt

4.4 CÁC HẠN CHẾ CỦA PERCEPTRON

Mạng perceptron có thể được huấn luyện với hàm Adapt, nó đưa lần lượt

các véc tơ vào đển mạng và tiến hành hiệu chỉnh mạng dựa trên kết quả của

mỗi lần thực hiện Sử dụng Adapt đảm bảo rằng một bài toán độc lập tuyến

tính bất kỳ sẽ được giải quyết trong một số hữu hạn các bước huấn luyện

Perceptron cũng có thể được huấn luyện với hàm train Khi trình được sử

dụng cho perceptron, nó gửi véc tơ vào đển mạng theo gói và tiến hành hiệu

chỉnh mạng trên cơ sở tổng của tất cả các hiệu chỉnh thành phần Tuy nhiên

đển nay ta chưa chứng minh được sự hội tụ thuật toán huấn luyện của

perceptron

Mạng perceptron có một vài hạn chế sau:

- Đầu ra của perceptron chỉ có thể nhận 1 trong 2 giá trị 0 hoặc 1 do hàm

chuyển hard-limit

- Perceptron chỉ có thể phân loại, cho tập các véc tơ độc lập tuyến tính

Nếu là đường thẳng hoặc mặt phẳng ta có thể vẽ để tách rời các véc tơ vào

thành các loại chính xác, các véc tơ vào là độc lập tuyến tính Nếu các véc tơ

vào không độc lập tuyến tính sử học sẽ không bao giờ đạt tới mức tất cả các

véc tơ được phân loại chính xác Tuy nhiên điều đó cũng chứng minh rằng

nếu các véc tơ là độc lập tuyến tính, perceptron huấn luyện thích nghi sẽ luôn

tìm được đáp án trong thời gian hữu hạn Ta cũng có thể sử dụng nhiều nơron

perceptron có thể được để giải quyết các bài toán phức tạp hơn

Ví dụ: Giả thiết có tập 4 véc tơ ta cần phân chia chúng thành các nhóm

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Trang 4

riêng biệt với 2 đường thẳng được vẽ để tách rời chúng Khi đó, ta có thể sử

dụng mạng 2 nơron perceprton, mạng được thiết lập sao cho 2 đường biên

giới của nó phân chia đầu vào thành 4 loại (Bạn đọc có thể đọc [HDB1996]

để hiểu thểm về perceptron và các bài toán perceptron phức tạp)

Những sự bất thường và luật pcrceptron mở rộng

Thời gian huấn luyện dài có thể do sự hiện diện của véc tơ vào bên ngoài,

chúng có kích thước quá rộng hoặc quá nhỏ so với các véc tơ vào khác Việc

áp dụng luật học perceptron bao gồm việc cộng hay trừ véc tơ vào dựa vào

hàm trọng và độ dốc hiện thời ở đáp ứng đển sai số Do vậy một véc tơ vào

với phần tử lớn có thể làm cho sự thay đổi hàm trọng và độ dốc lâu hơn nhiều

lần véc tơ vào nhỏ

Bằng việc thay đổi luật học perceptron chút ít, thời gian huấn luyện có thể

thích hợp cho các véc tơ vào rất lớn hoặc rất nhỏ

Luật gốc để cập nhật hàm trọng là:

ΔW = (t-a)p T = ep T Như đã chỉ ra ở trên, độ rộng của véc tơ vào p, có tác động lên véc tơ hàm

trọng W Do vậy, nếu một véc tơ vào lớn hơn nhiều so với các véc tơ vào

khác, các véc tơ vào nhỏ chỉ cần một thời gian ngắn để có kết quả Để khắc

phục nhược điểm này, ta đưa ra luật học mở rộng Khi đó, tác động của mỗi

véc tơ vào lên hàm trọng:

Luật perceptron mở rộng được thực hiện nhờ hàm learnp Nó làm giảm

bớt thời gian thực hiện nhưng không làm giảm số lần huấn luyện một cách

đáng kể nếu có véc tơ vào bất thường (outlier)

4.5 SỬ DỤNG GIAO DIỆN ĐỒ HỌA ĐỂ KHẢO SÁT MẠNG NƠRON

(Graphical User Interface - GUI)

4.5.1 Giới thiệu về GUI

Giao diện đồ họa (Graphical User Interface - GUI) được thiết kế để đơn

giản và thuận tiện cho mgười sử dụng Cửa sổ giao diện đồ họa có một vùng

làm việc của nó tách rời khỏi các dòng lệnh của vùng làm việc Vì vậy khi sử

dụng GUI ta cần phải xuất kết quả GUI sang (dòng lệnh) vùng làm việc

Tương tự ta có thể nhận kết quả từ dòng lệnh làm việc đển GUI

Mỗi lần Network/Data Manager được đưa ra và chạy, ta có thể thiết lập

mạng, quan sát, huấn luyện, mô phỏng nó và cất kết quả cuối cùng vào vùng

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Trang 5

làm việc

Tương tự, ta có thể lấy dữ liệu từ vùng làm việc để sử dụng trong GUI

Ví dụ sau đây với mạng perceptron, ta sẽ đi qua tất cả các bước để thiết

lập mạng và chỉ rõ ta có thể làm gì để được những điều mong muốn

4.5.2 Thiết lập mạng Perceptron (nntool)

Giả thiết cần thiết lập mạng perceptron thực hiện cổng logic AND Nó có

véc tơ vào:

p = [0 0 1 1; 0 1 0 1] và véc tơ đích là:

t - [0 0 0 1]

Ta gọi mạng là ANDNet Một lần thiệt lập mạng sẽ dược huấn luyện Sau

đó ta có thể cất mạng, đầu ra của nó; v.v bằng lệnh "exporting" trong cửa sổ

dòng lệnh

a/ Thiết lập các giá trị vào - ra

Để bắt đầu ta gõ nntool, xuất hiện cửa sổ hình 4.6

Hình 4.6

Kích vào help để bắt đầu vào bài toán mới và để thấy ý nghĩa của các nút

Trước tiên, để định nghĩa đầu vào mạng ta gọi p, có giá trị cụ thể [0 0 1 0; 0 1

0 1]

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Trang 6

Như vậy, mạng có 2 phần tử vào và 4 tập của 2 phần tử véc tơ đó được

đưa đển để huấn luyện Để đinh nghĩa dữ liệu này, kích vào new data sẽ xuất

hiện cửa sổ Create New Data Đặt tên cho p, giá trị là [0 0 1 1; 0 1 0 -1] và

xác định kiểu dữ liệu (data type) là tập dữ liệu vào (inputs) Cửa sổ thiết lập

dữ liệu mới như hình 4.7 Bây giờ kịch Create để thiết lập file đầu vào p Cửa

sổ Network/Data Manager hiện lên và p chỉ rõ là đầu vào Tiếp theo ta thiết

lập đích của mạng Kích new data một lần nữa rồi đưa vào biến t với giá trị [0

0 0 1], sau đó kích target để ấn định kiểu dữ liệu Sau đó lại kịch Create ta sẽ

thấy cửa sổ Network/Data Mangaer xuất hiện với t là đích và p là các đầu

vào

Hình 4.7

b Thiết lập mạng

Giả thiết ta muốn thiết lập mạng mới có tên là ANDNet Để làm điều đó

ta kích New Network cửa sổ CreateNew Network xuất hiện với tên ANDNet trong khung Network Name (hình 4.8), thiết lập kiêu mạng

Netword Type là Perceptron, khi đó kiểu mạng ta mong muốn được thiết

lập Phạm vi đầu vào có thể được cài dặt bằng con số trong vùng đó song ta

cũng rất dễ đàng nhận được chúng từ 1 đầu dữ liệu riêng biệt ta cần sử dụng

Để làm điều này ta kích vào mũi lên di xuống ở phần bên phải của phạm vi

đầu vào (Input Range) menu này trải xuống chỉ ra rằng ta có thể có được

phạm vi đầu vào từ file p nếu ta muốn Nếu kích vào p phạm vi đầu vào sẽ là

[0 1 ; 0 1]

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Trang 7

Hình 4.8a, b

Ta chọn hardlim trong menu hàm chuyển transfer function và learnp

trong menu hàm học learning function Đển đây ta có cửa sổ Create New

Netword như hình 4.8a.Ta có thể quan sát cấu trúc mạng bằng cách kích vào

Wiew (hifnh 4.8b)

Như vậy ta đã thiết lập được một mạng nơron đầu vào đơn (bao gồm 2

phần tử) hàm chuyển hardlim và 1 đầu ra Đó là mạng perceptron ta mong

muốn

Bây giờ kích vào Create để mọi ra mạng vừa thiết lập, ta sẽ nhận được

cửa sổ Netword/Data Manager Chú ý rằng ANDNet bây giờ được liệt kê

như một mạng (hình 4.9)

4.5.3 Huấn luyện mạng

Để huấn luyện mạng ta kích vào ANDNet để mở chúng, sau đó kích vào

Train, xuất hiện cửa sổ mới với nhãn: Netword:ANDNet Ở đây ta có thể

nhìn lại mạng bằng cách kích vào Train Để kiểm tra điều kiện đầu ta kích

vào nhãn Initialize Bây giờ ấn vào nhãn Train, định rõ đầu vào, đầu ra bằng

cách kích vào nhăn Training Info, chọn P trong hộp thoại Inputs và t trong

hộp thoại targets Khi đó cửa sổ Netword:ANDNet như hình 4.9

Chú ý rằng kết quả huấn luyện của các đầu ra và sai số có ở ANDNet gắn

vào chúng Việc làm này của chúng dễ dàng nhận ra sau khi chúng được đưa

ra từ dòng lệnh

Sau khi kích vào nhãn Training Parameter, nó cho ta biết các thông số

như số lần huấn luyện, sai số đích Ta có thể thay đổi các thông số này nếu ta

muốn

Kích chuột vào Train Network để huấn luyện mạng pcrceptron, ta được

kết quả như hình 4.10

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Trang 8

Vậy, mạng đã được huấn luyện dễ sai lệch bằng 0 ở chu kỳ thứ 4 (chú ý

rằng các dạng mạng khác thường không thể huấn luyện để được sai lệch bằng

0 mà sai lệch của chúng thường bao hàm trong một phạm vi rộng Theo bản

miêu tả đó chúng ta vẽ đồ thị sai lệch của chúng trên tọa độ loga đúng hơn

trên tọa độ tuyến tính ví dụ nó đã dùng ở trên cho mạng perceptron)

Ta có thể kiểm tra răng mạng được huấn luyện cho sai lệch bằng 0 bằng

việc sử dụng đầu vào p và mô phỏng mạng Để làm điều này, ta vào cửa sổ

Network/Data Manager và kích vào Network Only: Simulate, khi đó xuất

hiện cửa sổ Netword: ANDNet kích vào Simulate Lúc này menu Input

pull-down trải xuống chỉ rõ p là đầu vào và nhãn ra là ANDNet_outputsSim

để phân biệt nó từ đầu ra huấn luyện Kích vào Simulate Network ở góc dưới

bên phải, quan sát Network/Data Manager ta sẽ thấy giá trị mới của đầu ra:

ANDNet_outputsSim Kich đúp vào nó, một cửa sổ dữ liệu nhỏ:

ANDnet_outputsSim mở ra với trị số [0 0 0 1]

Vậy, mạng thực hiện cổng logic AND các đầu vào, nó cho ra giá trị 1 ở

đầu ra chỉ trong trường hợp cuối cùng, khi cả 2 đầu vào là 1

4.5.4 Xuất kết quả Perceptron ra vùng làm việc

Để xuất các đầu ra và sai số của mạng ra cửa sổ vùng làm việc của

MATLAB, ta kích vào nút thấp hơn bên trái của cửa sổ Network:ANDNet để

đi đển phần sau Network/Data Manager Chú ý đầu ra và sai số của

ANDNet được liệt kê trong bản liệt kê các đầu ra và sai số (Outputs and

Error) ở phần bên phải Kích tiếp Export ta được cửa sổ Export hoặc Save

from Network/Data Magager Kích vào ANDNet_outputs và

ANDNet-crrors để làm nổi rõ chúng, sau đó kích vào nút Export Bây giờ 2 biến đó có

thể có ở vùng làm việc dòng lệnh Để kiểm tra điều này, từ cửa sổ lệnh ta gõ

who để thấy tất cả các biến đã định nghĩa Kết quả như sau:

who

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Trang 9

Các biến là:

ANDNet_errors ANDNet outputs

Ta có thể gô ANDNe_toutputs và ANDNet_errors để nhận được kết quả

sau: ANDNet_outputs =

0 0 0 1

and ANDNet_errors =

0 0 0 0

Ta có thể xuất p, t và ANDnet ra đường mô phỏng Ta có thể làm điều

này và kiểm tra lại với lệnh who để chắc chắn rằng chúng có ở cửa sổ lệnh

Bây giờ ANDNet đó được xuất ra ta có thể nhìn được mô tả mạng và

khảo sát ma trận trọng của mạng Ví dụ:

ANDNet.iw{1,1}

gives ans =

2 1

Similarly, ANDNet.b{1} yiclds ans =

4.5.5 Xoá cửa sổ dữ liệu mạng (Network/Data Window)

Ta có thể xoá cử sổ dữ liệu mạng bằng cách làm sáng biến (ví dụ p) rồi

kích nút Delete cho tới khi tất cả các mục trong hộp liệt kê biến mất, bằng

cách làm này, chúng ta bắt đầu từ việc xoá danh sách

Một cách khác là ta có thể thoát MATLAB, khởi động lại MATLAB, đi

vào nntool được cửa sổ Netword Data Manager đã xoá

Tuy nhiên việc gọi lại những dữ liệu ta đã xuất ra cửa sổ dòng lệnh như p,

t từ ví dụ perceptron, chúng không thay đổi khi ta xoá Netword/Data

Manager

4.5.6 Nhập từ dòng lệnh

Đề đơn giản, ta thoát khỏi

MATLAB, khởi động lại lần nữa

và gõ bệnh nntool đề bắt đầu một

trang mới

Thiết lập véc tơ mới:

r = [0; 1; 2; 3]

r =

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Trang 10

0

1

2

3

Kích vào Import và đặt tên nơi gửi đển là R (để phân biệt với tên biến từ

dòng lệnh và biến trong GUI) Ta sẽ có cửa sổ như hình 4.11

Bây giờ kích vào Import và kiểm tra lại bằng cách nhìn vào Network/Data Manager để thấy biến R như là một đầu vào

4.5.7 Cất biến vào file và nạp lại nó

Đưa ra Network/Data Manager và kích vào New Netword dặt tên cho

mạng là mynet Kích vào Create, tên mạng mynet có thể xuất hiện trong cửa

sổ Network/Data Manager Tương tự như cửa sổ Manager kích vào Export Chọn mynet trong danh sách biến của cửa sổ Export or Saye và

kích vào Save Các hướng dẫn này để cất vào cửa sổ Save to a MAT file Cất

file mynetfile

Bây giờ, rời khỏi mynet trong GUI và tìm lại nó từ file đã cất Đầu tiên,

chuyển đển Data/Netword Manager, mynet nổi lên và kích vào Delete Sau

đó kích vào Import, cửa sổ Import or Load to Network/Data Manager mở

ra Chọn nút Load from Disk và gõ mynetfile như ở MAT-file Name Bây

giờ kích vào Browse để mở ra cửa sổ Select MAT file với file mynetfile như

một sự lựa chọn rằng ta có thể chọn như là một biến để nhập Mynetfile nổi

lên, ấn vào Open và ta trở về cửa sổ Import or Load to Netword/Data

Manager Trong danh sách Import As, chọn Netwrork, mynet nổi lên và

kích vào Load để đưa mynet đển GUI Bây giờ ta đã có ở trong của cửa sổ

GUI Netword/Data Manager

Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com

Ngày đăng: 22/07/2014, 05:20

HÌNH ẢNH LIÊN QUAN

Hình 5.1a,b. Nơron với R đầu vào - HỆ MỜ & NƠRON TRONG KỸ THUẬT ĐIỀU KHIỂN - TS. NGUYỄN NHƯ HIỀN & TS. LẠI KHẮC LÃI - 7 ppsx
Hình 5.1a b. Nơron với R đầu vào (Trang 12)
Hình 5.2a,b. Kiến trúc một lớp mạng tuyến tính - HỆ MỜ & NƠRON TRONG KỸ THUẬT ĐIỀU KHIỂN - TS. NGUYỄN NHƯ HIỀN & TS. LẠI KHẮC LÃI - 7 ppsx
Hình 5.2a b. Kiến trúc một lớp mạng tuyến tính (Trang 12)
Biểu thức Wp + b = 0. Hình 5.3b chỉ rõ ví dụ về đường phân chia biên giới - HỆ MỜ & NƠRON TRONG KỸ THUẬT ĐIỀU KHIỂN - TS. NGUYỄN NHƯ HIỀN & TS. LẠI KHẮC LÃI - 7 ppsx
i ểu thức Wp + b = 0. Hình 5.3b chỉ rõ ví dụ về đường phân chia biên giới (Trang 13)
Hình 5.5. Nơron với 2 đầu vào - HỆ MỜ & NƠRON TRONG KỸ THUẬT ĐIỀU KHIỂN - TS. NGUYỄN NHƯ HIỀN & TS. LẠI KHẮC LÃI - 7 ppsx
Hình 5.5. Nơron với 2 đầu vào (Trang 17)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm