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

Tiểu luận môn công nghệ tri thức Ứng dụng mạng NEURAL dự đoán kết quả học sinh theo học kỳ

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 (2.04 MB, 55 trang )

CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒNG KIẾM

ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

LỜI NÓI ĐẦU
----
Họ và tên: NGUYỄN THỊ NAM

Trong những năm gần đây, vai trị của máy tính trong việc lưu trữ và
Mã HV:CH1101105
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 KHÓA LUẬN TỐT NGHIỆP THẠC SĨ ra quyết định lại
được thu thập ngày càng nhiều nhưng người
cần có những thơng tin bổ ích và chính xác từ TRI THỨC được rút ra từ
CHUYÊN ĐỀ CÔNG NGHỆ những tri thức
nguồn dữ liệu chưa được khai phá.

ỨNG DỤNG MẠNG NEURAL

Với những 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.


DỰ ĐỐN KẾT QUẢ

HỌC SINH THEO HỌC KỲ

Qua q 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
Chuyên việc khám phá HỌC Nhưng do thời
cũng như ngành: KHOAtri thức.MÁY TÍNH gian và khả năng có hạn
nên trong nội dung chuyên đề em chỉ trình bày một phần nhỏ về lĩnh vực
Mã số: 60 48 01
máy học, cụ thể là kỹ thuật huấn luyện mạng neural và ứng dụng trong SQL
Server 2008.
TP HCM ngày 20 tháng 09 năm 2013

HVTH: NGUYỄN THỊ NAM

TRANG 1


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒNG KIẾM

MỤC LỤC
CHƯƠNG I: MỞ ĐẦU..................................................................................................3
I.
II.
III.


Tổng quan................................................................................................3
Thuật toán học đơn giản trên Perceptron................................................7
Thuật toán lan truyền ngược...................................................................11

CHƯƠNG II MỘT SỐ KỸ THUẬT HUẤN LUYỆN MẠNG NEURAL VÀ CÁC
VẤN ĐỀ THỰC TẾ...............................................................................16
I.
II.
III.
IV.

Kỹ thuật huấn luyện mạng Perceptron...................................................18
Mạng Perceptron một lớp.......................................................................22
Huấn luyện Gradient Descent.................................................................24
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
3.
4.

khối (batch)........................................................................................28
Khởi tạo giá trị ba đầu.......................................................................29
Hiệu chỉnh tỉ lệ..................................................................................29

CHƯƠNG III ỨNG DỤNG MẠNG NEURAL TRONG MICROSOFT SQL SERVER
2008................................................................................................................................. 31
1.
2.
3.
4.

5.
6.
7.
8.

Thuật toán hoạt động như thế nào?...................................................31
Thực hiện thuật giải Microsoft Neural Network.............................32
Huấn luyện Neural Networks............................................................34
Lựa chọn các tính năng ....................................................................36
Scoring Methods................................................................................37
Dữ liệu được yêu cầu cho mạng Neural............................................38
Quan sát một mô hình mạng neural..................................................38
Mơ hình ứng dụng dự đốn kết quả học tập theo học kỳ của học sinh
trường TCN Nhân Đạo......................................................................39

Chương VI

KẾT LUẬN VÀ KIẾN NGHỊ

50

TÀI LIỆU THAM KHẢO ............................................................................................53
CHƯƠNG I:

MỞ ĐẦU
I.

TỔNG QUAN:

HVTH: NGUYỄN THỊ NAM


TRANG 2


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒNG KIẾM

Mạng neural là thuật ngữ nói đến một phương pháp giải quyết vấn đề – bài tố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.

Thân
Trục

Khớp

Nhánh

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


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒNG KIẾM

Một đơn vị thần kinh nhân tạo có cấu tạo như sau :

x1
x2
x
n

Trong đó, x1, …, xn 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). w1 ,… , wn 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((xnwn+ xn-1wn-1 + … + w2n2 + w1n1 + w0) - φ)
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à :
f ( x) =

Hàm logistic (hay còn gọi là hàm Sigma)

h ( x) =

Hàm hyperbol

Hàm tang-hyperbol

HVTH: NGUYỄN THỊ NAM

1 − e−x
1 + e −x

