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

NGUYÊN CỨU VÀ XÂY DỰNG HỆ THỐNG QUẢN LÝ VÀ DỰ ĐOÁN XU THẾ GIÁ CHỨNG KHOÁN DỰA TRÊN NỀN TẢNG MÃ NGUỒN MỞ

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.19 MB, 57 trang )

1
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Vũ Đức Việt
NGUYÊN CỨU VÀ XÂY DỰNG HỆ THỐNG QUẢN LÝ
VÀ D
Ự ĐOÁN XU THẾ GIÁ CHỨNG KHOÁN DỰA
TRÊN N
ỀN TẢNG MÃ NGUỒN MỞ
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin
Cán b
ộ hướng dẫn: TS. Nguyễn Hà Nam
HÀ NỘI – 2010
2
TÓM TẮT
Bài toán dự báo tài chính ngày càng được nhiều người quan tâm trong bối cảnh phát
tri
ển kinh tế xã hội ở Việt Nam hiện nay. Đầu tư vào thị trường chứng khoán đòi hỏi
nhi
ều kinh nghiệm và hiểu biết của các nhà đầu tư. Các kĩ thuật khai phá dữ liệu được áp
d
ụng nhằm dự báo sự lên xuống của thị trường là một gợi ý giúp các nhà đầu tư có thể ra
các quy
ết định giao dịch. Khóa luận này giới thiệu một kỹ thuật khai phá dữ liệu hiệu quả
đượ
c sử dụng rộng rãi trong nhiều lĩnh vực đó là mô hình mạng nơ ron và cách áp dụng
vào d
ữ liệu thời gian thực. Cấu trúc và hoạt động cũng như cách thiết kế mạng cho dữ liệu
th


ời gian thực áp dụng trong bài toán dự báo tài chính được trình bày chi tiết nhằm làm rõ
cách áp d
ụng mô hình vào bài toán thực tế.
3
MỤC LỤC
TÓM TẮT
M
ỤC LỤC
DANH M
ỤC HÌNH VẼ
DANH M
ỤC BẢNG BIỂU
Ch
ương 1. GIỚI THIỆU 1
Ch
ương 2. GIỚI THIỆU VỀ KHAI PHÁ DỮ LIỆU VÀ PHÁT HIỆN TRI THỨC.2
2.1. Khai phá d
ữ liệu và phát hiện tri thức 2
2.2 T
ại sao phải tiến hành khai phá dữ liệu? 4
2.3. Ki
ến trúc điển hình của một hệ khai phá dữ liệu 5
2.4. Các bài toán khai phá d
ữ liệu điển hình 6
2.5. Các
ứng dụng điển hình của khai phá dữ liệu 8
2.6. K
ết luận 8
Ch
ương 3. CƠ SỞ LÝ THUYẾT CỦA MẠNG NORON CHO VẤN ĐỀ DỰ BÁO9

3.1. Khái ni
ệm về mạng noron 9
3.2. Mô hình c
ủa một noron nhân tạo và hàm truyền 9
3.2.1. Mô hình c
ủa một noron 9
3.2.2. Hàm truy
ền 12
3.3. Mô hình c
ủa mạng noron 14
3.3.1. M
ạng tiến 14
3.3.2. M
ạng hồi quy 16
3.4. Ph
ương pháp học và thuật toán lan truyền ngược cho mạng 17
3.4.1. C
ơ sở lý thuyết học của mạng 17
4
3.4.2. Thu
ật toán lan truyền ngược (back – propagation) 18
Ch
ương 4. MẠNG NORON CHO QUÁ TRÌNH DỰ ĐOÁN 23
4.1. Mô hình m
ạng noron cho việc dự báo 23
4.2. Các b
ước thiết kế mô hình 24
4.2.1. Ch
ọn lựa các biến 25
4.2.2. Thu th

ập dữ liệu 25
4.2.3. Ti
ền xử lý dữ liệu 25
4.2.4. Phân ho
ạch tập dữ liệu 26
4.2.5.
Xác định cấu trúc mạng 27
4.2.6.
Xác định tiêu chuẩn đánh giá 30
4.2.7. Hu
ấn luyện mạng nơ ron 32
4.2.8. Tri
ển khai 33
4.3 T
ổng kết 34
Ch
ương 5. XÂY DỰNG CHƯƠNG TRÌNH VÀ 35
ĐÁNH GIÁ 35
5.1. Vài nét v
ề các phần mềm nguồn mở được sử dụng 35
5.1.1. Weka 35
5.1.2. Jstock 37
5.2. Mô hình k
ết hợp giữa hai gói phần mềm mã nguồn mở 38
5.2.1. Chuy
ển dữ liệu thời gian thực 39
5.2.2. Xác định mô hình phù hợp 40
5.2.3. Chuy
ển kết quả cho stock hiển thị 43
5.3. Đánh giá với một số mô hình khác 43

