Tải bản đầy đủ (.pdf) (41 trang)

Luận văn thạc sĩ công nghệ thông tin Sử dụng mạng neural trong việc dự đoán kết quả đậu đại học

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 (1.13 MB, 41 trang )



LỜI CAM ĐOAN

Tôi xin cam đoan đề tài khoa học “Sử dụng mạng neural trong việc dự
đoán kết quả đậu đại học” này là công trình nghiên cứu của bản thân tôi. Các số
liệu và kết quả nghiên cứu trong luận văn này là trung thực, được trích dẫn từ các
tài liệu tham khảo như đã trình bày trong luận văn và đã được giáo viên hướng dẫn
khoa học thông qua nội dung và đồng ý cho ra bảo vệ trước hội đồng khoa học.
Người thực hiện luận văn


Thái Trung Hải

























MỤC LỤC
Trang phụ bìa
Lời cam đoan
Mục lục
Danh mục các từ viết tắt
Danh mục các hình vẽ
MỞ ĐẦU 1
1. Lời mở đầu 1
2. Mục tiêu và nội dung của đề tài 1
Chƣơng I. TỔNG QUAN VỀ MẠNG NEURAL 3
1.1. Giới thiệu chung về mạng Neural sinh học 3
1.2. Neural nhân tạo 4
1.2.1. Định nghĩa 4
1.2.2. Mô hình Neural 4
1.2.2.1. Mô hình cấu trúc một Neural với đại lượng vô hướng 4
1.2.2.2. Cấu trúc một Neural với vectơ nhập 5
1.3. Mạng Neural nhân tạo 6
1.3.1. Định nghĩa 6
1.3.2. Mô hình mạng nhiều lớp Neural 7
1.3.3. Một số chức năng của mạng neural nhân tạo 7
1.3.3.1. Chức năng phân loại mẫu 7
1.3.3.2. Học và tổng quát hóa 7
1.4. Kiến trúc mạng neural 8
1.4.1. Kiến trúc mạng neural nhân tạo 8

1.4.2. Các tầng của ANN 8
1.4.3. Các dạng mạng neural của một ANN 9
1.5. Hoạt động của một mạng neural 9
1.6. Các phương pháp học trong ANN 10
1.6.1. Học có giám sát (Supervised Learning) 10
1.6.2. Học không có giám sát (Unsupervised Learning) 12
1.6.3. Học tăng cường (Hydrid Learning) 12
Chƣơng II. GIỚI THIỆU MẠNG NEURAL ĐA LỚP TRUYỀN THẲNG VÀ
GIẢI THUẬT LAN TRUYỀN NGƢỢC 13


2.1. Tổng quan về mạng neural đa lớp truyền thẳng (Multilayer Perceptrons -
MLP) 13
2.2. Kiến trúc mạng 13
2.3. Mạng lan truyền ngược (Neural Backpropagation) 14
2.4. Các kỹ thuật cải tiến thuật toán lan truyền ngược 17
2.4.1. Khởi tạo và cố định tốc độ học (Fixed calculation of the learning rate) 17
2.4.2. Giảm tốc độ học theo quá trình học (Decreasing learning rate) 17
2.4.3. Điều chỉnh tốc độ học theo mỗi mẫu luyện (Learning rate adaptation for
each training pattern) 17
2.4.4. Tiến hóa tốc độ học (Evolutionary adapted learning rate) 18
2.4.5. Điều chỉnh tốc độ học bằng thay đổi tín hiệu gradient (Learning rate
adaptation by sign changes) 18
2.4.6. Ngăn lỗi bão hòa (Error Saturation Prevention) 19
Chƣơng III: ỨNG DỤNG MẠNG NEURAL XÂY DỰNG CHƢƠNG TRÌNH
DỰ ĐOÁN ĐIỂM VÀ KHỐI THI 23
3.1. Phát biểu bài toán 23
3.2. Phân tích bài toán 23
3.3. Giải quyết bài toán 24
3.3.1. Xây dựng mạng neural 24

3.3.2. Xây dựng chương trình 25
3.4. Chương trình thực nghiệm 26
3.4.1. Quá trình huấn luyện mạng 26
3.4.2. Hệ thống chương trình 28
3.4.2.1. Giao diện chương trình 28
3.4.2.2. Chạy chương trình 29
3.4.2.3. Một số kết quả dự đoán 31
3.4.3.Tính độ chuẩn xác của chương trình 32
3.4.3.1. Phương pháp tính 32
3.4.3.2. Kết quả tính độ chuẩn xác của chương trình 33
3.4.3.3. Biểu đồ so sánh kết quả dự đoán 34
KẾT LUẬN 35
TÀI LIỆU THAM KHẢO
PHỤ LỤC


DANH MỤC CÁC TỪ VIẾT TẮT

ANN: Artificial Neural Networks
BP: Backpropagation
ESP: Error Saturation Prevention
GD&ĐT: Giáo dục và đào tạo
MLP: Mutilayer Perceptron
PSP: Post Synapic Potential function
THPT: Trung học phổ thông



























DANH MỤC CÁC HÌNH VẼ

Hình 1.1. Mô hình neural sinh học . 3
Hình 1.2. Cấu trúc một neural với đầu vào vô hướng 5
Hình 1.3. Cấu trúc một neural với vectơ nhập 5
Hình 1.4. Một lớp gồm nhiều neural . 5
Hình 1.5. Mô hình mạng nhiều lớp neural . 7
Hình 1.6. Ví dụ một ANN với một tầng ẩn . 8
Hình 1.7. Cấu tạo một neural 9

Hình 1.8. Mô hình hóa mạng neural 10
Hình 1.9. Sơ đồ khối mô tả luật học có giám sát 11
Hình 2.1. Các giá trị vào – ra tại một nút . 15
Hình 3.1. Neural nhân tạo 24
Hình 3.2. Mạng neural nhân tạo 24
Hình 3.3. Lưu đồ hoạt động của hàm huấn luyện 25
Hình 3.4. Giao diện giới thiệu chương trình 28
Hình 3.5. Giao diện màn hình chạy khi huấn luyện 30
Hình 3.6. Giao diện nhập thông tin dự đoán 30
Hình 3.7. Giao diện kết quả chương trình sau khi dự đoán . 31
Hình 3.8. Giao diện chương trình dự đoán file năm 2013 32
Hình 3.9. Biểu đồ so sánh kết quả dự đoán điểm thi tốt nghiệp . 34
Hình 3.10. Biểu đồ so sánh kết quả dự đoán điểm thi đại học 34






