Mô hình hóa và dự báo chuỗi thời gian Từ những chuỗi thời gian các quan sát, thông qua phân tích ta có thể nhận đợc những thông tin tốt hơn về hệ thống cảm sinh ra nó, từ đó có thể dự bá
Trang 1Bộ giáo dục và đào tạo
Trờng đại học vinh
-Nguyễn bá phong
ứng dụng mạng neural dự báo chuỗi thời gian giá cổ phiếu
trong thị trờng chứng khoán việt nam
Trang 2Lời cảm ơn
Đề tài nghiên cứu đợc hoàn thành nhờ sự hớng dẫn, định hớng, động viên
và giúp đỡ tận tình của thầy giáo TS Nguyễn Trung Hòa Em xin phép đợc gửi
lời cảm ơn chân thành và sâu sắc đến Thầy Em cũng muốn cảm ơn các thầy côgiáo trong Chuyên ngành Xác suất thống kê, Khoa Sau Đại học đã chỉ bảo, góp
ý Cảm ơn các bạn học viên trong lớp đã giúp đỡ, khích lệ Cuối cùng, em xingửi lời cảm ơn tới những ngời thân trong gia đình đã động viên, khuyến khích và
là động cơ thúc đẩy để em có thể hoàn thành để tài nghiên cứu
Kính chúc các thầy cô giáo và các bạn dồi dào sức khoẻ, hạnh phúc vàthành đạt
Vì đề tài nghiên cứu về một lĩnh vực mới, nên cần phát triển nhiều hơnnữa Rất mong tiếp tục nhận đợc sự giúp đỡ, góp ý của các thầy cô giáo và cácbạn
Xin chân thành cảm ơn !
Vinh, Tháng 1 năm 2005
Nguyễn Bá Phong
Trang 3Mục lục
Chơng I Chuỗi thời gian và dự báo chuỗi thời gian 5
1.3 Các thủ tục tìm tơng quan và tự tơng quan riêng mẫu 8
2.2 Lịch sử phát triển của mạng neural nhân tạo 17
2.7 Thuật toán lan truyền ngợc (BackPropagation) 292.8 Ưu điểm của mạng neural nhân tạo so với mô hình ARIMA 34
Chơng III Lợc đồ dự báo chuỗi thời gian bằng
mạng neural nhân tạo 363.1 Một số vấn đề cần xem xét khi sử dụng mạng neural nhân tạo 363.2 Lợc đồ dự báo chuỗi thời gian với mạng neural 37
Chơng IV ứng dụng dự báo giá cổ phiếu trong
thị trờng chứng khoán Việt Nam 43
4.3 Giới thiệu phần mềm dự báo giá cổ phiếu 50
Trang 4Chơng I chuỗi thời gian và dự báo chuỗi thời gian
Chuỗi thời gian là một tập hợp các số thực (các quan sát về cùng một hiệntợng) đợc sắp xếp theo thứ tự thời gian Nếu thời gian là một đoạn T=[a;b] củatập hợp các số thực R thì chuỗi thời gian đợc gọi là liên tục, chẳng hạn nh các tínhiệu tơng tự (analog signal), nếu thời gian là một tập hợp rời rạc T Z thì chuỗithời gian đợc gọi là rời rạc, chẳng hạn nh một tín hiệu tơng tự đã đợc lấy mẫuhoặc một dãy các số liệu kinh tế nh giá của một loại cổ phiếu theo từng ngàytrong thị trờng chứng khoán
Khái niệm chuỗi thời gian có quan hệ trực tiếp đến khái niệm quá trìnhngẫu nhiên Theo Velxen (trong [1]), quá trình ngẫu nhiên X(t) là các biến ngẫunhiên phụ thuộc tham số t thuộc T (trong đó T là tập con của tập số thực R, hoặc
Z, đợc giải thích nh là thời gian) Đó là hiện tợng mang tính thống kê phát triểntheo thời gian, tuân theo những quy luật của lý thuyết xác suất và chính là thểhiện của một dãy đại lợng ngẫu nhiên thực nào đó
Đề tài nhằm mục đích nghiên cứu về chuỗi thời gian giá cổ phiếu nên chỉ
đề cập đến các chuỗi thời gian rời rạc, cho nên chúng tôi sử dụng định nghĩa sau:
1.1 Chuỗi thời gian
Giả sử T là tập hợp các số nguyên thuộc khoảng (a;b) R, {Xt, t T} làmột dãy các đại lợng ngẫu nhiên đợc sắp xếp theo thứ tự trên T Chuỗi thời gian
là một dãy {xt | t T}(hữu hạn hoặc vô hạn) các giá trị của Xt
Để phân biệt ta sẽ sử dụng thuật ngữ quá trình Xt để chỉ một dãy các đại ợng ngẫu nhiên và một thể hiện của nó là chuỗi thời gian xt Tuy nhiên ta sẽ chỉ
l-sử dụng cùng một ký hiệu xt cho cả Xt (gọi là quá trình xt)và xt (gọi là chuỗi thờigian xt)
Nh vậy, có thể hiểu rằng, một chuỗi thời gian là một dãy rời rạc các thểhiện của một quá trình, đợc chỉ sổ hóa bởi các số nguyên liên tiếp trong nhữngkhoảng thời gian cách đều nhau Hay nói cách khác, chuỗi thời gian là một dãycác số cụ thể
Nếu tập hợp các thời điểm quan sát là to, to+h, to+N.h thì chuỗi thời gian
Trang 5Vì đại lợng ngẫu nhiên là ánh xạ đo đợc từ không gian xác suất (, A, P)
vào không gian đo đợc (R,B) nên quá trình {Xt} là hàm của cặp (t, ) đo đợctheo với mỗi t T
Giả sử đại lợng ngẫu nhiên X có hàm mật độ phân phối f(x), khi đó kỳvọng của X đợc định nghĩa bởi
E(X) :=
dx x
Nếu cov(X,Y)=0 thì xác đại lợng ngẫu nhiên X, Y đợc gọi là không tơngquan
Bởi vì các đại lợng ngẫu nhiên khép kín đối với phép cộng và khép kín đốivới phép nhân với một vô hớng nên chúng tạo thành một không gian vectơ trong
đó tập hợp các đại lợng ngẫu nhiên bình phơng khả tích lập thành một khônggian con Ta sẽ ký hiệu không gian vectơ các đại lợng ngẫu nhiên bình phơngkhả tích là L2(, A, P).
Với chuỗi thời gian {xt | t=0,1, } ta sẽ gọi -đại số cảm sinh bởi chuỗi thờigian xt là -đại số bé nhất chứa tất cả các biến cố dạng {xt A}, t Z, A B(A là tập Borel) và ký hiệu là Ax Nó là tập hợp tất cả các biến cố mà nhờ cácthông tin về chuỗi thời gian xt ta có thể nhận biết đợc sự xuất hiện của chúng T-
ơng ứng với nó ta có không gian xác suất (, A x , P) và ký hiệu M là bao đóng
tuyến tính của tập hợp các xt (M=span{xt}), nó chính là không gian con củakhông gian các đại lợng ngẫu nhiên bình phơng khả tích L2(, A x, P) sinh bởicác {xt}
Các không gian vừa nêu trên là các không gian Ơclit[1] đủ với tích vô hớng
l-đơng với việc đòi hỏi rằng các yếu tố xác suất của chuỗi {Xt} và của chuỗi {Xt+s}
là nh nhau với mọi s
Trang 6Nếu các biến ngẫu nhiên Xt tồn tại mômen cấp 1 thì từ định nghĩa tínhdừng ta suy ra E(Xt)=E(Xt+s), s,t Z và có thể viết đơn giản là
m:=E(Xt)
Trong trờng hợp m=0 thì Xt đợc gọi là quá trình quy tâm Nếu các biến ngẫunhiên Xt tồn tại mômen cấp 2 thì từ định nghĩa tính dừng ta có phân phối của(X1,X2) bằng phân phối của (Xt1+t,Xt2+t) nên cov(X1,X2) = cov(Xt1+t,Xt2+t) Hơnnữa, nếu t=-t2 thì cov(X1,X2) = cov(Xt1-t2,X0) vì vậy hiệp phơng sai của Xt1, Xt2 chỉphụ thuộc vào hiệu của hai thời điểm Do đó có thể viết gọn hơn nh sau
1
2 0
1
1 1
n n
là ma trận tự hiệp phơng sai cấp n của quá trình Xt, còn
đợc gọi là tự tơng quan cấp k của quá trình, nó chính là tơng quan giữa Xt
và Xt+k Với chuỗi thời gian dừng gồm N quan sát {xt | t=0,1, ,N} có kỳ vọng m,
tự tơng quan mẫu cấp k của chuỗi đợc ớc lợng bởi :
k N i
k i i
m x k N
m x
m x N
1
2 1
Ước lợng trên là ớc lợng không chệch của tự tơng quan cấp k với phơng saimẫu của k đợc ớc lợng bởi
i i
r N
Các ớc lợng trên sẽ đợc sử dụng để nhận dạng mô hình chuỗi thời gian.Không những thế, việc xác định tơng quan mẫu và tự tơng quan riêng mẫu đóng
Trang 7vai trò quan trọng trong bớc xác định mẫu đầu vào cho mạng neural sẽ đợc trìnhbày ở chơng III Chính vì thế, tham khảo từ [1], chúng tôi đã xây dựng chơngtrình tính hệ số tơng quan mẫu và tự tơng quan riêng mẫu bằng ngôn ngữ Pascal
và đa vào phần mềm dự báo giá cổ phiếu
1.3 Các thủ tục tìm tơng quan mẫu và tự tơng quan riêng mẫu
Các khai báo kiểu dữ liệu
Type vtr=array[-40 500] of real;
Procedure Tim_tqm(x:signal; var r : ar40);
Var xtb:real i,t:integer;
r[t]:=0.0for i:=(x.b+t+1) to x.n dor[t]:=r[t]+(x.g[i]-xtb)*(x.g[i-t]-xtb);
r[t]:=r[t]/saiso;
End;
End;
(*=============*)
Procedure Tim_Ttqrm(r:ar40; Var a:ar40);
Var t1,t2:real; a1,a2:ar40; p,i:integer;
Begin
Trang 8a[1]:=r[1]; a1[1]:=r[1];
for p:=1 to 39 doBegin
t1:=0; t2:=0;
for i:=1 to p doBegin
for i:=1 to p+1 do a1[i]:=a2[i];
0 1
k k
1.5 Toán tử lùi, toán tử sai phân
Toán tử B đợc gọi là toán tử lùi nếu Bxt = xt-1 Toán tử đợc gọi là toán tửsai phân nếu xt = xt - xt-1 = (1-B)xt
Nh vậy ta có: Bmxt = xt-m và =1-B.
Toán tử lùi và toán tử sai phân đợc sử dụng rất nhiều trong mô hìnhARIMA, và cũng đợc sử dụng nhiều trong mô hình mạng neural nhân tạo, đặcbiệt là trong thuật toán Lan truyền ngợc (Back-propagation)[4] là thuật toán phổbiến và làm thay đổi bộ mặt của mạng neural trong ứng dụng ngày nay
Nếu mỗi giá trị của chuỗi thời gian đợc xác định một cách chính xác nhờmột hàm giải tích nào đó theo biến thời gian, chẳng hạn xt = cos(2f(t)) thì chuỗi
thời gian đợc gọi là tất định, nếu mỗi giá trị của chuỗi thời gian chỉ đợc mô tảnhờ phân phối xác suất của nó thì chuỗi thời gian đợc gọi là ngẫu nhiên
Trang 9Khi chuỗi thời gian là ngẫu nhiên ta cần phải tìm các thể hiện khác củachuỗi thời gian Các thể hiện đó chính là các mô hình ngẫu nhiên.
1.6 Mô hình hóa và dự báo chuỗi thời gian
Từ những chuỗi thời gian các quan sát, thông qua phân tích ta có thể nhận
đợc những thông tin tốt hơn về hệ thống cảm sinh ra nó, từ đó có thể dự báonhững giá trị tại những thời điểm trong tơng lai Một trong những phơng phápphân tích chuỗi thời gian là mô hình hóa Mô hình toán học tổng quát của chuỗithời gian là:
xt = ft+ut
trong đó xt đợc xem nh tổng của 2 chuỗi: ft là thành phần đợc xác định một cách
đầy đủ, và còn đợc gọi là thành phần hệ thống, thành phần tất định, còn ut hầu
nh chỉ biết đợc quy luật xác suất của nó Trong lý thuyết xử lý tín hiệu, ft đợc gọi
là tín hiệu còn ut đợc gọi là tiếng ồn Nói chung khi cho một chuỗi thời gian cácquan sát xt thì ft và ut là không thể quan sát đợc, chúng chỉ là các đại lợng mang
tính lý thuyết Với quan niệm đó, ft thờng đợc giả thiết là kỳ vọng của xt còn ut
thờng đợc giả thiết là có kỳ vọng 0 và có phơng sai hữu hạn Nói chung, ft baogồm hai thành phần
xt = f(xt-1, xt-2, , xt-p, t-1, t-2, t-q)
Hàm f có thể là một hàm tuyến tính hoặc một hàm phi tuyến Bằng cách nào đó nếu chúng ta xác định đợc hàm f sao cho có thể biểu diễn đợc tất cả các giá trị của chuỗi theo các giá trị quá khứ thông qua hàm f với sai số cho phép thì
các giá trị tơng lai cũng có thể tính đợc theo đúng công thức này và với sai số
Trang 10cho phép Tức là với mô hình trên, không những chúng ta có thể mô hình hóachuỗi thời gian mà còn có thể dự báo các giá trị tơng lai của nó Điều này thực
sự rất quan trọng Nh vậy, vấn đề chủ yếu nhất trong việc mô hình hóa và dự báo
chuỗi thời gian chính là xác định đợc hàm f Làm đợc điều này quả thật không
hề đơn giản chút nào
Nếu chuỗi thời gian đảm bảo một số tính chất khá nghiên ngặt nh: có tínhdừng, có kỳ vọng 0 và phơng sai hữu hạn thì chúng ta mới có thể xây dựng một
hàm f tuyến tính để mô hình hóa và dự báo và gọi là mô hình tuyến tính Nếu
chuỗi thời gian không có các tính chất đó, tức là có tính phi tuyến cao thì chúng
ta không thể sử dụng mô hình tuyến tính đợc Dới đây chúng tôi trình bày mộtmô hình tuyến tính rất nổi tiếng và đợc sử dụng phổ biến trong việc mô hình hóachuỗi thời gian Đó là mô hình ARIMA Thậm chí có thể nói rằng trong thờigian trớc đây để mô hình hóa chuỗi thời gian, ngời ta luôn sử dụng các mô hình
có dạng ARIMA
1.7 Quá trình ARIMA
Quá trình ARIMA là mô hình toán học dùng để dự báo ARIMA là viết tắt
của từ AutoRegressive Integrated Moving Average Mỗi một cụm từ mô tả
các phần khác nhau của mô hình toán học này
Quá trình ARIMA đã đợc nghiên cứu rất rộng rãi và là một bộ phận chủyếu của phân tích chuỗi thời gian Các mô hình này đợc George Box và GwilymJenkins đa ra vào đầu những năm 1970 Và thậm chí, đôi khi quá trình ARIMAcòn đợc gọi là mô hình Box-Jenkins[6]
Hớng tiếp cận mô hình ARIMA để dự báo đợc dựa trên những ý tởng sau
đây:
-Các dự báo dựa trên các hàm tuyến tính của các mẫu quan sát
-Mục đích là tìm ra mô hình đơn giản nhất để cung cấp một mô tả thích hợpcho dữ liệu đợc quan sát
Mỗi quá trình ARIMA có 3 phần: phần tự hồi quy (AutoRegressive-AR),phần hợp nhất (Integrated-I) và phần trung bình động (Moving Average-MA).Mô hình thờng đợc viết dới dạng ngắn gọn ARIMA(p,d,q) Trong đó, p mô tảcấp AR, d mô tả phần hợp nhất và q mô tả cấp MA Kết hợp cả ba phần sẽ cho tacác mô hình ARIMA khác nhau[6] Khi đó p, q, d có thể bằng 0 hoặc khác 0.Tức là trong những trờng hợp cụ thể, chỉ cần dùng một hoặc hai phần của môhình
AR: Phần này của mô hình mô tả theo cách mà mỗi giá trị quan sát là một
hàm của p giá trị quan sát trớc đó
Trang 11X t =c+1 X t-1 +2 X t-2 + p X t-p +e t
trong đó, Xt là giá trị quan sát tại điểm t, Xt-1, Xt-2, , Xt-p là các giá trị quan sáttại thời điểm t-1, t-2, , t-p et là sai số ngẫu nhiên (có thể là một giá trị trongchuỗi ồn trắng), c, 1, 2, , p là các hằng số
Ví dụ, Nếu p=1 thì mỗi quan sát là một hàm của chỉ một giá trị quan sát tr
-ớc đó
X t =c+1 X t-1 +e t
I: Phần này của mô hình xác định rằng hoặc là các giá trị quan sát đợc mô
hình hóa trực tiếp, hoặc là chuỗi sai phân của các quan sát liên tiếp sẽ đợc môhình hóa Nếu d=1 thì chuỗi sai phân giữa các giá trị liên tiếp của chuỗi quan sát
đợc mô hình hóa (gọi là sai phân bậc nhất) Nếu d=2 thì chuỗi sai phân củachuỗi sai phân đợc mô hình hóa (sai phân bậc 2) Trong thực tế, d rất ít khi lớnhơn 2
Việc mô hình hóa chuỗi sai phân thay vì mô hình hóa trực tiếp chuỗi quansát là vì chuỗi quan sát có thể không đảm bảo đợc tính dừng, còn chuỗi sai phân,theo Box-Jenkins, thì có nhiều khả năng có tính dừng hơn Tính dừng là một yêucầu mang tính bản chất của mô hình ARMA
MA: Phần này của mô hình mô tả theo cách mà mỗi giá trị quan sát là hàm
của q sai số nhiễu trớc đó
số viết bằng ngôn ngữ Pascal đã đợc trình bày trong tài liệu tham khảo [1] Tuy nhiên, mô hình ARIMA là mô hình tuyến tính nên để sử dụng đợc, cácchuỗi thời gian phải thoả mãn các giả thiết khá nghiêm ngặt đó là chuỗi dừng, có
kỳ vọng 0 và phơng sai hữu hạn Nhng trong thực tế ngày nay, nhiều dữ liệuchuỗi thời gian không có tính dừng mà lại có tính phi tuyến cao nên các mô hình
đó không thể áp dụng đợc, chẳng hạn nh các chuỗi thời gian trong thị trờngchứng khoán, trong khoa học vũ trụ Cần phải có những hớng tiếp cận mới
Trang 121.8 Kết luận chơng I
Trong chơng I, chúng tôi đã trình bày một cách có hệ thống các khái niệmcơ bản về chuỗi thời gian bao gồm: khái niệm chuỗi thời gian, quá trình dừng,dãy ồn trắng, toán tử lùi, toán tử sai phân Đặc biệt chúng tôi trình bày khá cụthể về chơng trình tính tự tơng quan mẫu và tự tơng quan riêng mẫu Bởi vìchúng tôi vẫn tiếp tục kế thừa những thuật toán này trong lợc đồ dự báo củamình
Chơng này cũng đã trình bày về việc mô hình hóa chuỗi thời gian, nêu rabài toán mô hình hóa và dự báo chuỗi thời gian đặt ra những thách thức Chúngtôi cũng trình bày về mô hình ARIMA truyền thống đợc sử dụng để mô hình hóa
và dự báo chuỗi thời gian rất phổ biến Tuy nhiên mô hình tuyến tính này cónhững hạn chế khi dự báo các chuỗi thời gian có tính phi tuyến cao đặt ra yêucầu cần phải tìm ra những hớng tiếp cận mới Chơng tiếp theo sẽ trình bày hớngtiếp cận theo mô hình mạng neural nhân tạo, một hớng tiếp cận hiện nay đang đ-
ợc phát triển mạnh mẽ và có ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau
Chơng II Mạng neural nhân tạo
Chơng này sẽ trình bày trớc hết về cấu trúc của mạng neural sinh học trong
bộ não con ngời, từ đó giải thích lý do các nhà khoa học mong muốn xây dựngmột máy có thể mô phỏng quá trình xử lý của mạng neural sinh học Các phầntiếp theo trình bày về lịch sử phát triển của mạng neural nhân tạo, mô hìnhneuron, các cấu trúc của mạng neural Cuối cùng, chúng tôi sẽ trình bày về việchuấn luyện mạng neural nhân tạo và thuật toán huấn luyện lan truyền ngợc
ời có thể đợc xem nh là mạng chuyển mạch điện tử liên thông dựa trên các điềukiện của các quá trình sinh hóa Năng lực tiềm tàng mạnh mẽ của bộ não con ng-
ời trong việc ghi nhớ, tái hiện, tơng quan, chuyển dịch, suy luận luôn đợc xem làthích hợp cho việc mô hình hóa và ớc lợng Mạng neural có một cấu trúc tinh vivới các quan hệ nối liền rất phức tạp Điều này đợc minh họa bởi hình dới đây
Trang 13Hình 2.1 Bốn phần của một tế bào neuron điển hìnhMột tế bào thần kinh điển hình có 3 vùng chính, đó là tế bào chủ(cellbody), dây trục thần kinh (axon) và các nhánh thần kinh Các nhánh thầnkinh này nhận thông tin từ các neuron thông qua các các dây thần kinh và phânphát đi nh là các đờng truyền dẫn Mỗi dây thần kinh mang một xung từ mộtneuron Các dây và nhánh thần kinh kết nối với một bộ phận đợc gọi là đốt thầnkinh Mỗi đốt thần kinh đợc đặt tại điểm mà mỗi neuron truyền tín hiệu sangneuron bên cạnh Mỗi neuron sẽ trả lời tất cả các tín hiệu đầu vào mà nó tổnghợp đợc trong một khoảng thời gian rất ngắn Mỗi neuron tạo ra một xung trả lời
và gửi tới các dây thần kinh của nó chỉ khi các điều kiện cần thiết cho một quátrình xử lý đợc đáp ứng
Điều kiện cho một quá trình xử lý chính là một kích thích đạt tới một giátrị gọi là ngỡng của neuron Bởi vì mỗi kết nối đốt thần kinh tiếp hợp gây ra kíchthích hoặc là những phản ứng ức chế của neoron nhận tín hiệu nên nó phải thựchiện việc xác định các giá trị trọng số đồng nhất dơng cho các kết nối kiểu nhvậy
Quan sát cho thấy rằng về cơ bản, một neuron nhận đầu vào từ các neuronkhác, kết hợp các giá trị đầu vào đó theo một số cách nào đó, thực hiện một phéptoán phi tuyến tạo ra kết quả, sau đó xuất ra kết quả cuối cùng
Đặc trng của neuron chính là tín hiệu đợc tạo ra không khác nhau đáng kể,tín hiệu trong dây thần kinh hoặc là không tồn tại hoặc là có giá trị cực đại Haynói cách khác, thông tin đợc truyền đi giữa các tế bào mang ý nghĩa nh là một tínhiệu nhị phân (có thể biểu diễn bởi 2 trạng thái là 0 và 1)
Từ sự phân tích trên đây về mạng neural sinh học, ngay từ cuối thế kỷ 19,
đầu thế kỷ 20, các nhà khoa học đã có ý tởng tạo ra một cái máy mô phỏng các
Trang 14tính toán và xử lý của bộ não con ngời Từ đó dần hình thành ý tởng về mạngneural nhân tạo Tuy nhiên cho đến cuối những năm 1970, mạng neural nhân tạomới thực sự khẳng định vị trí của mình và đa vào ứng dụng một cách rộng rãi.
2.2 Lịch sử phát triển của mạng neural nhân tạo
Lịch sử phát triển của mạng neural nhân tạo mang đầy màu sắc của sự sángtạo cá nhân, liên quan đến rất nhiều lĩnh vực khác nhau, qua nhiều thập kỷ mới
đợc chấp nhận Những công trình là nền tảng cho mạng neuron đợc phát triển từcuối thế kỷ 19, đầu thế kỷ 20 Đó là những nghiên cứu liên ngành về vật lý, tâm
lý và sinh lý thần kinh với đại diện là các nhà khoa học Hermann VonHelmholtz, Ernst Mach và Ivan Pavlov Những công trình này nhấn mạnh các lýthuyết cơ bản về quá trình học, quá trình quan sát mà cha có các mô hình toánhọc cụ thể về các phép tính trong neuron [4]
Quan điểm hiện đại về mạng neuron bắt đầu từ những năm 1940 với côngtrình của Warren McCulloch và Walter Pítt (1943)[4] Họ chỉ ra rằng mạngneuron nhân tạo có thể tính đợc giá trị của bất kỳ một hàm số học và logic nào.Công trình của họ đợc ghi nhận nh là nền tảng của mạng neuron nhân tạo Sau
đó Donald Hebb(1949)[4] đã chỉ ra rằng các phản xạ có điều kiện (do Pavlovphát hiện) đợc biểu diễn bởi các thuộc tính của các neuron riêng lẻ Ông cũng đa
ra một cơ chế mô phỏng theo mạng neural sinh học
ứng dụng đầu tiên của mạng neuron nhân tạo là vào những năm 1950, vớiviệc phát minh ra mạng neural Perceptron và kết hợp với quy tắc học của FrankRosenblatt (1958)[4] Ông và các cộng sự đã xây dựng mạng neuron Perceptron
và chứng minh đợc khả năng của nó đối với việc nhận dạng mẫu Thành côngnày đã thu hút sự quan tâm lớn Thật không may, sau đó ngời ta thấy rằng mạngPerceptron chỉ giải quyết đợc một lớp hữu hạn các bài toán
Trong khoảng thời gian đó, Bernard Widrow và Ted Hoff(1960) đã giớithiệu một thuật toán học mới và sử dụng nó để huấn luyện mạng neural tuyếntính tơng thích, có cấu trúc tơng tự với mạng Perceptron của Rosenblatt, nhngvới quy tắc học khác mà hiện nay vẫn đợc sử dụng và gọi là quy tắc Widrow-Hoff Không may, cả mạng neuron của Rosenblatt và Widrow đều bị hạn chế.Cả hai ông đều nhận thấy điều đó và mong muốn đa ra những mạng neural mớinhng họ cha thể thành công trong việc điều chỉnh các thuật toán để huấn luyệncho các mạng neuron phức tạp hơn
Nhiều ngời khác trong đó có Minsky và Papert[4] đã tin rằng việc nghiêncứu về mạng neural đã đi vào ngõ cụt Điều này cùng với thực tế là không có
Trang 15một cái máy tính nào đủ mạnh để có thể thực nghiệm tính toán Nhiều thập kỷsau đó, việc nghiên cứu về mạng neural nhân tạo đã bị quên lãng
Vào những năm 1970, nhiều công trình quan trọng về mạng neural nhântạo đã tiếp tục nh các công trình của Teuvo Kohonen(1972) và JamesAnderson(1972) Hai ông đã độc lập nghiên cứu và phát triển các mạng neuralmới mà có thể mô phỏng đợc não con ngời Stephen Grossberg(1976) cũng đãtiếp tục trong khoảng thời gian này với việc nghiên cứu về mạng tự tổ chức[4]
Nh vậy, vào những năm 1960, ngời ta cha quan tâm đến mạng neural nhântạo là vì thiếu những ý tởng mới và thiếu những chiếc máy tính đủ sức mạnh đểthực nghiệm Trong suốt những năm 1980, khi mà cả hai trở ngại trên đã đợckhắc phục, việc nghiên cứu về mạng neural nhân tạo lại tăng lên mạnh mẽ với sựphát triển của máy vi tính và một loạt các khái niệm mới đợc đa ra
Hai khái niệm mới đợc đa ra có vai trò quan trọng nhất trong việc tái sinh
mạng neural nhân tạo đó là việc ra đời Mạng neural hồi quy(recurrent) (John Hopfield-1982)[4] và Thuật toán lan truyền ngợc[4] để huấn luyện mạng
neuron nhiều tầng David Rumelhart và James McClelland (1986) đã phát triểnthuật toán này và trả lời cho sự chỉ trích của Minsky và Papert trong những năm1960
Cùng với sự phát triển mạnh mẽ của máy vi tính, các hạn chế của mạngneural đã dần đợc khắc phục và cho đến những năm 1990, lý thuyết về mạngneural đã gần nh đợc hoàn chỉnh và đi vào ứng dụng rất rộng rãi trong nhiều lĩnhvực khác nhau Ngời ta đã đặt ra câu hỏi rằng, phải chăng mạng neural hoạt động
nh một bộ não là công cụ tồn tại vĩnh cửu và sẽ không bị thay thế Tuy nhiên,cần nhớ rằng chúng ta chỉ mới biết rất ít về bộ não con ngời Những lợi ích quantrọng nhất của mạng neural chắc chắn đang còn ở phía trớc
2.3.Các ứng dụng của mạng neural nhân tạo
Có thể nói rằng mạng neural hiện nay đã có rất nhiều ứng dụng, nhng đợcphân thành 4 nhóm cơ bản sau đây[4]:
-Dự báo: Sử dụng các giá trị đầu vào để dự báo một số giá trị đầu ra, chẳnghạn nh: dự báo thị trờng chứng khoán, dự báo thị trờng trao đổi ngaọi tệ, dự báothời tiết, dự báo số ngời mắc bệnh ung th
-Phân lớp: sử dụng các giá trị đầu vào để xác định các lớp, nhận dạng,chẳng hạn nhận dạng chữ viết, nhận dạng tiếng nói
-Kết nối dữ liệu: cũng giống nh phân lớp nhng còn có thể nhận dạng dữliệu có chứa sai số, chằng hạn có thể nhận dạng ký tự kể cả trong trờng hợp cólỗi xảy ra nh máy quét làm việc không đúng
Trang 16-Lọc dữ liệu: Làm trơn các tín hiệu, loại bỏ nhiễu, chẳng hạn nh loại bỏtiếng ồn trong điện thoại.
Và các lĩnh vực có sử dụng mạng neural nhân tạo cũng hết sức rộng rãi Cóthể liệt kê một số lĩnh vực sau đây (Tham khảo từ [4])
-Công nghiệp vũ trụ: xác định đờng bay cho hệ thống điều khiển máy baykhông ngời lái
-Tự động hóa: Hệ thống điều khiển tự động xe ô tô
-Ngân hàng: kiểm tra khách hàng, ớc lợng tín dụng
-Quốc phòng: điều khiển vũ khí tìm kiếm mục tiêu, phân biệt đối tợng,nhận dạng mặt, cảm biến ra đa, xử lý ảnh, nén dữ liệu, loại bỏ tiếng ồn
-Điện tử: Dự báo chuỗi mã hóa, tích hợp vi mạch, điều khiển xử lý
-Giải trí: Các hiệu ứng động, hiệu ứng đặc biệt, Games chiến thuật
-Tài chính: Định giá tài sản, t vấn cho vay, định giá thế chấp, phân tích tíndụng, quản lý danh mục đầu t, dự báo tài chính, giá cả, tiền tệ
-Bảo hiểm: Dự báo các hợp đồng bảo hiểm
-Chế tạo: Điều khiến quá trình chế tạo, phân tích và thiết kế sản phẩm, hệthống kiểm định chất lợng, kiểm tra dự báo chất lợng, bảo trì máy móc
-Y học: Phân tích tế bào ung th, mô phỏng cơ thể, cải tiến bệnh viện -Dầu khí: Thăm do dầu khí
-Rôbốt: Điều khiển quỹ đạo
-Tiếng nói: Nhận dạng tiếng nói, nén tiếng nói, chuyển từ văn bản sangtiếng nói
-Chứng khoán: phân tích thị trờng, dự báo chứng khoán
-Bu chính viễn thông: nén ảnh và dữ liệu, dịch vụ thông tin tự động, truyền
tự động ngôn ngữ nói, hệ thống thanh toán tự động cho khách hàng
-Giao thông: hệ thống bản lẻ, xếp lịch xe cộ,
Trên đây là một số lĩnh vực đã ứng dụng mạng neural nhân tạo và đã thu
đ-ợc nhiều kết quả tốt đẹp Sự quan tâm đến mạng neural đang ngày càng pháttriển mạnh mẽ và hứa hẹn nhiều thành công rực rỡ Sau đây chúng tôi sẽ trìnhbày cụ thể về cấu tạo của mạng neural nhân tạo
2.4.Mô hình neurron
2.4.1.Neuron một đầu vào
Một neuron một đầu vào đợc minh họa trong hình 2.2 Đầu vào vô hớng p
đợc nhân với trọng số vô hớng w tạo ra tích w.p, kết quả đợc gửi đến phép tínhtổng Một đầu vào khác là 1 đợc nhân với một giá trị khuynh(bias) b và cũng
Trang 17đợc gửi đến phép tính tổng Kết quả của phép tính tổng này đợc gọi là trọng
l-ợng của neuron, sau đó nó đi qua một hàm chuyển f và tạo ra đầu ra a
Mô hình trên có liên hệ với mô hình mạng neural sinh học, trọng số w tơng
tự với độ lớn của đốt thần kinh, tế bào chủ chính là phép lấy tổng, và hàmchuyển và đầu ra a biểu diễn cho tín hiệu trên đờng trục thần kinh (axon)
Hình 2.2 Neuron một đầu vào
Đầu ra của mạng neuron đợc tính bởi công thức
Hàm chuyển là một hàm tuyến tính hoặc phi tuyến của n một hàm chuyển
cụ thể sẽ đợc chọn để thoả mãn các đặc tính kỹ thuật của bài toán mà neuronphải giải quyết Bảng dới[4] liệt kê hầu hết các hàm chuyển đợc sử dụng trongmạng neuron nhân tạo Đầu vào là n, đầu ra là a
Giới hạn cứng
(Hard Limit)
a=0 nếu n< 0a=1 nếu n 0Giới hạn cứng đối xứng
(Symmetrical Hard Limit)
a=-1 nếu n< 0a=1 nếu n 0
Tuyến tính đầy đủ
Saturating Linear
a=0 nếu n< 0a=n nếu 0n1a=1 nếu n>1
a=f(wp+b)
Trang 18Tuyến tính đầy đủ đối xứng
Symmetrical Saturating Linear
a=-1 nếu n<-1a=n nếu -1n1a=1 nếu n>1
e
1 1
n n
e e
e e
a=0 nếu ngợc lạiBảng 2.3.Bảng các hàm chuyển
2.4.3 Neuron nhiều đầu vào
Thông thờng một neuron có nhiều hơn một đầu vào Một neuron có R đầuvào đợc minh họa trong Hình 2.4 Mỗi đầu vào riêng lẻ p1, p2, , pR đợc nhân vớimỗi trọng số w1,1, w1,2, w1,R tơng ứng của ma trận trọng số W
Hình 2.4.Neuron nhiều đầu vàoNếu neuron có bias là b, thì tổng trọng lợng của neuron là:
Và các biểu thức về mạng neural đều đợc viết dới dạng ma trận, khi viết wi,j
tức là muốn chỉ trọng số tại liên kết từ neuron (hoặc đầu vào) thứ j vào neuronthứ i
Nh hình trên chỉ mới có một neuron với R đầu vào đã có khá nhiều chi tiết.Khi vẽ mạng neural với nhiều lớp, mỗi lớp có nhiều neuron thì hình vẽ sẽ trở nên
w
1,1
w
1,R
Trang 19rất phức tạp, cho nên chúng tôi sử dụng hình vẽ rút gọn nh hình dới đây choneuron nhiều đầu vào
Hình 2.5.Neuron R đầu vào, hình vẽ dạng ma trận
2.5 Kiến trúc mạng neural nhân tạo
Một mạng neural nhân tạo có thể bao gồm nhiều neuron, và các neuronluôn đợc sắp xếp theo các tầng
2.5.1 Mạng neural nhân tạo một tầng
Mạng một tầng gồm có S neuron đợc chỉ ra trong hình dới Cần chú ý rằng,mỗi neuron đều nhận đủ R đầu vào của mạng Tầng neuron đầu tiên nhận đầuvào trực tiếp đợc gọi là tầng đầu vào Ma trận trọng số có S hàng, R cột
Hình 2.6 Một tầng mạng gồm S neuronMỗi tầng gồm một ma trận trọng số S x R, S phép tính tổng, một vectơ bias
b (gồm S phần tử), một bộ hàm chuyển và một vectơ đầu ra a gồm S phần tử.Mỗi thành phần trong ma trận đầu vào p đều đợc nối đến một neuron thông qua
1x11
Trang 20ma trận trọng số W Mỗi neuron có một bias bi, một tổng, một hàm chuyển f và
một đầu ra ai Nh vậy, đầu ra của một tầng là một vectơ a gồm S phần tử Nóichung thì S R Và các hàm chuyển của các neuron có thể không giống nhau
S
R R
w w
w
w w
w
w w
w
, 2
, 1 ,
, 2 2
, 2 1 , 2
, 1 2
, 1 1 , 1
Ngoài ra, chúng ta cũng có thể biểu diễn một tầng mạng neural bởi một sơ
đồ rút gọn dạng ma trận Trong đó, W là ma trận S x R, p là vectơ R phần tử, a,b
có 2,3 hoặc 4 tầng tuỳ vào từng bài toán cụ thể Các ký hiệu W, S, b, a có chỉ sốtrên chính là số thứ tự của tầng Chẳng hạn W2 là ma trận trọng số của tầng thứ
2, b3 là vectơ bias của tầng thứ 3 Dới đây là hình vẽ một mạng neural gồm 3tầng:
Sx11
Đầu vào
Trang 21Hình 2.8.Mạng neural 3 tầng
Nh hình trên, có R đầu vào S1 neuron trong tầng thứ nhất, S2 neuron trongtầng thứ 2, S3 neuron trong tầng thứ 3 Các tầng khác nhau có số neuron khácnhau Đầu ra của tầng thứ nhất chính là đầu vào của tầng thứ 2 và tơng tự chotầng 2 và tầng 3, có nghĩa là tầng 2 có S1 đầu vào và tầng 3 có S2 đầu vào, đầuvào tầng 2 là a1, đầu vào tầng 3 là a2, a3 là đầu ra của mạng
Tầng mà đầu ra của nó chính là đầu ra của mạng gọi là tầng đầu ra (outputlayer), tầng trực tiếp nhận đầu vào của mạng gọi là tầng đầu vào (input layer) cáctầng còn lại gọi là tầng ẩn (hidden layer)
Ta cũng có thể biểu diễn mạng 3 tầng trên theo sơ đồ rút gọn dạng ma trận
w3
1,1
b3 2
w2 S2,S1 w3S3,S2
a2=f2(W2p+b2) a3=f3(W3p+b3)Tầng thứ hai
a 3 =f 3 (W 3 f 2 (W 2 f 1 (W 1 p+b 1 )+b 2 )+b 3 )
Trang 22Hình 2.9 Mạng neural 3 tầng, dạng ma trận rút gọnTất nhiên mạng đa tầng thì mạnh hơn mạng một tầng Tuy nhiên, việc chọn
số tầng và số neuron trong từng tầng hết sức quan trọng để phù hợp với từng bàitoán cụ thể Đa số các bài toán chỉ sử dụng mạng neural với 2 hoặc 3 tầng Cómạng có thể có bias hoặc không, tuy nhiên mạng có bias thì vẫn mạnh hơn
2.5.3 Mạng neural Hồi quy (Recurent Networks)
Trớc khi thảo luận về mạng neural hồi quy, chúng ta sẽ giới thiệu về mộtkhối xử lý đơn giản gọi là khối trễ (delay), đợc minh họa trong hình dới
Hình 2.10.Khối trễ
Đầu ra a(t) của khối trễ đợc tính bởi công thức:
a(t)=u(t-1)
Nh vậy, đầu ra sẽ chậm hơn đầu vào một bớc
Mạng neural hồi quy là mạng một mạng neural mà trong đó bao gồm mộtquá trình phản hồi giá trị Một số đầu ra của mạng sẽ nối với đầu vào, điều nàykhác với những mạng mà chúng ta đã thảo luận, những mạng chỉ có quá trìnhtiến không có quá trình phản hồi Hình dới minh hoạ cho một mạng neural hồiquy với thời gian rời rạc[4]
D a(t)u(t)
a(0)Khối trễ
a(t)=u(t-1)
Trang 23Hình 2.11 Mạng neural hồi quyMạng neural hồi quy có tiềm năng mạnh mẽ hơn mạng neural không hồiquy và nó có thể hoạt động theo thời gian.
Trên đây là một số loại mạng neural điển hình đợc trình bày từ đơn giản
đến phức tạp Biết rằng kiến trúc mạng là nh thế, nhng việc lựa chọn các tham sốcủa mạng hết sức quan trọng nh: số đầu vào R, số tầng mạng, số neuron trongmỗi tầng Những vấn đề đó sẽ đợc đề cập cụ thể trong các mục sau đối với bàitoán dự báo thị trờng chứng khoán Đặc biệt các ma trận trọng số sẽ biến đổi nhthế nào trong quá trình huấn luyện mạng neural Một mạng neural muốn đợc
đem vào sử dụng trong thực tế, trớc hết nó phải đợc huấn luyện giống nh ta phải
đào tạo một con ngời Vậy huấn luyện mạng neural là gì?
2.6 Huấn luyện mạng neural nhân tạo
Huấn luyện mạng là đa vào một tập dữ liệu gọi là mẫu huấn luyện bao gồmcác bộ giá trị đầu vào và 1 giá trị đầu ra mong đợi cho mỗi bộ giá trị đầu vào.Mạng neural sẽ sử dụng từng bộ giá trị đầu vào và tạo ra từng giá trị đầu ra dựatheo các ma trận trọng số và các vectơ bias của mạng Sau đó mạng so sanh giátrị đầu ra so này với giá trị đầu ra đợc mong đợi, ớc lợng sai số và sử dụng sai sốnày, theo một thuật toán huấn luyện nào đó, chẳng hạn nh thuật toán Lan truyềnngợc, sẽ điều chỉnh các giá trị trong các ma trận trọng số của mạng để làm saocực tiểu hóa sự sai lệch giữa giá trị đầu vào do mạng tạo ra và giá trị đầu vàomong đợi Với hàng loạt bộ dữ liệu mẫu nh vậy cùng với một thuật toán huấnluyện hiệu quả mạng neural sẽ điều chính các ma trận trọng số sao cho nó thíchhợp với tất cả các bộ dữ liệu mẫu với sai số cho phép Điều đó có nghĩa là khi đó
ta có thể đem mạng neural đó áp dụng với các bộ đầu vào mới, khi đó đầu ra tạo
ra chính là giá trị chúng ta cần có với sai số cho phép
Sx11
n(t+1) a(t+1)Tầng hồi quy
SxS
Đầu vào
DSx1a(t)