5.3.1. Mô hình cây quy
ết định 44
5.3.2. Mô hình phân l
ớp xác suất ngây thơ naïve bayes 46
5
Ch
ương 6. KẾT LUẬN 49
TÀI LI
ỆU THAM KHẢO 50
6
DANH MỤC HÌNH VẼ
Hình 2.1 – Quá trình khai phá tri thức [1] 3
Hình 2.2 – Ki
ến trúc điển hình của một hệ thống khai phá dữ liệu [2] 5
Hình 2.3 – B
ảng thống kê xu thế phát triển khai phá dữ liệu [1] 8
Hình 3.1 - Mô hình c
ủa một noron[2] 10
Hình 3.2 – Mô hình c
ủa một noron được vẽ lại [2] 11
Hình 3.3 – Hàm ng
ưỡng 12
Hình 3.4 – Hàm vùng tuy
ến tính 13
Hình 3.5 – Hàm tuy
ến tính 13
Hình 3.6 – Hàm sigma v
ới các độ dốc khác nhau 14
Hình 3.7 – Mô hình m
ạng tiến đơn mức 15

Hình 3.8 – Mô hình m
ạng tiến đa mức 16
Hình 3.9 – Mô hình m
ạng tiến có sự phản hồi 17
Hình 4.1 – Mô hình d
ự đoán sử dụng mạng noron 23
Hình 4.2 – T
ỷ lệ kích thước giữa các tập huấn luyện [9] 27
Hình 4.3 –
Độ hội tụ: 3 tầng, 20 nơ ron ẩn, 50 bước 29
Hình 4.4 –
Độ hội tụ: 3 tầng, 20 nơ ron ẩn, 100 bước 29
Hình 4.5 –
Độ hội tụ: 3 tầng, 20 nơ ron ẩn, 300 bước 29
Hình 4.6 –
Độ hội tụ: 3 tầng, 50 nơ ron ẩn, 5 bước 30
Hình 4.7 –
Độ hội tụ: 3 tầng, 50 nơ ron ẩn, 50 bước 30
Hình 5.1 – Giao di
ện chính của weka 36
Hình 5.2 – Giao di
ện chính của Jstock 37
Hình 5.3 – Mô hình h
ệ thống khóa luận xây dựng 38
Hình 5.4 – K
ết quả huấn luyện mạng noron bằng dòng lệnh weka 42
Hình 5.5 – Mô hình cây quy
ết định 45
7
DANH MỤC BẢNG BIỂU

Bảng 4.1 – Tổ chức dữ liệu của mô hình 26
B
ảng 5.1 – Huấn luyện mạng noron 44
B
ảng 5.2 – Huấn luyện cây quyết định 46
B
ảng 5.3 – Huấn luyện naïve bayes 48
B
ảng 5.4 – So sánh các mô hình 48
1
Chương 1. GIỚI THIỆU
Trong những năm gần đây, người ta thường nhắc đến khai phá dữ liệu (datamining)
– khái ni
ệm được dùng để tham chiếu đến quá trình phát hiện tri thức và khai phá dữ liệu
(KDD – Knowledge Discovery and Data mining) –
như là một phương pháp xác định ra
tri th
ức từ một lượng dữ liệu khổng lồ. Sự phát triển của công nghệ thông tin và việc ứng
d
ụng công nghệ thông tin trong nhiều lĩnh vực của đời sống, kinh tế xã hội trong nhiều
năm qua cũng đồng nghĩa với lượng dữ liệu đã được các cơ quan thu thập và lưu trữ ngày
m
ột tích luỹ nhiều lên. Hơn nữa thông tin thu thập được từ nhiều chiều khác nhau và gây
nhi
ễu cho nhau đã thực sự trở thành một vấn đề nan giải cho con người để xử lý lượng
thông tin l
ớn đang tăng lên từng ngày một. Với những lý do như vậy, các phương pháp
qu
ản trị và khai thác cơ sở dữ liệu truyền thống ngày càng không đáp ứng được thực tế đã
làm phát tri