1
MỞ ĐẦU

1. Lời mở đầu
Giáo dục và đào tạo giữ vai trò đặc biệt cần thiết đối với sự phát triển của
mỗi con người và của cả xã hội. GD&ĐT được xem là quốc sách hàng đầu của
Đảng và Nhà nước ta trong thời kì đổi mới. Nghị quyết hội nghị lần thứ II Ban chấp
hành Trung ương khóa VIII đã nhấn mạnh: Thực sự coi giáo dục – đào tạo là quốc
sách hàng đầu. Nhận thức sâu sắc giáo dục – đào tạo cùng với khoa học công nghệ
là nhân tố quyết định tăng trưởng kinh tế và phát triển xã hội. Đầu tư cho giáo dục –
đào tạo là đầu tư cho phát triển.

Thật vậy. Bước vào thế kỉ XXI, việc học và việc lựa chọn nghề nghiệp trong
xã hội có những chuyển biến nhiều so với giai đoạn trước đây. Cuộc cách mạng
khoa học và công nghệ đang tạo điều kiện để nhân loại tiến từ nền kinh tế công
nghiệp sang nền kinh tế tri thức. Trong hoàn cảnh đất nước ta hiện nay, để đạt được
mục tiêu trên, chúng ta cần một lực lượng lao động có đủ trình độ năng lực và làm
chủ được công nghệ kĩ thuật của đất nước, đủ điều kiện đảm bảo hoàn thành tốt
công việc trong mọi lĩnh vực của đời sống xã hội.
Vì vậy việc nâng cao trình độ học vấn, trình độ văn hóa cho nhân dân, đặc
biệt là việc định hướng bậc học và định hướng nghề nghiệp cho thế hệ trẻ hiện nay,
chủ nhân tương lai của đất nước, cần được quan tâm hơn bao giờ hết. Thế nhưng
hiện nay việc cân đối giữa các ngành nghề trong xã hội là một vấn đề nan giải. Vì
việc lựa chọn cho mình một nghề nghiệp phù hợp luôn được coi là một trong nhiều
yếu tố quan trọng quyết định đến tương lai mỗi con người.
Luận văn với đề tài “Sử dụng mạng neural trong việc dự đoán kết quả đậu
đại học” đi sâu nghiên cứu tìm hiểu một số vấn đề về mạng neural và giải thuật lan
truyền ngược để xây dựng chương trình giúp các nhà quản lý dự đoán trước tỉ lệ đậu
đại học ở trường mình từ đó các nhà quản lý có thể đề ra phương hướng và kế
hoạch nâng cao chất lượng dạy và học ở các trường THPT trong những năm tiếp
theo.
2. Mục tiêu và nội dung của đề tài
Mục tiêu của luận văn là:
2
- Tìm hiểu cơ sở lý thuyết của các phương pháp mạng neural (ANN), giải
thuật lan truyền ngược (BP), kết hợp giải thuật lan truyền ngược và mạng neural
(BP – ANN)
- Thử nghiệm ứng dụng các phương pháp ANN, BP, BP – ANN giải bài toán
dự đoán điểm thi tốt nghiệp và điểm thi đại học của từng học sinh, đồng thời từ số
điểm đó ta có thể dự đoán học sinh có thể đậu các trường đại học nào.
Với hai mục tiêu trên cấu trúc của luận văn gồm 3 chương với các nội dung
cơ bản sau:

Chƣơng I. Tổng quan về mạng neural: Giới thiệu tổng quan về mạng neural,
kiến trúc, chức năng của mạng neural, hoạt động của mạng neural và các phương
pháp học trong mạng neural.
Chƣơng II. Giới thiệu về mạng neural đa lớp truyền thẳng và giải thuật lan
truyền ngược.
Chƣơng III. Ứng dụng mạng neural xây dựng chương trình dự đoán điểm và
khối thi đại học
Mặc dù đã hết sức nỗ lực, song do thời gian và kinh nghiệm nghiên cứu khoa
học còn hạn chế nên không thể tránh khỏi những thiếu sót. Em rất mong nhận được
sự góp ý của các thầy cô và bạn bè đồng nghiệp để hiểu biết của mình ngày một
hoàn thiện hơn.
Qua luận văn này em xin chân thành cảm ơn: TS. Phạm Trần Vũ – Khoa
Khoa học và kỹ thuật máy tính, trường Đại học Bách Khoa TP. Hồ Chí Minh đã chỉ
dẫn tận tình giúp em có thể hoàn thành luận văn này. Em xin chân thành cảm ơn các
Thầy cô trong khoa công nghệ thông tin đã có những góp ý hữu ích giúp em hoàn
thành bản luận văn này. Và em cũng vô cùng cảm ơn sự giúp đỡ và động viên khích
lệ của người thân trong gia đình em, bạn bè và đồng nghiệp trong suốt quá trình
thực hiện luận văn này.




3

Chƣơng I. TỔNG QUAN VỀ MẠNG NEURAL
1.1. Giới thiệu chung về mạng Neural sinh học
Bộ não người chứa khoảng 10
11
tế bào thần kinh (còn gọi là neural) và mỗi
kết nối có 10

4
neural nên con người có khả năng đưa ra những quyết định phức tạp
và nhanh chóng. Mỗi tế bào thần kinh gồm 3 thành phần chính: soma, dendrites và
axon[4].

