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 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.
Trang 2Luậ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
Trang 3MỞ ĐẦ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:
Trang 4Chươ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
Trang 51 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.4 Chỉ số chứng khoán việt nam (VN – Index)
Trang 6Chỉ 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 :
∑ (P1i * Q1i ) * 100
VN-INDEX = -
P0i * Q0i
Trong đó : P1i : giá hiện hành của cổ phiếu i
Q1i : khối lượng đang lưu hành của cổ phiếu i
P0i : giá của cổ phiếu i thời kỳ gốc
Q0i : khối lượng cổ phiếu i thời kỳ gốc
Trang 7
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 1011 neural tham gia vào khoảng 1015 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
Trang 8ngẫ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
Trang 9Cá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
yk
b Hình 1.2: Cấu trúc 1 Neural
Trang 10wkp: trọng số của từng input
f(.): hàm hoạt động
yk: 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
Trang 11có 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ị ej = Tj – yj 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
uj: vector giá trị kết xuất của neural trong lớp j
Trang 121.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
Trang 13mạ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
Trang 14Hì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:
Trang 15♦ Đầ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;
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, …
Trang 162 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,