Download as pdf or txt
Download as pdf or txt
You are on page 1of 23

Chương 4.

Mạng Neuron
• Mô hình hóa thống kê truyền thống và mạng neuron là các lĩnh
vực có liên quan mật thiết với nhau
• Khác biệt chính:
• Thống kê truyền thống: tập trung vào các bài toán tuyến tính
• Mạng neuron: Tập trung vào bài toán phi tuyến
• Phần giao nhau giữa 2 lĩnh vực này là kỹ thuật lan truyền
ngược
• Lan truyền ngược là kỹ thuật trọng tâm của mạng neuron, nhưng thực
chất nó lại là một công cụ mô hình hóa thống kê
Mô hình hóa thống kê
• Xét bài toán ”Buổi tiệc thường niên của CLB”
• Đầu vào: Các người tham gia báo trước với CLB trước 1 thời gian
• Đầu ra: Dự đoán số người thực sự đến dựa trên cơ sở số người báo trước
• Giải pháp: Xét mối liên hệ thống kê khoảng 10 năm: số người đến=0.85*Số
người báo trước
• Tập mẫu: Dữ liệu của các buổi tiệc thống kê trong 10 năm
• Biến độc lập: số người báo trước
• Biến phụ thuộc: Số người đến
• Phương trình hồi quy tuyến tính của thống kê:
Y=a0+∑Ii=1aixi
• Biến phụ thuộc: y
• I là số các biến độc lập xi
• a0 ,…, ai là các tham số được xác định bằng phương pháp hồi quy
• Với bài toán trên có PT Tuyến tính là: y=0.85x => Hàm ánh xạ có dạng đường thẳng
Mô hình hóa thống kê
• Nếu bài toán có 2 biến độc lập và 1 biến phụ thuộc => PT hồi
quy sẽ xác định 1 mặt phẳng trong không gian 3 chiều
• Bài toán n biến độc lập => không gian n+1 chiều => xác định
biến phụ thuộc
• Do biến phụ thuộc xác định qua biến độc lập qua thống
kê=> có sai số
• Cách tính sai số: Trung bình bình phương của các độ lệch
E=(1/2∑n=1N (yn-tn)2)/N
• E: Sai số, N: Số mẫu trong tập mẫu, yn,tn là giá trị thực và giá trị đích mẫu
thứ n
Mô hình hóa thống kê
• Nguyên nhân gây sai số:
Số người đến dự

• Nhiễu: Dữ liệu thu thập không chính


xác hoặc dữ liệu không đầy đủ
SS bình phương
• Ánh xạ không cùng dạng với hàm đích:
ánh xạ không phải chính xác như mong
Y=0.85x muốn => Hàm đích có dạng không
tuyến tính (Phi tuyến)
Số người báo trước
Số người đến dự

Hàm ánh xạ

Hàm đích

Số người báo trước


