1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tiểu luận điều khiển mạng NEURON

16 122 0

Đ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 16
Dung lượng 482,5 KB

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

Nội dung

Trớc bằng: 1wTp + b = 0 Đối với các điểm trên biên, nội tích của vec tơ vào và vec tơ trọng số có cùng một giá trị.. Sau khi đã chọn vec tơ trọng số với góc định hớng đúng, giá trị độ dố

Trang 1

GIỚI THIỆU MẠNG PERCEPTRON.

I.Cấu trúc của perceptron

1 Khái niệm chung :

Trớc hết ta xét mạng perceptron Mạng perceptron tổng quát nh hình:

Đầu ra của mạng là:

a = hardlim(Wp + b)

Ma trận trọng số có dạng:

=

W

R , S 2

, S 1 , S

R , 2 2

, 2 1 , 2

R , 1 2

, 1 1 , 1

w w

w

w w

w

w w

w

Ta định nghĩa một vec tơ bao gồm với các phần tử

hàng thứ i:

iw = [ wi,1 wi,2 wi,R]T

Bây giờ ta có thể viết lại ma trận trọng số:

W = [ 1wT 2wT 3wT SwT]T

Điều này cho phép ta viết đầu ra của phần tử thứ i của mạng :

ai = hardlim(ni) = hardlim(iwTp + bi) Trong đó hardlim là hàm có dạng:



<

= 10 khin n0 0

a

Do đó nếu nội tích của hàng thứ i của ma trận trọng số với vec

Hard limit layer

1

Input

p

Rx1 x1

Sì1 x1

Sì1 x1

S xR

a n

S

W w b

+

Mạng perceptron

a=hardlim(n)

n = Wp + b

Trang 2

hợp khác sẽ bằng không Một neuron nh vậy trong mạng sẽ chia

không gian vào thành 2 phần.

2 Perceptron một neuron:

Ta khảo sát một mạng perceptron hai đầu vào có một neuron nh hình dưới Đầu ra của mạng đợc xác định bằng:

a = hardlim(n) = hardlim(Wp + b)

= hardlim(1wTp + b) = hardlim(w1,1p1 + w1,2p2 + b) Biên quyết định đợc xác định bằng các vec tơ đầu vào sao cho

đầu ra của mạng n bằng zero:

n = 1wTp + b = w1,1p1 + w1,2p2 + b = 0

Để có ví dụ cụ thể ta gán các trị sau cho ma trận trọng số và độ dốc:

w1,1 = 1 , w1,2 = 1 , b = -1 Vậy thì biên quyết định là:

n = 1wTp + b = w1,1p1 + w1,2p2 + b = p1 + p2 - 1 = 0 Biểu thức này xác định một đờng thẳng trong không gian đầu vào Trên một phía của đờng thẳng đầu ra của mạng bằng zero Ngay trên đờng thẳng và ở phía kia của đờng thẳng đầu ra bằng 1 Để vẽ

p

2

p

1

a = 1

a =

1

1w

1wTp + b

= 0

Σ

1

w 1,1

b

a n

p1

Inputs

p

2 w1,2

Two-Inputs Neuron

Perceptron hai đầu vào một đầu ra

Trang 3

Các giao điểm này nằm tại p1 =1 và p2 = 1 Biên quyết định vẽ trên hình

Để xác định xem phía nào của đờng thẳng tơng ứng với đầu ra

là:

0

2 1 1 lim





Nh vậy đầu ra của mạng sẽ bằng 1 ở vùng bên trên(phần gạch gạch)

Ta có thể tìm biên quyết định bằng phơng pháp hình học Trớc

bằng:

1wTp + b = 0

Đối với các điểm trên biên, nội tích của vec tơ vào và vec tơ trọng số có cùng một giá trị Điều này thể hiện là các vec tơ vào có cùng một hình chiếu lên vec tơ trọng số, nh vậy chúng nằm vuông góc với vec tơ trọng số Hơn nữa một vec tơ bất kì nằm trong vùng gạch gạch trên hình trên có nội tích lớn hơn -b và vec tơ nằm trong vùng

chỉ về vùng có đầu ra của neuron bằng 1 Sau khi đã chọn vec tơ trọng số với góc định hớng đúng, giá trị độ dốc đợc tính bằng cách chọn một điểm trên biên và cho thoả mãn phơng trình

Ta dùng các khái niệm trên xét một mạng

perceptron thực hiện hàm logic AND Các

cặp đầu vào - đích của cổng là:

{p1 = [ 0 0]T , t1 = 0} {p2 = [ 0 1]T , t1

= 0}

{p3 = [ 1 0]T , t3 = 0} {p4 = [ 1 1]T , t1

= 1}

Trên hình vẽ là minh hoạ hình học bài