ển một khuynh hướng kỹ thuật mới đó là Kỹ thuật phát hiện tri thức và khai
phá d
ữ liệu (KDD - Knowledge Discovery and Data Mining).
Có nhi
ều kỹ thuật để khai phá dữ liệu trong đó kỹ thuật dựa vào mạng Noron khá là
ph
ổ biến [2]. Một trong những ứng dụng kinh điển của mạng Noron là lớp các bài toán dự
đoán
vì mạng Noron ngoài khả năng dự đoán với độ chính xác cao nó còn có ưu điểm là
m
ềm dẻo và thích nghi cao với môi trường, rất thích hợp cho bài toán dự đoán với dữ liệu
thay đổi nhanh theo thời gian. Chính vì vậy, khóa luận sẽ sử dụng mạng Noron để dự
đoán xu thế
của giá chứng khoán.
Các h
ệ thống chứng khoán thường là những hệ thống rất phức tạp vì vậy rất khó có
th
ể dự đoán được dữ liệu của nó. Nó phụ thuộc vào rất nhiều yếu tố trong đó có những
y
ếu tố không thể định lượng được như: tâm lý, sự mù quáng của nhà đầu tư…. Mặc dù
v
ậy thị trường chứng khoán không phải là một quá trình ngẫu nhiên và nó có quy luật của
nó và có th
ể dự đoán được. Tìm ra được xu hướng của thị trường chứng khoán sẽ là chìa
khóa giúp cho quá trình h
ỗ trợ quyết định của nhà đầu tư.
Trướ
c sự hấp dẫn của các ứng dụng của mạng noron, sự phát triển đi lên của thị
trườ
ng chứng khoán, cùng sự động viên khuyến khích của thầy hướng dẫn, tôi đã quyết

định thực hiện những nghiên cứu về mạng noron để dự báo xu thế thị trường chứng khoán
nh
ằm đưa ra những gợi ý cho nhà đầu tư. Do thời gian làm khóa luận có hạn nên tôi mới
ch
ỉ xây dựng được các thành phần cơ bản nhất của phần mềm. Các tính năng nâng cao tôi
s
ẽ cố hoàn thiện sau này.
2
Chương 2. GIỚI THIỆU VỀ KHAI PHÁ DỮ LIỆU
VÀ PHÁT HIỆN TRI THỨC
2.1. Khai phá dữ liệu và phát hiện tri thức
Phát hiện tri thức trong cơ sở dữ liệu (Knowledge Discovery in Databases – KDD)
(đôi khi còn được gọi là khai phá dữ liệu) là một quá trình không đơn giản nhằm nhận
d
ạng ra những mẫu có giá trị, mới, hữu ích tiềm năng và hiểu được trong dữ liệu. Đây là
lĩnh vực nghiên cứu và triển khai được phát triển rất nhanh chóng và có phạm vi rất rộng
l
ớn, lại được rất nhiều nhóm nghiên cứu tại nhiều trường đại học, viện nghiên cứu, công
ty
ở nhiều quốc gia trên thế giới quan tâm, cho nên có rất nhiều cách tiếp cận khác nhau
đối với lĩnh vực phát hiện tri thức trong CSDL. Chính vì lý do đó các nhà khoa học trên
th
ế giới đã dùng nhiều thuật ngữ khác nhau, mà các thuật ngữ này được coi là mang cùng
ngh
ĩa với KDD như chiết lọc tri thức (knowledge extraction), phát hiện thông tin
(information discovery), thu ho
ạch thông tin (information harvesting), khai quật dữ liệu
(data archaeology), x
ử lý mẫu dữ liệu (data pattern processing) Hơn nữa, trong nhiều
trường hợp, hai khái niệm "Phát hiện tri thức trong cơ sở dữ liệu" và "khai phá dữ liệu"

còn
được dùng thay thế nhau. Hai khái niệm khai phá dữ liệu và phát hiện tri thức trong
các CSDL
thường cặp đôi với nhau [1].
Quá trình KDD th
ường bao gồm nhiều bước là:
-
Làm sạch dữ liệu (Data Cleaning): Khử nhiễu và các dữ liệu mâu thuẫn.
-
Tích hợp dữ liệu (Data Integration): Kết hợp nhiều nguồn dữ liệu khác
nhau.
-
Lựa chọn dữ liệu (Data Selection): Chắt lọc lấy những dữ liệu liên quan
đến nhiệm vụ phân tích sau này.
-
Biến đổi dữ liệu (Data Transformation): Biến đổi dữ liệu thu được về dạng
thích h
ợp cho quá trình khai phá.
-
Khai phá dữ liệu (Data Mining): Sử dụng những phương pháp thông minh
để
khai thác dữ liệu nhằm thu được các mẫu mong muốn.
-
Đánh giá kết quả (Pattern Evaluation): Sử dụng các độ đo để đánh giá kết
qu
ả thu được.
3
-
Biểu diễn tri thức (Knowledge Presentation): Sử dụng các công cụ biểu
di

