You are on page 1of 71

1

Nhập môn
Học máy và Khai phá dữ liệu
(IT3190)

2
Nội dung môn học
• Lecture 1: Giới thiệu về Học máy và khai phá dữ liệu
• Lecture 2: Thu thập và tiền xử lý dữ liệu
• Lecture 3: Hồi quy tuyến tính (Linear regression)
• Lecture 4+5: Phân cụm
• Lecture 6: Phân loại và Đánh giá hiệu năng
• Lecture 7: dựa trên láng giềng gần nhất (KNN)
• Lecture 8: Cây quyết định và Rừng ngẫu nhiên
• Lecture 9: Học dựa trên xác suất
• Lecture 10: Mạng nơron (Neural networks)
• Lecture 11: Máy vector hỗ trợ (SVM)
• Lecture 12: Khai phá tập mục thường xuyên và các luật kết hợp
• Lecture 13: Thảo luận ứng dụng học máy và khai phá dữ liệu trong thực tế

3
Mạng nơ-ron nhân tạo: Giới thiệu (1)
n Mạng nơ-ron nhân tạo (Artificial neural network – ANN)
q Mô phỏng các hệ thống nơ-ron sinh học (các bộ não con người)
q ANN là một cấu trúc (structure/network) được tạo nên bởi một số
lượng các nơ-ron (artificial neurons) liên kết với nhau

n Mỗi nơ-ron
q Có một đặc tính vào/ra
q Thực hiện một tính toán cục bộ (một hàm cục bộ)

n Giá trị đầu ra của một nơ-ron được xác định bởi
q Đặc tính vào/ra của nó
q Các liên kết của nó với các nơ-ron khác
q (Có thể) các đầu vào bổ sung

4
Mạng nơ-ron nhân tạo: Giới thiệu (2)
n ANN có thể được xem như một cấu trúc xử lý thông tin một
cách phân tán và song song ở mức cao
n ANN có khả năng học (learn), nhớ lại (recall), và khái quát hóa
(generalize) từ các dữ liệu học
n Khả năng của một ANN phụ thuộc vào
q Kiến trúc (topology) của mạng nơ-ron
q Đặc tính đầu vào/ra của mỗi nơ-ron
q Thuật toán học (huấn luyện)
q Dữ liệu học

5
ANN: a huge breakthrough
n AlphaGo of Google the world champion at Go (cờ vây),
3/2016
q Go is a 2500 year-old game.
q Go is one of the most complex games.

n AlphaGo learns from 30 millions human moves,


and plays itself to find new moves.

n It beat Lee Sedol (World champion)


q http://www.wired.com/2016/03/two-moves-alphago-lee-sedol-
redefined-future/
q http://www.nature.com/news/google-ai-algorithm-masters-ancient-
game-of-go-1.19234

6
Cấu trúc và hoạt động của một nơ-ron
• Các tín hiệu đầu vào (input
signals) của nơ-ron (xi, i=1..m)
x0=1
• Mỗi tín hiệu đầu vào xi gắn với
một trọng số wi x1 w0
• Trọng số điều chỉnh (bias) w0 w1
(với x0=1) x2 Giá trị
w2
• Đầu vào tổng thể (Net input) là … S đầu ra
một hàm tích hợp của các tín wm của
hiệu đầu vào – Net(w,x) xm nơ-ron
• Hàm tác động/truyền (Out)
(Activation/transfer function)
tính giá trị đầu ra của nơ-ron –
f(Net(w,x)) Các tín Đầu vào Hàm tác
• Giá trị đầu ra (Output) của nơ- hiệu đầu tổng thể động
ron: Out=f(Net(w,x)) vào của (Net) (truyền)
nơ-ron
(f)
(x)

7
Đầu vào tổng thể
• Đầu vào tổng thể (net input) thường được tính toán bởi một hàm
tuyến tính
m m
Net = w0 + w1 x1 + w2 x2 + ... + wm xm = w0 .1 + å wi xi = å wi xi
i =1 i =0
• Ý nghĩa của trọng số điều chỉnh (bias) w0
→ Họ các hàm Net=w1x1 không thể phân tách được các ví dụ thành 2
lớp (two classes)
→ Nhưng: họ các hàm Net=w1x1+w0 có thể!

Net Net
Net = w1x1

Net = w1x1 + w0
x1 x1

8
Hàm tác động: Giới hạn cứng
• Còn được gọi là hàm ngưỡng "$ 1, if Net ≥ θ
(threshold function) Out(Net) = HL(Net, θ ) = #
• Giá trị đầu ra lấy một trong 2 giá trị $% 0, otherwise
• q là giá trị ngưỡng
• Nhược điểm: không liên tục, không Out(Net) = HL2(Net, θ ) = sign(Net, θ )
có đạo hàm

Out
Binary
Bipolar
Out
hard-limiter
hard-limiter
1
1

q 0 Net q 0 Net