e x − e−x
tanh ( x) = x
e + e −x

TRANG 4

1
1 + e −x



CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒ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 sốt
q 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


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC



GVHD: GS.TS HỒ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à q trình huấn luyện
mạng neural hay cịn gọi là q 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 tố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


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒ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 tốn học cao cấp.
II.

THUẬT TỐ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



CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒ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 tốn perceptron, ta sẽ “lượng hóa” thuộc tính lồi. Lồi = 1 là
versicolorl. Lồi = -1 là lồ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 tốn này sẽ như sau :

và y = x0w0 + x1w1 + x2w2 + x3w3 + x4w4
Trong đó, x1, x2, x3, x4 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.
x0 ln 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.w0 + 4.7w1 + 3.2w2 + 1.3w3 + 0.2w4) = -1
f(1.w0 + 6.1w1 + 2.8w2 + 4.7w3 + 1.2w4) = 1
f(1.w0 + 5.6w1 + 3.0w2 + 4.1w3 + 1.3w4) = 1
f(1.w0 + 5.8w1 + 2.7w2 + 5.1w3 + 1.9w4) = -1
f(1.w0 + 6.5w1 + 3.2w2 + 5.1w3 + 2.0w4) = -1

HVTH: NGUYỄN THỊ NAM

TRANG 8



CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒ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 wi. Sau đó thuật tốn sẽ tiến hành điều chỉnh lại dần dần cho "khớp" (tính chất tự
hồ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 :
w0 = 1; w1 = 0; w2 = 0; w3 = 0; w4 = 1
Thử với mẫu đầu tiên ta được :
f(1×w0 + 4.7×w1 + 3.2×w2 + 1.3×w3 + 0.2×w4) =
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ố wi. Sở dĩ hàm f cho kết quả 1 là vì tổng ∑xiwi > 0. Do đó, để f
trả ra -1 ta cần điều chỉnh wi sao cho tổng ∑xiwi giảm giá trị. Dễ dàng thấy rằng
phép trừ sau sẽ làm giảm giá trị của wi (với r là một hằng số dương).
wi = wi - r.xi
Như vậy tổng ∑xiwi sẽ giảm giá trị nếu mọi wi đều giảm giá trị (bất chấp wi
â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 ∑xiwi ) bằng công thức :
wi = wi + r.xi
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 :


w0 = w0 - r.x0 = 1 - 0.05×1 = 0.95
HVTH: NGUYỄN THỊ NAM

TRANG 9


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒNG KIẾM

w1 = w1 - r.x1 = 0 - 0.05×4.7 = -0.24
w2 = w2 - r.x2 = 0 - 0.05×3.2 = -0.16
w3 = w3 - r.x3 = 0 - 0.05×1.3 = -0.07
w4 = w4 - r.x4 = 1 - 0.05×0.2 = 0.99
Ta áp dụng các wi mới được điều chỉnh cho mẫu tiếp theo
f(1×w0 + 6.1×w1 + 2.8×w2 + 4.7×w3 + 1.2×w4) =
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 wi.
w0 = w0 + r.x0 = -0.95 + 0.05×1

= -1.00

w1 = w1 + r.x1 = -0.24 + 0.05×6.1 = -0.07
w2 = w2 + r.x2 = -0.16 + 0.05×2.8 = -0.02
w3 = w3 + r.x3 = -0.07 + 0.05×4.7 = -0.17
w4 = w4 + r.x4 = -0.99 + 0.05×1.2 = -1.05
Ta tiếp tục áp dụng q 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ố wi kết quả là :
w0 = -1.80; w2= -0.30; w3 = -0.19; w4 = 4.65; w5 = -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 tố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


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒNG KIẾM

kết quả. Do đó, trong thực tế thuật tố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 TỐ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 tốn perceptron. Mạng neural của chúng ta sẽ có cấu trúc như sau :

1
a

2


o

3

b

4
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 ngun
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


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC


GVHD: GS.TS HỒ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à w0a , w1a , w2a , w3a , w4a. Trong đó, chẳng hạn
như w2a là trọng số của "cung" nối từ neural nhập 2 đến a; w0a là trọng số tự do của
neural a. Các trọng số của neural b lần lượt là : w0b , w1b , w2b , w3b , w4b. Các trọng
số của neural O là : w0O , waO , wbO.
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 σ (∑xiwi) (trong đó xi là các giá trị truyền đến neural và w i là
trọng số ứng với giá trị xi) . Cụ thể hơn, nếu gọi Oa, Ob, OO lần lượt là các giá trị
xuất của neural a, b và O thì :
Oa = σ(w0a + x1×w1a + x2×w2a + x2×w2a + x2×w2a )
Ob = σ(w0b + x1×w1b + x2×w2b + x2×w2b + x2×w2b )
OO = σ(w0O + Oa×waO + Ob×wbO)
* 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 :
w0a = 0.0; w1a = 0.1; w2a = -0.1; w3a = -0.1; w4a = 0.0
w0b = 0.0; w1b = - 0.1; w2b = -0.2; w3b = 0.1; w4a = -0.1
w0O = 0.1; waO = 0.2; wbO = -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



CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒ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à :
Oa = 0.5050 ; Ob = 0.5695;

OO = 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 = OO × (1 - OO) × (EO- OO)
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 = Oa × (1 - Oa) × waO × δO
δb = Ob × (1 - Ob) × wbO × δO
Trong trường hợp có nhiều hơn một nút xuất O1, ..., On 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 = Ob × (1 - Ob) × ∑ wbOi × δ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


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒ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
w0a = w0a + r × δa × 1

= -0.0007

w1a = w1a + r × δa × x1

= 0.0969

w2a = w2a + r × δa × x2


= -0.1021

w3a = w3a + r × δa × x3

= -0.1009

w4a = w4a + r × δa × x4

= -0.0001

w0b = w0b + r × δb × 1

= 0.0003

w1b = w1b + r × δb × x1

= -0.0985

w2b = w2b + r × δb × x2

= 0.2010

w3b = w3b + r × δb × x3

= 0.1004

w4b = w4b + r × δb × x4

= -0.0999


Neural ẩn b

Neural xuất O
w0O = w0O + r × δO × 1

HVTH: NGUYỄN THỊ NAM

= 0.0867

TRANG 14


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒNG KIẾM

waO = waO + r × δO × Oa

= 0.1933

wbO = wbO + r × δO × Ob

= -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


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒ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 tố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



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 q đắ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 C1 và C2. 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
1
2
3
4
5
6
7
8
9
10


HVTH: NGUYỄN THỊ NAM

475 Hz
0.958
1.043
1.907
0.780
0.579
0.003
0.001
0.014
0.007
0.004

557Hz
0.003
0.001
0.003
0.002
0.001
0.105
1.748
1.839
1.021
0.214

TRANG 16

Chất lượng
Yes

Yes
Yes
Yes
Yes
No
No
No
No
No


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒNG KIẾM

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 q 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) w0, w1, w2.
- 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 w0 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,u1,u2,
…,un)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=(w0,w1,wn)T trong đó w0 là đại lượng bù trừ
(lệch).
Đầu ra của mạng được tính tốn như sau: y= f(wTu)