toán Nó biểu diễn không gian vào với mỗi

vec tơ vào đợc gán nhãn theo đầu ra đích

Hình tròn đen tơng ứng với đầu ra đích là

1 và hình tròn trắng ứng ra đích là 0

Trang 4

Bớc đầu tiên của việc thiết kế là chọn biên quyết định Ta muốn

có đờng thẳng chia các hình tròn đen và trắng Bài toán này có vô

số nghiệm Hợp lí là chọn đờng nằm giữa các hình tròn này Tiếp đó

ta chọn vec tơ trọng số trực giao với biên quyết định Vec tơ trọng số

có thể có độ dài bất kì và nh vậy có rất nhiều khả năng Ta chọn:

1w = [ 2 2 ]T

Cuối cùng ta chọn độ dốc b Ta có thể thực hiện điều này bằng cách chọn một điểm trên biên quyết định và cho thoả mãn phơng trình (2-15) Nếu ta chọn :

p = [ 1.5 0 ]T

thì :

1wTp + b =[ ] +

ì

0

5 1 2

Chúng ta có thể thử mạng bằng một trong các cặp đầu vào-đầu

a = hardlim(1wT p2+ b) = hardlim[2 2]ì10−3

a = hardlim(-1) = 0

3 Perceptron nhiều neuron:

Mỗi neuron của perceptron có nhiều neuron có một biên quyết

định Biên quyết định của neuron thứ i là:

iwTp + bi = 0 Perceptron một neuron có thể phân các vec tơ vào thành 2 loại vì đầu ra của nó có thể là 0 hay 1 Một perceptron nhiều neuron có thể phân vec tơ vào thành nhiều loại, mỗi loại đợc biểu diễn bằng một vec tơ ra Vì mỗi phần tử của vec tơ ra có thể là1 hay 0 nên có tổng cộng 2S loại với S là số neuron

II Quy tắc học của perceptron

1 Khái niệm :

Bây giờ ta xét quy tắc học của các mạng perceptron Quy tắc học này là một ví dụ về huấn luyện có giám sát, trong đó quy tắc học

đợc cung cấp bằng một tập hợp ví dụ về hành vi riêng của mạng:

{ p1,t1 },{ p2,t2 }, { pQ,tQ }

Khi mỗi đầu vào đợc đa tới mạng, đầu ra của mạng đợc so với đầu ra

Trang 5

đích Quy tắc học sẽ hiệu chỉnh trọng số và độ dốc của mạng để

đầu ra của mạng gần với đầu ra đích

2 Bài toán thử nghiệm :

Chúng ta sẽ bắt đầu bằng bài toán thử nghiệm đơn giản Các cặp đầu vào-đầu ra đích của bài toán là:

{ p1 = [ 1 2 ]T , t1 = 1 },{ p2 = [ -1 2 ]T , t2 = 0 },

{ p3 = [ 0 -1 ]T , t3 = 0 }

Bài toán đợc mô tả một cách hình học nh hình

bên, trong đó hai vec tơ vào có đích là 0 đợc biểu

diễn bằng hình tròn trắng và vec tơ vào có đích

là 1 đợc biểu diễn bằng hình tròn đen

Mạng đối với bài toán này có hai đầu vào và

một đầu ra

Để dễ dàng cho việc nghiên cứu quy tắc học, ta bắt đầu với mạng

Khi độ dốc bằng 0, mạng có biên quyết

định đi qua gốc Mạng cần phải có biên

hình vẽ ta cũng thấy các vec tơ trọng số

vuông góc với các biên quyết định

3 Xây dựng các quy tắc học :

Ta huấn luyện mạng bằng cách gán một vài giá trị ban đầu cho các thông số của mạng Trong trờng hợp này chúng ta đang huấn luyện một mạng hai đầu vào một đầu ra không có độ dốc Nh vậy ta chỉ phải khởi gán hai trọng số Chúng ta cho giá trị của vec tơ trọng

số một cách ngẫu nhiên:

1 3

Σ

w1,1

a n

p1

Inputs

p2 w1,2

No-Bias Neuron

Hình 2.4 Mạng thử nghiệm

Trang 6

[1.0 0.8]

wT





ì

2

1 8 0 0 1

a = hardlim(-0.6) = 0 Mạng không đa ra giá trị đúng Đầu ra của mạng là 0, trong khi

xem hình bên

Khởi gán vec tơ trọng số đa đến biên quyết

Chúng ta cần thay đổi vec tơ trọng số

nó có thể phân loại toán tốt hơn Ta có thể

đặt 1w bằng p1 Điều này rất đơn giản và

Tuy nhiên quy tắc này không thể dùng cho mọi

bài toán Hình vẽ bên dới chỉ ra bài toán không