-1
9
Hàm tác động: Logic ngưỡng
ì
ï 0, if Net < -q
ïï 1
Out ( Net ) = tl ( Net, a , q ) = ía ( Net + q ), if - q £ Net £ - q
ï a
ï 1, if 1
Net > - q
ïî a
(α >0)
= max(0, min(1, a ( Net + q ))) Out

• Còn được gọi là hàm tuyến tính bão


hòa (saturating linear function) 1
• Kết hợp của 2 hàm tác động: tuyến
tính và giới hạn chặt
-q 0 (1/α)-q Net
• α xác định độ dốc của khoảng tuyến
tính
1/α
• Nhược điểm: Liên tục, nhưng không
có đạo hàm

10
Hàm tác động: Sigmoid
1
Out ( Net) = sf ( Net, a ,q ) =
1 + e -a ( Net +q )

• Được dùng phổ biến Out


• Tham số α xác định độ dốc
1
• Giá trị đầu ra trong khoảng (0,1)
• Ưu điểm 0.5
• Liên tục, và đạo hàm liên tục
• Đạo hàm của một hàm sigmoid -q 0 Net
được biểu diễn bằng một hàm của
chính nó

11
Hàm tác động: Hyperbolic tangent
1 - e -a ( Net +q ) 2
Out ( Net) = tanh( Net, a ,q ) = -a ( Net +q )
= -a ( Net +q )
-1
1+ e 1+ e

n Cũng hay được sử dụng Out


n Tham số α xác định độ dốc
n Giá trị đầu ra trong khoảng (-1,1) 1
n Ưu điểm
q Liên tục, và đạo hàm liên tục -q 0 Net
q Đạo hàm của một hàm tanh có thể
-1
được biểu diễn bằng một hàm của
chính nó

12
Hàm tác động: rectified linear unit
(ReLU)
𝑂𝑢𝑡 𝑛𝑒𝑡 = max(0, 𝑛𝑒𝑡)

n Được sử dụng nhiều nhất hiện nay


n Giá trị đầu ra luôn không âm
n Ưu điểm
q Liên tục
q Không có đạo hàm tại điểm 0 duy
nhất.
q Dễ tính toán

13
ANN: Kiến trúc mạng (1)
n Kiến trúc của một ANN được x/đ bởi: bias
q Số lượng các tín hiệu đầu vào và đầu ra input
q Số lượng các tầng

q Số lượng các nơ-ron trong mỗi tầng hidden


q Số lượng các liên kết đối với mỗi nơ-ron layer
q Cách thức các nơ-ron (trong một tầng,
output
hoặc giữa các tầng) liên kết với nhau
layer
n Một ANN phải có output
q Một tầng đầu vào (input layer)
q Một tầng đầu ra (output layer) Ví dụ: Một ANN với một tầng ẩn
q Không, một, hoặc nhiều tầng ẩn (hidden • Đầu vào: 3 tín hiệu
layer(s)) • Đầu ra: 2 giá trị
• Tổng cộng, có 6 neurons
- 4 ở tầng ẩn

- 2 ở tầng đầu ra

14
ANN: Kiến trúc mạng (2)
n Một tầng (layer) chứa một nhóm các nơ-ron
n Tầng ẩn (hidden layer) là một tầng nằm ở giữa tầng đầu
vào (input layer) và tầng đầu ra (output layer)
n Các nút ở tầng ẩn (hidden nodes) không tương tác trực
tiếp với môi trường bên ngoài (của mạng nơ-ron)
n Một ANN được gọi là liên kết đầy đủ (fully connected)
nếu mọi đầu ra từ một tầng liên kết với mọi nơ-ron của
tầng kế tiếp

15
ANN: Kiến trúc mạng (3)
n Một ANN được gọi là mạng lan truyền tiến (feed-
forward network) nếu không có bất kỳ đầu ra của một
nút là đầu vào của một nút khác thuộc cùng tầng (hoặc
thuộc một tầng phía trước)
n Khi các đầu ra của một nút liên kết ngược lại làm các đầu
vào của một nút thuộc cùng tầng (hoặc thuộc một tầng
phía trước), thì đó là một mạng phản hồi (feedback
network)
q Nếu phản hồi là liên kết đầu vào đối với các nút thuộc cùng tầng,
thì đó là phản hồi bên (lateral feedback)

n Các mạng phản hồi có các vòng lặp kín (closed loops)
được gọi là các mạng hồi quy (recurrent networks)

16
ANN: Kiến trúc mạng (4)
Mạng lan Một nơ-ron với
truyền tiến phản hồi đến
một tầng chính nó

Mạng hồi
quy một
tầng

Mạng lan
truyền tiến
nhiều tầng
Mạng hồi
quy nhiều
tầng