HVTH: NGUYỄN THỊ NAM

TRANG 17


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒ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 tốn hội tụ perceptron. Nếu hai lớp C 1 và C2 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:
wtu ≥ 0 thì mọi vector đầu vào u theo lớp C1



wtu < 0 thì mọi vector đầu vào u theo lớp C2


Giả sử rằng Perceptron có m đầu vào, với cơng thức w Tu=0, trong tọa độ không
gian m chiều u1, u2, …, um, đị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, uk với (k=1,2,…,K) được
phân loại chính xác bởi vector trọng số wk được tính tại lần lặp thứ k của thuật tốn,
khơng có điều chỉnh wk được thể hiện bằng:
wk+1 = wk nếu wkT uk ≥ 0 và uk theo lớp C1



wk+1 = wk nếu wkT uk < 0 và uk theo lớp C2
Ngược lại, trọng số của các perceptron được cập nhật theo các qui tắc :
wk+1= wk - n kuk nếu wkT uk ≥ 0 và uk theo lớp C2 

HVTH: NGUYỄN THỊ NAM

TRANG 18





CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒNG KIẾM

Hình

2: Sau hai lần thay

đổi góc lớn

hơn 900 và wTu=|w||

u| cos()
wk+1= wk + kuk nếu
wkT uk < 0 và uk theo lớp C1