thể giải đợc bằng cách cho vec tơ trọng số chỉ

trực tiếp theo hớng của cả hai vec tơ của lớp 1

một trong các vec tơ này bị phân loại sai,

trọng số của lớp sẽ dao động tiến và lùi và sẽ

không bao giờ tìm đợc nghiệm

Một khả năng khác là cộng p1 vào 1w.

Cộng p1 vào 1w làm cho 1w trỏ gần hớng p1

của 1w gần một cách không đối xứng hớng của

(2-23)

Dùng quy quy tắc này cho bài toán của

1wnew = 1wold + p1 = 

=

 +

2 2

1 8 0 1

Hình bên minh hoạ kết quả

Bây giờ chúng ta xét vec tơ vào tiếp theo và

1

1w

3

2 1

1w

3

Trang 7

tiếp tục thay đổi trọng số và quay vòng theo chu kì qua các vec tơ vào cho đến khi chúng đợc phân loại một cách đúng đắn Vec tơ





−

ì

2

1 2

1 0 2

a = hardlim(0.4) = 1

mạng lại là 1 Một vec tơ lớp 0 đã đợc phân loại

sai thành 1

Vì chúng ta muốn chuyển vec tơ trọng số

1w khỏi đầu vào, ta thay đổi phép cộng trong

phương trỡnh thành phép trừ:

nếu t = 0 và a = 1 thì 1wnew = 1wold -

Dùng quy quy tắc này cho bài toán của

1wnew = 1wold - p2 =12..20−−21 =−0.83

và đợc minh hoạ trên hình bên

a = hardlim(1w T p3) =hardlim[ ] 

ì

1

0 8 0 0 3

a = hardlim(0.8) = 1

1wnew = 1wold - p3 = 

=

0 3 1

0 8

0

0 3

Đồ thị bên trái chỉ rằng perceptron cuối cùng đã học đợc cách phân loại đúng đắn 3 vec tơ Nếu ta đa một vec tơ bất kì vào mạng neuron nó sẽ đa ra sự phân loại đúng đắn vec tơ vào đó Điều này đa ra cho chúng ta quy tắc thứ 3 và là quy tắc cuối cùng: nếu nó làm việc, đừng sửa trọng số: nếu t = a thì 1wnew = 1wold Sau đây là 3 quy quy tắc bao trùm toàn bộ các tổ hợp có thể có của các giá trị đầu ra và mục tiêu: nếu t = 1 và a = 0 thì 1wnew = 1wold + p 2 1

3 1w

3

2 1

3 1w

3

Trang 8

nếu t = 0 và a = 1 thì 1wnew = 1wold - p

nếu t = a thì 1wnew = 1wold

4 Quy tắc học hợp nhất:

Ba quy tắc học có thể viết lại thành một biểu thức duy nhất Trớc hết ta định nghĩa một biến mới e gọi là sai số của perceptron :

e = t - a Bây giờ ta có thể viết lại 3 quy tắc trong:

nếu e = 1 thì 1wnew = 1wold + p

nếu e = -1 thì 1wnew = 1wold - p

nếu e = 0 thì 1wnew = 1wold

Xem cẩn thận hai quy tắc đầu ta thấy p và e cùng dấu Ngoài ra khi e

= 0 thì p không có mặt trong quy tắc thứ 3 Nh vậy ta có thể thống nhất 3 quy tắc vào một biểu thức duy nhất:

1wnew = 1wold + ep = 1wold + (t - a)p

Quy tắc này có thể mở rộng để huấn luyện độ dốc khi chú ý là độ dốc, một cách đơn giản, là trọng số của những đầu vào luôn luôn bằng 1 Nh vậy ta có thể thay thế đầu vào p trong (2-34) bằng đầu vào là độ dốc có trị bằng 1 Điều này đa đến quy tắc của perceptron

về độ dốc:

bnew = bold + e

5 Huấn luyện các perceptron có nhiều neuron: Quy tắc

perceptron cập nhật vec tơ trọng số của một perceptron có một neuron Chúng ta có thể tổng quát hoá quy tắc này cho perceptron có nhiều neuron Để cập nhật hàng thứ i của ma trận trọng số ta dùng:

iwnew = iwold + eip

Để cập nhật phần tử thứ i của vec tơ độ dốc ta dùng:

i

old i

new

Quy tắc perceptron có thể viết dới dạng ma trận:

T new new W p

i

new

Để thử quy tắc học của perceptron, ta lại khảo sát bài toán nhận dạng cam và táo Các vec tơ chuẩn vào-ra là:

[ ]

=

1 1

1 1

=

1 1

1 1

p

Trang 9

Trong phần này ta sử dụng mục tiêu 0 cho cam thay vì dùng -1 nh