17
ANN: cách huấn luyện
• 2 kiểu học trong các mạng nơ-ron nhân tạo
• Học tham số (Parameter learning)
→ Mục tiêu là thay đổi thích nghi các trọng số (weights) của các liên
kết trong mạng nơ-ron
• Học cấu trúc (Structure learning)
→ Mục tiêu là thay đổi thích nghi cấu trúc mạng, bao gồm số lượng
các nơ-ron và các kiểu liên kết giữa chúng

Or

• 2 kiểu học này có thể được thực hiện đồng thời hoặc riêng rẽ
• Trong bài học này, chúng ta sẽ chỉ xét việc học tham số

18
ANN: ý tưởng
n Huấn luyện một mạng nơron (khi cố định kiến trúc) chính là
việc học các trọng số w của mạng từ tập học D.
n Đưa việc học về bài toán cực tiểu hoá một hàm lỗi thực
nghiệm:
!
L w = ∑ 𝑙𝑜𝑠𝑠(𝑑$ , out 𝑥 )
|𝑫| $∈𝑫
q Trong đó out(x) là đầu ra của mạng, với đầu vào x có nhãn tương ứng là
dx; loss là một hàm đo lỗi phán đoán.
n Nhiều phương pháp lặp dựa trên Gradient:
q Backpropagation x0
q SGD x1 w0
w1
q Adam x2
S
w2 Out
q AdaGrad …
wm
xm

19
Perceptron
• Một perceptron là một kiểu
đơn giản nhất của ANNs (chỉ x0=1
gồm duy nhất một nơ-ron)
x1 w0
• Sử dụng hàm tác động giới w1
x2
hạn chặt w2
S
Out

æ m ö
Out = sign(Net( w, x) ) = signç å w j x j ÷÷
ç xm
wm
è j =0 ø
• Đối với một ví dụ x, giá trị
đầu ra của perceptron là
• 1, nếu Net(w,x)>0
• -1, nếu ngược lại

20
Perceptron: Minh họa

Mặt phẳng phân tách

x1 w0+w1x1+w2x2=0

Đầu ra = 1

Đầu ra = -1

x2

21
Perceptron: Giải thuật học
n Với một tập các ví dụ học D= {(x,d)}
q x là vectơ đầu vào
q d là giá trị đầu ra mong muốn (-1 hoặc 1)

n Quá trình học của perceptron nhằm xác định một vectơ trọng
số cho phép perceptron sinh ra giá trị đầu ra chính xác (-1
hoặc 1) cho mỗi ví dụ học
n Với một ví dụ học x được perceptron phân lớp chính xác, thì
vectơ trọng số w không thay đổi
n Nếu d=1 nhưng perceptron lại sinh ra -1 (Out=-1), thì w cần
được thay đổi sao cho giá trị Net(w,x) tăng lên
n Nếu d=-1 nhưng perceptron lại sinh ra 1 (Out=1), thì w cần
được thay đổi sao cho giá trị Net(w,x) giảm đi

22
Perceptron_batch(D, η)
Initialize w (wi ← an initial (small) random value)
do
∆w ← 0
for each training instance (x,d)ÎD
Compute the real output value Out
if (Out¹d)
∆w ← ∆w + η(d-Out)x
end for
w ← w + ∆w
until all the training instances in D are correctly classified
return w

23
23
Perceptron: Giới hạn
• Giải thuật học cho perceptron được chứng
minh là hội tụ (converge) nếu:
Một perceptron không
• Các ví dụ học là có thể phân tách tuyến tính thể phân lớp chính xác
(linearly separable) đối với tập học này!
• Sử dụng một tốc độ học η đủ nhỏ
• Giải thuật học perceptron có thể không hội tụ
nếu như các ví dụ học không thể phân tách
tuyến tính (not linearly separable)

24
Hàm đánh giá lỗi (Loss function)
n Xét một ANN có n nơ-ron đầu ra
n Đối với một ví dụ học (x,d), giá trị lỗi học (training error)
gây ra bởi vectơ trọng số (hiện tại) w:
n 2
1
Ex (w ) = å (d i - Out i )
2 i =1
n Lỗi học gây ra bởi vectơ trọng số (hiện tại) w đối với
toàn bộ tập học D:
1
ED ( w ) =
D
å E (w)
xÎD
x

25
Tối thiểu hoá lỗi với Gradient
n Gradient của E (ký hiệu là ÑE) là một vectơ
æ ¶E ¶E ¶E ö
ç
ÑE (w) = ç , ,..., ÷÷
è ¶w1 ¶w2 ¶wN ø
q trong đó N là tổng số các trọng số (các liên kết) trong mạng

n Gradient ÑE xác định hướng gây ra việc tăng nhanh nhất (steepest
increase) đối với giá trị lỗi E

n Vì vậy, hướng gây ra việc giảm nhanh nhất (steepest decrease) là


hướng ngược với gradient của E
¶E
Dw = -h.ÑE(w); Dwi = -h , "i = 1..N
¶wi
n Yêu cầu: Các hàm tác động được sử dụng trong mạng phải có đạo
hàm liên tục

