1
Giới thiệu về Mạng
Nơron
Trình bày:
Phạm Nguyên Khang
2
Nội dung trình bày
z Sơ lược về mạng nơ-ron
z Perceptron
z Mạng nơron nhiều tầng (MLP)
z Giải thuật lan truyền ngược (back propagation)
z Một số vấn đề của mạng nơ-ron
z Hướng phát triển
z Thảo luận
3
Nơ-ron sinh học
4
Nơ-ron sinh học
5
Sơ lược về mạng nơ-ron
z Mạ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.
z 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 đó
z Giống như con người, mạng nơ-ron học bằng các ví dụ (mẫu)
z Lĩnh vực ứng dụng:
z Phát hiện bệnh
z Dự báo thị trường chứng khoán
z Nghiên cứu khách hàng
z Kiểm tra độ tin cậy của máy móc
z Quản lý rủi ro
z …
6
Nơ-ron nhân tạo (artificial
neuron)
z Mô phỏng các nơ-ron sinh học
z 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)
7
Perceptron
z Perceptron là mô hình đơn giản nhất của mạng nơ-ron (chỉ có 1 tầng).
z Perceptron = 1 nơ-ron nhân tạo
z Mô hình toán của perceptron:
z f được gọi là hàm kích hoạt (activation action) hay hàm truyền có thể là:
z Tuyến tính
z Ngưỡng (Heaviside step)
z Logistic sigmoid
z Gauss
z …
⎟
⎠
⎞
⎜
⎝
⎛
=
∑
=
d
i
ii
wvfoutput
1
x
e
xg
−
+
=
1
1
)(
8
Huấn luyện Perceptron (1)
z Xét trường hợp,
perceptron xử dụng hàm
kích hoạt ngưỡng.
z Nếu cho w
0
= -t, và v
0
=
1, ta có thể viết lại:
⎪
⎪
⎩
⎪
⎪
⎨
⎧
≤−
>+
=
∑
∑
=
=
d
i
ii
d
i
ii
twv
twv
output
1
1
,1
,1
⎪
⎪
⎩
⎪
⎪
⎨
⎧
⎟
⎠
⎞
⎜
⎝
⎛
=
≤−
>+
=
∑
∑
∑
=
=
=
d
i
ii
d
i
ii
d
i
ii
wvsign
wv
wv
output
0
0
0
0,1
0,1
9
Huấn luyện Perceptron (2)
z Khởi tạo:
z Khởi tạo w (0 hoặc ngẫu nhiên)
z Chọn tốc độ học µ
z Học:
z Với mỗi mẫu (x, t) trong tập học
z Tính y = f(x,w)
z Nếu (y != t) thay đổi vectơ trọng số w
w(mới) = w(cũ) + µ(t-y)x
z Lặp lại quá trình « học» cho đến khi « điều kiện
dừng » thỏa mãn
10
Điều kiện dừng
z 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
z Đ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í:
z Lỗi nhỏ đến mức chấp nhận được
z Sau một số bước lặp đủ lớn
z …
11
Khả năng của Perceptron
z 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ính
z Hạn chế của Perceptron:
z Không thể phân lớp phi tuyến
z Ví dụ: bài toán XOR
z Giải pháp:
z Sử dụng mạng nơ-ron nhiều tầng MLP
12
Mạng nơ-ron nhiều tầng (MLP)
13
Mạng nơ-ron nhiều tầng (MLP)
14
Mạng nơ-ron nhiều tầng (MLP)
z input, output và các tầng ẩn (hiden
layers).
z Số lượng các nơ-ron trong tầng input =
số chiều
z Số lượng các nơ-ron trong tầng output
thường = số các lớp
z Thô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)
z 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
15
Huấn luyện MLP
z Là quá trình thay đổi giá trị của w để mạng biểu diễn được tập dữ liệu
học.
z 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 error
z Hà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)
z Quá trình huấn luyện sẽ tìm các w
i
* để lỗi nhỏ nhất.
z 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àng
z Trong 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 ???
16
Một số giải thuật huấn luyện MLP
z Back propagation (khá nổi tiếng, dễ hiểu)
z Conjugate gradient descent & Levenber-
Marquardt (Bishop 1995, Shepherd 1997)
z Quick propagation (Fahlman, 1988)
z Delta-Bar-Delta(Jacob 1988)
17
Giải thuật lan truyền ngược
z Xét một mạng nơ-rơn 3 tầng: input, hiden, output
z Hàm kích hoạt của các nơ-ron: logistic sigmoid
z Giải thuật lan truyền ngược gồm 2 giai đoạn:
z Lan truyền tiến (tính output của các nơ-ron)
z Lan truyền ngược (thay đổi trọng số của các cung, dùng thông tin
gradient của hàm lỗi)
18
Gradient của hàm lỗi (1)
z Nơ-ron tầng output
z Hàm lỗi:
z Đạo hàm riêng của hàm
lỗi theo các trọng số b:
x
k
i
ii
e
xg
bybv
v
g
z
−
=
+
=
+=
=
∑
1
1
)(
)(
1
0
b
v
v
z
z
E
b
E
∂
∂
∂
∂
∂
∂
=
∂
∂
b
1
b
2
b
k
b
0
y
1
y
2
y
k
1
()
2
2
1
)( tzzE −=
Giá trị thật của
mẫu huấn luyện
19
Gradient của hàm lỗi (2)
Ta có: Đặt:
⎩
⎨
⎧
>
=
=
∂
∂
−=
∂
∂
=
∂
∂
−=
∂
∂
0,
0,1
)1(
)(
iy
i
b
v
zz
v
g
v
z
tz
z
E
i
i
)1()( zztz
v
z
z
E
p −−=
∂
∂
∂
∂
=
Ta được:
⎩
⎨
⎧
>
=
=
∂
∂
0
0
ipy
ip
b
E
i
i
20
Gradient của hàm lỗi (3)
z Nơ-ron tầng ẩn
z Đạo hàm riêng của hàm
lỗi theo các trọng số a:
∑
=
+=
=
d
i
ii
axau
ugy
1
0
)(
a
u
u
y
y
E
a
E
∂
∂
∂
∂
∂
∂
=
∂
∂
a
1
a
2
a
d
a
0
x
1
x
2
x
d
1
21
Gradient của hàm lỗi (2)
Đặt:
Ta có:
⎩
⎨
⎧
>
=
=
∂
∂
−=
∂
∂
=
∂
∂
=−−=
∂
∂
∂
∂
∂
∂
∂
∂
∂
∂
=
∂
∂
∑
=
0,
0,1
)1(
)1()(
1
jx
j
a
u
yy
u
y
b
y
v
pzztz
v
z
z
E
y
v
v
z
z
E
y
E
j
j
i
i
iiiii
i
i
i
K
i
i
i
i
i
)1(
1
yybp
u
y
y
E
q
K
i
ii
−
⎟
⎠
⎞
⎜
⎝
⎛
=
∂
∂
∂
∂
=
∑
=
Ta được:
⎩
⎨
⎧
>
=
=
∂
∂
0
0
iqx
iq
a
E
i
i
22
Điều chỉnh trọng số
z 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:
i
ii
w
E
ww
∂
∂
−=
µ
23
Một số vấn đề với mạng nơ-ron
z Vấn đề kiến trúc mạng: nơ-ron nào nên nối với nơ-ron
nào ?
z 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ả:
z 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ày
z Vớ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.
z Chức năng của một nơ-ron không quá đơn giản như mô
hình.
z Mạng no-ron hoạt động như 1 hộp đen
24
Một số hướng dẫn khi sử dụng
mạng nơ-ron
z 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)
z 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ộ
z Nếu máy « không thuộc bài » (under-learning) Îthêm 1
vài nơ-ron cho tầng ẩn
z Ngượ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 ẩn
z Khi đã 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
25
Hướng phát triển
z Tích hợp logic mờ vào mạng nơ-ron
z Mạng nơ-ron xung (pulse neural networks): các
nơ-ron giao tiếp với nhau thông qua các xung
z Sử dụng phần cứng cho mạng