HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG PHẠM THÀNH PHƢỚC
MẠNG NEURAL VÀ ỨNG DỤNG TRONG DỰ BÁO GIÁ CHỨNG KHOÁN
TẠI TRUNG TÂM GIAO DỊCH CHỨNG KHOÁN TP. HỒ CHÍ MINH
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01.01
TÓM TẮT LUẬN VĂN THẠC SĨ
HÀ NỘI - 2013
Phản biện 2: …………………………………………………………………………
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu
chính Viễn thông
Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
1 MỞ ĐẦU
Lý do chọn đề tài:
Hiện nay, thời đại của chúng ta là thời đại mang xu hướng toàn cầu hóa và khu vực
hóa. Khi được trở thành thành viên của tổ chức thương mại thế giới thì đồng nghĩa Việt
Nam cũng gặp nhiều khó khăn và đồng thời cũng gặt hái được nhiều thành công. Để thu
được kết quả tốt từ quá trình hội nhập chúng ta phải đánh giá, nhận định về cơ hội cũng như
là thách thức đang đặt ra, chúng ta phải biết đâu là thế mạnh mình phải phát huy và đâu là
điểm yếu cần phải khắc phục. Và đặc biệt hơn nữa chúng ta phải nhận định được xu hướng
đi chung của thế giới, những yếu tố nào các nước đang chú trọng.
Chính vì điều đó, mà em thấy rằng thị trường chứng khoán trên thế giới hiện nay là
một thị trường nóng bỏng và có nhiều triển vọng đi lên. Nó không chỉ là một kênh huy động
vốn có hiệu quả cho hoạt động đầu tư trong nền kinh tế mà còn là nhân tố thúc đẩy hoạt
động của nền kinh tế diễn ra suôn sẻ hơn.
1.1. Tổng quan chung về thị trƣờng chứng khoán
1.1.1. Khái niệm thị trường chứng khoán
Thị trường chứng khoán là nơi diễn ra các giao dịch mua bán, trao đổi các loại chứng
khoán. Chứng khoán được hiểu là các loại giấy tờ có giá hay là bút toán ghi sổ, nó cho phép
chủ sở hữu có quyền yêu cầu về thu nhập và tài sản của tổ chức phát hành hoặc quyền sở
hữu. Các quyền yêu cầu này có sự khác nhau giữa các loại chứng khoán, tùy theo tính chất
sở hữu của chúng.
1.1.2. Vai trò của thị trường chứng khoán
Xu thế hội nhập kinh tế quốc tế và khu vực với sự ra đời của tổ chức thương mại thế
giới (WTO), của liên minh Châu Âu, của các khối thị trường chung, đòi hỏi các quốc gia
phải thúc đẩy phát triển kinh tế với tốc độ và hiệu quả cao. Thực tế phát triển kinh tế ở các
quốc gia trên thế giới đã khẳng định vai trò quan trọng của thị trường chứng khoán trong
phát triển kinh tế.
Vai trò của thị trường chứng khoán thể hiện trên nhiều khía cạnh khác nhau. Song
vai trò tích cực hay tiêu cực của thị trường chứng khoán có thực sự phát huy hay hạn chế
phụ thuộc đáng kể vào các chủ thể tham gia thị trường và sự quản lý của nhà nước.[6]
1.1.3. Nhóm yếu tố thị trường
Các yếu tố thị trường, là những nhân tố bên trong của thị trường, bao gồm sự biến động
thị trường và mối quan hệ cung cầu có thể được coi là nhóm yếu tố thứ ba tác động tới giá
cổ phiếu. Sự biến động thị trường là một hiện tượng chờ đợi thái quá từ việc dự tính quá cao
giá trị thực chất của cổ phiếu khi giá cổ phiếu cao nhờ sự phát đạt của công ty, và ngược lại
do dự đoán thấp giá trị tại thời điểm thị trường đi xuống. Mối quan hệ giữa cung và cầu
được trực tiếp phản ánh thông qua khối lượng giao dịch trên thị trường, hoạt động của
những nhà đầu tư có tổ chức, giao dịch ký quỹ … cũng có ảnh hưởng đáng kể. Mặc dù số
lượng giao dịch ký quỹ tăng khi mà giá cổ phiếu tăng, nhưng một khi giá cổ phiếu giảm số
lượng cổ phiếu bán ra tăng và làm cho giá càng giảm.
1.1.4. Chỉ số chứng khoán việt nam (VN – Index)
4
1.2.1. Neural sinh học và neural nhân tạo
1.2.1.1. Neural sinh học
Qua quá trình nghiên cứu về bộ não, người ta thấy rằng: bộ não con người
bao gồm khoảng 10
11
neural tham gia vào khoảng 10
15
kết nối trên các đường
truyền. Mỗi đường truyền này dài khoảng hơn một mét. Các neural có nhiều đặc
điểm chung với các tế bào khác trong cơ thể, ngoài ra chúng còn có những khả năng
mà các tế bào khác không có được, đó là khả năng nhận, xử lý và truyền các tín hiệu
điện hóa trên các đường mòn neural, các con đường này tạo nên hệ thống giao tiếp
của bộ não.
1.2.1.2. Neural nhân tạo
Một neural là một đơn vị xử lý thông tin và là thành phần cơ bản của một
mạng neural. Cấu trúc của một neural được mô tả trên hình dưới.
Hình 1.1: Neural nhân tạo
Các thành phần cơ bản của một neural nhân tạo bao gồm:
♦ Tập các đầu vào: Là các tín hiệu vào (input signals) của neural, các tín
hiệu này thường được đưa vào dưới dạng một vector N chiều.
♦ Tập các liên kết: Mỗi liên kết được thể hiện bởi một trọng số (gọi là trọng
số liên kết – Synaptic weight). Trọng số liên kết giữa tín hiệu vào thứ j với neural k
thường được kí hiệu là w
kj
. Thông thường, các trọng số này được khởi tạo một cách
6 ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học
Các mạng neural có cách tiếp cận khác trong giải quyết vấn đề so với máy
tính truyền thống. Các máy tính truyền thống sử dụng cách tiếp cận theo hướng giải
thuật, tức là máy tính thực hiện một tập các chỉ lệnh để giải quyết một vấn đề. Vấn
đề được giải quyết phải được biết và phát biểu dưới dạng một tập chỉ lệnh không
nhập nhằng. Những chỉ lệnh này sau đó phải được chuyển sang một chương trình
ngôn ngữ bậc cao và chuyển sang mã máy để máy tính có thể hiểu được.
Trừ khi các bước cụ thể mà máy tính cần tuân theo được chỉ ra rõ ràng, máy
tính sẽ không làm được gì cả. Điều đó giới hạn khả năng của các máy tính truyền
thống ở phạm vi giải quyết các vấn đề mà chúng ta đã hiểu và biết chính xác cách
thực hiện. Các máy tính sẽ trở lên hữu ích hơn nếu chúng có thể thực hiện được
những việc mà bản thân con người không biết chính xác là phải làm như thế nào.
Các mạng neural xử lý thông tin theo cách thức giống như bộ não con người.
Mạng được tạo nên từ một số lượng lớn các phần tử xử lý được kết nối với nhau
làm việc song song để giải quyết một vấn đề cụ thể. Các mạng neural học theo mô
hình, chúng không thể được lập trình để thực hiện một nhiệm vụ cụ thể. Các mẫu
phải được chọn lựa cẩn thận nếu không sẽ rất mất thời gian, thậm chí mạng sẽ hoạt
động không đúng. Điều hạn chế này là bởi vì mạng tự tìm ra cách giải quyết vấn đề,
thao tác của nó không thể dự đoán được.
1.2.3. Cơ sở lý thuyết phát triển ứng dụng
1.2.3.1. Cấu trúc mạng Neural
Mỗi Neural (nút) là một đơn vị xử lý thông tin của mạng neural, là yếu tố cơ
bản để cấu tạo nên mạng neural.
Input output
y
k
1.2.3.2. Hàm hoạt động
1.2.3.3. Tiến trình học
Tiến trình học là tiến trình quan trọng của con người, nhờ học mà bộ não
ngày càng tích luỹ những kinh nghiệm để thích nghi với môi trường và xử lý tình
huống tốt hơn. Mạng neural xây dựng lại cấu trúc bộ não thì cần phải có khả năng
nhận biết dữ liệu thông qua tiến trình học, với các thông số tự do của mạng có thể
thay đổi liên tục bởi những thay đổi của môi trường và mạng neural ghi nhớ giá trị.
teach/use
X1 W1
X2 W2
Inputs Output
X3 Wn
Neural
Teaching input
Tiến trình học
Trong quá trình học, giá trị đầu vào được đưa vào mạng và theo dòng chảy
trong mạng tạo thành giá trị ở đầu ra.
Tiếp đến là quá trình so sánh giá trị tạo ra bởi mạng Neural với giá trị ra
mong muốn. Nếu hai giá trị này giống nhau thì không thay đổi gì cả. Tuy nhiên, nếu
9 có một sai lệch giữa hai giá trị này vượt quá giá trị sai số mong muốn thì đi ngược
mạng từ đâu ra về đàu vào để thay đổi một số kết nối.
Đây là một quá trình lặp liên tục và có thể không dừng khi không tìm các giá
trị w sao cho đầu ra tạo bởi mạng Neural bằng đúng đầu ra mong muốn. Do đó
trong thực tế người ta phải thiết lập tiêu chuẩn dựa trên một giá trị sai số nào đó của
wij: vector trọng số của neural j số đầu vào i
u
j
: vector giá trị kết xuất của neural trong lớp j
x1 t
j
Wij
x2 W
2j
e
j
x
i – 1 W
(i – 1)
j
tổng
Neural j
x3 Wij
Mô hình tính toán một neural
f
j
(.)
10
Hình 1.4: Mạng phản hồi
1.2.4.2. Perceptron
Perceptron là mạng neural đơn giản nhất, nó chỉ gồm một neural, nhận đầu
vào là vector có các thành phần là các số thực và đầu ra là một trong hai giá trị +1
hoặc -1.
12
Hình 1.5: Perceptron
Đầu ra của mạng được xác định như sau: mạng lấy tổng có trọng số các
thành phần của vector đầu vào, kết quả này cùng ngưỡng b được đưa vào hàm
truyền (Perceptron dùng hàm Hard-limit làm hàm truyền) và kết quả của hàm truyền
sẽ là đầu ra của mạng.
1.2.4.3. Mạng nhiều tầng truyền thẳng (MLP)
Mô hình mạng neural được sử dụng rộng rãi nhất là mô hình mạng nhiều
tầng truyền thẳng (MLP: Multi Layer Perceptron). Một mạng MLP tổng quát là
mạng có n (n≥2) tầng (thông thường tầng đầu vào không được tính đến): trong đó
gồm một tầng đầu ra (tầng thứ n) và (n-1) tầng ẩn.
Hình 1.6: Mạng MLP tổng quát
Kiến trúc của một mạng MLP tổng quát có thể mô tả như sau:
13 ♦ Đầu vào là các vector (x1, x2, , xp) trong không gian p chiều, đầu ra là
các vector (y1, y2, , yq) trong không gian q chiều. Đối với các bài toán phân loại,
p chính là kích thước của mẫu đầu vào, q chính là số lớp cần phân loại. Xét ví dụ
trong bài toán nhận dạng chữ số: với mỗi mẫu ta lưu tọa độ (x,y) của 8 điểm trên
chữ số đó, và nhiệm vụ của mạng là phân loại các mẫu này vào một trong 10 lớp
Có ba phương pháp học phổ biến là học có giám sát (supervised learning),
học không giám sát (unsupervised learning) và học tăng cường (Reinforcement
learning):
♦ Học có giám sát: Là quá trình học có sự tham gia giám sát của một “thầy
giáo”. Cũng giống như việc ta dạy một em nhỏ các chữ cái. Ta đưa ra một chữ “a”
và bảo với em đó rằng đây là chữ “a”. Việc này được thực hiện trên tất cả các mẫu
chữ cái. Sau đó khi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể viết hơi khác đi)
và hỏi em đó đây là chữ gì?
Như vậy với học có giám sát, số lớp cần phân loại đã được biết trước. Nhiệm
vụ của thuật toán là phải xác định được một cách thức phân lớp sao cho với mỗi
vector đầu vào sẽ được phân loại chính xác vào lớp của nó.
♦ Học không giám sát: Là việc học không cần có bất kỳ một sự giám sát nào
Như vậy với học không giám sát, số lớp phân loại chưa được biết trước, và
tùy theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các lớp phân
loại khác nhau.
♦ Học tăng cƣờng: đôi khi còn được gọi là học thưởng-phạt (reward-penalty
learning), là sự tổ hợp của cả hai mô hình trên. Phương pháp này cụ thể như sau:
với vector đầu vào, quan sát vector đầu ra do mạng tính được.
2.1.2. Học có giám sát trong các mạng neural
Học có giám sát có thể được xem như việc xấp xỉ một ánh xạ: X→ Y, trong
đó X là tập các vấn đề và Y là tập các lời giải tương ứng cho vấn đề đó. Các mẫu (x,
15 y) với x = (x
1
, x
2
, . . ., x
n
Ngược lại: giảm O
Bước 2: Cập nhật giá trị ma trận trọng số
W
j
=W
j
+α*x
j
*Err. (α là hệ số học)
Bước 3: Lặp lại bước 1 và bước 2 cho đến khi Err < ε thì dừng
Thuật toán:
Bƣớc 1: Khởi tạo trọng số bởi các giá trị ngẫu nhiên nhỏ.
Bƣớc 2: Lặp lại cho tới khi thỏa mãn điều kiện kết thúc.
Với mỗi mẫu, thực hiện các bước sau:
16 2.1 Tính đầu ra o
j
cho mỗi nút j:
o
j
= f(d – b
j
) với d = Σx
ji
w
ji
2.2 Với mỗi nút k thuộc tầng ra, tính δ
ji
+ Δw
ji
Trong đó Δw
ji
= ηδ
k
x
ji
2.2. Các vấn đề trong xây dựng mạng MLP
2.2.1. Chuẩn bị dữ liệu
2.2.1.1. Kích thước mẫu
Không có nguyên tắc nào hướng dẫn kích thước mẫu phải là bao nhiêu đối
với một bài toán cho trước. Hai yếu tố quan trọng ảnh hưởng đến kích thước mẫu:
♦ Dạng hàm đích: khi hàm đích càng phức tạp thì kích thước mẫu cần tăng.
♦ Nhiễu: khi dữ liệu bị nhiễu (thông tin sai hoặc thiếu thông tin) kích thước
mẫu cần tăng.
Chú ý: việc tăng kích thước mẫu không làm tăng thời gian luyện. Những tập
mẫu lớn hơn sẽ yêu cầu ít thế hệ luyện hơn. Nếu ta tăng gấp đôi kích thước của
mẫu, mỗi thế hệ luyện sẽ tốn thời gian khoảng gấp đôi, nhưng số thế hệ cần luyện sẽ
giảm đi một nửa. Điều này có nghĩa là kích thước mẫu (cũng có nghĩa là độ chính
xác của mô hình) không bị giới hạn bởi thời gian luyện.
2.2.1.2. Sự phân tầng mẫu
Nếu ta tổ chức mẫu sao cho mỗi mẫu trong quần thể đều có cơ hội như nhau
thì tập mẫu được gọi là tập mẫu đại diện. Tuy nhiên khi ta xây dựng một mạng để
xác định xem một mẫu thuộc một lớp hay thuộc một loại nào thì điều ta mong muốn
là các lớp có cùng ảnh hưởng lên mạng, để đạt được điều này ta có thể sử dụng mẫu
phân tầng.
17
b. Thời gian học
18 12. Lựa chọn
13. Tiến hành thực hiện mô hình.
19 3. Chƣơng 3 – XÂY DỰNG CHƢƠNG TRÌNH DỰ BÁO GIÁ
CHỨNG KHOÁN
- Chương trình dự báo được xây dựng dựa trên công cụ:
o Visual Studio 2012
o Nền tảng Framework 4.5
- Mô hình neural được chọn là mô hình mạng MLP truyền thẳng gồm:
o Mạng Neural MLP (mạng Neural 3 lớp)
nhiều đầu vào
nhiều đầu ra
- Có rất nhiều thuật toán huấn luyện mạng nhưng em chọn thuật toán
o BackPropagation
Sau đây là những form chính của chương trình
Hình 3. 1: Form giao diện chƣơng trình dự báo
Chức năng chính của chương trình là dự báo giá chứng khoán (Vn-Index) tại
trung tâm giao dịch chứng khoán Tp.Hcm.
Nội dung chính là dự báo giá:
o Giá chứng khoán theo ngày
o Giá chứng khoán theo tháng
o Giá đóng cửa cuối năm
3.1. Dự báo dựa vào giá của những ngày quá khứ
1.Tính giá trị output .
2. So sánh output với giá trị mong muốn
(desired value). No
4. Nếu chưa đạt được giá trị mong muốn
thì hiệu chỉnh các thông và tính lại output Yes
Sau khi tính toán từ các input value đã cho, ta có output. Giá trị mong muốn
(Desired) đã biết trước. Sự chênh lệch giữa output và kết quả mong muốn được gọi
là lỗi = Desired – Output. Mục đích của việc Learning là làm sao cho lỗi càng nhỏ
càng tốt (Nếu lỗi = 0 là hoàn hảo nhất) bằng cách điều chỉnh các thông số của các
dữ liệu vào.
Tính tại
Output
Output
giá trị
mong
muốn
chưa?
Điều chỉnh
lại thông số
Dừng
21 Tiến hành huấn luyện mạng vài lần và chọn lần huấn luyện có lỗi training error
và testing error nhỏ nhất.
3.1.4. Kiểm tra dữ liệu được mô hình hóa (modeling)
Sau khi mạng học xong, kiểm tra dữ liệu học trong phần “Xem dữ liệu”, đầu ra
của dữ liệu học (training data) do mạng MLP đưa ra (NN Outputs) có dạng như:
giá thị trường chứng khoán.
Chương trình dự báo hoạt động rất tốt đối với việc dự báo trong thời gian
ngắn hạn, với tỉ lệ chính xác thường xuyên đạt ngưỡng trên 90%. Chương trình hoạt
động gần như chính xác khi ta muốn dự đoán được kết quả trong 1 tuần trở lại đây.
Nó sẽ giúp ích rất nhiều cho nhà đầu tư đư ra quyết định đầu tư của mình với mục
đích sinh lời và hạn chế rủi ro sao cho thấp nhất.
Với mô hình Neural Network này ta thấy rằng việc dự đoán giá trong thời
gian ngắn thì kết quả cho ra độ chính xác cao và độ chính xác sẽ giảm dần nếu dự
đoán trong khoản thời gian càng rộng.
Chương trình sẽ dự đoán tương đối chính xác giá của ngày mai, hay tháng
sau, và sẽ giảm dần độ chính xác nếu dự đoán theo quý, và đặc biệt chương trình
không còn chính xác nữa nếu dự đoán phiên giao dịch đóng cửa cuối cùng của năm
(xác suất chính xác rất thấp).
Ví dự như giá chứng khoán bão hòa ở các phiên giao dịch cuối năm từ năm
2000->2005 (tăng giảm không đáng kể), đột ngột tăng chóng mặt trong 2 năm 2006
và 2007 và đặc biệt là năm 2007 là đỉnh điểm. Rồi từ năm 2008 thị trường quay lại
trạng thái bão như trước kia. Có lẽ thị trường sẽ rất khó quay lại lúc đột biến như
năm 2007 (có thể là không bao giờ).
23 Như vậy chương trình sẽ không thể nào dự đoán được khi nào thị trường sẽ
tăng hay giảm đột biến được (vì những biến động của thị trường là không nhiều).
Hướng phát triển:
Để mạng lại ứng dụng rộng rãi, đề tài đã xây dựng cơ bản mô hình dự báo
giá, do vậy ngoài phạm vi áp dụng sàn giao dịch Tp.Hcm, đề tài hoàn toàn có thể áp
dụng sàn giao dịch chứng khoán bất kỳ nào khác. Mặt khác, bên cạnh thì mô hình
còn có thể phát triển để ứng dụng như dự báo tỷ giá, tốc độ tăng trưởng kinh tế…