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 - Pdf 24



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

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

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

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:

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. 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 


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

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”.


độ 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ụ.

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
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ó đầ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

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
BNguồ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




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







(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




(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


(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

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

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

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ố



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


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()[(
''


(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)


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status