961_633_neural_net1

27
1 Gii thiu vMng Nơron Trình bày: Phm Nguyên Khang

Upload: dieu-tien-bui

Post on 23-Jun-2015

124 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 961_633_neural_net1

1

Giới thiệu về Mạng Nơron

Trình bày:

Phạm Nguyên Khang

Page 2: 961_633_neural_net1

2

Nội dung trình bày

Sơ lược về mạng nơ-ronPerceptronMạng nơron nhiều tầng (MLP)Giải thuật lan truyền ngược (back propagation)Một số vấn đề của mạng nơ-ronHướng phát triểnThảo luận

Page 3: 961_633_neural_net1

3

Nơ-ron sinh học

Page 4: 961_633_neural_net1

4

Nơ-ron sinh học

Page 5: 961_633_neural_net1

5

Sơ lược về mạng nơ-ronMạng nơ-ron là 1 họ các quá trình xử lý thông tin dựa trên mô hình các nơ-ron thần kinh của con người.Kết hợp 1 số lượng lớn các thành phần đơn giản (nơ-ron) cấu trúc phức tạp nhằm giải quyết 1 vấn đề cụ thể nào đóGiống như con người, mạng nơ-ron học bằng các ví dụ (mẫu)Lĩnh vực ứng dụng:

Phát hiện bệnhDự báo thị trường chứng khoánNghiên cứu khách hàngKiểm tra độ tin cậy của máy mócQuản lý rủi ro…

Page 6: 961_633_neural_net1

6

Nơ-ron nhân tạo (artificial neuron)

Mô phỏng các nơ-ron sinh học

Nhận các tín hiệu từ các nơ-ron khác (hay từ đầu vào). Nếu giá trị (tổng các tín hiệu có nhân hệ số) nhận được vượt quá một ngưỡng nào đó, nơ-ron này sẽ kích hoạt (nó sẽ gửi tín hiệu đến các nơ-ron khác nữa)

Page 7: 961_633_neural_net1

7

PerceptronPerceptron là mô hình đơn giản nhất của mạng nơ-ron (chỉ có 1 tầng).Perceptron = 1 nơ-ron nhân tạoMô hình toán của perceptron:

f được gọi là hàm kích hoạt (activation action) hay hàm truyền có thể là:Tuyến tínhNgưỡng (Heaviside step)Logistic sigmoidGauss…

⎟⎠

⎞⎜⎝

⎛= ∑

=

d

iiiwvfoutput

1

xexg −+=