Nguồn[Ben Krose and Patrick van der Smagt, 1996]
Hình 1.1. Mô hình neural sinh học
Trong đó :
- Các soma là thân của neural.
- Các dendrites là các dây mảnh, dài, gắn liền với soma, chúng truyền dữ liệu (dưới
dạng xung điện thế) đến cho soma xử lý. Bên trong soma các dữ liệu đó được tổng
hợp lại. Có thể xem gần đúng sự tổng hợp ấy như là một phép lấy tổng tất cả các dữ
liệu mà neural nhận được.
- Một loại dây dẫn tín hiệu khác cũng gắn với soma là các axon. Khác v ới
dendrites, axons có khả năng phát các xung điện thế, chúng là các dây dẫn tín hiệu
từ neural đi các nơi khác. Chỉ khi nào điện thế trong soma vượt quá một giá trị
ngưỡng nào đó (threshold) thì axon mới phát một xung điện thế, còn nếu không thì
nó ở trạng thái nghỉ.
- Axon nối với các dendrites của các neural khác thông qua những khớp nối đặc biệt
gọi là synapse. Khi điện thế của synapse tăng lên do các xung phát ra từ axon thì
synapse sẽ nhả ra một số chất hoá học (neurotransmitters); các chất này mở "cửa"
trên dendrites để cho các ions truyền qua. Chính dòng ions này làm thay đổi điện
thế trên dendrites, tạo ra các xung dữ liệu lan truyền tới các neural khác.
4
1.2. Neural nhân tạo
1.2.1. Định nghĩa
Neural nhân tạo (ANN - Artificial Neural Networks)[4,7] là sự mô phỏng lại
một cách đơn giản nhất của neural sinh học. Mỗi một neural nhân tạo được tạo ra sẽ
có nhiệm vụ tổng hợp các thông tin đầu vào và chuyển đổi thành thông tin một tín
hiệu ở đầu ra.

Mỗi neural nhân tạo có thể có nhiều đầu vào nhưng chỉ có một đầu ra. Mỗi đầu
vào được gắn liền với một hệ số nhân bất kì nào đó gọi chung là trọng số (weight).
Các trọng số có ý nghĩa hết sức quan trọng, được ví như mức liên kết tại các khớp
nối trong neural sinh học. Trọng số có thể là các số dương hoặc âm, giống như các
khớp nối kích thích và khớp nối ức chế trong các neural sinh học .
Mỗi neural nhân tạo có một giá trị ngưỡng. Chức năng đầu vào của mỗi
neural là tính tổng các tín hiệu đầu vào với các trọng số liên kết đồng thời kết hợp
với giá trị ngưỡng để tạo ra một giá trị nhất định là tín hiệu đầu vào net input. Sự kết
hợp này được thực hiện bằng một tổng hay theo một số tài liệu gọi là hàm PSP (Post
Synapic Potential function) - hàm thế sau khớp nối.
Mỗi neural nhân tạo cho ra một giá trị ở đầu ra, và giá trị đầu ra này phụ
thuộc vào hàm truyền dẫn (transfer function). Hàm này sẽ nhận tín hiệu đầu vào net
input sau đó tính toán và cho ra kết quả là đầu ra của neural.
1.2.2. Mô hình Neural
Mạng neural nhân tạo gồm hai thành phần. Phần thứ nhất là các nút (đơn vị xử
lý, neural) và phần thứ hai là các liên kết giữa chúng được gán một trọng số bất kỳ
đặc trưng thể hiên mật độ liên kết của mạng.
1.2.2.1. Mô hình cấu trúc một Neural với đại lƣợng vô hƣớng
Đầu vào một neural có thể là các đại lượng vô hướng (p) hoặc có hướng, các
đại lượng này được nhân với các trọng số (w) tương ứng của nó mà trên từng neural
có sẵn và có thể cộng thêm một ngưỡng (b) (bias) (thường b=1). Ta có thể tự điều
chỉnh các trọng số, ngưỡng trên các neural để đạt được giá trị mong muốn nào đó,
quá trình hiệu chỉnh đó gọi là huấn luyện mạng[7].


5









Nguồn[tác giả]
Hình 1.2. Cấu trúc một Neural với ngõ vào vô hướng
1.2.2.2. Cấu trúc một Neural với vectơ nhập
Một neural với vector nhập[7] p = [p
1
, p
2
,…., p
R
], trọng số W = w
1,1
, w
1,2
, ….
W
1,R
, ngưỡng b và hàm truyền f. Tổng đối số và ngưỡng tạo ở ngõ ra n là:
bpwpwpwn
RR

,122,111,1


Hay
bpwn 







Nguồn[tác giả]
Hình 1.3. Cấu trúc một neural với vectơ nhập
Tuy nhiên, khi một lớp gồm nhiều neural ta sẽ có công thức sau:

Nguồn[Robert J.Challkoff, 1997]
Hình 1.4. Một lớp gồm nhiều neural
Trong đó:
+ R : Số phần tử của vector đầu vào
a = F(wp)
Neural không ngưỡng
F(x)
P
W
n
a
a = F(wp+b)
Neural có ngưỡng
F(x)
P
W
n
a
b
F(x)
n

a = F(wp+b)
Neural có ngưỡng
Pi
Wij
a
b
6
+ S : Số neural trong lớp
+ a : vector ngõ ra của lớp neural
+ Ma trận trọng số W:

1.3. Mạng Neural nhân tạo
1.3.1. Định nghĩa
Mạng neural nhân tạo[4,7] là sự liên kết giữa các neural nhân tạo với nhau.
Mỗi liên kết giữa các neural đi kèm theo một trọng số nào đó mang một tính đặc
trưng là tính kích thích hay ức chế giữa các neural. Các neural còn được gọi là các
nút (node). Các nút này được sắp xếp theo một thứ tự nhất định trong mạng và được
chia thành ba lớp. Lớp đầu vào (input player), lớp đầu ra (output player) và lớp ẩn (hiden
layer).
Chức năng của mạng được xác định bởi: cấu trúc mạng, quá trình xử lý bên
trong của từng neural, và mức độ liên kết giữa các neural.
Mức độ liên kết giữa các neural được xác định thông qua quá trình học của
mạng (quá trình huấn luyện mạng). Có thể xem các trọng số là các phương tiện để
lưu trữ thông tin dài hạn trong mạng neural. Nhiệm vụ của quá trình huấn luyện mạng
là cập nhật các trọng số khi có thông tin về các mẫu học.
Một số định nghĩa về mạng neural[7]:
Mạng neural là một hệ thống gồm nhiều phần tử xử lý hoạt động song song.
Chức năng của nó được xác định bởi cấu trúc liên kết giữa các phần tử xử lý, quá trình
xử lý tại mỗi phần tử xử lý.
Một mạng neural là một bộ xử lý song song và đồ sộ, có xu hướng tự nhiên