ễn trực quan để biểu diễn những tri thức khai phá được cho người dùng.
Hình 2.1 – Quá trình khai phá tri thức [1]
Quá trình trên được thừa nhận là không tầm thường theo nghĩa là quá trình đó không
chỉ nhiều bước mà còn được thực hiện lặp, và quan trọng hơn quá trình đó bao hàm một
m
ức độ tìm kiếm tự động. Trong mô hình chúng ta đã coi KDD là một quá trình bao gồm
nhi
ều bước thực hiện, trong đó, khai phá dữ liệu là một bước thực hiện chính yếu. Cách
hi
ểu như vậy đã quy định có sự phân biệt giữa hai khái niệm khai phá dữ liệu và KDD.
T
ừ đây có thể đi đến một khái niệm về khai phá dữ liệu:
Khai phá d
ữ liệu là một bước trong quá trình phát hiện tri thức trong cơ sở dữ liệu,
thi hành m
ột thuật toán khai phá dữ liệu để tìm ra các mẫu từ dữ liệu theo khuôn dạng
thích h
ợp.
4
Có th
ể nhận xét rằng, khái niệm khai phá dữ liệu là khá rộng lớn, nhưng không
phải tất cả mọi công việc liên quan đến dữ liệu đều được coi là khai phá dữ liệu, chẳng
h
ạn như những việc xử lý truy vấn đơn giản như tra cứu một số điện thoại, hay thống kê
ra nh
ững học sinh giỏi của một lớp, thì không thể coi đó là khai phá dữ liệu. Nhưng
những công việc như gom nhóm các tài liệu trả về từ máy tìm kiếm theo từng ngữ cảnh
thì l
ại được xem là khai phá dữ liệu [1] . Chính vì sự phong phú và đa dạng này mà dẫn
đến thực trạng là tồn tại một số quan niệm khác nhau về chuyên ngành nghiên cứu gần

g
ũi nhất với lĩnh vực khai phá dữ liệu.
2.2 Tại sao phải tiến hành khai phá dữ liệu?
Trong những năm gần đây, khai phá dữ liệu trở thành một lĩnh vực nghiên cứu rộng
rãi trong ngành công nghi
ệp thông tin, nguyên nhân chủ yếu là do khối lượng khổng lồ
của dữ liệu mà con người tạo ra, đi kèm với nó là sự cần thiết của việc rút trích tri thức từ
những dữ liệu đó. Thông tin và tri thức có thể được áp dụng vào nhiều lĩnh vực từ phân
tích th
ị trường tài chính, phát hiện giả mạo, cho đến điều khiển sản xuất và nghiên cứu
khoa h
ọc.
Nhìn vào hai l
ĩnh vực sinh ra nhiều dữ liệu nhất đó là thương mại và khoa học.
Trong l
ĩnh vực thương mại, hàng ngày hàng giờ con người đang tạo ra, thu thập và lưu trữ
lại rất nhiều dữ liệu, như dữ liệu web, dữ liệu về thương mại điện tử, dữ liệu về việc thanh
toán t
ại các cửa hàng và các dữ liệu thanh toán trong các tài khoản… Tính cạnh tranh
trong kinh doanh là r
ất cao, cho nên việc phân tích dữ liệu để cung cấp dịch vụ tốt hơn, có
nhiều tiện ích cho khách hàng, và đón bắt chính xác nhu cầu của khách hàng rất quan
tr
ọng. Trong lĩnh vực khoa học, dường như lượng dữ liệu sinh ra và thu thập lại còn lớn
hơn nhiều, lên tới hàng GB/giờ, chẳng hạn như dữ liệu từ vệ tinh, từ các ảnh chụp vũ trụ
và từ các mô phỏng thử nghiệm khoa học. Khai phá dữ liệu giúp các nhà khoa học trong
vi
ệc phân lớp dữ liệu và hỗ trợ trong việc đưa ra các quyết định.
Cùng v
ới sự phát triển của khoa học, của ngành cơ sở dữ liệu không thể không kể

