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
Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: …TS.ĐẶNG THỊ THU HIỀN………
Phản biện 1: ……………………………………………………………………………
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.
Thị trường chứng khoán đã đi vào hoạt động với rất nhiều biến động và đóng góp
vào sự phát triển của nền kinh tế nước ta. Đến nay thị trường đóng vai trò là một kênh huy
động vốn hiệu quả cho những người cần vốn đồng thời cũng mang lại mức lợi nhuận cao
cho các nhà đầu tư. Chính vì vậy thị trường không chỉ thu hút sự quan tâm của các nhà đầu
tư trong nước mà còn đông đảo các nhà đầu tư nước ngoài. Do đó, đề tài “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” là đề tài mà em tập trung nghiên cứu vào nhằm giúp cho các nhà đầu tư có thể
dự báo giá chứng khoán một cách tốt nhất và từ đó có thể đưa ra quyết định đầu tư của
mình.
Mục tiêu nghiên cứu:
Mục tiêu của đề tài là hướng đến việc xây dựng mô hình mạng neural phù hợp để dự
báo giá chứng khoán Tp. Hồ Chí Minh. Để hoàn thành mục tiêu trên, đề tài sẽ lần lượt trả
lời cho các câu hỏi:
- Thế nào là mô hình mạng Neural nhân tạo? Những đặc điểm nổi bật gì so với các
mạng truyền thống và cơ chế vận hành như thế nào?
- Cấu trúc mô hình mạng để dự báo giá chứng khoán tại Tp. Hồ Chí Minh.
Cấu trúc của luận văn:
2
Chương 1: Trình bày tổng quan về thị trường chứng khoán, các tham số ảnh hưởng
và trình bày về mạng neural nhân tạo.
Chương 2: Trình bày về cách thiết kế, các vấn đề và các bước thiết kế mô hình mạng
neuron dự báo.
Chương 3: Xây dựng, thiết kế một chương trình dự báo giá chứng khoán.
3
1. Chƣơng 1 – TỔNG QUAN VỀ THỊ TRƢỜNG CHỨNG KHOÁN
VÀ NEURAL NETWORK
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
Chỉ số VN – index xây dựng căn cứ vào giá thị trường của tất cả các cổ phiếu được niêm
yết. Với hệ thống chỉ số này, nhà đầu tư có thể đánh giá và phân tích thị trường một cách
tổng quát. VN – index được tính theo công thức sau :
∑ (P
1i
* Q
1i
) * 100
VN-INDEX =
P
0i
* Q
0i
Trong đó : P
1i
: giá hiện hành của cổ phiếu i
Q
1i
: khối lượng đang lưu hành của cổ phiếu i
P
0i
: giá của cổ phiếu i thời kỳ gốc
Q
0i
: khối lượng cổ phiếu i thời kỳ gốc
5
1.2. Tổng quan về mô hình mạng Neural
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
mạng.
♦ Bộ tổng (Summing function): Thường dùng để tính tổng của tích các đầu
vào với trọng số liên kết của nó.
♦ Ngƣỡng (còn gọi là một độ lệch - bias): Ngưỡng này thường được đưa vào
như một thành phần của hàm truyền.
♦ Hàm truyền (Transfer function) : Hàm này được dùng để giới hạn phạm vi
đầu ra của mỗi neural. Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho.
Thông thường, phạm vi đầu ra của mỗi neural được giới hạn trong đoạn [0,1] hoặc
[-1, 1]. Các hàm truyền rất đa dạng, có thể là các hàm tuyến tính hoặc phi tuyến.
Việc lựa chọn hàm truyền nào là tuỳ thuộc vào từng bài toán và kinh nghiệm của
người thiết kế mạng. Một số hàm truyền thường sử dụng trong các mô hình mạng
neural được đưa ra trong bảng 1 .
♦ Đầu ra: Là tín hiệu đầu ra của một neural, với mỗi neural sẽ có tối đa là
một đầu ra.
1.2.2. Giới thiệu về mạng neural nhân tạo
1.2.2.1. Mạng neural nhân tạo là gi?
Định nghĩa: Mạng neural nhân tạo, Artificial Neural Network (ANN) gọi tắt
là mạng neural, neural network, là một mô hình xử lý thông tin phỏng theo cách
thức xử lý thông tin của các hệ neural sinh học. Nó được tạo lên từ một số lượng lớn
các phần tử (gọi là phần tử xử lý hay neural) 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) làm việc như một thể thống nhất để giải quyết một vấn đề
cụ thể nào đó.
Một mạng neural nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận
dạng mẫu, phân loại dữ liệu, ) thông qua một quá trình học từ tập các mẫu huấn
luyện. Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các
neural.[5]
1.2.2.2. Lịch sử phát triển mạng neural
1.2.2.3. So sánh mạng neural với máy tính truyền thống
7
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
b
Hình 1.2: Cấu trúc 1 Neural
x
i
: các tín hiệu input
wk
1
wk
2
wk
3
∑
F (.)
8
w
kp
: trọng số của từng input
f(.): hàm hoạt động
y
k
: kết xuất của Neural
b: thông số ảnh hưởng đến ngưỡng ra của output
Phân loại cấu trúc mạng Neural
1.2.3.1.1. Mạng truyền thẳng một lớp
1.2.3.1.2. Mạng truyền thẳng nhiều lớp
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
hai giá trị này, hay dựa trên một số lần lặp xác định.
Giải thuật Back – Propagation
Thuật toán Back – Propagation được sử dụng để điều chỉnh các trọng số kết
nối sao cho tổng sai số E nhỏ nhất.
n
E = ∑ (t (x
i
, w) – y (x
i
))
2
i = 1
Trong đó:
t (x
i
, w): giá trị của tập mẫu
y (x
i
): giá trị kết xuất của mạng
Trước tiên , ta xét trên 1 Neural, mỗi Neural đều có giá trị vào và ra, mỗi giá
trị đều có một trọng số để đánh giá mức độ ảnh hưởng của giá trị vào đó. Thuật toán
Back – Propagation sẽ điều chỉnh các trọng số đó để giá trị e
j
= T
j
– y
j
là nhỏ nhất.
Trước hết ta phải xác định vị trí của mỗi neural. Neural nào là của lớp ẩn và
neural nào là của lớp xuất. Ta cần biết các ký hiệu:
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
1.2.4. Mô hình mạng neural
1.2.4.1. Các kiểu mô hình mạng neural
♦ Tự kết hợp (autoassociative): là mạng có các neural đầu vào cũng là các
neural đầu ra. Mạng Hopfield là một kiểu mạng tự kết hợp.
Mạng tự kết hợp
♦ Kết hợp khác kiểu (heteroassociative): là mạng có tập neural đầu vào và
đầu ra riêng biệt. Perceptron, các mạng Perceptron nhiều tầng (MLP: MultiLayer
Perceptron), mạng Kohonen, … thuộc loại này.
Mạng kết hợp khác kiểu
Ngoài ra tùy thuộc vào mạng có các kết nối ngược (feedback connections) từ
các neural đầu ra tới các neural đầu vào hay không, người ta chia ra làm 2 loại kiến
trúc mạng.
♦ Kiến trúc truyền thẳng (feedforward architechture): là kiểu kiến trúc mạng
không có các kết nối ngược trở lại từ các neural đầu ra về các neural đầu vào; mạng
không lưu lại các giá trị output trước và các trạng thái kích hoạt của neural. Các
11
mạng neural truyền thẳng cho phép tín hiệu di chuyển theo một đường duy nhất; từ
đầu vào tới đầu ra, đầu ra của một tầng bất kì sẽ không ảnh hưởng tới tầng đó. Các
mạng kiểu Perceptron là mạng truyền thẳng.
Hình 1.3: Mạng truyền thẳng
♦ Kiến trúc phản hồi (Feedback architecture): là kiểu kiến trúc mạng có các
kết nối từ neural đầu ra tới neural đầu vào. Mạng lưu lại các trạng thái trước đó, và
trạng thái tiếp theo không chỉ phụ thuộc vào các tín hiệu đầu vào mà còn phụ thuộc
vào các trạng thái trước đó của mạng. Mạng Hopfield thuộc loại này. [1][9]
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
tương ứng với 10 chữ số 0, 1, …, 9. Khi đó p là kích thước mẫu và bằng 8 x 2 = 16;
q là số lớp và bằng 10.
♦ Mỗi neural thuộc tầng sau liên kết với tất cả các neural thuộc tầng liền
trước nó.
♦ Đầu ra của neural tầng trước là đầu vào của neural thuộc tầng liền sau nó.
Hoạt động của mạng MLP như sau: tại tầng đầu vào các neural nhận tín hiệu
vào xử lý (tính tổng trọng số, gửi tới hàm truyền) rồi cho ra kết quả (là kết quả của
hàm truyền); kết quả này sẽ được truyền tới các neural thuộc tầng ẩn thứ nhất; các
neural tại đây tiếp nhận như là tín hiệu đầu vào, xử lý và gửi kết quả đến tầng ẩn thứ
2;…; quá trình tiếp tục cho đến khi các neural thuộc tầng ra cho kết quả.
1.2.5. Ứng dụng của mạng Neural
Ngày nay, mạng neural ngày càng được ứng dụng nhiều trong thực tế. Đặc
biệt là các bài toán nhận dạng mẫu, xử lý, lọc dữ liệu, điều khiển, và dự báo. Ứng
dụng của mạng neural được chia thành các loại sau:
- Xử lý ngôn ngữ: Xử lý ngôn ngữ tự nhiên, …
- Nhận dạng mẫu: nhận dạng ảnh, nhận giọng nói, nhận dạng chữ viết, nhận
dạng ảnh người đi bộ, …
- Xử lý tín hiệu: Điều khiển tự động, …
- Lọc và phân loại dữ liệu: chuẩn đoán bệnh, tìm kiếm, …
- Dự báo: dự đoán thị trường chứng khoán, dự báo thời tiết, dự báo tài chính,
dự báo lưu lượng nước, …
14
2. Chƣơng 2 – THIẾT KẾ MÔ HÌNH MẠNG NEURAL DỰ
BÁO
2.1. Huấn luyện mạng Neural
2.1.1. Các phương pháp học
Khái niệm: Học là quá trình thay đổi hành vi của các vật theo một cách nào
đó làm cho chúng có thể thực hiện tốt hơn trong tương lai.
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
) ∈ X, y = (y
l
, y
2
, . . ., y
m
) ∈ Y được cho trước. Học có giám
sát trong các mạng neural thường được thực hiện theo các bước sau:
♦ B1: Xây dựng cấu trúc thích hợp cho mạng neural, chẳng hạn có (n + 1)
neural vào (n neural cho biến vào và 1 neural cho ngưỡng x
0
), m neural đầu ra, và
khởi tạo các trọng số liên kết của mạng.
♦ B2: Đưa một vector x trong tập mẫu huấn luyện X vào mạng
♦ B3: Tính vector đầu ra o của mạng
♦ B4: So sánh vector đầu ra mong muốn y (là kết quả được cho trong tập
huấn luyện) với vector đầu ra o do mạng tạo ra; nếu có thể thì đánh giá lỗi.
♦ B5: Hiệu chỉnh các trọng số liên kết theo một cách nào đó sao cho ở lần
tiếp theo khi đưa vector x vào mạng, vector đầu ra o sẽ giống với y hơn.
♦ B6: Nếu cần, lặp lại các bước từ 2 đến 5 cho tới khi mạng đạt tới trạng thái
hội tụ. Việc đánh giá lỗi có thể thực hiện theo nhiều cách, cách dùng nhiều nhất là
sử dụng lỗi tức thời: Err = (o - y), hoặc Err = |o - y|; lỗi trung bình bình phương
(MSE: mean-square error): Err = (o- y)
2
/2;
2.1.3. Thuật toán lan truyền ngược
Nguyên tắc hoạt động:
Bước 1: Xác định giá trị Err (lỗi)
Err = T – O (T: đầu ra mong muốn, O: đầu ra của mạng)
Nếu Err > 0 thì tăng O
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 δ
k
theo công thức:
δ
k
= (t
k
– o
k
)(1 – o
k
)o
k
2.3 Với mỗi nút h thuộc tầng ẩn, tính δ
h
theo công thức:
δ
h
= o
h
(1 – o
h
) Σδ
k
w
kh
với k ∈ Downstream(j)
2.4 Cập nhật: w
ji
= w
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
2.2.1.3. Chọn biến
Khi tạo mẫu cần chọn các biến sử dụng trong mô hình. Có 2 vấn đề cần quan
tâm:
♦ Cần tìm hiểu cách biến đổi thông tin sao cho có lợi cho mạng hơn: thông
tin trước khi đưa vào mạng cần được biến đổi ở dạng thích hợp nhất, để mạng đạt
được hiệu xuất cao nhất.
♦ Chọn trong số các biến đã được biến đổi biến nào sẽ được đưa vào mô
hình: không phải bất kì thông tin nào về mẫu cũng có lợi cho mạng.
2.2.2. Xác định các tham số cho mạng
2.2.2.1. Chọn hàm truyền
2.2.2.2. Xác định số neural lớp ẩn
2.3. Các bƣớc thiết kế mô hình dự báo Neural Network
Gồm 13 bƣớc:
1. Lựa chọn biến số.
2. Thu thập dữ liệu.
3. Phân tích dữ liệu.
4. Tính số neural và dữ liệu
a. Số đầu vào
b. Số đầu ra
c. Số dataset
5. Xử lý dữ liệu.
6. Phân chia dữ liệu
7. Lựa chọn hàm biến đổi cho lớp ẩn
8. Lựa chọn hàm biến đổi cho lớp ra
9. Tính số lượng các neural ẩn
10. Chọn tỉ lệ học
11. Xác định điều kiện dừng
a. Số lần lặp
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ứ
3.1.1. Chuẩn bị dữ liệu
3.1.1.1. Lựa chọn, thu thập, tổ chức dữ liệu
Chuẩn bị dữ liệu dạng file text
Dữ liệu dạng file text cần được chuẩn bị thành các hàng và cột. Đầu tiên là ID,
sau đó là đầu vào và tiếp theo là đầu ra. Các giá trị được phân cách bằng dấu phẩy
với file CSV (Comma Separated Value File Format). Có thể dùng MS Excel để biên
soạn dữ liệu, sau đó lưu vào file file text hoặc file csv.
3.1.1.2. Tính số neural và dữ liệu:
3.1.1.3. Chuẩn hóa dữ liệu
20
3.1.1.4. Phân chia dữ liệu
3.1.2. Tìm các thông số thích hợp cho mạng neural
3.1.2.1. Lựa chọn số neural cho lớp ẩn
Số neural ẩn phụ thuộc vào ngƣời sử dụng
3.1.2.2. Lựa chọn hàm biến đổi cho lớp ẩn
3.1.2.3. Lựa chọn hàm biến đổi cho lớp ẩn
3.1.2.4.
3.1.2.5. Điều kiện dừng:
3.1.2.5.1. Số lần lặp
3.1.2.5.2. Thời gian học
3.1.3. Huấn luyện mạng:
ANN được huấn luyện (Training) hay được học (Learning) theo kỹ thuật cơ bản đó
là học có giám sát (Supervised Learning).
Supervised learning: Quá trình Training được lặp lại cho đến kết quả (output) của
ANN đạt được giá trị mong muốn (Desired value) đã biết. Áp dụng cho kỹ thuật
này là mạng Neural lan truyền ngược (Backpropagation).
Quá trình học của mạng Neural Network
đƣợc mô tả nhƣ sau:
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ư:
Hình 3. 2: Đồ thị so sánh kết quả thực tế và mong muốn
Chữ nhật màu đỏ: Thực tế (dự báo)
Chữ nhật màu xanh: Desired (đã biết trước)
Với dữ liệu học, đầu ra của mạng gần trùng khớp với đầu ra yêu cầu
(hình chữ nhật màu đỏ gần trùng khớp với hình chữ nhật màu xanh). Nhận thấy
mạng neural MLP học rất tốt, dự báo đúng hơn 95%.
3.2 Dự báo dựa vào giá của những biến động trên thị trƣờng:
3.2.1 Dựa vào biến động của nền kinh tế trong 10 năm về trước:
Với dữ liệu học, đầu ra của mạng ít trùng khớp với đầu ra yêu cầu
(hình chữ nhật màu đỏ ít trùng khớp với hình chữ nhật màu xanh). Nhận thấy mạng
neural MLP học tương đối, dự báo chưa được tốt lắm.
3.2.2 Dựa vào biến động của nền kinh tế trong năm hiện tại:
(tương tự như cách tính trong 10 năm trước)
22
Với dữ liệu học, đầu ra của mạng trùng khớp với đầu ra yêu cầu (hình
chữ nhật màu đỏ trùng khớp với hình chữ nhật màu xanh). Nhận thấy mạng neural
MLP học tốt, dự báo chính xác khoảng 90%.
Kết luận:
Mạng neural nhân tạo là một lĩnh vực nghiên cứu rộng lớn. Nó ngày càng
được ứng dụng nhiều trong thực tế. Mạng với các ưu điểm như: cấu trúc đơn giản,
độ chính xác cao,… Tuy nhiên trong khuôn khổ luận văn tốt nghiệp em chỉ tìm hiểu
về cấu tạo noron sinh học, mô hình mạng noron nhân tạo, mô hình mạng, một số
phương pháp huấn luyện mạng, ứng dụng của mạng trong bài toán dự đoán. Trên cơ
sở lý thuyết đã tìm hiểu em đã tiến hành cài đặt thuật toán backpropagation dự báo
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ế…