lưu trữ các thông tin, các tri thức và dựa trên kinh nghiệm đã tích lũy được để tạo ra
được các tri thức mới. Nó tương tự với bộ não ở hai khía cạnh:
- Tri thức có được thông qua quá trình học.
- Các giá trị liên kết giữa các neural được dùng như một phương tiện lưu trữ
thông tin.
Một mạng neural, là một tập hợp các tế bào vật lý, được liên kết với nhau
7
nhằm mục đích thu thập, lưu trữ và sử dụng tri thức, kinh nghiệm một cách tốt nhất để
có thể tạo ra được các tri thức mới tốt nhất.
1.3.2. Mô hình mạng nhiều lớp Neural

Nguồn[Robert J.Schallkoff, 1997]
Hình 1.5. Mô hình mạng nhiều lớp neural
Mạng có nhiều lớp, mỗi lớp có một ma trận W, một ngưỡng b và một vector
ngõ ra a. Thông thường giá trị ra của một lớp là giá trị vào của lớp tiếp theo. Mỗi
lớp trong mạng đảm nhận vai trò khác nhau, lớp cho kết quả ở đầu ra của mạng
được gọi là lớp ngõ ra (output layer), tất cả các lớp còn lại gọi là lớp ẩn (hidden
layer). Mạng đa lớp có khả năng xử lý rất lớn.
1.3.3. Một số chức năng của mạng neural nhân tạo
1.3.3.1. Chức năng phân loại mẫu
Phân loại mẫu[1,7] là sự phân chia các mẫu ra thành các nhóm khác nhau,
các nhóm này sẽ có chung một số đặc điểm nhất định nào đó. Mạng neural có thể tự
phân lại các mẫu đầu vào và tạo ra các mẫu đầu ra có phân loại. Khi cho một mẫu
đầu vào thì mạng neural sẽ tạo ra được một mẫu đầu ra đúng với phân loại của
chúng. Ta có thể nói neural là một bộ phân loại mẫu. Điểm khác của mạng neural
với các bộ phân loại mẫu khác là khả năng tự học và tổng quát hóa từ các mẫu đã có.
1.3.3.2. Học và tổng quát hóa
Học là việc mạng neural thu thập được các thông tin, các mẫu, các tri thức ở
đầu vào và các thông tin, các mẫu, các tri thức tương ứng ở đầu ra và mạng có thể học
để phân loại được chúng cho thật là chính xác.

Tổng quát hóa là mạng không chỉ nhận dạng chính xác được các mẫu của chung
đã học, mà từ các mẫu đã học phải rút ra những đặc tính riêng của từng mẫu và tạo ra
một tri thức mới từ đó mạng có thể tự nhận biết và phân loại được các mẫu mới mà
8
chưa từng được học.
Chức năng này của mạng cho thấy được tính “linh động” của mạng neural nó
có thể giải quyết một số vấn đề tính toán hoặc suy luận khi thiếu thông tin, hoặc có rất
ít thông tin hay thông tin không đầy đủ. Quan trọng nhất là phải xây dựng được một
mô hình mạng thật tốt và phải có một phương pháp học cho thật phù hợp với tình hình
thực tế.
Không những vậy mạng neural còn có khả năng được học để trở thành hàm
liên tục bất kỳ có giá trị xấp xỉ[1,7].
1.4. Kiến trúc mạng neural
1.4.1. Kiến trúc mạng neural nhân tạo
Kiến trúc mạng neural nhân tạo[3] được xác định bởi:
- Số lượng các tín hiệu đầu vào/ đầu ra
- Số lượng tầng trong mạng
- Số lượng các neural trong mỗi tầng
- Số lượng các trọng số (các liên kết) đối với mỗi neural
- Cách liên kết giữa các neural (trong một tầng hoặc giữ các tầng) với nhau.
- Những neural nhận các tín hiệu điều chỉnh lỗi.
1.4.2. Các tầng của ANN
- Một tầng đầu vào (input layer): tiếp nhận các tín hiệu đầu vào.
- Một tầng đầu ra (output layer): phát tín hiệu ra khi mạng cho ra kết quả “đáp lại”
tín hiệu nhận từ lớp đầu vào.
- Tầng ẩn (hidden layer): đóng vai trò như bộ lọc “thông minh”.









Nguồn[tác giả]
Hình 1.6. Ví dụ một ANN với 1 tầng ẩn
Input
Hidden layer
bias
Hidden output
Output
9
1.4.3. Các dạng mạng neural của một ANN
- Mạng 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 neural của tầng kế tiếp.
- Mạng lan truyền tiến (feedforward 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).
- Mạng phản hồi (feedback network): nếu 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).
- Mạng hồi quy (recurrent network): nếu các mạng phản hồi có các vòng lặp kín
(closed loops).
1.5. Hoạt động của một mạng neural
Mỗi neural là một tế bào đặc biệt, nó có khả năng truyền các tính hiệu. Một
neural có cấu trúc rễ ngõ vào, thân tế bào và cấu trúc rễ ngõ ra (sợi thần kinh). Các
sợi thần kinh của một tế bào kết nối với các tế bào khác thông qua synapse (khớp
thần kinh). Khi một neural kích hoạt nó tạo ra xung điện hóa học dọc theo sợi thần
kinh, tín hiệu này đi qua các synapse đến các neural khác và tiếp tục bị kích hoạt.
Neural chỉ hoạt động khi tất cả các tín hiệu nhận được ở thân tế bào thông qua rễ
ngõ vào vượt một mức nào đó (gọi là ngưỡng hoạt động). Cường độ tín hiệu thu
được của neural phụ thuộc vào độ nhạy của synapse và có thể thay đổi được cường

độ kết nối synapse thông qua việc học.






