Tải bản đầy đủ (.docx) (31 trang)

Kỹ thuật huấn luyện mạng neural và các vấn đề thực tế

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (935.59 KB, 31 trang )

TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
LỜI NÓI ĐẦU

Trong những năm gần đây, vai trò của máy tính trong việc lưu trữ và
xử lý thông tin ngày càng trở nên quan trọng. Bên cạnh đó, các thiết bị thu
thập dữ liệu tự động cũng phát triển mạnh góp phần tạo ra những kho dữ
liệu khổng lồ.
Dữ liệu được thu thập ngày càng nhiều nhưng người ra quyết định lại
cần có những thông tin bổ ích và chính xác từ những tri thức được rút ra từ
nguồn dữ liệu chưa được khai phá.
Với những yêu cầu đó, mô hình CSDL truyền thống không còn thích
hợp nữa. Để có được tri thức từ CSDL người ta đã phát triển các lĩnh vực
nghiên cứu về tổ chức các kho dữ liệu và kho thông tin, các hệ trợ giúp ra
quyết định, các phương pháp khai phá dữ liệu và phát hiện tri thức trong
CSDL. Trong đó khai phá dữ liệu và phát hiện tri thức đã trở thành một
lĩnh vực nghiên cứu khá sôi động.
Qua quá trình học tập nghiên cứu môn Công Nghệ Tri Thức và Ứng
Dụng, và sự hướng dẫn của thầy GS.TS Hoàng Kiếm chúng em đã học
được những tri thức nền tảng về biểu diễn xây dựng các hệ cơ sở tri thức
cũng như việc khám phá tri thức. Nhưng do thời gian và khả năng có hạn
nên trong nội dung tiểu luận em chỉ trình bày một phần nhỏ về lĩnh vực
máy học, cụ thể là kỹ thuật huấn luyện mạng neural và các vấn đề thực tế.
TP HCM ngày 31 tháng 05 năm 2012
HVTH: NGUYỄN THỊ NAM TRANG 1
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
MỤC LỤC
CHƯƠNG I: TIẾP CẬN MẠNG NEURAL 3
I. Tổng quan 3
II. Thuật toán học đơn giản trên Perceptron 7


III. Thuật toán lan truyền ngược 11
CHƯƠNG II 16
I. Kỹ thuật huấn luyện mạng Perceptron 18
II. Mạng Perceptron một lớp 22
III. Huấn luyện Gradient Descent 24
IV. Các vấn đề thực tế 27
1. Tỉ lệ huấn luyện 27
2. Phương pháp huấn luyện mạng theo mẫu gốc (pattern) và xử lý theo
khối (batch) 28
3. Khởi tạo giá trị ba đầu 29
4. Hiệu chỉnh tỉ lệ 29
KẾT LUẬN 30
TÀI LIỆU THAM KHẢO 31
HVTH: NGUYỄN THỊ NAM TRANG 2
Trục
Nhánh
Khớp
Thân
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
CHƯƠNG I:
TIẾP CẬN MẠNG NEURAL
I. TỔNG QUAN:
Mạng neural là thuật ngữ nói đến một phương pháp giải quyết vấn đề – bài toán trên
máy tính mô phỏng theo hoạt động của các tế bào thần kinh trong não bộ.
Mạng neural sinh học được tạo thành bởi sự liên kết giữa rất nhiều tế bào thần kinh
(neural). Các xung động thần kinh được truyền từ khớp qua trục để đến thân. Thân
tế bào tổng hợp các xung động thần kinh và ra quyết định tiếp tục truyền các tín
hiệu sang tế bào thần kinh khác.
Cấu trúc của một tế bào thần kinh sinh học

Mạng neural nhân tạo là sự mô phỏng cấu trúc của mạng neural sinh học. Mạng
neural nhân tạo được tạo thành bởi sự nối kết giữa rất nhiều đơn vị thần kinh gọi là
perceptron. Những đơn vị này có nhiệm vụ nhận các tín hiệu từ các đơn vị khác
hoặc từ dữ liệu nhập; thông qua các mối liên kết, đơn vị sẽ tiến hành tổng hợp tín
hiệu đến nó, xử lý và truyền các tín hiệu sang các đơn vị thần kinh khác hoặc đến
đầu ra.
HVTH: NGUYỄN THỊ NAM TRANG 3
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
Một đơn vị thần kinh nhân tạo có cấu tạo như sau :
Trong đó, x
1, …,
x
n
là các giá trị truyền đến đơn vị thần kinh nhân tạo (giá trị này có
thể là giá trị xuất từ một neural khác hoặc từ đầu vào). w
1
,… , w
n
là các trọng số
ứng với mỗi giá trị được truyền đến neural.
Giá trị đầu ra y của một perceptron được tính bằng công thức sau :
y = f((x
n
w
n
+ x
n-1
w
n-1

+ … + w
2
n
2
+ w
1
n
1
+ w
0
) - φ)
Hàm f được gọi là hàm truyền. Một hàm truyền cần phải có tính chất sau :
- bị chặn
- đơn điệu tăng
- hàm liên tục tăng
Các hàm truyền thường được sử dụng là :
Hàm logistic (hay còn gọi là hàm Sigma)
x
e
x