đế
n là sự phát triển của ngành công nghiệp máy tính, người ta đã tạo ra những phương
tiện lưu trữ lớn hơn, những máy tính rẻ hơn, tốc độ cao hơn, trợ giúp cho quá trình thu
th
ập dữ liệu cũng như khai phá chúng.
5
Trong quá trình tác nghi
ệp, người ta thường phải đưa ra các quyết định, tuy nhiên,
v
ới lượng dữ liệu khổng lồ như thế, người ta không thể sử dụng hết, hoặc nếu muốn sử
dụng thì phải mất thời gian quá nhiều, như vậy có nguy cơ đánh mất cơ hội. Do đó, việc
s
ử dụng máy tính để khai phá dữ liệu nhằm giúp đỡ con người trong công việc càng được
thúc đẩy mạnh mẽ, làm sao với các dữ liệu đã thu thập được có thể đưa ra hành động
mang l
ại lợi ích tối đa.
2.3. Kiến trúc điển hình của một hệ khai phá dữ liệu
Dưới đây là kiến trúc của một hệ thống khai phá dữ liệu:
Hình 2.2 – Kiến trúc điển hình của một hệ thống khai phá dữ liệu [2]
Trong kiến trúc hệ thống này, các nguồn dữ liệu cho các hệ thống khai phá dữ liệu
bao g
ồm hoặc Cơ sở dữ liệu, hoặc Kho dữ liệu, hoặc World Wide Web, hoặc kho chứa dữ
liệu kiểu bất kỳ khác, hoặc tổ hợp các kiểu đã liệt kê nói trên. Cơ sở tri thức, bao chứa các
6
tri th
ức miền ứng dụng hiện có, được sử dụng trong thành phần hệ thống khai phá dữ liệu
để làm tăng tính hiệu quả của thành phần này. Một số tham số của thuật toán khai phá dữ
liệu tương ứng sẽ được tinh chỉnh theo tri thức miền sẵn có từ cơ sở tri thức trong hệ
thống. Cơ sở tri thức còn được sử dụng trong việc đánh giá các mẫu đã khai phá được
xem chúng có th

ực sự hấp dẫn hay không, trong đó có việc đối chứng mẫu mới với các tri
th
ức đã có trong cơ sở tri thức. Nếu mẫu khai phá được là thực sự hấp dẫn thì chúng được
b
ổ sung vào cơ sở tri thức để phục vụ cho hoạt động tiếp theo của hệ thống. Như vậy,
ngu
ồn tri thức bổ sung vào cơ sở tri thức ở đây không chỉ từ lập luận lôgic theo các hệ
toán lôgic để
có tri thức mới, không chỉ do con người hiểu biết thêm về thế giới khách
quan để bổ sung vào mà còn là tri thức được phát hiện một cách tự động từ nguồn dữ liệu
[1].
2.4. Các bài toán khai phá dữ liệu điển hình
Mô tả khái niệm/lớp (concept/class description):
Dữ liệu có thể được kết hợp với khái niệm hoặc lớp. Ví dụ ta có chia dữ liệu về sản
ph
ẩm điện tử thành các lớp sản phẩm như máy tính, máy in, máy chiếu… Mỗi lớp/khái
ni
ệm được miêu tả riêng một cách tổng quan và chính xác. Việc miêu tả này có được
thông qua: s
ự mô tả tính chất của dữ liệu (data characterization) hoặc phân biệt dữ liệu
(data discrimination) ho
ặc kết hợp cả hai.
Mô t
ả tính chất dữ liệu (data characterization): là sự tổng hợp những đặc tính chung
nh
ất của lớp dữ liệu. ví dụ: đối với những người khách hàng tiêu nhiều tiền ta có thể tổng
h
ợp những đặc điểm của người đó như sau: tuổi đời trung niên, có việc làm ổn định, có
kh
ả năng thanh toán cao.

Phân bi
ệt dữ liệu (data discrimination): là sự so sánh những đặc tính chung một lớp
đối tượng dữ liệu với những đặc tính chung của một lớp đối tượng dữ liệu khác từ một tập
nh
ững lớp tương phản. ví dụ: so sánh hai đối tượng khách hàng, một đối tượng thường
xuyên mua điện thoại còn một đối tượng ít khi mua điện thoại. điều này đem đên một sự
so sánh giữa hai đối tượng, đối tượng thứ nhất thường là những người trẻ tuổi còn đối
tượng thứ 2 thường là những người trung tuổi.
Phân tích kết hợp (association analysis):
7
T
ừ một hoặc một vài sự kiện của đối tượng xảy ra kết hợp với nhau có thể kéo theo
nh
ững sự kiện khác xảy ra.
Ví d
ụ: một người mua máy tính thì rất có thể họ sẽ mua phần mềm, ta có thể viết
dưới dạng luật như sau:
Buys(X, “computer”) =>> buys(X, “software”) [support = 1%, confident = 50%]
X: đại diện cho người
Support = 1%: có 1% khách hàng đã mua đồng thời máy tính và phần mềm
Confident = 50%: kh
ả năng mỗi khách hàng mua đồng thời là 50%
Trên đây là luật kết hợp một chiều. ta có thể có luật kết hợp nhiều chiều như sau:
Age(X, “20….29”) ^ income(X, “20…29K”) =>> buys(X, “PC”) [support = 2%,
confident = 60%]
Phân loại và dự đoán (classification and prediction)
Sự phân loại là quá trình tìm một mô hình (model) mà mô tả và phân biệt những lớp
đối tượng với nhau. Mục đích của việc sử dụng mô hình là để dự đoán (predict) những
l
ớp đối tượng chưa biết. Mô hình được suy dẫn ra dựa trên sự phân tích một tập dữ liệu