Nguồn[tác giả]
Hình 1.7. Cấu tạo 1 neural
Mỗi neural nhận dữ liệu đầu vào (từ dữ liệu gốc hoặc từ các neural khác
trong mạng). Mỗi kết nối đến ngõ vào được gán một cường độ (hay trọng số). Các
trọng số này có thể nhận giá trị âm, khi đó các synapse có tác dụng kiềm chế hơn là
kích hoạt neural. Tín hiệu được truyền qua hàm kích hoạt (hay gọi là hàm truyền)
tạo ra giá trị ngõ ra neural.
Xi
Wi
F(net)
10

Nguồn[TS. Vũ Đức Lung, 2012]
Hình 1.8. Mô hình hóa mạng Neural
1.6. Các phƣơng pháp học trong ANN
Mạng neural nhân tạo được mô phỏng theo việc xử lý thông tin của bộ não
người, do vậy đặc trưng cơ bản của mạng là có khả năng học, khả năng tái tạo các
hình ảnh và dữ liệu khi đã học. Trong trạng thái học thông tin được lan truyền theo
hai chiều nhiều lần để làm thay đổi các trọng số nhiều lần để đạt được trọng số tốt
nhất có thể cho ra các mẫu dữ liệu tương đương đã học. Có 3 kiểu học chính, mỗi
kiểu học tương ứng với một nhiệm vụ học mang tính chất trừu tượng. Đó là học có
giám sát (có mẫu), học không giám sát và học tăng cường. Thông thường các loại
kiến trúc mạng nào cũng có thể dùng được cho các nhiệm vụ.

1.6.1. Học có giám sát (Supervised Learning)
Một thành phần không thể thiếu của phương pháp này[1,3] là sự có mặt của
một người hướng dẫn(ở bên ngoài mạng). Người hướng dẫn học này có nhiệm vụ
tìm kiếm và tập hợp tất cả tri thức ở bên ngoài môi trường. Các tri thức này lá các
cập thông tin đầu vào và thông tin đầu ra tương ứng. Hệ thống học (ở đây là mạng
neural) sẽ học dựa vào các cập dữ liệu đầu vào và đầu ra có trước này bằng cách
thay đổi các trọng số và các ngưỡng để tạo nên một ánh xạ có khả năng ánh xạ các
đầu vào thành các đầu ra mong muốn. Sự thay đổi các trọng số và ngưỡng này được
tiến hành nhờ việc so sánh giữa đầu ra thực sự của mạng và đầu ra mong muốn.
Trong việc học có giám sát được cung cấp một tập hợp các mẫu chuẩn
(training set) thể hiện mối quan hệ giữa thông tin đầu vào và thông tin đầu ra của mạng
{p
1
,
t
1
} , { p
2
, t
2
} , , {p
q
, t
q
}
11
với pi là một đầu vào của mạng và ti là tương ứng với đầu ra thực đã thu thập mà đầu
ra của mạng muốn đạt được sau quá trình học. Khi dữ liệu đầu vào được đưa vào
mạng thì ta thu được đầu ra của mạng và được so sánh với đầu ra thu thập có trước.
Sai số giữa đầu ra của mạng được so sánh với đầu ra thu thập có trước được sử

dụng để điều chỉnh các trọng số và hệ số bias của mạng sao cho di chuyển đầu ra của
mạng về gần hơn với đầu ra đúng đã có thu thập được.
Có hai cách sử dụng tập mẫu học, là học lần lượt từng mẫu một cho thành
thạo rồi chuyển sang mẫu khác, hoặc học tất cả các mẫu cùng một lúc cho đến khi
thành thạo các mẫu.









Nguồn[tác giả]
Hình 1.9. Sơ đồ khối mô tả luật học giám sát
Để đánh giá sự chính xác giữa vectơ đầu ra của mạng neural và đầu ra đúng
thực tế người ta dùng hàm để đánh giá sai số (error function). Hàm sai số phổ thường
được dùng nhất là hàm tổng bình phương sai số (sum square error function), hàm
này có mục đích tính tổng bình phương các sai số tại đầu ra của các neural lớp ra.
Một khái niệm khác liên quan đến vấn đề đánh giá sai số là mặt sai số (error
surface). Mỗi một trọng số và hệ số bias của mạng tương ứng với một chiều trong
không gian, giả sử mạng có tất cả N trọng số và hệ số bias, thì chiều thứ nhất N+1 biểu
diễn sai số của mạng. Mỗi một bộ trọng số và hệ số bias, thì chiều thứ N+1 biểu diễn
sai số của mạng. Mỗi một bộ trọng số và hệ số bias của mạng sẽ ứng với một điểm của
mặt sai số. Mục tiêu của luật học là tìm được bộ trọng số và hệ số bias ứng với điểm
thấp nhất (điểm cực tiểu) của mặt đa chiều này.
Mạng neural
Tính sai số
Hiệu chỉnh

Đầu ra của mạng
Đầu ra đúng
Đầu vào của mạng
12
1.6.2. Học không có giám sát (Unsupervised Learning)
Trong học không có giám sát[1], ta được cho trước một số dữ liệu p và hàm
chi phí cần được cực tiểu hóa có thể là một hàm bất kỳ của dữ liệu p và đầu ra của
mạng, f – hàm chi phí được quyết định bởi phát biểu của bài toán. Phần lớn các ứng
dụng nằm trong vùng của các bài toán ước lượng như mô hình hóa thống kê, nén,
lọc, phân cụm.
1.6.3. Học tăng cƣờng (Hydrid Learning)
Các mẫu p thường không được tạo trước mà trong quá trình một agent tương
tác với môi trường thì tạo ra các mẫu dữ liệu p. Tại mỗi thời điểm t, agent thực hiện
hành động q
t
và môi trường tạo một quan sát m
t
với một chi phí tức thời C
t
, theo
một quy trình động nào đó (thường là không được biết). Mục tiêu là một kế hoạch
lựa chọn các hành động để làm cực tiểu hóa một chi phí lâu dài nào đó, nghĩa là chi
phí tích lũy mong đợi. Quy trình hoạt động của môi trường và chi phí lâu dài cho
mỗi kế hoạch thường không được biết, nhưng có thể ước lượng được. Mạng neural
nhân tạo thường được dùng trong học tăng cường như một phần của thuật toán toàn
cục. Các bài toán thường được giải quyết bằng học tăng cường là các bài toán điều
khiển, trò chơi và các nhiệm vụ quyết định tuần tự (sequential decision making)
khác[1].














