- Xây dựng cho mình một mô hình mạng noron dựa theo tám bước: chọn lựa
các biến, thu thập dữ liệu, tiền xử lý dữ liệu, phân hoạch dữ liệu, xác định cấu
trúc mạng, xác định tiêu chuẩn đánh giá, huấn luyện mạng, thực thi trong
thực tế
- Xây dựng thuật toán lựa chọn được bộ tham số tốt nhất cho mạng noron
nhằm tạo ra một mô hình với độ chính xác cao.
57 trang |
Chia sẻ: lylyngoc | Lượt xem: 2686 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Luận văn 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ở, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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ự đố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ự đố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ự đố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 ngồ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ự đốn được tương lai.
82.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.
9Chươ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 tố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:
x1, x2, ……, xm: 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=(x1, x2, ….. , xm). 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 Wkj (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 Wkj. 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 bk 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.
uk 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 uk 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 yk 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 yk là:
ݕ = ݂(ݑ + ܾ)
Vì hệ số ngưỡng bk là tham số ngồi nên chúng ta cĩ thể coi nĩ như một đầu vào x0
cố định cĩ giá trị x0 = 1, và cĩ trọng số của liên kết là Wk0 = bk. 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 ݊ếݑ ݑ ≥ 00 ݊ếݑ ݑ < 0
Đồ thị:
Hình 3.3 – Hàm ngưỡng
b. Hàm vùng tuyến tính
Cơng thức
ݕ = ݂(ݑ) =
⎩⎪
⎨
⎪⎧1 ݊ếݑ ݑ ≥
12
ݑ ݊ếݑ 12 > ݑ > − 12
0 ݊ếݑ ݑ ≤ − 12
Đồ 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 tố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 tố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 tốn học. Khơng cĩ một thuật tốn
học chung mà tồn tại rất đa dạng các thuật tố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 tố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 tố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 tố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à xp và giá trị đầu ra mong muốn là dp. 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 dp một lượng là (dp – yp),
trong đĩ yp là đầu ra thực sự của mạng với đầu vào xp. 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à:
ܧ = 12 ( ݀ − ݕ)ଶ (2.1)
Hàm lỗi tổng cộng Ep đượ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:
ܧ = 12ܧ
ே
ୀଵ
= 12(݀ − ݕ)ଶ (2.2)
ே
ୀଵ
Trong đĩ No 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:
19
ݕ = ݂൫ݏ൯ (2.3)
ݏ = ݓ. ݕ (2.4)
ݕ là tín hiệu đầu ra của noron k với mẫu p.
ݕ là tín hiệu đầu vào cho noron k cũng chính là đầu ra của các noron ở lớp trước
Mục đích quá trình học đối với thuật tốn làn truyền ngược là điều chỉnh các tham
số tự do sao cho hàm lỗi tổng cộng Ep đạt cực tiểu. Phương pháp tìm cực tiểu thơng dụng
nhất là tính đạo hàm của hàm số và dịch chuyển vector tham số lại gần điểm đạo hàm triệt
tiêu theo chiều ngược với vector gradient của hàm số. Ý tưởng của phương pháp này là
thay đổi các trọng số wkj một lượng là ∆ݓ được định nghĩa bởi cơng thức.
∆ݓ = −ߛ ߲ܧ߲ݓ (2.5)
γ là hằng số tỷ lệ và chính là tốc độ học của mạng
Chúng ta cĩ thể viết
߲ܧ߲ݓ =
߲ܧ
߲ݏ .
߲ݏ߲ݓ (2.6)
Từ (2.4) thì:
߲ݏ߲ݓ = ݕ (2.7)
Đặt ߜ = − డாడ௦ೖ kết hợp với (2.6) và (2.7), cơng thức (2.5) được viết lại thành
∆ݓ = ߛߜݕ (2.8)
Việc cịn lại là phải tính ߜ. Để tính được nĩ chúng ta thực hiện một chút biến đổi
ߜ = − ߲ܧ߲ݏ = −
߲ܧ
߲ݕ .
߲ݕ߲ݏ (2.9)
߲ݕ߲ݏ = ݂ ′൫ݏ
൯ (2.10)
20
Trong cơng thức (2.10) giá trị ݂ ′൫ݏ൯ chính là đạo hàm của hàm truyền tại noron k
Để tính được డாడ௬ೖ ta xét 2 trường hợp.
Trường hợp thứ nhất: noron k đang xét là noron đầu ra của mạng (k = o). Trong
trường hợp này chúng ta cĩ:
߲ܧ
߲ݕ =
߲ܧ
߲ݕ = −(݀
− ݕ) (2.11)
Do đĩ:
ߜ = ߜ = (݀ − ݕ). ݂ ′(ݏ) (2.12)
Trường hợp thứ hai: noron k đang xét thuộc lớp ẩn (k = h). Trong trường hợp này
chúng ta khơng thể biết được sự sai khác giữa đầu ra mong muốn của noron với đầu ra
thực tế như trường hợp thứ nhất. Tuy nhiên chúng ta cĩ thể tính tốn thơng qua các noron
thuộc lớp đầu ra như sau:
Coi ܧ = ܧ(ݏଵ, ݏଶ, …… . , ݏ, … ) khi đĩ:
߲ܧ
߲ݕ =
߲ܧ
߲ݏ .
߲ݏ߲ݕ =
ே
ୀଵ
߲ܧ߲ݏ .
߲
߲ݕݓݕ
ே
ୀଵ
=
ே
ୀଵ
߲ܧ߲ݏ . ݓ
ே
ୀଵ
= −ߜݓ
ே
ୀଵ
(2.13)
Đo đĩ
ߜ = ݂ ′(ݏ)ߜݓ
ே
ୀଵ
Phương trình (2.12) và (2.14) đưa ra một thủ tục đệ quy cho việc tính tốn δ đối với
tất cả các noron trong mạng. Sau khi tính được δ chúng ta sẽ dễ dàng tính được sự biến
thiên trọng số liên kết theo cơng thức (2.8).
Trên cơ sở đĩ thuật tốn lan truyền ngược sai số để huấn luyện mạng MLP được mơ
tả chi tiết hơn như sau:
21
INPUT: tập mẫu học được cung cấp dưới dạng (x = (x1,x2,..,xp),y = (y1,y2,..,yq))
với số lượng mẫu là N
OUTPUT: các ma trận trọng số w1,w2,..,wM và các vector ngưỡng tại các nơ ron
ở các lớp b1,b2,..,bM
PROCESS:
Bước 1: Khởi tạo các tham số mạng (trọng số và ngưỡng), hệ số học , sai số tối
đa cho phép Emax và số lần huấn luyện tối đa I.
Khởi tạo k = 1 (mẫu học thứ k), i = 1 (lần huấn luyện thứ i)
Bước 2: Đưa mẫu huấn luyện thứ k vào mạng
Bước 3: Lan truyền xuơi tín hiệu đầu vào lần lượt qua các lớp nơ ron (từ lớp ẩn
thứ nhất, qua lớp ẩn thứ hai, .., đến lớp đầu ra) để tính đầu ra tương ứng tại mỗi lớp
theo cơng thức (2.0)
Bước 4: Tính sai số E và tín hiệu sai số ở lớp đầu ra của mạng theo cơng thức
(2.12) và (2.13).
Bước 5: Lan truyền ngược tín hiệu sai số (từ lớp đầu ra, qua lớp ẩn cuối cùng,..,
đến lớp ẩn đầu tiên) để cập nhật trọng số và ngưỡng tại các lớp nơ ron cũng như tính
tín hiệu sai số cho lớp trước nĩ theo các cơng thức (2.10)(2.11) và (2.7)
Bước 6: Nếu k<N (chưa hết số mẫu học) thì k:=k+1 và quay lại bước 2, ngược lại
chuyển tới bước 7
Bước 7: Tính sai số trung bình sau lần huấn luyện thứ i với tập mẫu gồm N mẫu
E = (
N
k
kE
1
) /N
Nếu EI thì trả về các ma trận trọng số và các vector ngưỡng và kết
thúc quá trình huấn luyện. Ngược lại gán i:=i+1 rồi lặp lại các bước từ 2 tới 7
22
Như vậy tơi đã trình bày về mạng noron cũng như thuật tốn lan truyền ngược. Đĩ là
những cơ sở lý thuyết để tơi tiến hành đi vào xây dựng mơ hình chương trình của tơi sau
này.
23
Chương 4. MẠNG NORON CHO QUÁ TRÌNH DỰ
ĐỐN
4.1. Mơ hình mạng noron cho việc dự báo
Dựa trên kiến trúc của một hệ thống khai phá dữ liệu đã được tơi trình bày ở chương
2, cùng với nhữn lý thuyết về mạng noron ở chương 3. Chúng ta cĩ thể sử dụng mơ hình
sau cho việc dự đốn:
Hình 4.1 – Mơ hình dự đốn sử dụng mạng noron
Mơ hình trên bao gồm:
Tập huấn luyện: là tập hợp dữ liệu đầu vào phục vụ cho quá trình học của mạng
Tập huấn
luyện Học cho mạng
Tập đánh
giá
Mạng đã được học
n, ݓሬሬ⃗
Mạng tối ưu
Tập dự
đốn
Kết quả
No
Hàm đánh
giá
Yes
24
Tập đánh giá: là tập dùng để kiểm chứng việc học của mạng.
Hàm đánh giá: thực hiện cơng việc kiểm định xem mạng đã đáp ứng được yêu cầu
của hệ thống chưa.
Tập dự đốn: là tập dữ liệu cĩ cấu trúc giống như tập huấn luyện nhưng giá trị cần
dự đốn bị khuyết và nhiệm vụ của mạng noron đã được tối ưu là bổ sung giá trị bị khuyết
này của tập dự đốn.
Quá trình hoạt động của mơ hình
Giai đoạn học: Ban đầu mạng noron với thuật tốn lan truyền ngược (đã giới thiệu ở
trên) sẽ sử dụng tập huấn luyện làm vector đầu vào để xác lập các tham số cho mạng như
số lớp ẩn, các trọng số liên kết… Kết quả thu được sẽ là một mạng đã được học, tuy nhiên
để đảm bảo nĩ đáp ứng được độ chính xác cao cần phải cho chạy thử với tập dữ liệu khác
dùng để đánh giá. Ta sẽ thu tỷ lệ lỗi của mạng đối với tập đánh giá này và thực hiện so
sánh với tỷ lệ lỗi giới hạn, nếu đáp ứng được thì chấp nhận mạng vừa được học đĩ, nếu
khơng thì thay đổi tham số và quay lại bước học
Giai đoạn dự đốn: Sau khi kết thúc giai đoạn học, ta sẽ thu được một mơ hình mạng
nơ ron với các tham số tốt nhất. Khi đĩ, ta chỉ cần dùng bộ dữ liệu dùng để dự đốn áp
vào mơ hình thì mơ hình sẽ trả lại kết quả dự báo.
4.2. Các bước thiết kế mơ hình
Khơng cĩ một phương pháp chung nào để xác định cấu trúc phù hợp của mạng nơ
ron cho từng bài tốn. Việc thiết kế mạng nơ ron cĩ thành cơng hay khơng phụ thuộc vào
sự hiểu biết rõ ràng về vấn đề, cĩ thể dựa vào thực nghiệm hoặc kinh nghiệm trong lĩnh
vực đĩ.
Việc chọn lọc dữ liệu đầu vào và hiệu chỉnh trọng số là rất quan trọng trong mạng
nơ ron. Nelson và Illingworth [9] đưa ra 8 bước trong việc thiết kế một mạng nơ ron như
sau:
1. Chọn lựa các biến.
2. Thu thập dữ liệu
3. Tiền xử lý dữ liệu
25
4. Phân chia tập dữ liệu thành các tập: huấn luyện, kiểm tra, kiểm định.
5. Xác định cấu trúc mạng
- Số tầng ẩn
- Số các nơ ron ẩn
- Số các nơ ron đầu ra,
- Hàm chuyển
6. Xác định tiêu chuẩn đánh giá (hàm lỗi)
7. Huấn luyện mạng nơ ron
- Tiêu chuẩn dừng
- Tốc độ “học” và tốc độ hội tụ
8. Triển khai
4.2.1. Chọn lựa các biến
Trong bất kỳ một bài tốn nào cũng vậy chúng ta luơn phải xác định đầu vào (các
biến) cho chúng. Trong bài tốn dự báo chứng khốn này của tơi cũng thế, tơi cũng phải
lựa chọn cho mình những biến đầu vào. Như tơi đã nĩi ở phần giới thiệu, cĩ quá nhiều
yếu tố ảnh hưởng đến tương lai của một mã chứng khốn, và chúng thường khá phức tạp,
khơng cĩ một quy luật củ thể nào. Khĩa luận này tơi sẽ chỉ sử dụng giá chứng khốn tại
các thời điểm trong quá khứ để dự đốn giá cho thời điểm mong muốn.
Như vậy dữ liệu của mơ hình gồm một chuỗi các quan sát:
ܴ(1), ܴ(2),… , ܴ(ݐ − 1), ܴ(ݐ), ܴ(ݐ + 1),… , ܴ(݊)
4.2.2. Thu thập dữ liệu
Dữ liệu về giá chứng khốn trong bài tốn được tơi thu thập bằng cách sử dụng một
phần mềm mã nguồn mở là jstock. Phần mềm này cĩ khả năng thu thập được rất nhiều
chứng khĩa của 24 nước trên thế giới. Chi tiết hơn về jstock tơi sẽ mơ tả trong phần sau
của khĩa luận
4.2.3. Tiền xử lý dữ liệu
Dữ liệu thu thập được cần phải được xử lý cho phù hợp với đầu vào của mạng trước
khi chúng được sử dụng. Theo như kiến thức mơ tả về mạng noron ở chương 3, dư liệu sẽ
gồm đầu vào và đầu ra thực sự. Trong bài tốn này của tơi, đầu vào ở đây là k giá trị
26
chứng khốn trước đĩ (k được cho trước). Đầu ra là giá trị dự đốn cho thời điểm tương
lai.
Rh(t+1) Rh(t) Rh(t-1) … Rh(t-k+1)
Với bài tốn này, ta tổ chức dữ liệu theo chiều tiến của thời gian với cột đầu tiên là
giá chứng khốn của thời điểm thứ k trước đĩ và các cột cịn lại là giá trị chứng khốn tại
các thời điểm tăng đần theo thời gian.
Rh(1) Rh(2) … Rh(k) Rh(k+1)
Rh(2) Rh(3) … Rh(k+1) Rh(k+2)
Rh(3) Rh(4) … Rh(k+2) Rh(k+3)
… … … … …
Rh(t-k+1) Rh(t-k+2) … Rh(t) Rh(t+1)
… … … … …
Rh(n-k) Rh(n-k+1) … Rh(n-1) Rh(n)
Bảng 4.1 – Tổ chức dữ liệu của mơ hình
Như vậy với cách thức tổ chức này thì đầu ra chính là giá trị của cột cuối cùng.
4.2.4. Phân hoạch tập dữ liệu
Bất kể một mơ hình nào cũng cần phải được đánh giá và kiểm tra trước khi đưa vào
áp dụng thực tế. Chúng ta sẽ làm việc này bằng cách chia tập dữ liệu đã được chuẩn hĩa
thành ba tập dữ liệu con gồm: tập huấn luyện (training set), tập đánh giá (validation set),
và tập kiểm tra (testing set). Tập dữ liệu là tập con lớn nhất ( thường chiếm tới 70%) dùng
để huấn luyện và thiết lập các tham số của mạng. Tập đánh giá ( thường chiếm 20%) được
sử dụng với mục đích kiểm định xem mơ hình học đã thực sự tốt hay chưa. Nếu chưa tốt
thì tiến hành học lại. Tập kiểm tra (thường chiếm 10%) dùng để kiểm tra độ chính xác của
mơ hình trước khi chúng được đưa vào áp dụng thực tế. Một mơ hình mạng noron tốt là
mơ hình mà cho tỉ lệ lỗi với tập test ở mức chấp nhận được. Hình vẽ dưới đây thể hiện tỉ
lệ kích thước giữa các tập huấn luyện, kiểm tra và kiểm chứng [9].
27
Hình 4.2 – Tỷ lệ kích thước giữa các tập huấn luyện [9]
Hiện tượng overfitting [3], [9] thường xảy ra khi tập huấn luyện khơng đủ độ tổng
quát. Nĩi theo cách khác, cĩ tương đối ít các mẫu quan sát về các mối tương quan giữa
các tham số của mơ hình vì thế mà mơ hình cĩ khả năng ghi nhớ các mẫu riêng lẻ hơn là
tổng quát hĩa các mẫu. Với mạng nơ ron, số trọng số liên kết và kích thước tập huấn
luyện cĩ ảnh hướng quyết định đến nguy cơ overfitting. Số trọng số liên kết càng lớn hơn
kích thước của tập huấn luyện, thì mạng càng cĩ khả năng ghi nhớ tốt các mẫu riêng lẻ.
Kết quả là khả năng tổng quát hĩa trên tập kiểm chứng bị mất dẫn tới khả năng dự báo
của mơ hình giảm đi rõ rệt.
Để ngăn chặn nguy cơ overfitting (hiện tượng khả năng học của mạng là rất tốt
nhưng khả năng tổng quát hĩa của mạng là kém, tức là mạng dự đốn tốt với những dữ
liệu đã được huấn luyện nhưng lại tỏ ra kém hiệu quả khi dữ liệu mới vào mơ hình) thì
kích cỡ của tập huấn luyện ít nhất phải bằng 5 lần số trọng số liên kết [5].
4.2.5. Xác định cấu trúc mạng
Số lượng tầng ẩn
Những tầng ẩn cung cấp cho mạng năng lực để tổng quát hĩa.
Trên lí thuyết, chỉ cần 1 lớp cũng đủ tương đương với bất kì hàm liên tục nào.
Cả lý thuyết và kinh nghiệm làm việc đều chỉ ra rằng việc thiết kế mạng nơ ron quá
4 tầng (tầng đầu vào, tầng đầu ra và 2 tầng ẩn) sẽ khơng giúp cải thiện kết quả phân lớp.
28
Hơn thế, việc tăng số lượng tầng ẩn làm tăng khả năng overfitting và tăng thời gian tính
tốn [9].
Số lượng nơ ron tầng vào và tầng ẩn
Khơng cĩ cơng thức chung nào giúp chỉ ra số nơ ron tầng ẩn thích hợp cho mọi bài
tốn. Sự lựa chọn số nơ ron ẩn thích hợp phụ thuộc rất nhiều vào kinh nghiệm. Tuy nhiên
cũng cĩ một số gợi ý mà các nhà nghiên cứu đưa ra giúp chúng ta cĩ những bước chọn
thuận lợi.
Một mơ hình mạng nơ ron ba lớp với n nơ ron ở tầng vào và m nơ ron ở tầng ra thì
số nơ ron ở tầng ẩn cĩ thể bằng: √݊ × ݉ . Baily và Thompson thì đề nghị rằng số nơ ron
của tầng ẩn bằng khoảng 75% số nơ ron của tầng vào. Theo Katz [7] thì cho rằng số nơ
ron ẩn tối ưu gấp 1.5 đến 3 lần số nơ ron tầng vào.
Các gợi ý trên cho thấy việc lựa chọn số nơ ron của tầng ẩn phụ thuộc hồn tồn vào
số nơ ron của tầng vào, điều này khiến mơ hình mạng dễ rơi vào trạng thái overfitting.
Giải pháp được đưa ra là tăng kích thước tập huấn luyện, nếu điều này khơng thể thực
hiện thì cĩ thể nâng giới hạn số nơ ron tầng vào. Như thế số lượng trọng số liên kết ít nhất
bằng một nửa số lần huấn luyện.
Tuy nhiên, lựa chọn được số lượng nơ ron ẩn tốt nhất vẫn là ở thực nghiệm.
Số nơ ron tầng ra
Trong các bài tốn dự báo tài chính, số nơ ron tầng ra luơn luơn là 1. Việc sử dụng
nhiều giá trị đầu ra sẽ tạo ra kết quả thấp hơn so với một mạng nơ ron với một đầu ra [6].
Lý do là một mạng nơ ron được huấn luyện bằng cách chọn trọng số với bất kì số lượng
nơ ron đầu ra nào đều đã được tối ưu. Cĩ thêm nhiều đầu ra làm tăng khơng gian lưu trữ
cũng như khả năng tính tốn.
Hàm truyền
Hầu hết các mơ hình mạng nơ ron đều sử dụng hàm truyền sigmoid, hàm này vẫn tỏ
ra khá hiệu quả và đơn giản, phù hợp với mơ hình dự đốn của chúng ta.
Sau đây là một số kết quả về độ hội tụ của mạng nơ ron với một số bộ giá trị tham
số cho trước. Trong mỗi hình này, đường mầu xanh serie 1 là các giá trị thực tế của đối
29
tượng cần huấn luyện trong mạng nơ ron, đường mầu hồng serie 2 là các giá trị dự đốn
khi sử dụng mơ hình mạng [9].
Hình 4.3 – Độ hội tụ: 3 tầng, 20 nơ ron ẩn, 50 bước
Hình 4.4 – Độ hội tụ: 3 tầng, 20 nơ ron ẩn, 100 bước
Hình 4.5 – Độ hội tụ: 3 tầng, 20 nơ ron ẩn, 300 bước
30
Hình 4.6 – Độ hội tụ: 3 tầng, 50 nơ ron ẩn, 5 bước
Hình 4.7 – Độ hội tụ: 3 tầng, 50 nơ ron ẩn, 50 bước
Hình 4.3, 4.4, 4.5 chỉ ra sự hội tụ khi sử dụng mơ hình mạng nơ ron 3 tầng với 20 nơ
ron ẩn và số bước thực hiện lần lượt là 50, 100, 300. Ta nhận thấy mạng cho kết quả hội
tụ cao khi số bước thực hiện lớn đối với các mơ hình cĩ cùng số tầng ẩn và số nơ ron ẩn.
Khi tăng số nơ ron ẩn, mạng hội tụ nhanh hơn, số bước thực hiện ít hơn. Điều này thấy rõ
trong hình 4.6 và 4.7. Với 50 nơ ron ẩn, mạng chỉ cần 50 bước thực hiện để đạt được độ
hội tụ tương đương với mơ hình mạng sử dụng 20 nơ ron ẩn và 300 bước thực hiện.
4.2.6. Xác định tiêu chuẩn đánh giá
Việc xác định tiêu chuẩn đánh giá chính là xác định hàm lỗi để căn cứ vào đĩ đánh
giá mơ hình mạng cĩ thực sự tốt hay khơng. Cĩ rất nhiều hàm lỗi cĩ thể sử dụng được
nhưng trong khĩa luận này tơi sử dụng sai số trung bình bình phương (root mean squared
error) để đánh giá. Cơng thức của sai số trung bình bình phương được đánh giá bởi
phương trình:
31
ܧ = ඩ1݊( ܲ − ܶ)ଶ
ୀଵ
Trong đĩ:
Pj là giá trị được dự đốn cho mẫu thứ j
Tj là giá trị thực của mẫu thứ j
n là số mẫu
Sau khi xác định được hàm lỗi chúng ta cĩ thể sử dụng 2 chiến lược [4] sau để kiểm
chứng. Mục đích của chúng ta là thu được mơ hình cĩ sai sơ trung bình bình phương E là
nhỏ nhất.
Chiến lược cửa sổ tăng trưởng (growing window)
Hoặc cĩ thể sử dụng cửa sổ trượt (Sliding window) :
1. Cho chuỗi Rh(1),Rh(2), . . . ,Rh(n) và thời gian t
(t < n)
2. Xây dựng mơ hình dự đốn với tập dữ liệu huấn
luyện Rh(1),Rh(2), . . . ,Rh(t−1)
3. LẶP
a. Dự đốn giá trị của Rh(t)
b. Ghi lại tỉ lệ lỗi dự đốn
c. Thêm Rh(t) vào tập huấn luyện
d. Xây dựng mơ hình mới với tập huấn luyện mới
e. Đặt t = t + 1
4. ĐẾN KHI t = n
32
4.2.7. Huấn luyện mạng nơ ron
Huấn luyện mạng nơ ron cĩ nghĩa là học các mẫu từ dữ liệu. Mục tiêu của huấn
luyện là tìm ra được tập trọng số liên kết giữa các nơ ron sao cho hàm lỗi (hàm giá) là nhỏ
nhất. Nếu một mơ hình khơng rơi vào trạng thái overfiting thì tập trọng số liên kết cĩ thể
cung cấp khả năng tổng quát hĩa tốt. Thuật tốn lan truyền ngược sai số như đã giới thiệu
ở chương 2 là thuật tốn phổ biến và hiệu quả nhất để huấn luyện mạng. Tuy nhiên, thuật
tốn này cũng khơng đảm bảo cĩ được một cực tiểu tồn cục, thuật tốn cĩ thể bị mặc kẹt
vào một cực tiểu địa phương nào đĩ.
Cĩ hai vấn đề mà ta quan tâm khi huấn luyện mạng noron đĩ là tiêu chuẩn dừng và
tốc độ học.
Tiêu chuẩn dừng
Thuật tốn lan truyền ngược khơng thể xác định được là đã hội tụ hay chưa, và như
vậy khơng cĩ một tiêu chuẩn tuyệt đối nào cho việc dừng của thuật tốn. Tuy nhiên vẫn
cĩ một số tiêu chuẩn cĩ thể coi là chấp nhận được. Dưới đây tơi xin giới thiệu hai tiêu
chuẩn dừng [2]:
Tiêu chuẩn thứ nhất dựa vào sự ổn định của hàm giá ܧ (được xác định trong cơng
thức (2.2)) quanh một giá trị nào đĩ. Chúng ta cĩ tiêu chuẩn hội tụ như sau:
Mạng noron được xem là hội tụ khi tỷ lệ lỗi tuyệt đối của lỗi bình phương trung bình
trong một lần huấn luyện là đủ nhỏ.
1. Cho chuỗi Rh(1),Rh(2), . . . ,Rh(n), thời gian t
và kích thước cửa sổ w
2. Xây dựng mơ hình với tập dữ liệu huấn luyện
Rh(t−w−1), . . . ,Rh(t−1)
3. LẶP
a. Dự đốn giá trị cho Rh(t)
b. Ghi lại tỉ lệ lỗi dự đốn
c. Thêm Rh(t) vào tập huấn luyện và xĩa Rh(t−w−1)
ra khỏi tập huấn luyện
d. Xây dựng mơ hình mới với tập huấn luyện mới
e. Đặt t = t + 1
4. ĐẾN KHI t = n
33
Tỷ lệ lỗi bình phương trung bình được coi là đủ nhỏ nếu nĩ nằm trong giới hạn từ
0.1 đến 1 phần trăm trong một lần huấn luyện. Nhưng tiêu chuẩn này cĩ hạn chế là cĩ thể
dẫn đến sự kết thúc vội vàng của quá trình học.
Tiêu chuẩn thứ hai để xác định điểm dừng cho việc huấn luyện mạng là khi độ lớn
Euclide của vector gradient డாడௐ đạt tới một ngưỡng gradient đủ nhỏ. Tuy nhiên tiêu chuẩn
này thời gian học dài và phải tính tốn vector gradient.
Ngồi hai tiêu chuẩn đã nêu, cịn cĩ phương pháp vừa học vừa kiểm tra tính năng
nhận dạng trên một tập dữ liệu mẫu kiểm tra khác với tập hợp tích lũy. Trong trường hợp
này, thuật tốn được xem là hội tụ khi nĩ tích lũy đủ lâu và khả năng nhận dạng trên tập
kiểm tra đạt tới một giá trị cho phép nào đĩ.
Tốc độ học
Về mặt lý tưởng, tất cả các neron trong mạng nên học với cùng một tốc độ. Mức
cuối cùng của mạng thường cĩ gradient cục bộ lớn hơn các mức ở phía trước. Như vậy
tốc độ học nên được gán một giá trị nhỏ hơn. Các noron nhiều đầu vào nên cĩ một tham
số tốc độ học nhỏ hơn để giữ một thời gian học tương tự nhau cho tất cả các noron trong
mạng.
Tốc độ học nhận giá trị trong khoảng [0, 1]. Trong suốt quá trình huấn luyện, tốc độ
học quá cao làm cho các trọng số liên kết thay đổi lớn dẫn đến mạng khơng ổn định.
Ngược lại tốc độ học quá thấp thì sự thay đổi trọng số liên kết chậm, quỹ đạo khơng gian
trọng số càng trơn. Tuy nhiên điều này lại làm cho việc học bị chậm lại
Hầu hết các chương trình mơ hình mạng đều để mặc định giá trị tốc độ học. Tốc độ
học khởi tạo cĩ miền ưu tiên khá rộng từ 0.1 đến 0.9. Việc lựa chọn một tốc độ học phù
hợp cũng sẽ làm tăng khả năng của mạng noron lên khá nhiều.
4.2.8. Triển khai
Triển khai được coi như là bước cuối cùng của việc thiết kế mơ hình mạng nơ ron,
nhưng thực tế yêu cầu việc triển khai phải được chú ý trước khi tập hợp dữ liệu. Dữ liệu,
tiêu chuẩn đánh giá, thời gian huấn luyện đều phải được định hướng trong mơi trường mà
mạng nơ ron sẽ được triển khai. Hầu hết các nhà cung cấp phần mềm mạng nơ ron đều
cung cấp một mơ hình mạng đã được huấn luyện trong chương trình hoặc trong file cấu
34
hình. Nếu khơng cĩ sẵn phần mềm, mạng nơ ron cũng cĩ thể được tạo ra dễ dàng khi hiểu
kiến trúc của nĩ, hàm truyền và trọng số liên kết.
Một ưu điểm của mạng nơ ron là khả năng thích ứng với sự thay đổi của mơi trường
qua sự huấn luyện tuần hồn. Khi mạng được triển khai, hiệu năng của mạng sẽ giảm dần
nếu khơng được huấn luyện lại nhưng khơng cĩ nghĩa hiệu năng sẽ được duy trì như các
biến độc lập. Do đĩ phải thường xuyên huấn luyện lại mạng trong suốt quá trình thử
nghiệm trên mơ hình cuối cùng.
4.3 Tổng kết
Như vậy chương này tơi đã giới thiệu hồn chỉnh tám bước thiết kế một mạng noron
gồm: chọn lựa các biến, thu thập dữ liệu, tiền xử lý dữ liệu, phân hoạch dữ liệu, xác định
cấu trúc mạng, xác định tiêu chuẩn đánh giá, huấn luyện mạng, thực thi trong thực tế. Một
mơ hình mạng noron cho bài tốn dự báo cũng đã được trình bày. Từ những kiến thức đĩ
chúng ta hồn tồn cĩ thể bắt tay xây dựng được một mạng noron thành một ứng dụng dự
báo giá chứng khốn cụ thể. Trong chương tới đây, tơi sẽ giới thiệu về quá trình xây dựng
của tơi.
35
Chương 5. XÂY DỰNG CHƯƠNG TRÌNH VÀ
ĐÁNH GIÁ
Trong chương này tơi sẽ đề cập đến quá trình xây dựng phần mềm dựa trên hai phần
mềm mã nguồn mở là weka [10] và jstock [11] đồng thời đánh giá mơ hình mà phần mềm
sử dụng với một vài mơ hình dự đốn khác. Phần mềm sẽ được xây dựng trên ngơn ngữ
java [2] với mơi trường phát triển là neatbean [13]
5.1. Vài nét về các phần mềm nguồn mở được sử dụng
Rất nhiều phần mềm nguồn mở cĩ chất lượng, tính ứng dụng cao đã và đang được
cộng động sử dụng ngày một nhiều, cĩ thể kể đến như: hệ điều hành linux, trình duyệt
firefox …. Chính vì điều này đã thơi thúc tơi xây dựng phần mềm của mình dựa trên nền
tảng của các phần mềm mã nguồn mở.
5.1.1. Weka
Thực tế là khơng cĩ một lược đồ học máy nào thích hợp cho tất cả những vấn đề
khai phá dữ liệu. Việc xây dựng một hệ thống dựa trên kỹ thuật học máy tổng quát là một
điều khơng tưởng. Xuất phát từ thực tế đĩ, thư viện weka đã được ra đời nhằm hỗ trợ xây
dựng các phần mềm cĩ khả năng phân tích và hỗ trợ ra quyết định [8].
Weka là thư viện chứa một bộ tập hợp kỹ thuật, thuật tốn và cơng cụ xử lý dữ liệu
và thuật tốn học máy rất đa dạng. Nĩ được thiết kế để chúng ta cĩ thể áp dụng nhanh
chĩng những thuật tốn trên những tập dữ liệu mới theo các cách khác nhau một cách linh
hoạt. Thư viện này hỗ trợ cho tồn bộ quá trình khai phá dữ liệu ở trong thực tế bao gồm
chuẩn bị dữ liệu đầu vào, đánh giá thống kê lược đồ học, và trực quan hĩa dữ liệu đầu vào
và kết quả của quá trình học. Cùng với rất nhiều thuật tốn học khác nhau là các cơng cụ
tiền xử lý dữ liệu cũng được xây dựng trong weka. Weka cho phép người dùng so sánh
các thuật tốn với nhau và xác định cái nào là phù hợp nhất với vấn đề đang thực hiện [8].
Weka được phát triển ở đại học Waikato, New Zealand. Tên weka được viết tắt từ
cụm từ Waikato Environment for Knowledge Analysis. Nĩ được viết bằng ngơn ngữ Java
36
và chạy được trên hầu hết các mơi trường, đã được thử nghiệm trên Linux, Windows,
Macintosh.
Weka bao gồm những phương pháp cho tất cả những vấn đề khai phá dữ liệu chuẩn:
hồi quy (regression), phân lớp (classification), phân cụm (clustering), khai phá luật kết
hợp (association rule mining) và chọn lựa thuộc tính (attribute selection). Tất cả thuật
tốn sẽ lấy đầu vào ở trong dạng của một bảng quan hệ đơn lưu trong file cĩ đuơi mở
rộng là arff
Giao diện chính của weka cĩ cho phép người dùng cĩ thể chọn lựa 4 kiểu giao diện
khác nhau để thao tác.
Hình 5.1 – Giao diện chính của weka
Explorer : giao diện đồ họa, cho phép truy xuất vào tất cả tiện ích của nĩ bằng
cách sử dụng trình lựa chọn và thay đổi các tham số
Knowledge Flow: cho phép thiết kế, cấu hình cho xử lý dịng dữ liệu.
Experimenter : cho phép tự động xử lý dễ dàng phân loại, lọc với các tham số
khác nhau
Simlpe CLI : cho phép truy xuất thơng qua các câu lệnh
Cĩ thể tải phần mềm và tài liệu hướng dẫn tại trang web
Trong hầu hết những ứng dụng khai phá dữ liệu,
thành phần học máy chỉ là phần nhỏ của hệ thống phần mềm lớn. Vì vậy, để viết ứng
dụng khai phá dữ liệu chúng ta phải truy cập vào chương trình trong weka bằng những
37
đoạn mã lệnh trong chương trình của chúng ta. Trên cơ sở đĩ, khĩa luận này tơi sẽ dùng
weka như là một package trong chương trình, qua đĩ sẽ sử dụng những hàm của nĩ để
phục vụ quá trình khai phá.
5.1.2. Jstock
Jstock là một phần mềm mã nguồn mở với mục đích giúp nhà đầu tư quản lý việc
đầu tư chứng khốn của mình. Với các chức năng chính như:
Hiển thị dữ liệu chứng khốn thời gian thực
Cho phép người dùng quản lý việc mua bán chứng khốn
Hỗ trợ phương thức lọc đầu mục chứng khĩa theo tiêu chuẩn nào đĩ do người dùng
xây dựng lên.
Cho phép người dùng trao đổi với những người khác thơng qua module chat.
Hình 5.2 – Giao diện chính của Jstock
38
Jstock hỗ trợ lấy dữ liệu chứng khốn thời gian thực từ 23 quốc gia bao gồm:
Australia, Austria, Belgium, Canada, Denmark, France, Germany, Hong Kong, India,
Indonesia, Italy, Korea, Malaysia, Netherlands, Norway, Portugal, Singapore, Spain,
Sweden, Switzerland, Taiwan, United Kingdom and United State.
Cĩ thể download bản cài đặt jstock tại
Mã nguồn cĩ thể download từ
Trong khĩa luận, jstock sẽ được tơi sử dụng như một cơng cụ để lấy dữ liệu về làm
đầu vào cho các thuật tốn weka, sau đĩ kết quả sẽ đượ đưa ngược lại cho jstock để hiển
thị dữ liệu.
5.2. Mơ hình kết hợp giữa hai gĩi phần mềm mã nguồn mở
Từ mơ hình dự báo chứng khốn với mạng noron kết hợp với hai phần mềm mã
nguồn mở tơi đã giới thiệu ở trên. Tơi sẽ lắp ghép chúng lại thành một mơ hình hồn
chỉnh như sau:
Hình 5.3 – Mơ hình hệ thống khĩa luận xây dựng
Trong mơ hình trên ta phải thực hiện các cơng đoạn sau:
Chuyển dữ liệu chứng khốn thời gian thực mà jstock lấy được làm đầu vào cho
thuật tốn ANN của trong gĩi weka.
Xác định mơ hình mạng noron phù hợp cho dự đốn
Chuyển kết quả ra cho jstock hiển thị
Jstock
Weka
Mạng noron
Dữ liệu thời gian thực
Kết quả dự đốn
39
Sau đây tơi sẽ giới thiệu chi tiết hơn về các cơng đoạn trên.
5.2.1. Chuyển dữ liệu thời gian thực
Định nghĩa: Dữ liệu thời gian thực hay chuỗi tuần tự theo thời gian (time series) là
một chuỗi các giá trị của một đại lượng nào đĩ được ghi nhận là tuần tự theo thời gian.
Ví dụ: Số lượng hàng hĩa được bán ra trong 12 tháng năm 2008 của một cơng ty.
Các giá trị của chuỗi tuần tự theo thời gian của đại lượng X được kí hiệu là X1, X2,
…, Xt, …, Xn. với Xt là giá trị của X tại thời điểm t.
Dữ liệu chúng ta sử dụng là dữ liệu thời gian thực (time series) . Đặc điểm chính để
phân biệt giữa dữ liệu cĩ phải là thời gian thực hay khơng đĩ chính là sự tồn tại của cột
thời gian được đính kèm trong đối tượng quan sát. Nĩi cách khác, dữ liệu thời gian thực là
một chuỗi các giá trị quan sát của biến Y:
ܻ = {ݕଵ, ݕଶ, ݕଷ, … , ݕ௧ିଵ, ݕ௧, ݕ௧ାଵ, … , ݕ} vớ݅ ݕ௧ là giá trị của biến Y tại thời điểm t
Mục đích chính của việc phân tích chuỗi thời gian thực là thu được một mơ hình dựa
trên các giá trị trong quá khứ của biến quan sát ݕଵ, ݕଶ, ݕଷ, … , ݕ௧ିଵ, ݕ௧ cho phép ta cĩ thể
dự đốn được giá trị của biến Y trong tương lai, tức là cĩ thể dự đốn được các giá trị
ݕ௧ାଵ, … , ݕ.
Dữ liệu chứng khốn mà Jstock thu thập được là dữ liệu theo chuỗi thời gian và cĩ
nhiều thuộc tính cùng được ghi tại một thời điểm nào đĩ. Trong đĩ các thuộc tính chính
bao gồm: Open, Last, High, Low, Volume
Open: Giá cổ phiếu tại thời điểm mở cửa trong ngày
High: Giá cổ phiếu cao nhất tính đến thời điểm hiện tại
Low: Giá cổ phiếu thấp nhất tính đến thời điểm hiện tại
Last: Giá cổ phiếu được niêm yết tại thời điểm hiện tại
Volume: Khối lượng giao dịch cổ phiếu (bán, mua) trong ngày.
Mục đích của bước này là chuyển dữ liệu chứng khốn cĩ dạng như trên thành dữ
liệu dưới dạng bảng mà đã trình bày ở chương 4 để gĩi phần mềm weka cĩ thể hiểu được
40
5.2.2. Xác định mơ hình phù hợp
Đây là cơng việc cần phải thực hiện để cĩ được một mơ hình phù hợp nhất cho ứng
dụng. Những thiết lập tham số cho mạng sẽ dẫn đến các mơ hình mạng noron khác nhau
thích ứng cho từng bộ dự liệu khác nhau. Mong muốn của chúng ta là tìm được một bộ
tham số tốt nhất cho bài tốn của mình. Muốn vậy cần phải làm được hai việc: thay đổi
tham số và đánh giá mơ hình với bộ tham số đĩ.
Thay đổi tham số
Mạng noron cĩ khá nhiều tham số cĩ thể tác động vào, tuy nhiên trong khĩa luận tơi
sẽ chỉ thay đổi hai tham số cơ bản nhất của mạng noron là tốc độ học (learning rate) và số
noron tầng ẩn (hidden layers). Đĩ là vấn đề tổng quan, cịn cụ thể thì phải cĩ một chiến
lược thay đổi các tham số để thực thi. Chiến lược mà tơi sử dụng là một thuật tốn dựa
trên kinh nghiệm, tư tưởng của thuật tốn như sau. Ban đầu ta khởi tạo một tốc độ học cao
(khoảng 0,9) và một khoảng cho số noron tầng ẩn (ví dụ từ 2 đến 10). Thực hiện thử học
với lần lượt với tốc độ học 0,9 và số noron tầng ẩn từ 2 đến 10. Lỹ dĩ nhiên trong bước
lặp này thì các mơ hình thu được là khá tồi do tốc độ học là quá cao. Để tối ưu mơ hình
hơn, ở những bước lặp sau chúng ta sẽ giảm tốc độ học đi để tìm phương án tốt hơn (tốt
hơn theo hàm đánh giá). Kết thúc quá trình lặp này, các tham số tốt nhất sẽ được lưu lại
để tạo ra mơ hình tối ưu. Sau đây là đoạn mã giả thực hiện cơng việc này:
While(learningrate > 0){
For(i = hiddenUnits; i > 0; i--){
//Thực hiện học mơ hình với tốc độ học learningrate
//và số noron tầng ẩn hiddenUnits ở đây
If(tỷ lệ lỗi thấp hơn tỷ lệ lỗi hiện tại){
Gán tỷ lệ lỗi thấp nhất hiện tại là tỷ lệ lỗi ứng
với vịng lặp này
Lưu lại tốc độ học
Lưu lại số noron tầng ẩn
}
}
Learningrate = learningrate – decrease;
41
//decrease là lượng giảm cho tốc độ học
}
Đánh giá mơ hình
Sau khi thay đổi các tham số một bộ tham số mới được tạo ra, để biết được nĩ cĩ tốt
hay khơng chúng ta cần làm cơng đoạn là đánh giá nĩ. Tức là sẽ so sánh mơ hình mới ứng
với bộ tham số này với các mơ hình trước đĩ xem mơ hình nào tốt hơn dựa vào một tiêu
chuẩn đánh giá nào đĩ (nĩ chính là bước so sánh tại điều kiện của câu lệnh if trong đoạn
mã ở trên). Như phần xác định tiêu chuẩn đánh giá – bước thứ sáu trong tám bước thiết kế
và thực thị một mạng noron – ở trên thì sai số trung bình bình phương sẽ được tơi sử dụng
để đánh giá.
Trong đoạn mã trên, chúng ta cần phải cĩ một động tác là học mơ hình với tham số
tốc độ học (learningrate) và số lượng thành phần ẩn (hiddenUnits) tại mỗi bước lặp. Việc
thực hiện học này cũng rất cĩ ảnh hưởng tới giá trị của hàm đánh giá. Nĩ được thể hiện
một phần ở các tập dữ liệu phục vụ để học mơ hình là tập huấn luyện, tập kiểm chứng
(như đã nêu ở phần trước). Để tiến hành quá trình học này ta chia dữ liệu thành hai phần:
một phần để thiết lập các tham số cho mơ hình (tập huấn luyện – training set), phần cịn
lại dùng để đánh giá tỷ lệ lỗi của mơ hình nhằm chọn ra bộ tham số tốt nhất (tập kiểm
chứng – validation set). Trong weka, để thực hiện quá trình này, ta sẽ dùng dịng lệnh sau
(dịng lệnh bên dưới tơi đã sử dụng một tham số tốc độ học và số noron tầng ẩn để mang
tính chất minh họa, các tham số khác tơi để mặc định):
java weka.classifiers.functions.MultilayerPerceptron -L 0.2 -H 2 -t
D:\prediction\Training.arff -T D:\prediction\test.arff
Trong đĩ:
-L là tham số tốc độ học
-H là tham số các noron ẩn
-t là đường dẫn cho tập huấn luyện
-T là đường dẫn cho tập đánh giá
Kết quả của câu lệnh trên như sau:
42
Hình 5.4 – Kết quả huấn luyện mạng noron bằng dịng lệnh weka
Hình trên cho thấy kết quả tỷ lệ lỗi trung bình bình phương (RMSE) là 0.8267 trên
tập kiểm định
Sau khi cĩ được bộ tham số tốt nhất, chúng ta sẽ xây dựng được mơ hình tốt nhất.
Sử dụng mơ hình này cho tồn bộ tập huấn luyện (training set), kể cả phần dữ liệu kiểm
chứng (validation set). Dịng lệnh trong weka như sau:
43
java weka.classifiers.functions.MultilayerPerceptron -L learningrate -H
hiddenUnits -t trainingSetPath -T validationSetPath –d modelFilePath
Trong đĩ:
Learningrate là tốc độ học tốt nhất đã được chọn
hiddenUnits là số các noron tầng ẩn tốt nhất đã được chọn
trainingSetPath là đường dẫn cho tập huấn luyện
validationSetPath đường dẫn cho tập đánh giá
modelFilePath đường dẫn cho mơ hình. Và sau nay ta sẽ sử dụng mơ
hình này để dự đốn
5.2.3. Chuyển kết quả cho stock hiển thị
Sau khi cĩ được mơ hình mạng noron với các tham số tốt nhất cho quá trình dự
đốn. Chúng ta sẽ tiến hành dự đốn với mỗi giá trị mới khi jstock thu về được và kết quả
dự đốn giá chứng khốn tiếp theo sẽ được hiện thị trên jstock.
5.3. Đánh giá với một số mơ hình khác
Trong phần này tơi xin giới thiệu sơ qua về hai mơ hình dự báo khác, và sẽ làm thực
nghiệm so sánh giữa hai mơ hình này với mơ hình mạng noron mà tơi đã xây dựng ở trên.
Mục đích là thấy được tính hiệu quả của mạng noron so với các mơ hình khác như thế
nào. Trong phần đánh giá này tơi sử dụng mười bộ dữ liệu, trong đĩ mỗi bộ gồm một tập
huấn luyện và một tập kiểm chứng cho cả ba mơ hình. Cách thức chung là tơi lần lượt
thực hiện mười lần học và đánh giá mơ hình lần lượt với mười bộ dữ liệu nĩi trên. Hàm
đánh giá được dùng sẽ là tỷ lệ lỗi trung bình bình phương (RMSE) mà đã được tơi giới
thiệu ở chương trước. Kết quả cuối cùng của hàm đánh giá là kết quả trung bình của mười
lần huấn luyện đĩ và được sử dụng để so sánh giữa các mơ hình với nhau.
Trước tiên tơi tiến hành thực hiện giải thuật để tìm được bộ tham số tốt nhất cho
mạng noron và sử dụng bộ tham số này cho các bộ dữ liệu ở trên ta thu được kết quả của
mạng noron như sau:
44
Các lần huấn luyện Giá trị hàm đánh giá (RMSE)
Lần 1 0.5035
Lần 2 0.5008
Lần 3 0.4978
Lần 4 0.3694
Lần 5 0.3031
Lần 6 0.4693
Lần 7 0.4197
Lần 8 0.3831
Lần 9 0.4313
Lần 10 0.4978
Trung bình 0.43758
Bảng 5.1 – Huấn luyện mạng noron
Kết quả này sẽ được đùng để so sánh với các mơ hình dưới đây:
5.3.1. Mơ hình cây quyết định
a. Định nghĩa
Cây quyết định (decision tree) là một trong những hình thức mơ tả dữ liệu trực quan
nhất, dễ hiểu nhất đối với người dùng. Trong lĩnh vực học máy, cây quyết định là một
kiểu mơ hình dự báo (prediction model), nghĩa là ánh xạ từ các quan sát về một sự
vật/hiện tượng tới các kết luận về giá trị mục tiêu của sự vật/hiện tượng.
b. Cấu trúc
Một cây quyết định là một sơ đồ cĩ cấu trúc dạng cây bao gồm các nút và các
nhánh.
Nút dưới cùng được gọi là nút lá, trong mơ hình phân lớp dữ liệu chính là các giá trị
của các nhãn lớp (gọi tắt là nhãn). Các nút khác nút lá được gọi là các nút con, đây cịn là
các thuộc tính của tập dữ liệu, hiển nhiên các thuộc tính này phải khác thuộc tính phân
lớp.
45
Mỗi một nhánh của cây xuất phát từ một nút p nào đĩ ứng với một phép so sánh dựa
trên miền giá trị của nút đĩ. Nút đầu tiên được gọi là nút gốc của cây
Hình 5.5 – Mơ hình cây quyết định
Cây quyết định cĩ thể được mơ tả như là sự kết hợp của các kỹ thuật tốn học và
tính tốn nhằm hỗ trợ việc mơ tả, phân loại và tổng quát hĩa một tập dữ liệu cho trước
Dữ liệu được cho dưới dạng các bản ghi cĩ dạng:
(x, y) = (x1, x2, x3….xk, y)
Biến phụ thuộc y là biến mà chúng ta cần tìm hiểu, phân loại hay tổng quát hĩa x1,
x2, x3…. là các biến sẽ giúp ta thực hiện cơng việc đĩ
c. Thực nghiệm với mơ hình cây quyết định
Trong weka mơ hình cây quyết định được thực hiện bởi dịng lệnh:
weka.classifiers.trees.J48
Dựa trên một vài thực nghiệm về cây quyết định trên các tập huấn luyện và kiểm
chứng khác nhau rồi tổng hợp những kết quả thu được tơi nhận thấy rằng với tham số C =
0.25 và M = 3 thì sẽ thu được mơ hình cây quyết định với độ chính xác khá tốt. Thực hiện
tính tốn với cây quyết trên mười bộ dữ liệu ta cĩ bảng thống kê kết quả như sau:
46
Các lần huấn luyện Giá trị hàm đánh giá (RMSE)
Lần 1 0.4946
Lần 2 0.5107
Lần 3 0.4938
Lần 4 0.5016
Lần 5 0.3239
Lần 6 0.4766
Lần 7 0.4716
Lần 8 0.4821
Lần 9 0.5774
Lần 10 0.4993
Giá trị trung bình 0.48316
Bảng 5.2 – Huấn luyện cây quyết định
5.3.2. Mơ hình phân lớp xác suất ngây thơ nạve bayes
Bộ phân lớp bayes là bộ phân lớp đơn giản mà dựa trên lý thuyết bayes.
a. Thuật tốn nạve bayes và cơng thức phân lớp
Định lý bayes: P(A/B) = (/)∗()()
Giả sử:
D là tập dữ liệu huấn luyện
C i,D là tập các mẫu thuộc D của lớp Ci
Ci là một lớp trong tập dữ liệu
X = là điều kiện độc lập
Ta cĩ cơng thức:
P(Ci/X) =
(|)∗()()
Vì các xi là độc lập nên ta cĩ:
47
P(X|Ci) = ∏ ܲ(ݔ|ܥ) = ܲ(ݔଵ|ܥ). ܲ(ݔଶ|ܥ)… . . ܲ(ݔ|ܥ) ୀଵ
P(Ci) =
|,ವ||| , P(xk|Ci) =
,ವ{௫ೖ}|,ವ|
Trong đĩ Ci,D{xk}: số mẫu Ci thỏa mãn điều kiện xk
Trong trường hợp P(xk|Ci) = 0 ta cĩ thể áp dụng cơng thức làm trơn laplace:
P(Ci) =
ห,ವหା ଵ||ା , P(xk|Ci) =
,ವ{௫ೖ}ା ଵห,ವหା
M : là số mẫu (lớp), r là số giá trị rời rạc của thuộc tính
Luật phân lớp: X sẽ được cho vào lớp mà cĩ giá trị cơng thức sau là lớn nhất:
ܲ(ܥ) ∗ෑܲ(ݔ|ܥ)
ୀଵ
b. Thực nghiệm với mơ hình nạve bayes
Thực nghiệm với mơ hình nạve bayes trong weka bằng dịng lệnh:
weka.classifiers.bayes.NaiveBayes
với mười bộ dữ liệu nĩi ở trên ta thu được bảng kết quả sau:
48
Các lần huấn luyện Giá trị hàm đánh giá (RMSE)
Lần 1 0.7467
Lần 2 0.6868
Lần 3 0.6633
Lần 4 0.744
Lần 5 0.3333
Lần 6 0.4823
Lần 7 0.7568
Lần 8 0.6733
Lần 9 0.7796
Lần 10 0.6344
Giá trị trung bình 0.58309
Bảng 5.3 – Huấn luyện nạve bayes
Căn cứ vào những kết quả thu được ở trên ta lập bảng sơ sánh giữa các mơ hình như
sau:
Đại lượng
đánh giá
Mơ hình mạng
nơ ron
Mơ hình cây
quyết định
Mơ hình
nạve bayes
RMSE 0.43758 0.48316 0.58039
Bảng 5.4 – So sánh các mơ hình
Từ bảng so sánh trên cho thấy cả hai mơ hình ở trên đều cho kết quả với độ chính
xác khơng cao bằng mơ hình mạng noron mà tơi đã xây dựng ở trên.
49
Chương 6. KẾT LUẬN
Trong khĩa luận này, bước đầu tơi đã tìm hiểu được lĩnh vực khai phá dữ liệu cùng
các vấn đề liên quan đến khai phá dữ liệu nĩi chung, và cơ sở lý thuyết của mạng noron
cũng như là thuật tốn lan truyền ngược (back-propagation) thực hiện việc học cho mạng
noron để áp dụng vào bài tốn dự báo giá chứng khốn nĩi riêng. Từ những cơ sở lý
thuyết đĩ tơi đã tiến hành:
- Xây dựng cho mình một mơ hình mạng noron dựa theo tám bước: chọn lựa
các biến, thu thập dữ liệu, tiền xử lý dữ liệu, phân hoạch dữ liệu, xác định cấu
trúc mạng, xác định tiêu chuẩn đánh giá, huấn luyện mạng, thực thi trong
thực tế
- Xây dựng thuật tốn lựa chọn được bộ tham số tốt nhất cho mạng noron
nhằm tạo ra một mơ hình với độ chính xác cao.
- Áp dụng mơ hình thu được để xây dựng phần mềm dự báo giá chứng khốn
dựa trên sự kết hợp từ hai phần mềm mã nguồn mở là Jstock và Weka.
- Cuối cùng tơi so sánh mơ hình mạng noron mà tơi đã xây dựng với hai mơ
hình khác là mơ hình cây quyết định và mơ hình nạve bayes. Kết quả thu
được từ sự so sánh này cho thấy mơ hình mạng noron là tốt hơn, nên bước
đầu phản ánh quá trình xây dựng mơ hình của tơi là cĩ hiệu quả.
Tuy nhiên do thời gian thực hiện khĩa luận khơng đủ dài nên bên cạnh những điều
đã làm được ở trên thì vẫn cịn tồn tại một số điểm chưa đạt và cần bổ sung:
- Thuật tốn tối ưu tham số mà tơi sử dụng trong luận văn chưa thực sự tốt,
mặc dù nĩ chạy khá chính xác nhưng lại chạy rất chậm nên chỉ áp dụng được
trong khơng gian các tham số khá nhỏ. Để khắc phục điều này cĩ thể sử dụng
thuật tốn sử dụng gradient (gradient descent), thuật tốn di truyền (General
Algorithm ) …
- Việc thu thập dữ liệu từ Jstock là online nhưng việc xây dựng và tiến hành
học mơ hình là offline. Để làm tăng độ chính xác của việc dự đốn lên nữa cĩ
thể chuyển việc học sang học trực tuyến (online learning).
- Giao diện xây dựng của mềm phần cịn tương đối đơn giản, mới chỉ chọn một
vài mẫu chứng khốn làm thử nghiệm. Sau này cần xây dựng giao diện cĩ sự
tương tác với người dùng.
50
TÀI LIỆU THAM KHẢO
Tài liệu tham khảo tiếng việt
[1] Hà Quang Thụy. Giáo trình khai phá dữ liệu web. Nhà xuất bản giáo dục, 2009, tr.
1 - 38
[2] Ứng dụng mạng noron cho vấn đề nhận dạng tiếng nĩi.
tiet-tai-lieu/ung-dung-mang-neuron-cho-van-de-nhan-dang-tieng-noi-149-
trang/2227.html, tr. 1 - 49
Tài liệu tham khảo tiếng anh
[3] Ben Krose, Patrick van der smagt. An introduction to neural networks. University
of Amsterdam, 1996, tr 1 – 47.
[4] Luis Torgo (2003). Data Mining with R: learning by case studies. LIACC-FES,
University of Porto – Portugar.1 – 3, 79 – 110
[5] Iebeling Kaastra, Milton Boyd (1995). Designing a neural network for forecasting
financial and economic time series. University of Manitoba – Canada.
[6] Freeman J.A. and Skapura D.M. (1991). Neural Networks - Algorithms,
Applications and Programming Techniques. Addison Wesley, tr.89-124.
[7] J.O. Katz. Developing neural network forecaster for trading. Technical Analysis of
Stocks and Commodities. April 1992. Tr 58-70
[8] Ian H. Witten and Eibe Frank. Data mining – practical machine learning tools and
techniques. Morgan Kaufmann, 2005
[9]
forecasting-financial-time-series/
[10]
[11]
[12]
[13]
Các file đính kèm theo tài liệu này:
- LUẬN VĂN- 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Ở.pdf