Professional Documents
Culture Documents
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.
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
10
Hàm tác động: Sigmoid
1
Out ( Net) = sf ( Net, a ,q ) =
1 + e -a ( Net +q )
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
12
Hàm tác động: rectified linear unit
(ReLU)
𝑂𝑢𝑡 𝑛𝑒𝑡 = max(0, 𝑛𝑒𝑡)
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
- 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
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
26
Gradient descent: Minh họa
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
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)
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)
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
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
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(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)
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)
f(Net1)
x1 f(Net4)
Out6
f(Net6)
f(Net2)
w 51 d5
w52
x2 f(Net5)
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)
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
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
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!