hu
ấn luyện (training data) (đối tượng dữ liệu mà ta đã biết). Hình thức biểu diễn: cây
quy
ết định (decision tree), luật phân loại (classification rule), mạng nơron (neural
network).
Phân cụm (cluster analysis):
Khác với phân loại và dự đoán, phân cụm phân tích những đối tượng dữ liệu mà
không c
ần xem xét những lớp đã biết. phân cụm dựa trên phương pháp: cực đại hóa sự
tương đồ
ng của lớp bên trong và cực tiểu hóa sự tương đồng của lớp bên ngoài. Tức là
nh
ững cụm đối tượng được thành lập để những đối tượng trong một cụm thì rất giống
nhau nhưng khác rất nhiều so với những đối tượng trong cụm khác.
Phân tích tiến hóa:
Phân tích tiến hóa dữ liệu miêu tả và mô hình xu hướng về những sự thay đổi của
đối tượng qua thời gian. Điều này giúp dự đoán được tương lai.
8
2.5. Các ứng dụng điển hình của khai phá dữ liệu
Dưới đây là bảng thống kê những xu thế phát triển của các lĩnh vực ứng dụng khai
phá d
ữ liệu điển hình trong các năm 2003, 2004, 2006 và xu hướng phát triển của chúng.
Hình 2.3 – Bảng thống kê xu thế phát triển khai phá dữ liệu [1]
2.6. Kết luận
Trong chương này tôi đã trình bày những nét cơ bản về khai phá dữ liệu và những
ứng dụng của nó. Có thể nói lĩnh vực khai phá dữ liệu là khá mới mẻ và có xu hướng tăng
trưở
ng cao trong những năm tới. Trong chương tới, tôi sẽ giới thiệu một kỹ thuật được sử
dụng khá phổ biến trong khai phá dữ liệu đó là kỹ thuật sử dụng mạng noron.
9

Chương 3. CƠ SỞ LÝ THUYẾT CỦA MẠNG
NORON CHO VẤN ĐỀ DỰ BÁO
3.1. Khái niệm về mạng noron.
Lý thuyết về mạng noron [3] [2] được xuất phát từ ý tưởng mô phỏng cấu trúc bộ
não con người. Thực tế có thể coi bộ não con người là một máy tính hay một hệ thống xử
lý thông tin song song, phi tuyến và cực kỳ phức tạp. Nó có khả năng tự tổ chức các bộ
phận cấu thành nó như là các tế bào thần kinh (noron) hay các khớp nối thần kinh
(synapse). Vi
ệc mô phỏng này dựa trên những nghiên cứu về thần kinh sinh học. Bộ não
con người có khả năng nhận dạng mẫu và điều khiển vận động rất tốt, do đó điểm mạnh
c
ủa mạng noron cũng chính là những khả năng này.
Đị
nh nghĩa mạng noron [6]: mạng nơ ron nhân tạo, artificial neural network,
(thường được gọi ngắn gọn là mạng nơ ron, neural network) là mạng các phần tử (gọi là
nơ ron) kết nối với nhau thông qua các liên kết (gọi là trọng số liên kết) để thực hiện một
công vi
ệc nào đó. Khả năng xử lý của mạng nơ ron được hình thành thông qua quá trình
hi
ệu chỉnh trọng số liên kết giữa các nơ ron, nói cách khác là học từ tập hợp các mẫu huấn
luy
ện.
Như vậy một mạng noron được cấu thành từ các noron riêng biệt. Cách thức kết hợp
các noron này v
ới nhau sẽ tạo ra một mạng có tính chất riêng. Do đó để hiểu về mạng
noron trước tiên chúng ta sẽ tìm hiểu về cấu trúc của một noron.
3.2. Mô hình của một noron nhân tạo và hàm truyền
3.2.1. Mô hình của một noron
Một noron nhân tạo là một đơn vị tính toán hay đơn vị xử lý thông tin cơ sở cho hoạt
động của một mạng. Chúng có khả năng nhận đầu vào, xử lý đầu vào đó, đưa dữ liệu đã