26
Gradient descent: Minh họa

Không gian một chiều Không gian 2 chiều


E(w) E(w1,w2)

27
Gradient_descent_incremental (D, η)
Initialize w (wi ← an initial (small) random value)
do
for each training instance (x,d)ÎD
Compute the network output
If we take a small subset
for each weight component wi (mini-batch) randomly
from D to update the
wi ← wi – η(∂Ex/∂wi)
weights, we will have
end for mini-batch training.
end for
until (stopping criterion satisfied)
return w

Stopping criterion: Số chu kỳ học (epochs), Ngưỡng lỗi, ...

28
28
ANN nhiều tầng và giải thuật lan truyền ngược

n Một perceptron chỉ có thể biểu diễn một hàm phân tách tuyến tính
(linear separation function)
n Một mạng nơ-ron nhiều tầng (multi-layer NN) được học bởi giải thuật
lan truyền ngược (Back Propagation - BP) có thể biểu diễn một hàm
phân tách phi tuyến phức tạp (highly non-linear separation function)
n Giải thuật học BP được sử dụng để học các trọng số của một mạng
nơ-ron nhiều tầng
q Cấu trúc mạng cố định (các nơ-ron và các liên kết giữa chúng là cố định)
q Đối với mỗi nơ-ron, hàm tác động phải có đạo hàm liên tục
n Giải thuật BP áp dụng chiến lược gradient descent trong quy tắc cập
nhật các trọng số
q Để cực tiểu hóa lỗi (khác biệt) giữa các giá trị đầu ra thực tế và các giá trị
đầu ra mong muốn, đối với các ví dụ học

29
Giải thuật học lan truyền ngược (1)
n Giải thuật học lan truyền ngược tìm kiếm một vectơ các trọng
số (weights vector) giúp cực tiểu hóa lỗi tổng thể của hệ
thống đối với tập học
n Giải thuật BP bao gồm 2 giai đoạn (bước)
q Giai đoạn lan truyền tiến tín hiệu (Signal forward). Các tín hiệu
đầu vào (vectơ các giá trị đầu vào) được lan truyền tiến từ tầng
đầu vào đến tầng đầu ra (đi qua các tầng ẩn)
q Giai đoạn lan truyền ngược lỗi (Error backward)
n Căn cứ vào giá trị đầu ra mong muốn của vectơ đầu vào, hệ thống tính
toán giá trị lỗi
n Bắt đầu từ tầng đầu ra, giá trị lỗi được lan truyền ngược qua mạng, từ
tầng này qua tầng khác (phía trước), cho đến tầng đầu vào
n Việc lan truyền ngược lỗi (error back-propagation) được thực hiện
thông qua việc tính toán (một cách truy hồi) giá trị gradient cục bộ của
mỗi nơ-ron

30
Giải thuật học lan truyền ngược (2)

Giai đoạn lan truyền tiến


tín hiệu:
• Kích hoạt (truyền tín hiệu
qua) mạng

Giai đoạn lan truyền


ngược lỗi:
•Tính toán lỗi ở đầu ra
•Lan truyền (ngược) lỗi

31
Giải thuật BP: Cấu trúc mạng
• Xét mạng nơ-ron 3 tầng (trong
hình vẽ) để minh họa giải thuật
học BP Input xj x1 ... xj ... xm
(j=1..m)
• m tín hiệu đầu vào xj (j=1..m)
wqj
• l nơ-ron tầng ẩn zq (q=1..l)
• n nơ-ron đầu ra yi (i=1..n) Hidden
neuron zq ... ...
Outq
• wqj là trọng số của liên kết từ tín
(q=1..l)
hiệu đầu vào xj tới nơ-ron tầng ẩn wiq
zq
• wiq là trọng số của liên kết từ nơ- Output ... ...
ron tầng ẩn zq tới nơ-ron đầu ra yi neuron yi
• Outq là giá trị đầu ra (cục bộ) của (i=1..n) Outi
nơ-ron tầng ẩn zq
• Outi là giá trị đầu ra của mạng
tương ứng với nơ-ron đầu ra yi

32
Giải thuật BP: Lan truyền tiến (1)
n Đối với mỗi ví dụ học x
q Vectơ đầu vào x được lan truyền từ tầng đầu vào đến tầng đầu ra
q Mạng sẽ sinh ra một giá trị đầu ra thực tế (actual output) Out (là
một vectơ của các giá trị Outi, i=1..n)

n Đối với một vectơ đầu vào x, một nơ-ron zq ở tầng ẩn sẽ


nhận được giá trị đầu vào tổng thể (net input) bằng:
m
Netq = å wqj x j
j =1
…và sinh ra một giá trị đầu ra (cục bộ) bằng:
æ m ö
Out q = f ( Netq ) = f ç å wqj x j ÷÷
ç
è j =1 ø
trong đó f(.) là hàm tác động (activation function) của nơ-ron zq