(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 tố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:
wTu = |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 wTu đã đú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


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒ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 C2. Đầu
tiên kiểm tra đầu vào của perceptron:
uT = (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à:
wT = (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ố:
wT u = (1,0.958,0.003)(0.5,0.5,0.5)T
= 0.981

(10)
(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 tốn bằng tay qua hai lần tồ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


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒ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à:
wT = (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.977u1 – 0.425u2 = 0
Tương đương với:

u2 = (0.977/0.425)u1

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(wTu)
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 tốn giải thuật
u

T

(1,0.958,0.003
)
(1,1.043,0.001
)
(1,1.907,0.003
)
(1,0.780,0.002
)

Chất
lượn

g

uu

Cơn
g
thức

Cập nhật
wT

(0.5,0.5,0.5)

1

0.981

(3)

(0.5,0.5,0.5)

(0.5,0.5,0.5)

1

1.022

(3)

(0.5,0.5,0.5)


(0.5,0.5,0.5)

1

1.455

(3)

(0.5,0.5,0.5)

(0.5,0.5,0.5)

1

0.891

(3)

(0.5,0.5,0.5)

w

T

HVTH: NGUYỄN THỊ NAM

T

TRANG 21



CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

(1,0.579,0.001
)
(1,0.003,0.105
)
(1,0.001,1.748
)
(1,0.014,1.839
)
(1,0.007,1.021
)
(1,0.004,0.214
)

GVHD: GS.TS HỒNG KIẾM

(0.5,0.5,0.5)

1

0.790

(3)

(0.5,0.5,0.5)

(0.5,0.5,0.5)


0

0.554

(5)

(0,0.499,0.448)

(0,0.499,0.448)

0

0.783

(5)

(-0.5,0.498,-0.427)

(-0.5,0.498,-0.427)

0

-1.277

(3)

(-0.5,0.498,-0.427)

(-0.5,0.498,-0.427)


0

-0.932

(3)

(-0.5,0.498,-0.427)

(-0.5,0.498,-0.427)

0

-0.589

(3)

(-0.5,0.498,-0.427)

Lần 2
uT

wT

(1,0.958,0.003
)
(1,1.043,0.001
)
(1,1.907,0.003
)

(1,0.780,0.002
)
(1,0.579,0.001
)
(1,0.003,0.105
)
(1,0.001,1.748
)
(1,0.014,1.839
)
(1,0.007,1.021
)
(1,0.004,0.214
)

(-0.5,0.498,-0.427)

Chất
lượn
g
1

(0,0.977,-0.425)

II.

-0.024

Cơn
g

thức
(6)

1

1.019

(3)

(0,0.977,-0.425)

(0,0.977,-0.425)

1

1.862

(3)

(0,0.977,-0.425)

(0,0.977,-0.425)

1

0.761

(3)

(0,0.977,-0.425)


(0,0.977,-0.425)

1

0.565

(3)

(0,0.977,-0.425)

(0,0.977,-0.425)

0

-0.042

(3)

(0,0.977,-0.425)

(0,0.977,-0.425)

0

-0.742

(3)

(0,0.977,-0.425)


(0,0.977,-0.425)

0

-0.768

(3)

(0,0.977,-0.425)

(0,0.977,-0.425)

0

-0.427

(3)

(0,0.977,-0.425)

(0,0.977,-0.425)

0

-0.087

(3)

(0,0.977,-0.425)


w Tu

Cập nhật
wT
(0,0.977,-0.425)

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


CHUYÊN ĐỀ: CÔNG NGHỆ TRI THỨC

HVTH: NGUYỄN THỊ NAM

GVHD: GS.TS HOÀNG KIẾM

TRANG 23


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒ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


CHUN ĐỀ: CƠNG NGHỆ TRI THỨC

GVHD: GS.TS HỒNG KIẾM

Hình 8: Ví dụ về sáu hàm kích hoạt
Ba biểu thức tố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 tố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 tố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


×