được xử lý ra output và liên lạc với các nơron khác để gửi output này đi. Sơ đồ dưới đây
ch
ỉ ra mô hình của một noron nhân tạo [2]:
10
Hình 3.1 - Mô hình của một noron[2].
Trong mô hình trên bao gồm các thành phần sau:
x
1
, x
2
, ……, x
m
: các tín hiệu đầu vào. Thường được biểu diễn dưới dạng vecto m
chi
ều X=(x
1
, x
2
, … , x
m
). Các tín hiệu này có thể là đầu ra của các nơ ron trước nó hoặc
đầu vào ban đầu của mạng.
Các tr
ọng số của liên kết W
kj
(j = 1,m). Tín hiệu đầu vào xj liên kết với noron k sẽ
đượ
c nhân với W
kj
. Trong đó k là chỉ số của noron trong mạng, j là chỉ số đầu vào của

noron đang xét.
B
ộ tổ hợp tuyến tính ∑ để tính tổng các tín hiệu đầu vào, đã được nhân với các trọng
s
ố tương ứng.
Giá tr
ị ngưỡng b
k
của noron thứ k, để làm tăng hoặc giảm giá trị của bộ cộng ∑.
Tăng nếu dương, giả
m nếu âm. Ngưỡng có thể thay đổi trong quá trình học.
u
k
là tổng các giá trị kích hoạt lên nơ ron thứ k, giá trị này chính là đầu ra của hàm
t
ổng và là tham số đầu vào cho hàm kích hoạt. Ta có công thức cho u
k
như sau:


=



.



11
Hàm kích hoạt (activation function) hay còn gọi là hàm truyền để giới hạn biên độ

đầ
u ra của noron. Hàm kích hoạt như là một hàm nén giới hạn phạm vi biên độ cho phép
c
ủa đầu ra trong một khoảng giá trị hữu hạn nào đó, thường là trong đoạn [0, 1] hoặc [-1,
1] . Hàm truy
ền là có tính chất quyết định đến mạng noron. Vì vậy cần phải chọn lựa cho
ứng dụng một hàm phù hợp.
Tín hi
ệu đầu ra y
k
của noron k chính là kết quả của quá trình xử lý tại noron này.
Hay nó chính là giá tr
ị của hàm kích hoạt. Mỗi noron chỉ có duy nhất một đầu ra. Công
th
ức chung của y
k
là:


=(

+ 

)
Vì hệ số ngưỡng b
k
là tham số ngoài nên chúng ta có thể coi nó như một đầu vào x
0
cố định có giá trị x
0

= 1, và có trọng số của liên kết là W
k0
= b
k
. Một cách tương ứng,
chúng ta t
ổng hợp lại các công thức như sau:


=



.



(j = 0,m tức là ta đã thêm một liên kết mới)


=(
)
Mô hình được vẽ lại như sau:
Hình 3.2 – Mô hình của một noron được vẽ lại [2]
12
3.2.2. Hàm truyền
Như ở trên đã giới thiệu và sơ qua về hàm truyền, dưới đây tôi sẽ đưa ra một vài
hàm truy
ền cơ bản:
a. Hàm ngưỡng

Công thức


=
(


)
=

1 
ế 

≥0
0 
ế 

<0

Đồ thị:
Hình 3.3 – Hàm ngưỡng
b. Hàm vùng tuyến tính
Công thức


=
(


)

=





1 ế 


1
2


ế
1
2
> 

> −
1
2
0 ế 

≤ −
1
2


Đồ thị
13

Hình 3.4 – Hàm vùng tuyến tính
c. Hàm tuyến tính
Công thức


=
(


)
= 

(ớ− 1 ≤ 

≤1)
Đồ thị
Hình 3.5 – Hàm tuyến tính
14
d. Hàm sigma
Công thức


=
(


)
=





Trong công thức trên thì a chính là tham số độ dốc của hàm sigma, bằng việc biến
đổi a chúng ta sẽ thu được các hàm sigma với các độ dốc khác nhau.
Đồ thị hàm sigma với một vài tham số độ dốc
Hình 3.6 – Hàm sigma với các độ dốc khác nhau
Các hàm truyền ở trên đều bị giới hạn trong đoạn [-1, 1] hoặc [0, 1]. Chúng ta cũng
có thể mở rộng giới hạn nếu muốn để phù hợp với ứng dụng.
3.3. Mô hình của mạng noron
Mô hình của mạng noron chính là cách kết nối các noron lại với nhau. Có hai mô
hình chính là m
ạng tiến (feed forward network) và mạng hồi quy (recurrent network).
3.3.1. Mạng tiến
Mạng tiến là mạng mà ở trong đó luồng dữ liệu từ đầu vào tới đầu ra của các noron
được truyền thẳng, không có sự phản hồi nào. Quá trình xử lý dữ liệu trong mạng có thể
mở rộng ra nhiều lớp do đó ta có thể chia thành mạng tiến đơn mức và mạng tiến đa mức
a. M
ạng tiến đơn mức
15
Mạng tiến đơn mức chỉ gồm các đầu vào (input) được truyền trực tiếp cho một lớp
noron x
ử lý và đưa ra kết quả luôn.
Mô hình:
Hình 3.7 – Mô hình mạng tiến đơn mức
b. Mạng tiến đa mức
Trong m
ạng tiến đa mức thì ở giữa các inputs và lớp noron output có thêm một hoặc
nhi
ều lớp noron xử lý trung gian nữa – những lớp noron xử lý trung gian này được gọi là
l