33
Giải thuật BP: Lan truyền tiến (2)
n Giá trị đầu vào tổng thể (net input) của nơ-ron yi ở tầng
đầu ra
l l æ m ö
Neti = å wiqOut q = å wiq f çç å wqj x j ÷÷
q =1 q =1 è j =1 ø
n Nơ-ron yi sinh ra giá trị đầu ra (là một giá trị đầu ra của
mạng)
æ l ö æ l æ m öö
Outi = f ( Neti ) = f ç å wiqOutq ÷÷ =
ç f ç å wiq f çç å wqj x j ÷÷ ÷
ç q =1 ÷
è q =1 ø è è j =1 øø
n Vectơ các giá trị đầu ra Outi (i=1..n) chính là giá trị đầu ra
thực tế của mạng, đối với vectơ đầu vào x

34
Giải thuật BP: Lan truyền ngược (1)
n Đối với mỗi ví dụ học x
q Các tín hiệu lỗi (error signals) do sự khác biết giữa giá trị đầu ra
mong muốn d và giá trị đầu ra thực tế Out được tính toán
q Các tín hiệu lỗi này được lan truyền ngược (back-propagated) từ
tầng đầu ra tới các tầng phía trước, để cập nhật các trọng số
(weights)

n Để xét các tín hiệu lỗi và việc lan truyền ngược của
chúng, cần định nghĩa một hàm lỗi
1 n 1 n
E (w) = å (d i - Out i ) = å [d i - f ( Net i )]
2 2

2 i =1 2 i =1
2
1 é n æl öù
= å êd i - f çç å wiqOut q ÷÷ú
2 i =1 êë è q =1 øúû

35
Giải thuật BP: Lan truyền ngược (2)
n Theo phương pháp gradient-descent, các trọng số của các liên
kết từ tầng ẩn tới tầng đầu ra được cập nhật bởi
¶E
Dwiq = -h
¶wiq
n Sử dụng quy tắc chuỗi đạo hàm đối với ¶E/¶wiq, ta có