13
Chƣơng II. GIỚI THIỆU MẠNG NEURAL ĐA LỚP TRUYỀN THẲNG VÀ
GIẢI THUẬT LAN TRUYỀN NGƢỢC
2.1. Tổng quan về mạng neural đa lớp truyền thẳng (Multilayer Perceptrons -
MLP)
Có nhiều mô hình mạng neural đã được nghiên cứu, trong đó mạng neural đa
lớp truyền thẳng với thuật toán lan truyền ngược là mô hình đơn giản và hay được
sử dụng nhất. Trong luận văn này, ta chỉ tìm hiểu và áp dụng mạng neural đa lớp
truyền thẳng với thuật toán lan truyền ngược.
ANN là mô hình học từ dữ liệu có trước dựa trên cơ chế tổ chức và xử lý
thông tin giống trong bộ não người. Thông qua quá trình học các mẫu dữ liệu trong
tập dữ liệu cho trước thu thập được, ANN tự thay đổi chính minh và càng lúc càng
tích lũy thêm nhiều kinh nghiệm để giải quyết tất cả các vấn đề.
ANN có thể ví nó như là một đồ thị định hướng có trọng số đặc biệt. Trong
đó các nút chứa các trọng số được phân vào các lớp. Lớp nhập có nhiệm vụ nhận
thông tin đầu vào, các lớp ẩn thì có nhiệm vụ thực hiện các biến đổi (tổng hợp, nén)
thông tin lan truyền qua các nút ẩn và kết quả đạt được của ANN sẽ được cho ra ở
lớp xuất. Bằng cách hiệu chỉnh trọng số ở các nút (giảm sai số giữa kết quả của
ANN với kết quả mong muốn trên các mẫu dữ liệu), ANN có thể học và đưa ra

được các quy luật từ các tập tập dữ liệu đã thu thập có trước (sai số trên tập dữ liệu
có thể rất nhỏ).
2.2. Kiến trúc mạng
Mạng Perceptron là mạng neural có kiến trúc truyền thẳng và đa lớp: có thể
có một hoặc nhiều lớp ẩn. Mỗi lớp trong mạng có một ma trận trọng số W, vectơ
bias b, vectơ net input n và vectơ đầu ra a. Để có thể phân biệt giữa các lớp trong
mạng với nhau người ta dùng thêm các chỉ số phụ cho mỗi biến. Do đó, W
i
để chỉ ma
trận trọng số của lớp i, b
i
chỉ vectơ bias của lớp i Hàm truyền f cũng có thể có
nhiều dạng không phải chỉ là hàm sigmoid
n
e
xf