trong phần trớc vì ta dùng hàm truyền hardlim thay cho hàm

hardlims Một cách điển hình các trọng số và độ dốc đợc khởi gán

bằng một số ngẫu nhiên nhỏ Giả sử rằng ta bắt đầu bằng ma trận trọng số và độ dốc:

W = [ 0.5 -1 -0.5 ] , b = 0.5

+

1 1

1 5 0 1 5 0

a = hardlim(2.5) = 1 Bây giờ ta tính sai số:

e = t1 - a = 0 -1 = -1 Cập nhật trọng số:

T

p W

= [ -0.5 0 0.5]

Cập nhật độ dốc:

bnew = bold + e = 0.5 + (-1) = -0.5

Đến đây ta kết thúc lần lập đầu tiên Lần lặp thứ hai theo quy tắc perceptron là:

+

1 1

1 5 0 0 5 0

a = hardlim(-0.5) = 0

e = t2 - a = 1 - 0 = 1

T new

= [ 0.5 1 -0.5]

bnew = bold + e = -0.5 + 1 = 0.5

Lần lặp thứ 3 bắt đầu bằng vec tơ vào thứ nhất

+

1 1

1 5 0 1 5 0

a = hardlim(0.5) = 1

e = t1 - a = 0 -1 = -1

T new

Trang 10

= [ -0.5 2 0.5]

Cập nhật độ dốc:

bnew = bold + e = 0.5 + (-1) = -0.5 Nếu ta tiếp tục lặp ta sẽ thấy là cả hai vec tơ vào sẽ đợc phân loại đúng Thuật toán đã hội tụ về nghiệm

III KHẢO SÁT MẠNG PERCEPTRON SỬ DỤNG GUI:

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

Ta 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]

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

Cỏc giỏ trị vào - ra được thiết lập bằng cụng cụ Network/Data Manager.

Thiết lập đầu vào: (inputs)

p = [0 0 1 1; 0 1 0 1]

Trang 11

Thiết lập giá trị đích: (targets)

t = [0 0 0 1]

b Thiết lập mạng :

Sau khi thiết lập các giá trị đầu vào và giá trị đích, ta đi thiết lập mạng neuron dạng perceptron

Trang 12

Ta thiết lập mạng với đầu vào p, đầu ra t, hàm chuyển đổi HARDLIM và hàm huấn luyện LEARNP

Mạng được mô hình hóa như dưới:

2 Huấn luyện mạng

Với mạng perceptron vừa xây dựng, ta đi huấn luyện cho mạng:

Trang 13

Ta thiết lập số lần huấn luyện, sai số đích và cài đặt đầu vào, đầu ra.

Sau khi chọn các thông số huấn luyện ta được kết quả huấn luyện:

Trang 14

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

Vậy, mạng đã được huấn luyện dễ dàng với sai lệch bằng 0 ở chu kỳ thứ 4 (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)

Trang 15

Chương trình Matlab:

Thông số đầu vào và đích:

>> t

t =

0 0 0 1

>> P

P =

0 0 1 1

0 1 0 1

Chương trình cấu trúc mạng Neuron Perceptron:

>> Vinh_neuron

Vinh_neuron = Neural Network object:

architecture:

numInputs: 1

numLayers: 1

biasConnect: [1]

inputConnect: [1]

layerConnect: [0]

outputConnect: [1]

numOutputs: 1 (read-only)

numInputDelays: 0 (read-only)

numLayerDelays: 0 (read-only)

subobject structures:

inputs: {1x1 cell} of inputs

layers: {1x1 cell} of layers

outputs: {1x1 cell} containing 1 output

biases: {1x1 cell} containing 1 bias

inputWeights: {1x1 cell} containing 1 input weight layerWeights: {1x1 cell} containing no layer weights

functions:

adaptFcn: 'trains'

divideFcn: (none)

gradientFcn: 'calcgrad'

initFcn: 'initlay'

Trang 16

performFcn: 'mae'

plotFcns: {'plotperform','plottrainstate'}

trainFcn: 'trainc'

parameters:

adaptParam: passes

divideParam: (none)

gradientParam: (none)

initParam: (none)

performParam: (none)

trainParam: show, showWindow, showCommandLine, epochs, goal, time

weight and bias values:

IW: {1x1 cell} containing 1 input weight matrix

LW: {1x1 cell} containing no layer weight matrices

b: {1x1 cell} containing 1 bias vector

other:

name: ''

userdata: (user information)

Kết quả đầu ra và lỗi:

>> Vinh_neuron_outputs

Vinh_neuron_outputs = 0 0 0 1

>> Vinh_neuron_errors

Vinh_neuron_errors = 0 0 0 0

Ngày đăng: 08/01/2019, 11:20

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w