Phân hoạch tập dữ liệu

Một phần của tài liệu 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Ở (Trang 33)

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].

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 tng 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.

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à tng 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 truyn

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

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.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:

= 1 ( − ) Trong đĩ:

Pjlà giá trị được dự đốn cho mẫu thứj Tjlà 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.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 chun dng

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

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

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 độhc

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

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.

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ệnweka đã đượ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

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 http://www.cs.waikato.ac.nz/ml/weka/. 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

đ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

Một phần của tài liệu 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Ở (Trang 33)