é ¶E ù é ¶Outi ù é ¶Neti ù
Dwiq = -h ê úê úê ú = h [di - Outi ][ f ' (Neti )][Outq ] = hd i Outq
ë ¶Outi û ë ¶Neti û êë ¶wiq úû
(Lưu ý: dấu “–” đã được kết hợp với giá trị ¶E/¶Outi)
n di là tín hiệu lỗi (error signal) của nơ-ron yi ở tầng đầu ra
¶E é ¶E ù é ¶Outi ù
di = - = -ê úê ú = [di - Outi ][ f ' (Neti )]
¶Neti ë ¶Outi û ë ¶Neti û
trong đó Neti là đầu vào tổng thể (net input) của nơ-ron yi ở tầng
đầu ra, và f'(Neti)=¶f(Neti)/¶Neti
36
Giải thuật BP: Lan truyền ngược (3)

n Để cập nhật các trọng số của các liên kết từ tầng đầu
vào tới tầng ẩn, chúng ta cũng áp dụng phương pháp
gradient-descent và quy tắc chuỗi đạo hàm

¶E é ¶E ù é ¶Outq ù é ¶Netq ù
Dwqj = -h = -h ê úê úê ú
¶wqj êë ¶Outqú
û êë ¶Net q ú
û êë ¶wqj ú
û
n Từ công thức tính hàm lỗi E(w), ta thấy rằng mỗi thành
phần lỗi (di-yi) (i=1..n) là một hàm của Outq
2
1 é n æl öù
E (w) = å êdi - f çç å wiqOut q ÷÷ú
2 i =1 êë è q =1 øúû

37
Giải thuật BP: Lan truyền ngược (4)
n Áp dụng quy tắc chuỗi đạo hàm, ta có

[ ]
Dwqj = h å (d i - Out i ) f ' ( Net i ) wiq f ' (Net q ) x j
n

i =1

[ ]
= h å d i wiq f ' (Net q ) x j = hd q x j
n

i =1

n dq là tín hiệu lỗi (error signal) của nơ-ron zq ở tầng ẩn


¶E é ¶E ù é ¶Outq ù
ú = f ' (Netq )å d i wiq
n
dq = - = -ê úê
¶Netq êë ¶Outq úû êë ¶Netq úû i =1

trong đó Netq là đầu vào tổng thể (net input) của nơ-ron zq ở tầng
ẩn, và f'(Netq)=¶f(Netq)/¶Netq

38
Giải thuật BP: Lan truyền ngược (5)
n Theo các công thức tính các tín hiệu lỗi di và dq đã nêu, thì tín
hiệu lỗi của một nơ-ron ở tầng ẩn khác với tín hiệu lỗi của một
nơ-ron ở tầng đầu ra
n Do sự khác biệt này, thủ tục cập nhật trọng số trong giải thuật
BP còn được gọi là quy tắc học delta tổng quát
n Tín hiệu lỗi dq của nơ-ron zq ở tầng ẩn được xác định bởi
q Các tín hiệu lỗi di của các nơ-ron yi ở tầng đầu ra (mà nơ-ron zq
liên kết tới), và
q Các hệ số chính là các trọng số wiq

39
Giải thuật BP: Lan truyền ngược (6)
n Quá trình tính toán tín hiệu lỗi (error signals) như trên có
thể được mở rộng (khái quát) dễ dàng đối với mạng nơ-
ron có nhiều hơn 1 tầng ẩn

n Dạng tổng quát của quy tắc cập nhật trọng số trong giải
thuật BP là:
Dwab = hdaxb
q b và a là 2 chỉ số tương ứng với 2 đầu của liên kết (b→a) (từ một
nơ-ron (hoặc tín hiệu đầu vào) b đến nơ-ron a)
q xb là giá trị đầu ra của nơ-ron ở tầng ẩn (hoặc tín hiệu đầu vào) b
q da là tín hiệu lỗi của nơ-ron a

40
Back_propagation_incremental(D, η)
Mạng nơ-ron gồm Q tầng, q = 1,2,...,Q
qNet và qOuti là đầu vào tổng thể (net input) và giá trị đầu ra của nơ-ron i ở tầng q
i

Mạng có m tín hiệu đầu vào và n nơ-ron đầu ra


qw là trọng số của liên kết từ nơ-ron j ở tầng (q-1) đến nơ-ron i ở tầng q
ij

Bước 0 (Khởi tạo)


Chọn ngưỡng lỗi Ethreshold (giá trị lỗi có thể chấp nhận được)
Khởi tạo giá trị ban đầu của các trọng số với các giá trị nhỏ ngẫu nhiên
Gán E=0
Bước 1 (Bắt đầu một chu kỳ học)
Áp dụng vectơ đầu vào của ví dụ học k đối với tầng đầu vào (q=1)
qOut
i = 1Outi = xi(k), "i
Bước 2 (Lan truyền tiến)
Lan truyền tiến các tín hiệu đầu vào qua mạng, cho đến khi nhận được các giá
trị đầu ra của mạng (ở tầng đầu ra) QOuti
æ q q -1 ö
q
Out i = f ( q
)
Neti = f çç å wij Out j ÷÷
è j ø

41
Bước 3 (Tính toán lỗi đầu ra)
Tính toán lỗi đầu ra của mạng và tín hiệu lỗi Qdi của mỗi nơ-ron ở tầng đầu ra
1 n
E = E + å (d i( k ) - QOut i ) 2
2 i =1
Q
δi = (d i(k) - QOut i )f '( QNet i )
Bước 4 (Lan truyền ngược lỗi)
Lan truyền ngược lỗi để cập nhật các trọng số và tính toán các tín hiệu lỗi q-1di
cho các tầng phía trước
Dqwij = h.(qdi).(q-1Outj); qw
ij = qwij + Dqwij
δi = f '( q -1Neti )å q w ji q δ j ; for all q = Q, Q - 1,...,2
q -1

j
Bước 5 (Kiểm tra kết thúc một chu kỳ học – epoch)
Kiểm tra xem toàn bộ tập học đã được sử dụng (đã xong một chu kỳ học – epoch)
Nếu toàn bộ tập học đã được dùng, chuyển đến Bước 6; ngược lại, chuyển đến Bước 1
Bước 6 (Kiểm tra lỗi tổng thể)
Nếu lỗi tổng thể E nhỏ hơn ngưỡng lỗi chấp nhận được (<Ethreshold), thì quá trình học kết
thúc và trả về các trọng số học được;
Ngược lại, gán lại E=0, và bắt đầu một chu kỳ học mới (quay về Bước 1)

42
Giải thuật BP: Lan truyền tiến (1)

f(Net1)

x1 f(Net4)

Out6
f(Net6)
f(Net2)

x2 f(Net5)

f(Net3)

43
Giải thuật BP: Lan truyền tiến (2)

f(Net1)
w1x1 x1
x1 w1x2 x2 f(Net4)

Out6
f(Net6)
f(Net2)

x2 f(Net5)

f(Net3)
Out1 = f ( w1x1 x1 + w1x2 x2 )

44
Giải thuật BP: Lan truyền tiến (3)

f(Net1)

x1 f(Net4)
w2 x1 x1
Out6
f(Net6)
f(Net2)

w2 x2 x2
x2 f(Net5)

f(Net3)
Out 2 = f ( w2 x1 x1 + w2 x2 x2 )

45
Giải thuật BP: Lan truyền tiến (4)

f(Net1)

x1 f(Net4)

Out6
f(Net6)
f(Net2)

x2 w3 x1 x1 f(Net5)

w3 x2 x2 f(Net3)
Out 3 = f ( w3 x1 x1 + w3 x2 x2 )

46
Giải thuật BP: Lan truyền tiến (5)

f(Net1)
w41Out1
x1 f(Net4)
w42Out2
Out6
f(Net2)
w43Out 3 f(Net6)

x2 f(Net5)

f(Net3)
Out 4 = f ( w41Out1 + w42Out 2 + w43Out3 )

47
Giải thuật BP: Lan truyền tiến (6)

f(Net1)

x1 w51Out1 f(Net4)

Out6
f(Net6)
f(Net2)
w52Out 2
x2 f(Net5)

w53Out 3
f(Net3)
Out5 = f (w51Out1 + w52Out 2 + w53Out3 )

48
Giải thuật BP: Lan truyền tiến (7)

f(Net1)

x1 f(Net4)
w 64Out 4
Out6
f(Net6)
f(Net2)

w65Out 5
x2 f(Net5)

f(Net3)
Out 6 = f (w64Out 4 + w65Out5 )
49
Giải thuật BP: Tính toán lỗi

f(Net1)

x1 f(Net4)
d6
Out6
f(Net6)
f(Net2)

x2 f(Net5)
d is the desired
output value
f(Net3) é ¶E ù é ¶Out 6 ù
¶E
d6 = - = -ê úê ú = [d - Out 6 ] [ f ' (Net6 )]
¶Net6 ë ¶Out 6 û ë ¶Net6 û

50
Giải thuật BP: Lan truyền ngược (1)

f(Net1)
d4
x1 f(Net4)
w64 d6
Out6
f(Net6)
f(Net2)

x2 f(Net5)

f(Net3)
δ4 = f ' (Net4 )(w64δ6 )
51
Giải thuật BP: Lan truyền ngược (2)

f(Net1)

x1 f(Net4)
d6
Out6
f(Net6)
f(Net2)
d5
w65
x2 f(Net5)

f(Net3)
δ5 = f '(Net5 )(w65δ6 )

52
Giải thuật BP: Lan truyền ngược (3)
d1
f(Net1)
w41 d4
x1 w51 f(Net4)

Out6
f(Net6)
f(Net2)
d5
x2 f(Net5)

f(Net3) δ1 = f '(Net1 )(w41δ4 + w51δ5 )


53
Giải thuật BP: Lan truyền ngược (4)

f(Net1)
d4
x1 w42 f(Net4)
d2
Out6
f(Net6)
f(Net2) w52 d5
x2 f(Net5)

f(Net3)
δ2 = f '(Net2 )(w42δ4 + w52δ5 )

54
Giải thuật BP: Lan truyền ngược (5)

f(Net1)
d4
x1 f(Net4)

Out6
f(Net6)
f(Net2) w43
d5
x2 w53 f(Net5)
d3
f(Net3)
δ3 = f '(Net3 )(w43δ4 + w53δ5 )

55
Giải thuật BP: Cập nhật trọng số (1)
d1
w1x1 f(Net1)

x1 w1x2 f(Net4)

Out6
f(Net6)
f(Net2)

x2 f(Net5)

w1x1 = w1x1 + hd1 x1


f(Net3)
w1x2 = w1x2 + hd1 x2
56
Giải thuật BP: Cập nhật trọng số (2)

f(Net1)

x1 f(Net4)

w2 x1 d2 Out6
f(Net6)
f(Net2)

w2 x2
x2 f(Net5)

w2 x1 = w2 x1 + hd 2 x1
f(Net3)
w2 x2 = w2 x2 + hd 2 x2
57
Giải thuật BP: Cập nhật trọng số (3)

f(Net1)

x1 f(Net4)

Out6
f(Net6)
f(Net2)

x2 w3x1
d3
f(Net5)

w3 x2
f(Net3)
w3 x1 = w3 x1 + hd 3 x1
w3 x2 = w3 x2 + hd 3 x2
58
Giải thuật BP: Cập nhật trọng số (4)

f(Net1)
w41 d4
x1 w42 f(Net4)

Out6
f(Net2)
w43 f(Net6)

x2 f(Net5)

w41 = w41 + hd 4Out1


f(Net3) w42 = w42 + hd 4Out 2
w43 = w43 + hd 4Out 3
59
Giải thuật BP: Cập nhật trọng số (5)

f(Net1)

x1 f(Net4)

Out6
f(Net6)
f(Net2)
w 51 d5
w52
x2 f(Net5)

w53 w51 = w51 + hd 5Out1


f(Net3) w52 = w52 + hd 5Out 2
w53 = w53 + hd 5Out3
60
Giải thuật BP: Cập nhật trọng số (6)

f(Net1)

x1 f(Net4)
w64 d6
Out6
f(Net6)
f(Net2)

w65
x2 f(Net5)

f(Net3)
w64 = w64 + ηδ6Out 4
w65 = w65 + ηδ6Out5
61
BP: Khởi tạo giá trị của các trọng số
n Thông thường, các trọng số được khởi tạo với các giá trị nhỏ
ngẫu nhiên
n Nếu các trọng số có các giá trị ban đầu lớn
q Các hàm sigmoid sẽ đạt trạng thái bão hòa sớm
q Hệ thống sẽ tắc ở một điểm yên ngựa (saddle/stationary points)

62
BP: Tốc độ học (Learning rate)
n Ảnh hưởng quan trọng đến hiệu quả và khả năng hội tụ của giải thuật học
BP
q Một giá trị h lớn có thể đẩy nhanh sự hội tụ của quá trình học, nhưng có
thể làm cho hệ thống bỏ qua điểm tối ưu toàn cục hoặc hội tụ vào điểm
không tốt (saddle points)
q Một giá trị h nhỏ có thể làm cho quá trình học kéo dài rất lâu

n Thường được chọn theo thực nghiệm (experimentally) đối với mỗi bài toán
n Các giá trị tốt của tốc độ học ở lúc bắt đầu (quá trình học) có thể không tốt ở
một thời điểm sau đấy
q Sử dụng một tốc độ học thích nghi (động)?

63
BP: Momentum
• Phương pháp Gradient descent có thể
rất chậm nếu h nhỏ, và có thể dao aDw(t’)
-hÑE(t’+1)

động mạnh nếu h quá lớn -hÑE(t’+1) + aDw(t’) Dw(t’)


B
A’ Dw(t)
• Để giảm mức độ dao động, cần đưa A

vào một thành phần momentum


Dw(t) = -hÑE(t) + aDw(t-1)
trong đó a (Î[0,1]) là một tham số -hÑE(t+1)
B’
momentum (thường lấy =0.9) aDw(t)
-hÑE(t+1) + aDw(t)

• Dựa trên các kinh nghiệm, ta nên chọn


Gradient descent đối với một hàm lỗi
các giá trị hợp lý cho tốc độ học và bậc 2 đơn giản.
momentum thoả mãn Quỹ đạo bên trái không sử dụng
momentum.
(h + a) ≳ 1
Quỹ đạo bên phải có sử dụng
trong đó a > h để tránh dao động momentum.

64
BP: Số lượng các nơ-ron ở tầng ẩn
n Kích thước (số nơ-ron) của tầng ẩn là một câu hỏi quan trọng
đối với việc áp dụng các mạng nơ-ron lan truyền tiến nhiều tầng
để giải quyết các bài toán thực tế
n Trong thực tế, rất khó để xác định chính xác số lượng các nơ-
ron cần thiết để đạt được một độ chính xác mong muốn của hệ
thống
n Kích thước của tầng ẩn thường được xác định qua thí nghiệm
(experiment/trial and test)

65
ANN: Giới hạn học

• Các hàm nhị phân (Boolean functions)


• Bất kỳ hàm nhị phân nào cũng có thể học được (xấp xỉ tốt) bởi một ANN
sử dụng 1 tầng ẩn

• Các hàm liên tục (Continuous functions)


• Bất kỳ một hàm liên tục bị giới hạn (bounded continuous function) nào
cũng có thể học được (xấp xỉ) bởi một ANN sử dụng 1 tầng ẩn [Cybenko,
1989; Hornik et al., 1991]

66
ANN: Ưu điểm, Nhược điểm
• Các ưu điểm
• Bản chất (về cấu trúc) hỗ trợ tính toán song song ở mức cao
• Đạt độ chính xác cao trong nhiều bài toán (ảnh, video, âm thanh, văn
bản)
• Rất linh động trong kiến trúc mạng

• Các nhược điểm


• Không có quy tắc tổng quát để xác định cấu trúc mạng và các tham số
học tối ưu cho một (lớp) bài toán nhất định
• Không có phương pháp tổng quát để đánh giá hoạt động bên trong của
ANN (vì vậy, hệ thống ANN bị xem như một “hộp đen”)
• Rất khó (không thể) đưa ra giải thích cho người dùng
• Lý thuyết nền tảng còn ít, để giúp giải thích được những thành công
trong thực tế

67
ANN: Khi nào?
• Dạng của hàm học không xác định được trước
• Không cần thiết (hoặc không quan trọng) phải đưa ra giải thích
cho người dùng đối với các kết quả
• Chấp nhận thời gian (khá) lâu cho quá trình huấn luyện
• Có thể thu thập một lượng lớn các nhãn cho dữ liệu.
• Các miền liên quan đến: image, video, speech, text

68
Thư viện mở

69
Tài liệu tham khảo
• Cybenko, G. (1989) "Approximations by superpositions of sigmoidal functions",
Mathematics of Control, Signals, and Systems, 2 (4), 303-314
• Kurt Hornik (1991) "Approximation Capabilities of Multilayer Feedforward Networks",
Neural Networks, 4(2), 251–257

70
Thank you
for your
attentions!

You might also like