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ở

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

pdf57 trang | Chia sẻ: lylyngoc | Lượt xem: 2686 | Lượt tải: 3download
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:

  • pdfLUẬ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