1
1
)(
, các neural trong cùng một
lớp thường sẽ có cùng một hàm truyền.
Có cấu trúc mạng Perceptron có R đầu vào, có S
1
neural ở lớp thứ nhất, S
2

neural ở lớp thứ hai. Đầu ra của lớp thứ nhất là đầu vào của lớp thứ hai. Lớp thứ hai

có đầu vào là gồm S
1
phần tử trong vectơ ra a
1
, có ma trận w
1
với kích thước của ma
14
trận là S
2
x S
1
. Lớp cuối cùng đưa ra kết quả của cuối cùng của mạng gọi là lớp ra
(output). Các lớp còn lại trừ lớp đầu vào và lớp đưa ra kết quả cuối cùng của mạng
gọi là các lớp ẩn.
2.3. Mạng lan truyền ngƣợc (Neural Backpropagation)
Năm 1986, Rumelhart và McClelland giới thiệu thuật toán lan truyền ngược
(BP) cho mô hình mạng nhiều lớp. Mô hình mạng lan truyền ngược thường dùng có
dạng: một lớp nhập – một lớp ẩn – một lớp xuất. Giả sử cho một tập luyện K mẫu
{(x
i
,y
i
),…, (x
k
,y
k
) }, thuật toán lan truyền ngược cung cấp kỹ thuật hiệu chỉnh các
trọng số W
ij

trong mạng nhằm phân lớp các giá trị đầu vào một cách chính xác, hay
nói cách khác: mạng có thể “học” và “hiểu” được dữ liệu đưa vào.
Để đo lường sự trùng khớp giữa ánh xạ cần xây dựng với hàm đích cho trước
(hay nói cách khác là để đánh giá khả năng “học” của mạng) ta sử dụng sai số trung
bình bình phương E.
Cho tập mẫu gồm N mẫu {(X
k
,T)}={x
1
, x
2
, …, x
k
, t}
(n)
; n = 1, …, N;
Gọi Z = NN(X
k
) = {z
1
, z
2
, …, z
N
} là giá trị ước tính qua mạng neural, thì sai số
trung bình bình phương E được tính:
N
nn
E
N

n
tZ




1
2
)(
2
1
(1)
Trong trường hợp mô hình mạng neural là hàm phi tuyến, việc xác định được
tập trọng số W để mô hình đạt được sai số ít nhất là rất khó. Chính vì thế phương
pháp giảm gradient thường được sử dụng trong các trường hợp phức tạp này[1].
Phương pháp giảm gradient bao gồm các bước cơ bản sau:
B
1
: Chọn ngẫu nhiên một điểm x
0
trong không gian trọng số
B
2
: Tính độ dốc của mặt lỗi tại x
0

B
3
: Cập nhật các trọng số theo hướng dốc nhất của mặt lỗi
B

4
: Xem điểm này như điểm x
0
mới
Phương pháp này thực hiện lặp đi lặp lại từ bước 2 đến bước 4 cho đến khi
các giá trị của bộ trọng số tiếp cận được điểm thấp nhất trong mặt lỗi.
Biến thiên trọng số ở mỗi bước (bước t) sẽ được tính theo công thức:
1




tt
w
w
E
w

(2)
15
Với

,
là hai hằng số dương đặc trưng cho tốc độ học và moment của quá
trình học (giảm lỗi). Tuy nhiên có một số cải tiến cho phép thay đổi các hệ số

,

trong từng giai đoạn học, cũng như theo từng mẫu học để việc luyện mạng đạt hiệu
quả cao nhất[8].





Nguồn[tác giả]
Hình 2.1. Các giá trị vào – ra tại một nút
Nói tóm lại, thuật toán lan truyền ngược có thể được tóm tắt thành hai quá
trình chính: lan truyền tiến (forward), lan truyền ngược (backward).
Lan truyền tiến: là quá trình tính giá trị đầu ra {z
1
, z
2
, …, z
N
} dựa trên những
trọng số có sẵn. Giả sử tại một nút mạng như hình 2.1, giá trị xuất Z
j
được tính:
Z
j
= f(u); với u = x
1
.w
1j
+ x
2
.w
2j
+ … + x
n

.w
nj
+ w
0
(3)
Hàm f() được gọi là hàm truyền có dạng chữ S[1] nếu có các tính chất sau:
- Bị chặn
- Đơn điệu tăng
- Hàm liên tục trơn
Mọi hàm thỏa tính chất trên đều có thể sử dụng hàm truyền trong mạng[1].
Một số hàm thường được sử dụng trong mạng lan truyền ngược:
Hàm logistic:
u
e
uf



1
1
)(
(4)
Hàm hyperbol:
u
u
e
e
uh






1
1
)(
(5)
Hàm tang-hyperbol:
uu
uu
ee
ee
u




)tanh(
(6)
Hàm Linear (purelin) ƒ(x)= x (7)
Trong bốn hàm trên, hàm logistic được sử dụng phổ biến nhất. Khi các giá trị

Xi
Wij
Zj
16
{z
1
, z
2

, …, z
N
} được tính, giá trị sai số trung bình bình phương E sẽ được xác định.
Khi đó quá trình lan truyền ngược sẽ được tiến hành.
Lan truyền ngược: là quá trình cập nhật lại các trọng số mạng W dựa trên sai
số trung bình bình phương. Gọi w
t
là trọng số tại bước thứ t, công thức cập nhật
trọng số là:
ttt
www 
1
(8)
t
w
được tính theo công thức (2), công thức này cần xác định giá trị:
w
u
w
u
u
E
w
E













(9)
trong đó w là giá trị đưa vào hàm truyền f(u) tương ứng ở mỗi nút.
Với mạng đang xét là mạng 3 lớp, tại nút xuất z theo quy tắc chuỗi:
u
z
z
E
u
E








(10)
Đạo hàm của sai số trung bình bình phương và hàm logistic được tính:
tz
z
E




(11)
)1( zz
u
z



(12)
Vậy giá trị

tại nút xuất z được tính:
)1()( zztz
u
z
z
E
u
E
out












(13)
trong công thức (9) giá trị
i
x
w
u



(theo công thức 3) diễn tả sự thay đổi của u vào
sự thay đổi của trọng số w.
Do đó, giá trị
w
E


tại nút xuất được tính:








j
yzztz
zztz
w

E
)1()(
)1()(

tương tự cho nút ẩn thứ j:






ij
j
xpb
pb
w
E

với p = (z-t)z(1-z); b
j
là trọng số cung nối từ nút ẩn thứ j đến nút xuất.
Nói tóm lại, khi quá trình lan truyền ngược thực hiện, các trọng số sẽ được
trọng ngưỡng
các nút ẩn y
j

(14)
trọng ngưỡng
các nút nhập x
i


(15)
17
cập nhật sao cho sai số trung bình bình phương có xu hướng giảm dần. Quá trình
lan truyền tiến và lan truyền ngược được thực hiện xen kẽ nhiều lần cho đến khi đạt
được giá trị sai số trung bình bình phương E mong muốn.
2.4. Các kỹ thuật cải tiến thuật toán lan truyền ngƣợc
2.4.1. Khởi tạo và cố định tốc độ học (Fixed calculation of the learning rate)
Theo đề nghị của Harry A.C.Eaton và Tracy L.Oliver, tốc độ học và
moment[8] được khởi tạo theo công thức:
Tốc độ học:

22
2
2
1

5.1
m
NNN 


(16)
Moment:
9.0


chia mẫu luyện thành m nhóm con theo đặc tính riêng (những mẫu tương tự nhau
gom vào một nhóm con), với N
i

là số mẫu luyện trong nhóm con thứ i.
2.4.2. Giảm tốc độ học theo quá trình học (Decreasing learning rate)
Trong quá trình luyện, để tăng tốc độ học[8] Christian Darken và John
Moody đã giới thiệu một kỹ thuật có tên là “Search – Then – Converge” (“tìm và hội
tụ”). Giả sử tốc độ học khởi tạo ban đầu là
)0(

, tại lần lặp thứ i giá trị tốc độ học
được cập nhật:
r
i
i


1
)0(
)(


(17)
với r là hằng số điều chỉnh tốc độ học.
Việc dùng kỹ thuật này cho phép đẩy nhanh tốc độ học, tuy nhiên việc chọn
hằng số r tương ứng với dữ liệu luyện dựa trên phương pháp thử và sai số.
2.4.3. Điều chỉnh tốc độ học theo mỗi mẫu luyện (Learning rate adaptation for
each training pattern)
Năm 1989, J.Schmidhuber đã giới thiệu kỹ thuật điều chỉnh tốc độ học[8]
theo mẫu luyện, kỹ thuật này không dùng hệ số moment. Chính vì thế, tiếp tuyến
trong mặt lỗi trong quá trình luyện sẽ được sử dụng. Những giá trị trọng số được tìm
bằng cách tính điểm 0 là giao điểm giữa mặt lỗi với mặt phẳng 0. Trong thực tế sẽ
tồn tại một số mặt phẳng lỗi không bao giờ đạt đến mặt phẳng 0, vì vậy một giá trị

hằng số E
offset
(có giá trị nhỏ) được thêm vào nhằm đảm bảo tồn tại điểm 0 trên mặt
18
phẳng lỗi.













max
2
,min)(

p
offsetp
E
EE
n
(18)
w
E

nnw
p


 )()(

(19)
0.20
max


, theo J.Schmidhuber kỹ thuật này đảm bảo sẽ không mắc phải lỗi cực
tiểu địa phương (khi
0
p
E

0
p
E
). Tuy nhiên, việc cập nhật rất lớn, điều
này có thể làm ảnh hưởng đến toàn bộ mạng.
2.4.4. Tiến hóa tốc độ học (Evolutionary adapted learning rate)
R.Salomon sử dụng kỹ thuật tiến hóa[8] đơn giản để điều chỉnh tốc độ học.
Với một tập các giá trị tốc độ học

(được tạo bằng cách tăng hay giảm giá trị
0



bước trước) chọn giá trị

tốt nhất trong tập để dùng cho bước cập nhật kế tiếp. Kỹ
thuật này được tiến hành theo các bước sau:
- Tạo hai mạng như nhau và khởi tạo tốc độ học
- Điều chỉnh trọng số của 2 mạng theo công thức:
E
w
E
nnw



 )()(

(20)
- Tính tổng lỗi cho hai mạng, chọn và khởi tạo hai mạng khác tương tự nhau, nếu
tổng lỗi tăng lên với tốc độ học được khởi tạo lại. Trong trường hợp lỗi giảm, tiếp
tục luyện hai mạng với tốc độ luyện tương ứng

)(n



1
)( n

Kỹ thuật này thích hợp cho mạng lan truyền ngược trong việc điều chỉnh tốc
độ học, song kỹ thuật này vẫn còn tồn tại một số hạn chế sau:
- Thời gian luyện tăng gấp đôi

- Không phù hợp với mạng đã được luyện
2.4.5. Điều chỉnh tốc độ học bằng thay đổi tín hiệu gradient (Learning rate
adaptation by sign changes)
Các kỹ thuật cải tiến giới thiệu ở trên được phân vào nhóm điều chỉnh tốc độ
học toàn phần (Global learning rate adaptation). Kỹ thuật điều chỉnh tốc độ học
bằng thay đổi tín hiệu được xem là kỹ thuật cải tiến tốt nhất[8] trong nhóm điều
19
chỉnh tốc độ học địa phương (Local learning rate adaptation). Kỹ thuật này dựa trên
ý tưởng mỗi trọng số trong mạng sẽ được cập nhật với tốc độ học khác nhau. Kỹ
thuật này sẽ khảo sát hai giá trị cuối trong mức giảm gradient, tốc độ học sẽ thay
đổi theo tín hiệu này.
Thuật toán được mô tả như sau:
- Khởi tạo
ij

với một gia trị đủ nhỏ
- Tốc độ học được điều chỉnh
unn
ijij
 )1()(

,
0)1()( 





n
w

E
n
w
E
if
ijij
(21)
dnn
ijij
 )1()(

,
0)1()( 





n
w
E
n
w
E
if
ijij
(22)
- Cập nhật trọng số












 )1()()( nw
w
E
nnw
ij
ij
ijij

(23)
với
u
[1.1, 1.3] và d

[0.7,0.9]
Các kỹ thuật cải tiến trong nhóm này (Local learning rate adaptation) (dựa
trên sai số thử - sai số luyện và tốc độ nhận dạng):
- Điều chỉnh tốc độ học bằng thay đổi tín hiệu (Learning rate adaptation by sign
changes)
- SuperSAB
- Quickprop
- Backprop + kỹ thuật giảm tốc độ học (Decreasing learning rate)

- Delta – Bar – Delta
2.4.6. Ngăn lỗi bão hòa (Error Saturation Prevention)
Mặc dù thuật toán lan truyền ngược và phương pháp giảm gradient có rất
nhiều ưu điểm trong việc giải các bài toán về phân lớp và nhận dạng song bên cạnh
đó phương pháp này vẫn còn tồn tại một số khuyết điểm sau:
- Quá trình học thường rơi vào những cực tiểu địa phương
- Tốc độ học thường chậm
Trong các nghiên cứu để tăng tính hiệu quả của việc học trong mạng neural,
người ta đã phát hiện ra rằng để tăng hiệu quả việc học thì cần phải ngăn chặn hiện
tượng bão hòa[6] sớm trong quá trình học. Hiện tượng bão hòa sớm là hiện tượng
20
kết quả xuất luôn có giá trị lỗi cao trong giai đoạn đầu quá trình học (đây cũng là
quá trình hội tụ trong việc học trở nên chậm). Lỗi bão hòa là một trong những
nguyên nhân gây nên hiện tượng bão hòa sớm. Lỗi bão hòa là hiện tượng các nút
trên mạng sẽ có các kết xuất gần tiến tới đến các giá trị 0 hay 1 nhưng lại không
đúng với kết quả như mong muốn cũng như kết xuất thực sự.
Theo công thức (2) và (14):
1




tt
w
w
E
w

(24)










j
yzztz
zztz
w
E
)1()(
)1()(

với t là giá trị đầu ra mẫu luyện, z là giá trị dự đoán
Với công thức trên khi z càng tiến đến 0 hay 1 thì dù cho sai số (z – t) có đạt
được một giá trị nào đi nữa thì
t
w
cũng tiến đến 0 (trạng thái bão hòa, khi
tz 
).
Như vậy khi có lỗi bão hòa xuất hiện thì giá trị trọng số sẽ được cập nhật một lượng
rất ít làm cho quá trình hội tụ chậm đi.
Vì thế việc giải quyết lỗi bão hòa sẽ làm cho tốc độ hội tụ của quá trình học
tăng lên cũng như không rơi vào cực tiểu địa phương.
Để ngăn chặn lỗi bão hòa xảy ra, năm 2001 một nhóm tác giả ở Đại học
Quốc gia Đài Loan đã đề nghị một công thức:

ESP(z
i
)=

(z
i
- 0.5)
n
(26)
với

là hệ số tỉ lệ, n là một hằng số.
Từ (14) và (26) ta có giá trị tại nút xuất như sau:









j
yzESPzztz
zESPzztz
w
E
)]()1()[(
)]()1()[(
''


Ảnh hưởng của phương pháp ESP lên sai số trung bình bình phương E:
Sai số trung bình bình phương:
N
nn
E
N
n
tZ




1
2
)(
2
1
(28)
Biến thiên trọng số bước thứ t:
1




tt
w
w
E
w


(29)
trọng ngưỡng
các nút ẩn y
j

(25)
trọng ngưỡng
các nút ẩn y
j

(27)

×