ớp ẩn (hidden units). Việc thêm này giúp cho mạng tăng khả năng xử lý, thống kê và ghi
nh
ớ. Tuy nhiên nếu có quá nhiều lớp ẩn mạng sẽ trở nên phức tạp trong tính toán và dễ
gây ra hiện tượng overfitting ( hiện tượng học quá).
Mô hình:
16
Hình 3.8 – Mô hình mạng tiến đa mức
3.3.2. Mạng hồi quy
Khác với mạng tiến, mạng hồi quy có sự kết nối phản hồi lại từ đầu ra quay ngược
tr
ở lại làm tham số đầu vào. Việc này làm cho các thuộc tính của mạng là động tức là có
kh
ả năng thay đổi trong quá trình hoạt động. Như vậy mạng sẽ có khả năng thích nghi cao
hơn.
17
Mô hình:
Hình 3.9 – Mô hình mạng tiến có sự phản hồi
3.4. Phương pháp học và thuật toán lan truyền ngược cho mạng
3.4.1. Cơ sở lý thuyết học của mạng
a. Khái niệm học
Vi
ệc học cho mạng noron rất quan trọng vì nó sẽ quyết định cách ứng xử của mạng
v
ới môi trường. Vậy học là gì?
H
ọc là một quá trình mà nhờ đó ngưỡng và các liên kết giữa những noron được thiết
l
ập dưới tác động của môi trường [2].
Điểm mấu chốt của quá trình học chính là thuật toán học. Không có một thuật toán
h

ọc chung mà tồn tại rất đa dạng các thuật toán khác nhau áp dụng linh hoạt cho từng ứng
d
ụng cụ thể. Ở trong khóa luận này, tôi sẽ sử dụng thuật toán lan truyền ngược cho ứng
d
ụng của mình.
18
b. Mô hình học
Trong ph
ần (a), ta thấy việc học cần có sự tác động của môi trường. Mô hình học
chính cách th
ức quan hệ của mạng với môi trường. Có hai mô hình phổ biến là học có
giám sát
(supervised learning) và học không có giám sát (unsupervised learning).
Học có giám sát [3] : là phương pháp mà mạng được cung cấp những cặp mẫu đầu
vào và đầu ra tương ứng. Nhiệm vụ của quá trình học là từ đầu vào được đã cho sẽ xử lý
t
ạo ra một đầu ra tương ứng sao cho gần nhất với đầu ra mong muốn. thuật toán lan
truy
ền ngược sẽ giới thiệu sau đây thuộc loại học có giám sát
H
ọc không giám sát [3]: điểm khác biệt với học có giám sát ở chỗ là đầu ra đúng
tương ứ
ng cho mỗi đầu vào là không biết trước. Trong học không có giám sát, một tập dữ
liệu đầu vào được thu thập. Học không có giám sát thường đối xử với các đối tượng đầu
vào như là một tập các biến ngẫu nhiên. Sau đó, một mô hình mật độ kết hợp sẽ được xây
d
ựng cho tập dữ liệu đó.
3.4.2. Thuật toán lan truyền ngược (back – propagation)
Giả sử chúng ta muốn huấn luyện mạng với một tập dữ liệu huấn luyện mẫu bao
g

ồm giá trị đầu vào là x
p
và giá trị đầu ra mong muốn là d
p
. Với mỗi đầu vào được cung
c
ấp sẵn, đầu ra của mạng sai khác so với đầu ra mong muốn d
p
một lượng là (d
p
– y
p
),
trong đó y
p
là đầu ra thực sự của mạng với đầu vào x
p
. Ta định nghĩa một hàm lỗi tại
noron k d
ựa trên sự sai khác này là:



=
1
2
(


− 



)

(2.1)
Hàm lỗi tổng cộng E
p
được xác định bằng tổng lỗi cho mẫu dữ liệu p đối với các
noron đầu ra:


=
1
2







=
1
2

(


− 



)

(2.2)



Trong đó N
o
là tổng số các noron đầu ra
Chúng ta xét noron k v
ới đầu vào là các đầu ra của các noron trong lớp trước đó.
Như phầ
n phân tích cấu trúc của một noron ở trên ta có các biểu thức tại noron k này:

×