Đại Học Quốc Gia TP.HCMTrường Đại Học Công Nghệ Thông Tin BÀI THU HOẠCH MÔN MÁY HỌC VÀ ỨNG DỤNG ĐỀ TÀI: TÌM HIỂU MÔ HÌNH HỆ THỐNG MẠNG NEURAL LAN TRUYỀN NGƯỢC – BACKPROPAGATION NEURAL NE
Trang 1Đại Học Quốc Gia TP.HCM
Trường Đại Học Công Nghệ Thông Tin
BÀI THU HOẠCH MÔN MÁY HỌC VÀ ỨNG DỤNG
ĐỀ TÀI:
TÌM HIỂU MÔ HÌNH HỆ THỐNG MẠNG NEURAL LAN TRUYỀN NGƯỢC – BACKPROPAGATION NEURAL NETWORK VÀ THUẬT TOÁN RESILIENT PROPAGATION ỨNG DỤNG TRONG DỰ BÁO
CÁC CHỈ SỐ CHỨNG KHOÁN S&P500, DOW, NASDAQ
COMPOSITE VÀ LÃI SUẤT PRIME LENDING RATE
GVHD: PGS.TS Vũ Thanh Nguyên
Người thực hiện: Phạm Xuân Dũng
Trang 2Mục lục
Giới thiệu đề tài 2
Phần 1: Cơ sở lý thuyết mạng neural 2
1.1 Mạng Neural sinh học - 2
1.2 Đặc điểm của mạng Neuralnhân tạo -4
1.3 Mô hình và kiến trúc mạng - 4
1.4 Cấu tạo và phương thức làm việc của mạng Neural -8
1.5 Các luật học (Learning rules) - 16
Phần 2: Phần ứng dụng minh họa sử dụng mạng Neural 19
2.1 Dẫn nhập: 19
2.2 Thuật toán lan truyền ngược – Backpropagation 20
2.3 Thuật toán The Resilient Propagation (Rprop) 22
2.4 Giới thiệu các chỉ số chứng khoán trên thị trường Mỹ 23
2.4.1 Chỉ số S&P 500: - 23
2.4.2 Chỉ số Dow Jones Industrial Average, viết tắt DJIA: -25
2.4.3 Chỉ số tổng hợp Nasdaq: - 26
2.5 Thiết kế ứng dụng: 27
2.5.1 Mô hình thiết kế: - 27
2.5.2 Một số kết quả đạt được: -32
3 Đánh giá và kết luận: 33
3.1 Những kết quả đạt được: 33
3.2 Những hạn chế và hướng phát triển: 34
4 Phụ lục: 34
Một số đoạn code chính của chương trình 34
4.1 Hàn tạo mạng Neural. - 34
4.2 Hàm chuẩn hóa dữ liệu đầu vào -35
Trang 34.3 Hàm dự doán - 35
Hướng dẫn sử dụng chương trình: -38
5 Tài liệu tham khảo 40
5.1 Tài liệu tham khảo tiếng Việt: 40
5.2 Tài liệu tham khảo tiếng Anh: 40
Giới thiệu đề tài
Trong quá trình học môn máy học và ứng dụng, thông qua các bài giảng trên lớp, em thấy rằng mô hình mạng Neural là một mô hình rất hay và có nhiều ứng dụng thực tiễn trong nhiều lĩnh vực kinh tế và khoa học kỹ thuật Bản thân em có đam mê về lĩnh vực ứng dụng mô hình mạng Neuraltrong lĩnh vực kinh tế, tài chính Vì vậy em chọn đề tài sử dụng mạng Neuralđể dự báo một số chỉ số chứng khoán trong thị trường Mỹ, chương trình minh họa sẽ dựa vào dữ liệu lịch
sử của các chỉ số chứng khoán hàng đầu thế giới như S&P500, DOW, NASDAQ
Composite vàlãi suấtPrime Lending Rate để huấn luyện mạng, sau đó sẽ dùng
mạng đã huấn luyện để dự đoán các giá trị tương lai và dùng biểu đồ để so sánh
dữ liệu dự đoán từ mạng với dữ liệu thực sự
Phần nội dung cơ sơ lý thuyết về mạng neural, em có tham khảo để kế thừa và phát triển từ [1]
Phần cài đặt chương trình minh họa ứng dụng mạng Neural, em sử dụng thư
viện mã nguôn mở encog-dotnet-core-3.1.0để xây dựng ứng dụng dự báo các
chỉ số chứng khoán hàng đầu thế giới như S&P500, DOW, NASDAQ
Composite và lãi suất Prime Lending Rate.
Phần 1: Cơ sở lý thuyết mạng neural
1.1 Mạng Neural sinh học
(1911),ôngchorằnghệthầnkinhcấutạotừcácNeural.Bộnãoxửlýchậmhơn(10-3s)sovới cácthiếtbịvậtlý(10-9)tuynhiêntốnítnănglượnghơnvàthựchiệnđược
Trang 4nhiềuchứcnănghơn.Conngườicókhoảng1011Neural,1015khớpkếtnối.Cáckhớpkhimớisinhítkếtnốivớinhau,chúngđượckếtnốinhờquátrìnhhọc.
Trang 5Trụccảmứng(Axon)đưatínhiệuravàtruyềntớicácNeuralkhácquacác khớpkếtnối
1.2 Đặc điểm của mạng Neuralnhân tạo
Mặc dù hiểu biết của con người về kiến trúc và hoạt động của não còn chưa đầy
đủ, người ta tạo ra được các máy có một số tính năng tương tự não nhờ môphỏng các đặc điểm:
Tri thức thu nhận được nhờ quá trình học
Tính năng có được nhờ kiến trúc mạng và tính chât kết nối
Các máy loại mô phỏng này có tên chung là mạng Neural nhân tạo hay gọn hơnmạng Neural (còn có tên gọi là máy thần kinh) và viết tắt là ANN hoặc gọn hơn là
NN Trong ứng dụng chúng thường được tích hợp với các hệ khác
Đặc điểm chính của ANN
Phi tuyến Cho phép xử lý phi tuyến:
Cơ chế ánh xạ vào → ra (x → d(x)) cho phép học có giám sát
Cơ chế thích nghi Thay đổi tham số phù hợp với môi trường
Đáp ứng theo mẫu đào tạo Được thiết kế không nhữngcung cấp thông tin vềmẫu đào tạo mà còn cho biết mức tin cậy của nó
Thông tin theo ngữ cảnh.Tri thức được biểu diễn tuỳ theo trạng thái và kiến trúccủa ANN
Cho phép có lỗi (fault tolerance)
VLSI (very large scale Integrated)
Trang 6Mô hình Neural
Mô hình toán học của mạng Neural sinh học được đề xuất bởi McCulloch vàPitts, thường được gọi là Neural M-P, ngoài ra nó còn được gọi là phần tử xử lý
và được ký hiệu là PE (Processing Element)
Mô hình Neural có m đầu vào x1, x2, , xm, và một đầu ra yi như sau:
Mô hình mạng Neuron nhân tạo
Bộ tổng (Hàm tổng): 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: Ngưỡng này thường được đưa vào như một thành phần của hàmtruyền
Hàm truyền: Hàm này 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
Trang 7truyề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ọnhàm truyền tùy thuộc vào từng bài toán và kinh nghiệm của người thiết kế mạng.Đầu ra: Là tín hiệu đầu ra của một Neural, với mỗi Neural sẽ có tối đa một đầu ra
Neural có đầu vào đơn
Hình bên dưới môtảNeural cóđầuvàođơn,cóhoạtđộng nhưsau Mộttínhiệuvàopđượcnhânvớitrọngsốwthànhwpvàmộttínhiệukhácbằng1nhânvớigiátrị khuynh
hiệuraa.Trong đótrọngsốwtươngứngvớiđộliênkếtcủakhớpkếtnối(Synapse), hàmtổngvàhàmchuyển môphỏng thântếbàocòntínhiệuramôphỏngtínhiệuở Axon
Trang 8y=sgn( x)= { −1 khi x<0 1 khi x≥0 (1.7)
Hàm ngưỡng hai cực
y= 21+e−λxx−1
Trang 91.4 Cấu tạo và phương thức làm việc của mạng Neural
Dựa trên những phương pháp xây dựng Neural đã trình bày ở mục trên, ta cóthể hình dung mạng Neural như là một hệ truyền đạt và xử lý tín hiệu Đặc tínhtruyền đạt của Neural phần lớn là đặc tính truyền đạt tĩnh
Khi liên kết các đầu vào/ra của nhiều Neural với nhau, ta thu được một mạngNeural, việc ghép nối các Neural trong mạng với nhau có thể là theo một nguyêntắc bất kỳ Vì mạng Neural là một hệ truyền đạt và xử lý tín hiệu, nên có thể phânbiệt các loại Neural khác nhau, các Neural có đầu vào nhận thông tin từ môitrường bên ngoài khác với các Neural có đầu vào được nối với các Neural kháctrong mạng, chúng được phân biệt với nhau qua vector hàm trọng số ở đầu vào
w Nguyên lý cấu tạo của mạng Neural bao gồm nhiều lớp, mỗi lớp bao gồmnhiều Neural có cùng chức năng trong mạng
Trang 10Mạng Neural được xây dựng như trên là mạng gồm 3 lớp mắc nối tiếp nhau đi từđầu vào đến đầu ra Trong mạng không tồn tại bất kỳ một mạch hồi tiếp nào Mộtmạng Neural có cấu trúc như vậy gọi là mạng một hướng hay mạng truyền thẳngmột hướng (Feed forward network), và có cấu trúc mạng ghép nối hoàn toàn (vìbất cứ một Neural nào trong mạng cũng được nối với một hoặc vài Neural khác).Mạng Neural bao gồm một hay nhiều lớp trung gian được gọi là mạng MultilayerPerceptrons) (MLP-Network).
Mạng Neural khi mới được hình thành thì chưa có tri thức, tri thức của mạng sẽđược hình thành dần dần sau một quá trình học Mạng Neural được học bằngcách đưa vào những kích thích, và mạng hình thành những đáp ứng tương ứng,những đáp ứng tương ứng phù hợp với từng loại kích thích sẽ được lưu trữ Giaiđoạn này được gọi là giai đoạn học của mạng Khi đã hình thành tri thức mạng,mạng có thể giải quyết các vấn đề một cách đúng đắn Đó có thể là vấn đề ứngdụng rất khác nhau, được giải quyết chủ yếu dựa trên sự tổ chức hợp nhất giữacác thông tin đầu vào của mạng và các đáp ứng đầu ra
Nếu nhiệm vụ của một mạng là hoàn chỉnh hoặc hiệu chỉnh các thông tin thuđược không đầy đủ hoặc bị tác động của nhiễu Mạng Neural kiểu này được ứngdụng trong lĩnh vực hoàn thiện mẫu, trong đó có một ứng dụng cụ thể là nhậndạng chữ viết
Nhiệm vụ tổng quát của một mạng Neural là lưu giữ động các thông tin Dạngthông tin lưu giữ này chính là quan hệ giữa các thông tin đầu vào và các đápứng đầu ra tương ứng, để khi có một kích thích bất kỳ tác động vào mạng, mạng
có khả năng suy diễn và đưa ra một đáp ứng phù hợp Đây chính là chức năngnhận dạng theo mẫu của mạng Neural Để thực hiện chức năng này, mạngNeural đóng vai trò như một bộ phận tổ chức các nhóm thông tin đầu vào, vàtương ứng với mỗi nhóm là một đáp ứng đầu ra phù hợp Như vậy, một nhóm
Trang 11bao gồm một loại thông tin đầu vào và một đáp ứng đầu ra Các nhóm có thểđược hình thành trong quá trình học, và cũng có thể không hình thành trong quátrình học.
Trang 12Mạng 1 tầng Neural
Mạng một tầng của S ký hiệu W là ma trận trọng số, p là vectơ tín hiệu vạo và b
là vectơ khuynh hướng
Môhìnhmạngbatầngtruyềntới
Tacó: ailàđầuracủatầngi
Trang 14rađượcnốivớitínhiệuvàocủanó(cómốiliênhệngược) Mạng hồiquy thườngcónhiềukhảnănghơn mạngtruyềntới.
Trang 15Cấu trúc mạng Hopfield
giá trị ngưỡng θj (j = 1,2, n) Một điều quan trọng cần nói ở đây là mỗi nút
không có đường phản hồi về chính nó Nút đầu ra thứ j được nối tới mỗi đầu vàocủa nút khác qua trọng số wij, với i ¿ j, (i = 1,2, ,n), hay nói cách khác wii = 0,(với i = 1,2, ,n)
Một điều quan trọng nữa là trọng số của mạng Hopfield là đối xứng, tức là wij =wji, (với i,j = 1,2, ,n) Khi đó, luật cập nhật cho mỗi nút mạng là như sau:
¿ j≠i ¿ ¿ ¿
n ¿ ¿ , ¿
i = 1,2, ,nLuật cập nhật trên được tính toán trong cách thức không đồng bộ Điều này cónghĩa là, với một thời gian cho trước, chỉ có một nút mạng cập nhật được đầu racủa nó Sự cập nhật tiếp theo trên một nút sẽ sử dụng chính những đầu ra đãđược cập nhật Nói cách khác, dưới hình thức hoạt động không đồng bộ củamạng, mỗi đầu ra được cập nhật độc lập
Có sự khác biệt giữa luật cập nhật đồng bộ và luật cập nhật không đồng bộ Vớiluật cập nhật không đồng bộ thì sẽ chỉ có một trạng thái cân bằng của hệ (với giátrị đầu đã được xác định trước) Trong khi đó, với luật cập nhật đồng bộ thì cóthể làm mạng hội tụ ở mỗi điểm cố định hoặc một vòng giới hạn
Trang 16Mạng BAM
Mạng BAM bao gồm hai lớp và được xem như là trường hợp mở rộng của mạngHopfield Ở đây ta chỉ xét mạng rời rạc, vì nó đơn giản và dễ hiểu
Cấu trúc của BAM
Khi mạng Neural được tích cực với giá trị đầu vào của vector tại đầu vào củamột lớp, mạng sẽ có hai mẫu trạng thái ổn định, với mỗi mẫu tại đầu ra của nó làmột lớp Tính động học của mạng thể hiện dưới dạng tác động qua lại giữa hailớp Cụ thể hơn, giả sử một vector đầu vào x được cung cấp cho đầu vào củalớp Neural y Đầu vào được xử lý và truyền tới đầu ra của lớp y như sau:
x(2) = a(w(T)y(1)) (truyền ngược lần thứ nhất)
y(3) = a(wx(2)) (truyền thẳng lần thứ hai)
Trang 17ANN Trọng số
wi
So sánh Đích
x(k) = a(w(T)y(k-1)) (truyền ngược lần thứ k/2)
1.5 Các luật học (Learning rules)
Thông thường, mạng Neural được điều chỉnh hoặc được huấn luyện để hướngcác đầu vào riêng biệt đến đích ở đầu ra Cấu trúc huấn luyện mạng được chỉ ra
ở hình dưới Ở đây, hàm trọng số của mạng được điều chỉnh trên cơ sở so sánhđầu ra với đích mong muốn (taget), cho tới khi đầu ra của mạng phù hợp vớiđích Những cặp vào/đích (input/taget) được dùng để giám sát cho sự huấnluyện mạng
Cấu trúc huấn luyện mạng Neural
Để có được một số cặp vào/ra, ở đó mỗi giá trị vào được gửi đến mạng và giá trị
ra tương ứng được thực hiện bằng mạng là sự xem xét và so sánh với giá trịmong muốn Bình thường, nó sẽ tồn tại một sai số vì giá trị mong muốn khônghoàn toàn phù hợp với giá trị thực Sau mỗi lần chạy, ta có tổng bình phươngcủa tất cả các sai số Sai số này được sử dụng để xác định các hàm trọng sốmới
Sau mỗi lần chạy, hàm trọng số của mạng được sửa đổi với đặc tính tốt hơntương ứng với đặc tính mong muốn Từng cặp giá trị vào/ra phải được kiểm tra
và trọng số được điều chỉnh một vài lần Sự thay đổi các hàm trọng số của mạng
sẽ được dừng lại, nếu tổng các bình phương sai số nhỏ hơn một giá trị đặttrước, hoặc đã chạy đủ một số lần chạy xác định (trong trường hợp này, mạng
có thể không thoả mãn yêu cầu đặt ra do sai lệch còn cao) Có hai kiểu học:
Trang 18Học cấu trúc: trọng tâm là sự biến đổi cấu trúc của các mạng Neural gồm sốlượng nút và các loại liên kết.
Giả sử ma trận trọng số bao gồm tất cả các phần tử thích ứng của mạng Neural.Nhiệm vụ của việc học tham số là tìm ra được ma trận chính xác mong muốn từ
ma trận giả thiết ban đầu (với cấu trúc của mạng Neural có sẵn) Để làm đượcđiều này thì mạng Neural phải sử dụng các trọng số điều chỉnh, với nhiềuphương pháp học khác nhau để có thể tính toán gần đúng ma trận W cần tìmđặc trưng cho mạng Sau đây là 3 phương pháp học:
Học có giám sát (Supervised Learning)
Học có giám sát: là quá trình học có tín hiệu chỉ đạo bên ngoài d Trong học cógiám sát, thì tại mỗi thời điểm khi đầu vào được cung cấp tới mạng Neural, phảnứng đầu ra mong muốn d tương ứng của hệ thống được đưa ra Khi mỗi đầu
cấp tới mạng Hiệu giữa đầu ra thực y(k) và đầu ra mong muốn d(k) được đo trongmáy phát tín hiệu lỗi Máy này sẽ tạo ra tín hiệu lỗi cho mạng để hiệu chỉnh cáctrọng số của mạng, và với các hiệu chỉnh này thì đầu ra thực sẽ tiến sát với đầu
ra đặc biệt Tín hiệu củng cố bên ngoài thường được xử lý bằng máy phát tín
Trang 19hiệu đánh giá để tạo ra nhiều hơn nữa các thông tin tín hiệu đánh giá, sau đódùng để điều chỉnh các trọng số với mục đích đạt được tín hiệu đánh giá tốt hơn.
Học không có giám sát (Unsupervised learning)
Học không có giám sát (Unsupervised learning)
Trong phần học không có giám sát, sẽ không có thầy hướng dẫn, tức là không
có tín hiệu d cung cấp tới mạch phản hồi Điều này cho thấy, ta sẽ không biếtđầu ra đạt giá trị gì Với loại này, thì các Neural tự xoay xở với các dữ liệu mẫu
mà nó có được, chứ không có “thầy” gợi ý cần luyện theo hướng nào Mạng phải
tự khám phá mẫu, đặc tính, sự tương quan hay loại đầu vào Trong khi khámphá những đặc tính này, tham số của mạng sẽ bị thay đổi Quá trình này đượcgọi là tự tổ chức Một ví dụ điển hình là quá trình phân loại đối tượng không cóthầy, những lớp thích hợp được hình thành bằng cách khám phá sự tương tự vàkhông tương tự trong số các đối tượng
Dạng tổng quát của luật học trọng số của mạng Neural cho biết số gia của vector
wi là Δww i tỉ lệ với tín hiệu học r và tín hiệu đầu vào x(t).
η là một số dương và được gọi là hằng số học dùng để xác định tốc độ học, r
là tín hiệu học và phụ thuộc: r=f r(w i ,x ,d i) (1.16)
Trang 20Sơ đồ cấu trúc chung của quá trình học
Ta thấy, vector trọng số wi = [wi1, wi2, , wim]T có số gia tỷ lệ với tín hiệu vào x vàtín hiệu học r Vector trọng số ở thời điểm (t+1) được tính như sau:
Phương trình liên quan đến sự biến đổi trọng số trong mạng Neural rời rạc, vàtương ứng với sự thay đổi trọng số trong mạng Neural liên tục theo biểu thứcsau:
dw i
Vấn đề quan trọng trong việc phân biệt luật học cập nhật trọng số có giámsát hay không có giám sát, hoặc học củng cố là tín hiệu học r Như vậy, đối vớitín hiệu học r thì nó làm thế nào để thay đổi hoặc cập nhật trọng số trong mạngNeural
Mạng Neural nhân tạo có các tính chất sau:
Trang 21Phần 2: Phần ứng dụng minh họa sử dụng mạng Neural
chương trình và một số kết quả thử nghiệm dưới dạng biểu đồ
2.2 Thuật toán lan truyền ngược – Backpropagation
Như ta đã biết, có hai dạng thuật toán để luyện mạng: học có thầy và học không
có thầy Các mạng Neural truyền thẳng nhiều lớp được luyện bằng phươngpháp học có thầy Phương pháp này căn bản dựa trên việc yêu cầu mạng thựchiện chức năng của nó và sau đó trảlại kết quả, kết hợp kết quả này với các đầu
ra mong muốn để điều chỉnh các tham số của mạng, nghĩa là mạng sẽ học thôngqua những sai sót của nó
Thuật toán lan truyền ngược được ứng dụng để giải các bài toán điều khiển các
hệ phi tuyến phức tạp và bất ổn định Lan truyền ngược là một phương pháp chophép xác định tập trọng số tốt nhất của mạng để giải một bài toán đã cho Việc
áp dụng phương pháp lan truyền ngược là một quá trình lặp đi lặp lại nhiều lầnhai tiến trình chính: lan truyền tiến để thực hiện ánh xạ và lan truyền ngược sai
số để cập nhật các trọng số Các trọng số của mạng là các hệ số của mô hình.Phương pháp giảm gradient được dùng để cập nhật những hệ số này sao chogiảm thiểu được sai số của mô hình
Về cơ bản, thuật toán lan truyền ngược là dạng tổng quát của thuật toán trungbình bình phương tối thiểu (Least Means Square-LMS) Thuật toán này thuộcdạng thuật toán xấp xỉ để tìm các điểm mà tại đó hiệu năng của mạng là tối ưu.Chỉ số tối ưu (performance index) thường được xác định bởi một hàm số của matrận trọng số và các đầu vào nào đó mà trong quá trình tìm hiểu bài toán đặt ra
Mô tả thuật toán
Xem xét một mạng với Q lớp lan truyền ngược, q=1,2, ,Q; với qneti và qyi lầnlượt là đầu vào và đầu ra của khối trong lớp thứ q Mạng có m Neural đầu vào, lNeural ở lớp ẩn, và n Neural đầu ra Với qwij là trọng số nối từ q-1wj đến qyi.Đầu vào: các cặp huấn luyện {x(k), d(k) | k=1,2, ,p}, ở đó giá trị đầu vào của phần