Lan truyền ngược
• Mạng lan truyền là 1 hàm phi tuyến có thể xấp
xỉ gần đúng nhất một hàm đích được cho qua
một số mẫu trong tập mẫu
• Hình minh họa một mạng lan truyền:
• Hoạt động:
• Mỗi nút trong lớp nhập nhận giá trị của 1 biến
độc lập và chuyển vào mạng, dữ liệu từ tất cả
các nút trong lớp nhập được tích hợp – ta gọi
là tổng trọng hóa – và chuyển kết quả cho các
Lớp vào Lớp ẩn Lớp ra
nút trong lớp ẩn
(Input) (Hiden) (Output) • Các nút trong lớp xuất cũng như lớp nhập, các
tín hiệu tổng trọng hóa từ các nút ẩn
• Mỗi nút trong lớp xuất tương ứng với 1 biến
phụ thuộc
Lan truyền ngược
• Mạng lan truyền tổng quát là một mạng có n (n>2) lớp: lớp
thứ nhất là lớp nhập, lớp thứ n là lớp xuất, và n-2 lớp ẩn
• Số nút của lớp nhập và lớp xuất do bài toán quy định
• Số nút của lớp ẩn do người thiết kế mạng quy định
• Mỗi nút của lớp thứ i liên kết với mọi nút ở lớp thứ i+1, các
nút trong cùng lớp không liên kết với nhau Lớp Lớp L
vào ẩn (
• Mỗi cung của mạng được gắn một trọng số w Є R (Inp (Hid
ut) en)
• Mạng lan truyền chỉ có thể ở 1 trong 2 trạng thái: trạng thái
ánh xạ và trạng thái học
Lan truyền ngược
• Trạng thái ánh xạ:
• Thông tin lan truyền từ lớp nhập đến lớp xuất và mạng thực
hiện ánh xạ để tính giá trị của các biến phụ thuộc dựa vào các
giá trị biến độc lập được cho: Y=NN(X). Trong trạng thái học,
thông tin lan truyền theo 2 chiều nhiều lần để học các trọng
số
• Mạng xử lý mỗi lần 1 mẫu để tính Y=NN(X) = f(x) – hàm truyền
Lan truyền ngược
• Trước tiên, giá trị của các biến độc lập được chuyển cho lớp
nhập của mạng.
• Các nút nhập không tính toán gì cả. Mỗi nút nhập chuyển giá
trị của nó cho tất cả các nút ẩn
• Mỗi nút ẩn tính tổng trọng hóa của tất cả các dữ liệu nhập
bằng cách cộng dồn tất cả các tích giữa giá trị nút ẩn với
trọng số của cung liên kết giữa nút nhập và nút ẩn.
• Tiếp theo, một hàm truyền được áp dụng trên tổng trọng hóa
này cùng với một ngưỡng của nút ẩn đó để cho ra giá trị thực
của nút ẩn
• Hàm truyền chỉ đơn giản nén giá trị vào 1 miền gới hạn nào
đó, như minh họa trong hình sau:
Lan truyền ngược
• Sau khi nén tổng trọng hóa của nó,
đến lượt mình, mỗi nút ẩn sẽ gửi kết
quả đến tất cả các nút xuất
• Mỗi nút xuất thực hiện các thao tác
tương tự như đã thực hiện trong nút
ẩn để cho giá trị kết xuất của nút xuất.
• Giá trị của các nút xuất chính là giá trị
Đồ thị hàm truyền thực, tức là giá trị các biến phụ thuộc
cần xác định
Lan truyền ngược
• Bản chất ánh xạ do mạng thực hiện tùy thuộc vào giá trị các
trọng số trong mạng.
• Lan truyền ngược là 1 phương pháp cho phép xác định tập
trọng số tốt nhất của mạng giải một bài toán được cho.
• Việc áp dụng phương pháp lan truyền ngược là 1 quá trình lặp
đi lặp lại nhiều lần 2 tiến trình chính: ánh xạ và lan truyền
ngược sai số
• Hai tiến trình này được áp dụng trên 1 tập mẫu xác định
• Ta gọi tiến trình này là luyện mạng hay gọi là học
Lan truyền ngược
• Quá trình luyện mạng được bắt đầu với các giá trị trọng số tùy
ý – có thể là các số ngẫu nhiên – và tiến hành lặp đi lặp lại, mỗi
lần lặp được gọi là 1 thế hệ.
• Trong mỗi thế hệ, mạng hiệu chỉnh các trọng số sao cho sai số
giảm dần (sai số là độ lệch giữa các kết xuất thực và các kết
xuất đích).
• Tiến trình điều chỉnh nhiều lần giúp cho trọng số dần dần đạt
được tập hợp các giá trị tối ưu
• Thông thường mạng cần thực hiện nhiều thế hệ trước khi việc
luyện mạng hoàn tất
Lan truyền ngược
• Để cập nhật trọng số trong mỗi thế hệ, mạng phải xử lý tất cả
mẫu trong tập mẫu. Đối với từng mẫu, mạng phải thực hiện
phép toán sau đây:
• Trước tiên, mạng thực hiện quá trình lan truyền tiến, nghĩa là mạng
ánh xạ các biến nhập của mẫu hiện hành thành các giá trị xuất, như đã
trình bày ở trên, sử dụng các giá trị của các trọng hiện hành. Ở các thế
hệ đầu, các kết xuất thường chưa chính xác vì các trọng ban đầu cũng
chưa chuẩn.
• Tiếp theo, sai số được tính dựa trên giá trị của kết xuấtvà giá trị đích.
Trên cơ sở sai số tính toán được, mạng sẽ cập nhật các trọng số theo
nguyên tắc lan truyền ngược sai số - gọi là quá trình lan truyền ngược
Lan truyền ngược
• Kỹ thuật cơ bản trong lan truyền ngược là cập nhật trọng số
theo hướng giảm gradient – một hình thức leo đồi với thông
tin hướng dẫn là đạo hàm bậc nhất
• Giảm gradient cũng là kỹ thuật phổ biến trong thống kê học, và
lan truyền ngược có thể được xem như một phương pháp mô
hình hóa thống kê
• Ánh xạ được thực hiện trong giai đoạn lan truyền tiến. Trong
gia đoạn này, mạng tính giá trị các biến phụ thuộc – là các nút
xuất của mạng – dựa trên giá trị các biến độc lập là các nút
nhập của mạng
• Các trọng của mạng là các hệ số của mô hình
Lan truyền ngược
• Phương pháp giảm gradient được dùng để cập nhật những hệ số này sao
cho giảm thiểu sai số của mô hình
• Sai số được đo bằng phương pháp sai số trung bình bình phương
• Thuật toán có thể được biểu diễn như sau:
DO
FOR n=1 TO examples //Duyệt qua toàn bộ mẫu
GOSUB forward //Lan truyền tiến
GOSUB back //Tính sai số và lan truyền ngược sai số
NEXT n
GOSUB changeWeights //Cập nhật các trọng số
LOOP
• Chương trình là 1 vòng lặp vô hạn => phải có điều kiện dừng?
mạng Neural (tt)
Mạng lan truyền ngược (back propagation)
input Hidden output
Xi Oj
Wih h Whj O
.
. . OT – O
. . .
. .
.
o = o(1-o)(T-o) , trong đó: o-giá trị đầu ra tính toán, T-giá trị
mong muốn
Whj = Whj + *oj*oj, Whj – Trọng số mới,  - Hệ số học,
oj-Sai số bước ra oj
Wih = Wih +  * o* Wh*oh*(1-oh)*xi
Bài tập
1. Suppose we want to classify potential bank customers as good creditors or bad
creditors for loan applications.
 We have a training dataset describing past customers using the following attributes:
• Marital status {married, single, divorced}
• Gender {male, female},
• Age {[18..30[, [30..50[, [50..65[, [65+]}
• Income {[10K..25K[, [25K..50K[, [50K..65K[, [65K..100K], [100K+]}.
• Design a neural network that could be trained to predict the credit rating of an
applicant.
Bài giải
• We have 2 classes, good creditor and bad creditor. This means we would
need two nodes in the output layer.
• There are 4 variables: Marital Status, Gender, Age and Income. However,
since we have 3 values for Marital status, 2 values for Gender, 4 intervals for
Age and 5 intervals for Income, we would have 14 neuron units in the input
layer.
• In the hidden layer we can have (14+2)/2=8 neurons.
• The architecture of the neural networks could look like this.
Bài 2
• Given the following neural network with initialized
weights as in the picture, explain the network
architecture knowing that we are trying to
distinguish between nails and screws and an
example of training tupples is as follows:
• T1{0.6, 0.1, nail}
• T2{0.2, 0.3, screw}
• Let the learning rate be 0.1 and the weights be as
indicated in the figure above. Do the forward
propagation of the signals in the network using T1
as input, then perform the back propagation of the
error. Show the changes of the weights.
Bài giải
• What encoding of the outputs?
10 for class “nail”, 01 for class “screw”
Forward pass for T1 - calculate the outputs o6 and o7
o1=0.6, o2=0.1, target output 1 0, i.e. class “nail”
Activations of the hidden units:
• net3= o1 *w13+ o2*w23+b3=0.6*0.1+0.1*(-0.2)+0.1=0.14
=> o3=1/(1+e-net3) =0.53
• net4= o1 *w14+ o2*w24+b4=0.6*0+0.1*0.2+0.2=0.22
=> o4=1/(1+e-net4) =0.55
• net5= o1 *w15+ o2*w25+b5=0.6*0.3+0.1*(-0.4)+0.5=0.64
=> o5=1/(1+e-net5) =0.65
Activations of the output units:
• net6= o3 *w36+ o4*w46+ o5*w56 +b6=0.53*(-0.4)+0.55*0.1+0.65*0.6-0.1=0.13
=> o6=1/(1+e-net6) =0.53
• net7= o3 *w37+ o4*w47+ o5*w57 +b7=0.53*0.2+0.55*(-0.1)+0.65*(-0.2)+0.6=0.52
=> o7=1/(1+e-net7) =0.63
Backward pass for T1 - calculate the output errors δ6 and δ7 (note that d6=1, d7=0 for
class “nail”)
• δ6 = (d6-o6) * o6 * (1-o6)=(1-0.53)*0.53*(1-0.53)=0.12
• δ7 = (d7-o7) * o7 * (1-o7)=(0-0.63)*0.63*(1-0.63)=-0.15
Calculate the new weights between the hidden and output units (η=0.1)
• Δw36= η * δ6 * o3 = 0.1*0.12*0.53=0.006
=> w36new = w36old + Δw36 = -0.4+0.006=-0.394
• Δw37= η * δ7 * o3 = 0.1*-0.15*0.53=-0.008
=> w37new = w37old + Δw37 = 0.2-0.008=0.192
• Tương tự cho w46new , w47new , w56new and w57new
For the biases b6 and b7 (remember: biases are weights with input 1):
• Δb6= η * δ6 * 1 = 0.1*0.12=0.012
=> b6new = b6old + Δb6 = -0.1+0.012=-0.088
• Similarly for b7
Calculate the errors of the hidden units δ3, δ4 and δ5
• δ3 = o3 * (1-o3) * (w36* δ6 +w37 * δ7 ) = 0.53*(1-0.53)(-0.4*0.12+0.2*(-0.15))=-0.019
• Similarly for δ4 and δ5
Calculate the new weights between the input and hidden units (η=0.1)
• Δw13= η * δ3 * o1 = 0.1*(-0.019)*0.6=-0.0011
• w13new = w13old + Δw13 = 0.1-0.0011=0.0989
• Similarly for w23new , w14new , w24new , w15new and w25new;
• Similarly for b3, b4 and b6
>>Repeat the same procedure for the other training examples
>>Forward pass for T2…backward pass for T2…
Bài 3.
Ví dụ minh họa cho phương pháp lan truyền ngược

Độ dài Độ rộng Độ dài Độ rộng Loài


đài hoa đài hoa cánh cánh
hoa hoa
Cây Iris A 4.7 3.2 1.3 0.2 0
Cây Iris B 6.1 2.8 4.7 1.2 1
Cây Iris C 5.6 3.0 4.1 1.3 1
Cây Iris D 5.8 2.7 5.1 1.9 0
Cây Iris E 6.5 3.2 5.1 2.0 0
Cây Iris Q 5.8 2.7 3.9 1.2 ???

1
Chọn hàm truyền: f ( x) =
1+ e −x

You might also like