+
=
1
1
)(f
Hàm hyperbol
x
x
e

e
x


+

=
1
1
)(h

Hàm tang-hyperbol
xx
xx
ee
ee
x


+

=)(tanh

HVTH: NGUYỄN THỊ NAM TRANG 4
x
1
x
2
x
n

TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
Trong đó hàm sigmoid là hàm thường được dùng nhất.
φ được gọi là ngưỡng kích hoạt của neural.
Có thể nói rằng mạng neural nhân tạo là một phát minh quan trọng trong lĩnh vực
trí tuệ nhân tạo. Ngày nay, mạng neural được ứng dụng trong nhiều lãnh vực khác
nhau: công nghệ thông tin (khám phá tính năng xử lý không dùng ký hiệu và các hệ
máy học nói chung), kỹ thuật (giám sát tình trạng của động cơ máy bay, kiểm soát
quá trình sản xuất hay nhận dạng chữ ký), khoa học về tri thức (mô tả kiểu suy luận
và nhận thức), vật lý (mô hình hóa các hiện tượng trong cơ học thống kê), sinh học
(lý giải các chuỗi nucleotid), kinh tế (dự đoán về thị trường tiền tệ và chứng khoáng),
dược học (liên quan cấu trúc-tác dụng)
Một cách tổng quát, một mạng neural nhân tạo chỉ là một đồ thị bao gồm các đơn
vị thần kinh nhân tạo kết nối với nhau. Tuy nhiên, có nhiều ứng dụng trong thực tiễn
nhất là các mạng neural sau :
- Mạng Hopfield : là mô hình mạng 1 lớp với trọng số đối xứng, được
Hopfield đề xuất vào năm 1982.
- Mạng Kohonen (winner-take-all) : do Kohonen đề xuất năm 1984, là
mạng neural dựa trên ý tưởng phân lớp các giá trị đầu vào
- Mạng lan truyền ngược : Do Rumelhart và McClelland giới thiệu năm
1984, mô hình này ứng dụng trong các dạng mạng neural phức tạp, nhiều
lớp. Và đây cũng là một mô hình này đang được sử dụng khá phổ biến
trong các bài toán trí tuệ nhân tạo.
* Để ngắn gọn hơn, từ đây về sau, chúng ta sẽ dùng từ neural thay cho đơn vị thần
kinh nhân tạo.
Trong bài toán học mà chúng ta đã quen thuộc, để phân loại các đối tượng có m
thuộc tính khác nhau vào n thuộc tính quyết định khác nhau. Chúng ta sẽ xây dựng
mạng neural gồm có :
• m neural nhập, mỗi neural ứng với một thuộc tính của đối tượng và nhận một
giá trị trong miền giá trị xác định bởi miền giá trị của thuộc tính.

• một hoặc nhiều các neural “trung gian” hay các neural ẩn
HVTH: NGUYỄN THỊ NAM TRANG 5
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
• n neural xuất, mỗi neural ứng với một thuộc tính quyết định, miền giá trị của
đầu ra của mỗi neural này là chính là miền giá trị của thuộc tính quyết định
ứng với neural đó.
Vấn đề lớn nhất trong việc xây dựng mạng neural là việc xác định giá trị thích
hợp của các trọng số w cho các liên kết giữa các neural và chọn hàm truyền thích hợp
cho mỗi neural. Và quá trình xác định các trọng số w gọi là quá trình huấn luyện
mạng neural hay còn gọi là quá trình học.
Để xác định các trọng số w, người ta sử dụng một tập dữ liệu mẫu trong đó có
mô tả đầy đủ dữ liệu đầu vào và dữ liệu đầu ra tương ứng (tập dữ liệu huấn luyện
tương tự như các tập mẫu mà chúng ta đã quen trong các thuật toán học trước,
điểmkhác là ở đây các giá trị thuộc tính đều phải là các giá trị số) và một thuật toán
dùng để điều chỉnh trọng số w của các neural – thuật toán học.
Mạng neural đa lớp bao gồm lớp nhập, lớp ẩn và lớp xuất
Chẳng hạn, xét lại ví dụ cháy nắng trong thuật toán học bằng cách xây dựng cây định
danh. Để tiện theo dõi, bảng
HVTH: NGUYỄN THỊ NAM TRANG 6
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM

số liệu mẫu của ví dụ này sẽ được để dưới đây.
Vì các neural chỉ có thể làm việc trên các kiểu dữ liệu số nên ta có thể “lượng hóa”
giá trị các thuộc tính như sau :
Tóc : vàng = 0, nâu = 1, đỏ = 2
Ch.Cao : thấp = 0, TB = 1, cao = 2
Cân nặng : nhẹ = 0, TB = 1, nặng = 2
Dùng kem : không = 0, có = 1

Cháy nắng : không = 0, có = 1
Như vậy mạng neural sẽ gồm :
- 4 neural nhập, mỗi neural lần lượt ứng với mỗi thuộc tính màu tóc, chiều cao, cân
nặng và có dùng kem hay không. Neural ứng với màu tóc sẽ nhận giá trị đầu vào
là 0, 1 hoặc 2.
- 1 neural xuất ứng với thuộc tính quyết định có cháy nắng hay không và giá trị
xuất của neural này sẽ là 0 hoặc 1.
Dĩ nhiên là số neural trung gian sẽ phụ thuộc vào cách thức chúng ta giải quyết bài
toán này như thế nào.
Đa số các thuật toán học dựa vào mạng neural đều tương đối phức tạp và liên quan
đến nhiều các khái niệm toán học cao cấp.
II. THUẬT TOÁN HỌC ĐƠN GIẢN TRÊN PERCEPTRON
Perceptron có thể được xem là mạng neural đơn giản nhất vì chỉ gồm có một
neural duy nhất. Tuy không mấy hữu ích so với một mạng neural đầy đủ nhưng nó lại
HVTH: NGUYỄN THỊ NAM TRANG 7
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
rất hữu ích trong việc giúp chúng ta nắm được những nguyên tắc cơ bản trong tiếp
cận máy học bằng mạng neural. Chúng ta sẽ sử dụng thuật toán học trên perceptron
để xây dựng “hàm” để xác định một loại hoa có thuộc loại versicolor hay không. Để
tiện vận dụng thuật toán perceptron, ta sẽ “lượng hóa” thuộc tính loài. Loài = 1 là
versicolorl. Loài = -1 là loài khác.
Chúng ta có các mẫu với các thuộc tính cho trong bảng sau :
Công thức truyền của perceptron trong bài toán này sẽ như sau :
và y = x
0
w
0
+ x
1

w
1
+ x
2
w
2
+ x
3
w
3
+ x
4
w
4

Trong đó, x
1
, x
2
, x
3
, x
4
lần lượt là giá trị các thuộc tính độ dài đài hoa, độ rộng đài
hoa, độ dài cánh hoa và độ rộng cánh hoa.
x
0
luôn có giá trị bằng 1 và được gọi là hệ số tự do.
Nhiệm vụ của chúng ta là xác định giá trị cho các trọng số w
i

sao cho hàm
f(y) có giá trị như trong cột loài đối với tất cả mẫu đã cho. Nghĩa là giải hệ phương
trình sau :
f(1.w
0
+ 4.7w
1
+ 3.2w
2
+ 1.3w
3
+ 0.2w
4
) = -1
f(1.w
0
+ 6.1w
1
+ 2.8w
2
+ 4.7w
3
+ 1.2w
4
) = 1
f(1.w
0
+ 5.6w
1
+ 3.0w

2
+ 4.1w
3
+ 1.3w
4
) = 1
f(1.w
0
+ 5.8w
1
+ 2.7w
2
+ 5.1w
3
+ 1.9w
4
) = -1
f(1.w
0
+ 6.5w
1
+ 3.2w
2
+ 5.1w
3
+ 2.0w
4
) = -1
HVTH: NGUYỄN THỊ NAM TRANG 8
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS

HOÀNG KIẾM
Ý tưởng của thuật toán perceptron là chọn ngẫu nhiên một bộ giá trị bất kỳ cho
các w
i
. Sau đó thuật toán sẽ tiến hành điều chỉnh lại dần dần cho "khớp" (tính chất tự
hoàn thiện qua thời gian). Cách thực hiện này quả thật là một kiểu giải phương trình
bằng cách "mò" nghiệm của con người!. Tuy vậy người ta đã chứng minh được rằng
phương pháp tìm nghiệm này (trong một số điều kiện chặt chẽ nhất định) sẽ dẫn đến
kết quả sau một số lần lặp hữu hạn.
Giả sử các trọng số ban đầu có các giá trị như sau :
w
0
= 1; w
1
= 0; w
2
= 0; w
3
= 0; w
4
= 1
Thử với mẫu đầu tiên ta được :
f(1×w
0
+ 4.7×w
1
+ 3.2×w
2
+ 1.3×w
3

+ 0.2×w
4
) =
f(1×1 + 4.7 × 0 + 3.2×0 + 1.3×0 + 0.2×1) = f(1.2) = 1
Hàm f cho kết quả khác với mong đợi là 1 thay vì -1. Do đó ta cần phải điều
chỉnh lại các trọng số w
i
. Sở dĩ hàm f cho kết quả 1 là vì tổng ∑x
i
w
i
> 0. Do đó, để f
trả ra -1 ta cần điều chỉnh w
i
sao cho tổng ∑x
i
w
i
giảm giá trị. Dễ dàng thấy rằng
phép trừ sau sẽ làm giảm giá trị của w
i
(với r là một hằng số dương).
w
i
= w
i
- r.x
i

Như vậy tổng ∑x

i
w
i
sẽ giảm giá trị nếu mọi w
i
đều giảm giá trị (bất chấp w
i
âm hay dương)
Suy luận tương tự, có thể dễ dàng thấy rằng trong trường hợp ngược lại (hàm
f cho ra kết quả là -1 thay vì 1) ta sẽ cập nhật các trọng số w
i
(để làm tăng giá trị của
tổng ∑x
i
w
i
) bằng công thức :
w
i
= w
i
+ r.x
i

Trở lại ví dụ của chúng ta, chọn r = 0.05. Như vậy, các trọng số sẽ được điều chỉnh
như sau :
w
0
= w
0

- r.x
0
= 1 - 0.05×1 = 0.95
HVTH: NGUYỄN THỊ NAM TRANG 9
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
w
1
= w
1
- r.x
1
= 0 - 0.05×4.7 = -0.24
w
2
= w
2
- r.x
2
= 0 - 0.05×3.2 = -0.16
w
3
= w
3
- r.x
3
= 0 - 0.05×1.3 = -0.07
w
4
= w

4
- r.x
4
= 1 - 0.05×0.2 = 0.99
Ta áp dụng các w
i
mới được điều chỉnh cho mẫu tiếp theo
f(1×w
0
+ 6.1×w
1
+ 2.8×w
2
+ 4.7×w
3
+ 1.2×w
4
) =
f(1×0.95 + 6.1×(-0.24) + 2.8×(-0.16) + 4.7×(-0.07) + 1.2×0.99) = f(-0.05) = -1
Một lần nữa f lại trả ra kết quả khác với mong đợi là -1 thay vì 1. Ta sẽ điều chỉnh
tăng các w
i
.
w
0
= w
0 +
r.x
0
= -0.95 + 0.05×1 = -1.00

w
1
= w
1 +
r.x
1
= -0.24 + 0.05×6.1 = -0.07
w
2
= w
2 +
r.x
2
= -0.16 + 0.05×2.8 = -0.02
w
3
= w
3 +
r.x
3
= -0.07 + 0.05×4.7 = -0.17
w
4
= w
4 +
r.x
4
= -0.99 + 0.05×1.2 = -1.05
Ta tiếp tục áp dụng quá trình thử và điều chỉnh này cho các mẫu kế tiếp, nếu
hết mẫu, quay lại từ mẫu đầu tiên cho đến khi có được bộ trọng số w

i
thỏa tất cả các
mẫu đã cho hoặc thời gian chạy vượt quá một giới hạn cho phép nào đó.
Ví dụ của chúng ta sẽ dừng sau 1358 lần thử và điều chỉnh cho tất cả mẫu. Các
trọng số w
i
kết quả là :
w
0
= -1.80; w
2
= -0.30; w
3
= -0.19; w
4
= 4.65; w
5
= -11.56
Thuật toán Peceptron khá đơn giản và gần gũi với suy nghĩ của con người.
Tuy nhiên, chính vì điều này, thuật toán này lại không mấy hữu hiệu trong những
trường hợp phức tạp. Ví dụ của minh họa mà chúng ta vừa khảo sát là một trường
hợp tuyến tính đơn giản nên sau một số lần điều chỉnh hữu hạn các w
i
sẽ "hội tụ" về
HVTH: NGUYỄN THỊ NAM TRANG 10
1
2
3
4
a

b
o
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
kết quả. Do đó, trong thực tế thuật toán perceptron được dùng để minh họa cho tiếp
cận học bằng mạng neural hơn là để áp dụng vào một ví dụ thực tiễn nào đó.
III. THUẬT TOÁN LAN TRUYỀN NGƯỢC (BACK-PROPAGATION)
Trong mục này chúng ta cùng nhau khảo sát một thuật toán học thực tiễn
hơn. Thuật toán này thường được áp dụng trên mạng neural có nhiều. Dùng lại ví
dụ trong thuật toán perceptron. Mạng neural của chúng ta sẽ có cấu trúc như sau :
Trên hình vẽ, mạng neural này gồm có 3 lớp. Lớp nhập gồm 4 neural để
nhận 4 giá trị thuộc tính của loại hoa. Lớp ẩn gồm có 2 neural (a và b), mỗi một
neural trong lớp ẩn sẽ nhận giá trị xuất từ tất cả các neural trong lớp nhập. Lớp xuất
chỉ gồm một neural duy nhất mà giá trị xuất của nó sẽ cho biết loại hoa đó có phải
thuộc loại versicolor hay không, neural xuất cũng sẽ nhận giá trị xuất từ tất cả các
neural trong lớp ẩn.
Việc chọn số neural cho lớp ẩn thực sự là một nghệ thuật. Về mặt nguyên
tắc, không có một lý do nào để giới hạn số lượng neural hoặc số lượng lớp ẩn trong
một mạng neural. Đã có nhiều công trình nghiên cứu công phu đã được tiến hành
nhằm tìm hiểu xem việc thêm các lớp ẩn có cải thiện được năng lực của mạng
neural hay không (tốc độ học, độ chính xác, ). Tuy nhiên, cho đến nay, người ta
vẫn chưa thể đưa ra được một lý thuyết nào hoàn toàn thuyết phục về vấn đề này.
Các neural ở lớp nhập có cấu trúc rất đơn giản, thậm chí chúng còn không
được xem là các neural của mạng. Nhiệm vụ của các neural trong lớp nhập chỉ là
truyền chính xác giá trị mà nó nhận được đến các neural trong lớp ẩn mà thôi. Nói
HVTH: NGUYỄN THỊ NAM TRANG 11
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
một cách đơn giản giá trị đầu ra của các neural trong lớp nhập chính là giá trị đầu
vào.

Để tiện theo dõi, chúng ta hãy đặt tên cho các trọng số nối giữa các neural.
Các trọng số của neural a lần lượt là w
0a
, w
1a
, w
2a
, w
3a
, w
4a
. Trong đó, chẳng hạn
như w
2a
là trọng số của "cung" nối từ neural nhập 2 đến a; w
0a
là trọng số tự do của
neural a. Các trọng số của neural b lần lượt là : w
0b
, w
1b
, w
2b
, w
3b
, w
4b
. Các trọng
số của neural O là : w
0O

,

w
aO
, w
bO.
Trong mạng trên, tất cả neural trong lớp ẩn và lớp xuất (a, b, O) đều sử dụng
cùng một hàm truyền là hàm sigma (σ). Giá trị đầu ra của các neural này sẽ được
tính bằng công thức σ (∑x
i
w
i
) (trong đó x
i
là các giá trị truyền đến neural và w
i

trọng số ứng với giá trị x
i
) . Cụ thể hơn, nếu gọi O
a
, O
b
, O
O
lần lượt là các giá trị
xuất của neural a, b và O thì :
O
a
= σ(w

0a
+ x
1
×w
1a
+ x
2
×w
2a
+ x
2
×w
2a
+ x
2
×w
2a
)
O
b
= σ(w
0b
+ x
1
×w
1b
+ x
2
×w
2b

+ x
2
×w
2b
+ x
2
×w
2b
)
O
O
= σ(w
0O
+ O
a
×w
aO
+ O
b
×w
bO
)
* Lưu ý rằng hàm sigma có miền xác định là (0,1).
Cũng giống như thuật toán perceptron, ban đầu ta khởi động với các trọng số của
các neural một cách ngẫu nhiên :
w
0a
= 0.0; w
1a
= 0.1; w

2a
= -0.1; w
3a
= -0.1; w
4a
= 0.0
w
0b
= 0.0; w
1b
= - 0.1; w
2b
= -0.2; w
3b
= 0.1; w
4a
= -0.1
w
0O
= 0.1; w
aO
= 0.2; w
bO
= -0.1;
Chúng ta cũng thực hiện thử và điều chỉnh gần giống như thuật toán
perceptron. Đầu tiên là áp dụng các trọng số hiện có lên các mẫu có sẵn để tính ra
giá trị xuất của neural O.
HVTH: NGUYỄN THỊ NAM TRANG 12
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM

Áp dụng các trọng số đã cho với mẫu đầu tiên. Giá trị xuất của các neural a,
b, O lần lượt là :
O
a
= 0.5050 ; O
b
= 0.5695; O
O
= 0.5359
Bước tiếp theo là dựa trên giá trị xuất thực sự của neural xuất (O
O
) và giá trị
xuất mong muốn của neural xuất (E
O
) ta sẽ tính ra được sai số δ
O
của neural xuất
bằng công thức :
δ
O
= O
O
× (1 - O
O
) × (E
O
- O
O
)
Tiếp theo, dựa trên sai số của neural xuất, giá trị xuất của neural ẩn và trọng

số của "cung" nối giữa neural ẩn và neural xuất ta sẽ tính ra được sai số δ tại neural
ẩn này. Như vậy, theo mạng của chúng ta, sai số tại neural a và neural b lần lượt là :
δ
a
= O
a
× (1 - O
a
) × w
aO
× δ
O
δ
b
= O
b
× (1 - O
b
) × w
bO
× δ
O
Trong trường hợp có nhiều hơn một nút xuất O
1, ,
O
n
thì sai số tại một nút ẩn
sẽ bằng tổng các sai số ứng với mỗi nút xuất :
δ
b

= O
b
× (1 - O
b
) × ∑ w
bOi
× δ
Oi
Ở đây có một điểm cần lưu ý. Thực sự hàm sigma không thể trả ra giá trị 0.
Ở đây ta chọn một ngưỡng, chẳng hạn như 0.5 để quyết định loại hoa đó có thể là
loại versicolor hay không. Nếu O
O
< 0.5 thì không phải là versicolor, còn nếu O
O

0.5 thì là loại versicolor. Do đó, để tăng hiệu quả của phép phân loại, ta sẽ mong
muốn giá trị xuất 0.0 ứng với mẫu không là VersiColor và 1.0 đối với mẫu
VersiColor. Việc đặt ra các giá trị mong muốn "cách xa" nhau như vậy sẽ giúp quá
trình học tiến hành được thuận lợi hơn.
Trong ví dụ, giá trị mong đợi của neural xuất đối với mẫu đầu tiên là 0
(không phải là VersiColor). Áp dụng các công thức sai số ở trên ta sẽ có được :
δ
O
= -0.1333 δ
a
= -0.0067 δ
b
= 0.0033
HVTH: NGUYỄN THỊ NAM TRANG 13
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS

HOÀNG KIẾM
Thao tác cuối cùng là cập nhật lại các trọng số của các neural. Lưu ý là khác với
thuật toán perceptron, ở đây ta luôn luôn cập nhật trọng số bất chấp giá trị đầu ra có
đúng hay không. Ta sử dụng công thức sau :
w = w + r × δ × x
Với r là tỷ lệ học, δ là sai số của neural (đã tính được từ bước trên) và x là giá trị
truyền đến neural theo "cung" có trọng số w. Với ví dụ của chúng ta, các trọng số sẽ
được cập nhật cụ thể là :
Neural ẩn a
w
0a
= w
0a
+ r × δ
a
× 1 = -0.0007
w
1a
= w
1a
+ r × δ
a
× x
1
= 0.0969
w
2a
= w
2a
+ r × δ

a
× x
2
= -0.1021
w
3a
= w
3a
+ r × δ
a
× x
3
= -0.1009
w
4a
= w
4a
+ r × δ
a
× x
4
= -0.0001
Neural ẩn b
w
0b
= w
0b
+ r × δ
b
× 1 = 0.0003

w
1b
= w
1b
+ r × δ
b
× x
1
= -0.0985
w
2b
= w
2b
+ r × δ
b
× x
2
= 0.2010
w
3b
= w
3b
+ r × δ
b
× x
3
= 0.1004
w
4b
= w

4b
+ r × δ
b
× x
4
= -0.0999
Neural xuất O
w
0O
= w
0O
+ r × δ
O
× 1 = 0.0867
HVTH: NGUYỄN THỊ NAM TRANG 14
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
w
aO
= w
aO
+ r × δ
O
× O
a
= 0.1933
w
bO
= w
bO

+ r × δ
O
× O
b
= -0.1076
Thử áp dụng các trọng số mới này cho mẫu đầu tiên ta tính được O
O
=
0.5304. Giá trị này gần 0 hơn giá trị ban đầu là 0.5359.
Người ta đã đánh giá rằng so với perceptron, mạng lan truyền ngược có tính
hiệu quả cao hơn. Tuy nhiên, việc tìm ra cấu trúc mạng (số lượng neural ẩn) đối với
từng bài toán cụ thể nói chung thường khó khăn và đòi hỏi nhiều kinh nghiệm trong
lĩnh vực này. Hơn nữa để đạt được kết quả chính xác, hệ thống cần phải thực hiện
một số lần lặp rất lớn nên tốc độ học thường chậm.
HVTH: NGUYỄN THỊ NAM TRANG 15
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
CHƯƠNG II
MỘT SỐ KỸ THUẬT HUẤN LUYỆN MẠNG NEURAL VÀ CÁC
VẤN ĐỀ THỰC TẾ
Một mạng nơron về cơ bản là mô hình có cấu trúc và thuật toán cho phù hợp với
một số dữ liệu mẫu nhất định. Cách tiếp cận mạng để mô hình hóa sử dụng khả năng
phân chia tuyến tính và cho phép tất cả các thông số được điều chỉnh.
Các mạng nơron có một tiềm năng cho các hệ thống điều khiển thông
minh bởi vì chúng có thể học hỏi và thích ứng, chúng có thể ước tính
chức năng phi tuyến, thích hợp cho xử lý song song và phân phối, và mô hình hóa hệ
thống đa biến.
Nếu một mô hình vật lý là không có hoặc quá đắt để phát triển, một mô hình
mạng neural có thể là một thay thế
Cho một vấn đề phân loại, tập hợp các dữ liệu u được phân thành hai lớp C

1
và C
2
.
Một mạng noron có thể học từ những dữ liệu đưa vào và nâng cao hiệu xuất của nó
thông qua việc học này, đó chính là khả năng mà chúng ta đang rất quan tâm nghiên
cứu.
Trong một giai đoạn máy học, em mong muốn tìm hiểu một ví dụ nhỏ trong những ví
dụ về huấn luyện mạng noron. Sau quá trình huấn luyện, mạng noron sẽ có thể phân loại
chính xác dữ liệu hơn so với dữ liệu ban đầu.
Cho một bảng dữ liệu về cường độ của 10 viên gạch ngói:
STT 475 Hz 557Hz Chất lượng
1 0.958 0.003 Yes
2 1.043 0.001 Yes
3 1.907 0.003 Yes
4 0.780 0.002 Yes
5 0.579 0.001 Yes
6 0.003 0.105 No
7 0.001 1.748 No
8 0.014 1.839 No
9 0.007 1.021 No
HVTH: NGUYỄN THỊ NAM TRANG 16
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
10 0.004 0.214 No
Những viên gạch ngói được nhào nặn từ đất sét thành các hình dạng chuẩn, tráng
men và nung trong lò. Nhưng trong quá trình nung gạch có thể xuất hiện các vết nứt vô
hình bên trong viên gạch. Bộ phận kiểm tra xác định bằng cách dùng búa gõ vào viên
gạch, một hệ thống tự động ghi lại âm thanh bằng một microphone, lọc âm, biến đổi
fourier, chuẩn hóa. Một tập hợp nhỏ những dữ liệu (trích từ MIT, 1997) được cho trong

bảng trên.
Perceptron là một mạng noron đơn giản nhất, cũng phân chia dữ liệu thành hai lớp,
nói chung nó bao gồm một noron đơn và một số những điều chỉnh về trọng số.
Perceptron là một bộ vi xử lý của một mạng nơron. Nó có ba yếu tố chính như sau:
- Một tập hợp các kết nối liên kết (hoặc các khớp thần kinh), mỗi liên kết mang
một trọng số (hoặc đơn điệu tăng) w
0
, w
1
, w
2
.
- Một phép lấy tổng (hoặc bộ cộng) tổng kết các tín hiệu đầu vào sau khi được nhân
với trọng số tương ứng của chúng.
- Kích hoạt một hàm f(x) giới hạn đầu ra của tế bào nơron. Thông thường đầu ra
giới hạn trong khoảng [0;1] hoặc [-1;1]
Phép lấy tổng trong mạng noron cũng bao gồm một w
0
bù đắp cho việc hạ thấp
hoặc nâng cao đầu vào hàm kích hoạt của mạng.
Về mặt toán học, đầu vào của mạng noron được đại diện bởi một vector u=(1,u
1
,u
2
,
…,u
n
)
T
, và đầu ra là một đại lượng vô hướng y=f(x).

Trọng số kết nối được đại diện bởi vector w=(w
0
,w
1
,w
n
)
T
trong đó w
0
là đại lượng bù
trừ (lệch).
Đầu ra của mạng được tính toán như sau: y= f(w
T
u)
HVTH: NGUYỄN THỊ NAM TRANG 17

TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
Hình 1: Mạng noron Perceptron
I. KỸ THUẬT HUẤN LUYỆN MẠNG PERCEPTRON
Trọng số W được điều chỉnh bằng cách sử dụng một nguyên tắc học hỏi thích ứng.
Có nghĩa là thuật toán hội tụ perceptron. Nếu hai lớp C
1
và C
2
phân chia tuyến tính,
sẽ tồn tại một vector trọng số w với những thuộc tính như sau:
w
t

u ≥ 0 thì mọi vector đầu vào u theo lớp C
1
w
t
u < 0 thì mọi vector đầu vào u theo lớp C
2
Giả sử rằng Perceptron có m đầu vào, với công thức w
T
u=0, trong tọa độ không
gian m chiều u
1
, u
2,
…, u
m
, định nghĩa một mặt phẳng không gian ba chiều như một
mặt phẳng chuyển đổi giữa hai lớp khác nhau của đầu vào.
Quá trình huấn luyện là điều chỉnh trọng số w để thỏa mãn hai bất đẳng thức trên.
Một tập hấn luyện bao gồm K mẫu đầu vào vector u, cùng với các thành phần của
mỗi lớp mẫu (0 hoặc 1). Đại diện của một thiết lập huấn luyện hoàn tất đối với các
lớp perceptron gọi là epoch. Việc học được tiếp tục bởi các epoch cho đến khi các
trọng số ổn định.
Thuật toán:
Cốt lõi của thuật toán hội tụ perceptron là điều chỉnh các trọng số của
perceptron cơ bản, có hai bước:
Bước 1:
Nếu thành phần thứ k của một thiết lập huấn luyện, u
k
với (k=1,2,…,K) được
phân loại chính xác bởi vector trọng số w

k
được tính tại lần lặp thứ k của thuật toán,
không có điều chỉnh w
k
được thể hiện bằng:
w
k+1
= w
k
nếu w
k
T
u
k
≥ 0 và u
k
theo lớp C
1

w
k+1
= w
k
nếu w
k
T
u
k
< 0 và u
k

theo lớp C
2

Ngược lại, trọng số của các perceptron được cập nhật theo các qui tắc :
w
k+1
= w
k
- n
k
u
k
nếu w
k
T
u
k
≥ 0 và u
k
theo lớp C
2

HVTH: NGUYỄN THỊ NAM TRANG 18
2
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
Hình 2: Sau hai lần thay
đổi góc lớn hơn 90
0
và w

T
u=|w||
u| cos()
w
k+1
= w
k
+
k
u
k
nếu w
k
T
u
k
< 0 và u
k
theo lớp C
1
(6)
Chú ý sự thay đổi các lớp từ bước một đến bước hai. Tỷ lệ việc học n
k
kiểm soát
việc điều chỉnh vector trọng số tại lần lặp k. Nếu là một hằng số độc lập với số lần
lặp k, chúng ta có một fixed increment cho các qui luật thích nghi của perceptron.
Các thuật toán đã chứng minh (Haykin:1994; Lippmann:1987).
Các điểm của vector đầu vào u trong không gian m-chiều được đánh dấu bằng một
ngôi sao. Qui tắc cập nhật này dựa trên tích vô hướng của hai vector, liên quan góc
giữa vector đầu vào và vector trọng số w:

w
T
u = |w||u|cos()
Hình 2 chỉ ra vị trí trọng số w(1) cần được thay đổi, góc nhỏ hơn 90 độ, và cos()
là một số dương, nguyên tắc cập nhật thay đổi các vector trọng số w(2) bởi số lượng
u theo phương ngược lại với u. Vector trọng số đã quay, nhưng chưa đủ, vì vậy cần
một vector khác là w(3). Bây giờ góc đã lớn hơn 90
0
và dấu của w
T
u đã đúng. Vector
w là giao của các mặt phẳng không gian ba chiều phân biệt các lớp với nhau. Khi w
quay, mặt phẳng không gian ba chiều quay với nó cho đến khi mặt phẳng tách rời các
lớp một cách đúng đắn.
Huấn luyện mạng noron trong hình 2 để xác định những viên gạch không đạt chất
lượng. Giá trị đầu vào của mạng noron là hai cột tần số của Bảng 1, chúng ta chia
HVTH: NGUYỄN THỊ NAM TRANG 19
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
gạch thành hai loại tốt và xấu, loại tốt gắn với lớp C
1
và loại xấu gắn với lớp C
2
. Đầu
tiên kiểm tra đầu vào của perceptron:
u
T
= (1,0.958,0.003) (7)
Điều này tương ứng với một viên gạch ở lớp C
1

, những trọng số bao gồm cả trọng
số bù, phải gán giá trị ban đầu, giá trị khởi đầu là:
w
T
= (0.5,0.5,0.5) (8)
Hình 4: Vector trọng số xác định đường thẳng trong mặt phẳng phân chia lớp màu
trắng với lớp ẩn.
Tỷ lệ học được chọn là: (9)
Theo thuật toán perceptron hội tụ, phải kiểm tra tích số:
w
T
u = (1,0.958,0.003)(0.5,0.5,0.5)
T
(10)
= 0.981 (11)
Dấu dương tương ứng với lựa chọn thứ (3) trong thuật toán. Chúng ta giữ lại các
trọng số của perceptron , lặp lại các thông số này với tập đầu vào tiếp theo…Kết quả
của việc tính toán bằng tay qua hai lần toàn bộ dữ liệu được tổng kết trong bảng 2.
Sau khi nghiên cứu những viên gạch xấu lần đầu tiên chưa có thay đổi về trọng số,
sau khi áp dụng luật (5), mới thay đổi những trọng số.
Sau khi qua lần đầu tiên, có vẻ mạng perceptron đã có thể nhận ra các viên gạch
xấu, nhưng khi các trọng số đã được thay đổi so với lần chạy đầu tiên, thì chúng ta
phải quay lại kiểm tra những viên gạch tốt. trong lần lặp thứ hai, trọng số đã được
thay đổi, nhưng sau đó không có sự thay đổi thêm. Qua đến lần thứ ba, cho thấy sự
thay thế đã dừng lại.
HVTH: NGUYỄN THỊ NAM TRANG 20
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
Mạng Perceptron thực sự có thể phân biệt giữa viên gạch tốt và xấu.
Hình 5: Phân loại gạch trong không gian theo dữ liệu đầu vào ( trục logarit)

Hình 5 cho thấy đường thẳng phân chia giữa hai lớp. Trọng số cuối cùng là:
w
T
= (0,0.977,0.425)
Đường thẳng đánh dấu sự chuyển đổi giữa hai lớp, được xác định như sau:
0.977u
1
– 0.425u
2
= 0
Tương đương với: u
2
= (0.977/0.425)u
1
Với một giới hạn cứng (hàm signum), hàm kích hoạt perceptron tạo đầu ra theo:
y=sgn(w
T
u)
Tập dữ liệu được thiết lập bên trên đường thẳng sẽ cho kết quả : y = -1(bad) và bên dưới
đường thẳng là : y= +1 (good)
Bảng 2: Mạng perceptron logarit hội tụ qua hai lần tính toán giải thuật
u
T
w
T
Chất
lượn
g
u
T

u
Côn
g
thức
Cập nhật
w
T
(1,0.958,0.003
)
(0.5,0.5,0.5) 1 0.981 (3) (0.5,0.5,0.5)
(1,1.043,0.001
)
(0.5,0.5,0.5) 1 1.022 (3) (0.5,0.5,0.5)
(1,1.907,0.003
)
(0.5,0.5,0.5) 1 1.455 (3) (0.5,0.5,0.5)
(1,0.780,0.002
)
(0.5,0.5,0.5) 1 0.891 (3) (0.5,0.5,0.5)
HVTH: NGUYỄN THỊ NAM TRANG 21
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
(1,0.579,0.001
)
(0.5,0.5,0.5) 1 0.790 (3) (0.5,0.5,0.5)
(1,0.003,0.105
)
(0.5,0.5,0.5) 0 0.554 (5) (0,0.499,0.448)
(1,0.001,1.748
)

(0,0.499,0.448) 0 0.783 (5) (-0.5,0.498,-0.427)
(1,0.014,1.839
)
(-0.5,0.498,-0.427) 0 -1.277 (3) (-0.5,0.498,-0.427)
(1,0.007,1.021
)
(-0.5,0.498,-0.427) 0 -0.932 (3) (-0.5,0.498,-0.427)
(1,0.004,0.214
)
(-0.5,0.498,-0.427) 0 -0.589 (3) (-0.5,0.498,-0.427)
Lần 2
u
T
w
T
Chất
lượn
g
w
T
u
Côn
g
thức
Cập nhật
w
T
(1,0.958,0.003
)
(-0.5,0.498,-0.427) 1 -0.024 (6) (0,0.977,-0.425)

(1,1.043,0.001
)
(0,0.977,-0.425) 1 1.019 (3) (0,0.977,-0.425)
(1,1.907,0.003
)
(0,0.977,-0.425) 1 1.862 (3) (0,0.977,-0.425)
(1,0.780,0.002
)
(0,0.977,-0.425) 1 0.761 (3) (0,0.977,-0.425)
(1,0.579,0.001
)
(0,0.977,-0.425) 1 0.565 (3) (0,0.977,-0.425)
(1,0.003,0.105
)
(0,0.977,-0.425) 0 -0.042 (3) (0,0.977,-0.425)
(1,0.001,1.748
)
(0,0.977,-0.425) 0 -0.742 (3) (0,0.977,-0.425)
(1,0.014,1.839
)
(0,0.977,-0.425) 0 -0.768 (3) (0,0.977,-0.425)
(1,0.007,1.021
)
(0,0.977,-0.425) 0 -0.427 (3) (0,0.977,-0.425)
(1,0.004,0.214
)
(0,0.977,-0.425) 0 -0.087 (3) (0,0.977,-0.425)
II. MẠNG PERCEPTRON MỘT LỚP.
Một vấn đề xảy ra khi mạng noron có nhiều hơn hai lớp, thì các perceptron có thể
kết hợp thành một mạng. Hình thức đơn giản nhất của một lớp mạng gồm có các một

lớp đầu vào và một lớp đầu ra nhưng không có chiều ngược lại.
HVTH: NGUYỄN THỊ NAM TRANG 22
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
HVTH: NGUYỄN THỊ NAM TRANG 23
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
Hình 6: Mạng Perceptron một lớp với ba nút đầu ra.
Mỗi một noron đầu ra xác định một vector trọng số trong một mặt phẳng không gian.
Hàm kích hoạt sẽ có những dạng khác nhau tùy thuộc vào từng ứng dụng cụ thể
Hình 7: Ba đường
thẳng phân chia các
lớp.
HVTH: NGUYỄN THỊ NAM TRANG 24
TIỂU LUẬN: CÔNG NGHỆ TRI THỨC VÀ ỨNG DỤNG GVHD: GS.TS
HOÀNG KIẾM
Hình 8: Ví dụ về sáu hàm kích hoạt
Ba biểu thức toán học tương ứng như sau:
Công thức (15) là hàm logarit, công thức (16) hàm tiếp tuyến hyperpon, công thức
(17) là hàm mờ.
III. HUẤN LUYỆN GRADIENT DESCENT
Có nhiều thuật toán có thể dùng cho việc huấn luyện các mô hình mạng nơ-ron;
hầu hết có thể được xem là áp dụng trực tiếp của lý thuyết tối ưu hóa và ước lượng
thống kê.
Phần lớn các thuật toán huấn luyện mạng nơ-ron sử dụng một kiểu xuống
dốc (gradient descent - tiến dần tới cực tiểu địa phương) nào đó. Điều này được thực
hiện bằng cách lấy đạo hàm của hàm chi phí theo các tham số của mạng và thay đổi
các tham số đó theo một hướng được tính toán theo độ dốc (gradient-related
direction) để tiến dần tới cực tiểu địa phương của hàm chi phí.
HVTH: NGUYỄN THỊ NAM TRANG 25

×