11)(

Page 8: 961_633_neural_net1

8

Huấn luyện Perceptron (1)

Xét trường hợp, perceptron xử dụng hàm kích hoạt ngưỡng.

Nếu cho w0 = -t, và v0 = 1, ta có thể viết lại:

⎪⎪⎩

⎪⎪⎨

≤−

>+=

=

=d

iii

d

iii

twv

twvoutput

1

1

,1

,1

⎪⎪⎩

⎪⎪⎨

⎟⎠

⎞⎜⎝

⎛=

≤−

>+= ∑

∑=

=

=d

iiid

iii

d

iii

wvsignwv

wvoutput

0

0

0

0,1

0,1

Page 9: 961_633_neural_net1

9

Huấn luyện Perceptron (2)

Khởi tạo:Khởi tạo w (0 hoặc ngẫu nhiên)Chọn tốc độ học µ

Học:Với mỗi mẫu (x, t) trong tập học

Tính y = f(x,w)Nếu (y != t) thay đổi vectơ trọng số ww(mới) = w(cũ) + µ(t-y)x

Lặp lại quá trình « học » cho đến khi « điều kiện dừng » thỏa mãn

Page 10: 961_633_neural_net1

10

Điều kiện dừng

Quá trình học, thực chất là quá trình đi tìm các trọng số w sao cho lỗi xảy ra là nhỏ nhất phương pháp giải bài toán tối ưuĐiều kiện dừng trong quá trình học có thể là 1 trong các tiêu chí, hay kết hợp các tiêu chí:

Lỗi nhỏ đến mức chấp nhận đượcSau một số bước lặp đủ lớn…

Page 11: 961_633_neural_net1

11

Khả năng của Perceptron

Phương trình v.w = 0 chính là một siêu phẳng trong không gian d-chiều.

Perceptron có khả năng phân lớp tuyến tính. Có thểdùng để giải bài toán hồi quy tuyến tínhHạn chế của Perceptron:

Không thể phân lớp phi tuyếnVí dụ: bài toán XOR

Giải pháp:Sử dụng mạng nơ-ron nhiều tầng MLP

Page 12: 961_633_neural_net1

12

Mạng nơ-ron nhiều tầng (MLP)

Page 13: 961_633_neural_net1

13

Mạng nơ-ron nhiều tầng (MLP)

Page 14: 961_633_neural_net1

14

Mạng nơ-ron nhiều tầng (MLP)input, output và các tầng ẩn (hiden layers).Số lượng các nơ-ron trong tầng input = số chiềuSố lượng các nơ-ron trong tầng output thường = số các lớpThông thường các mạng nơ-ron dùng 1 tầng ẩn. Số lượng các nơ-ron trong tầng ẩn thường được chọn = ½ (số nơ-ron tầng input + số nơ-ron trong tầng output)

Chú ý: các nơ-ron trong tầng input thực sự không phải là các nơ-ron. Nó chỉ là chỗ để đưa dữ liệu của các mẫu vào

Page 15: 961_633_neural_net1

15

Huấn luyện MLPLà quá trình thay đổi giá trị của w để mạng biểu diễn được tập dữ liệu học.Sự khác nhau giữa giá trị thật của mẫu và kết quả dự đoán của mạng gọi là lỗi (học có giám sát). Hàm lỗi thường dùng là sum squared errorHàm lỗi sẽ là một hàm (n+1) biến. Nếu vẽ trong không gian n+1 chiều ta sẽ có một mặt lỗi (error surface)Quá trình huấn luyện sẽ tìm các wi* để lỗi nhỏ nhất.Trong trường hợp tuyến tính, vói hàm lỗi là sum squared error thì mặt lỗi có dạng parapola có thể tìm được w* để lỗi = min tương đối dễdàngTrong trường hợp tổng quát, hàm lỗi phức tạp (ví dụ: không phải hàm lồi) vấn đề cực tiểu cục bộ (local minimum) giải pháp ???

Page 16: 961_633_neural_net1

16

Một số giải thuật huấn luyện MLP

Back propagation (khá nổi tiếng, dễ hiểu)Conjugate gradient descent & Levenber-Marquardt (Bishop 1995, Shepherd 1997)Quick propagation (Fahlman, 1988)Delta-Bar-Delta(Jacob 1988)

Page 17: 961_633_neural_net1

17

Giải thuật lan truyền ngượcXét một mạng nơ-rơn 3 tầng: input, hiden, outputHàm kích hoạt của các nơ-ron: logistic sigmoid

Giải thuật lan truyền ngược gồm 2 giai đoạn:Lan truyền tiến (tính output của các nơ-ron)Lan truyền ngược (thay đổi trọng số của các cung, dùng thông tingradient của hàm lỗi)

Page 18: 961_633_neural_net1

18

Gradient của hàm lỗi (1)

Nơ-ron tầng output

Hàm lỗi:

Đạo hàm riêng của hàm lỗi theo các trọng số b:

x

k

iii

exg

bybv

vgz

=

+=

+=

=

11)(

)(

10

bv

vz

zE

bE

∂∂

∂∂

∂∂

=∂∂

b1

b2

bk

b0

y1

y2

yk

1( )2

21)( tzzE −=

Giá trị thật của mẫu huấn luyện

Page 19: 961_633_neural_net1

19

Gradient của hàm lỗi (2)

Ta có: Đặt:

⎩⎨⎧

>=

=∂∂

−=∂∂

=∂∂

−=∂∂

0,0,1

)1(

)(

iyi

bv

zzvg

vz

tzzE

ii

)1()( zztzvz

zEp −−=∂∂

∂∂

=

Ta được:

⎩⎨⎧

>=

=∂∂

00

ipyip

bE

ii

Page 20: 961_633_neural_net1

20

Gradient của hàm lỗi (3)

Nơ-ron tầng ẩn

Đạo hàm riêng của hàm lỗi theo các trọng số a:

∑=

+=

=d

iiiaxau

ugy

10

)(

au

uy

yE

aE

∂∂

∂∂

∂∂

=∂∂

a1

a2

ad

a0

x1

x2

xd

1

Page 21: 961_633_neural_net1

21

Gradient của hàm lỗi (2)

Đặt:Ta có:

⎩⎨⎧

>=

=∂∂

−=∂∂

=∂∂

=−−=∂∂

∂∂

∂∂

∂∂

∂∂

=∂∂ ∑

=

0,0,1

)1(

)1()(

1

jxj

au

yyuy

byv

pzztzvz

zE

yv

vz

zE

yE

jj

ii

iiiiii

i

i

K

i

i

i

i

i)1(

1yybp

uy

yEq

K

iii −⎟⎠

⎞⎜⎝

⎛=

∂∂

∂∂

= ∑=

Ta được:

⎩⎨⎧

>=

=∂∂

00

iqxiq

aE

ii

Page 22: 961_633_neural_net1

22

Điều chỉnh trọng số

Sau khi tính được đạo hàm riêng của hàm lỗi theo từng trọng số. Trọng số sẽ được điều chỉnh bằng cách trừ bớt 1 lượng bằng tích của đạo hàm riêng và tốc độ học:

iii w

Eww∂∂

−= µ

Page 23: 961_633_neural_net1

23

Một số vấn đề với mạng nơ-ronVấn đề kiến trúc mạng: nơ-ron nào nên nối với nơ-ron nào ?Trọng số của các cung nối và ngưỡng thay đổi thường xuyên. Đã có nhiều nghiên cứu về vấn đề này và cũng đã có một số kết quả:

Nếu mạng gây ra lỗi, thì có thể xác định chính xác nơ-ron nào gây ra lỗi điều chỉnh nơ-ron nàyVới cách tiếp cận này, mạng phải « biết » rằng nó gây ra lỗi. Trong thực tế, lỗi chỉ được biết sau một thời gian dài.

Chức năng của một nơ-ron không quá đơn giản như mô hình.Mạng no-ron hoạt động như 1 hộp đen

Page 24: 961_633_neural_net1

24

Một số hướng dẫn khi sử dụng mạng nơ-ron

Xây dựng mạng khởi tạo (dùng 1 tầng ẩn có số nơ-ron = ½ tổng số nơ-ron của tầng input & output)Huấn luyện mạng dùng các giải thuật huấn luyện. Nên thực hiện trên nhiều mạng khác nhau để tránh trường hợp cực tiểu cục bộNếu máy « không thuộc bài » (under-learning) thêm 1 vài nơ-ron cho tầng ẩnNgược lại nếu máy « học vẹt » (over-learning) bớt 1 vài nơ-ron ra khỏi tầng ẩnKhi đã tìm được một kiến trúc mạng tương đối « tốt ». Lấy mẫu lại tập dữ liệu và huấn luyện lại để tìm ra các mạng mới

Page 25: 961_633_neural_net1

25

Hướng phát triển

Tích hợp logic mờ vào mạng nơ-ronMạng nơ-ron xung (pulse neural networks): các nơ-ron giao tiếp với nhau thông qua các xungSử dụng phần cứng cho mạng

Page 26: 961_633_neural_net1
Page 27: 961_633_neural_net1