Tải bản đầy đủ (.docx) (74 trang)

Luận văn AI, Trí tuệ nhân tạo, SO SÁNH HIỆU QUẢ MỘT SỐ MÔ HÌNH DỰ BÁO DOANH SỐ DỰA VÀO MẠNG NƠRON VÀ MÔ HÌNH HOLTWINTERS

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.59 MB, 74 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>---NGUYỄN BÁ PHAN TÙNG</b>

<b>SO SÁNH HIỆU QUẢ </b>

<b>MỘT SỐ MƠ HÌNH DỰ BÁO DOANH SỐ DỰA VÀO MẠNG NƠ-RON </b>

<b>VÀ MƠ HÌNH HOLT-WINTERS</b>

<b>Chun ngành: HỆ THỐNG THÔNG TINMã số: </b>

<b>60.48.01.04</b>

<b>LUẬN VĂN THẠC SĨ KỸ THUẬT</b>

NGƯỜI HƯỚNG DẪN KHOA HỌC :

<b>PGS. TS. DƯƠNG TUẤN ANH</b>

THÀNH PHỐ HỒ CHÍNH MINH – NĂM 2015

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>---NGUYỄN BÁ PHAN TÙNG</b>

<b>SO SÁNH HIỆU QUẢ </b>

<b>MỘT SỐ MƠ HÌNH DỰ BÁO DOANH SỐ DỰA VÀO MẠNG NƠ-RON </b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

Luận văn được hồn thành tại:

<b>HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG</b>

Người hướng dẫn khoa học: <b> PGS. TS. DƯƠNG TUẤN ANH </b>

<i>(Ghi rõ học hàm, học vị) </i>

Phản biện 1: <b> </b>

Phản biện 2: <b> </b>

Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Cơng nghệ Bưu chính Viễn thơng

Vào lúc: giờ ngày tháng năm

Có thể tìm hiểu luận văn tại:

- Thư viện của Học viện Công nghệ Bưu chính Viễn thơng

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>LỜI CẢM ƠN</b>

Lời đầu tiên, em xin chân thành cảm ơn thầy PGS.TS. Dương Tuấn Anh, giảng viên Đại học Bách Khoa TPHCM, thầy đã tận tình hướng dẫn, giúp đỡ em trong suốt quá trình thực hiện luận văn.

Tiếp theo, em cũng gởi lời cảm ơn và sự tri ân sâu sắc đối với các thầy cô của Học viện Bưu chính Viễn thơng, đặc biệt là các thầy cơ khoa Công Nghệ Thông Tin đã truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tại Học viện.

Trong quá trình làm luận văn, khó tránh khỏi sai sót, rất mong các Thầy, Cô bỏ qua. Em rất mong nhận được ý kiến đóng góp Thầy, Cơ cùng các bạn học để em có cơ hội học thêm được nhiều kinh nghiệm cũng như hoàn thiện thêm kiến thức của bản thân.

Em xin chân thành cảm ơn!

NGUYỄN BÁ PHAN TÙNG

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>TĨM TẮT LUẬN VĂN</b>

Bài tốn dự báo chuỗi thời gian ngày càng nhận được nhiều sự quan tâm của cộng đồng khoa học. Nhiều phương pháp, mơ hình dự đoán đã được đề xuất và hiện thực. Trong đó, mạng neuron nhân tạo nhờ vào khả năng xấp xỉ hàm phi tuyến nên được áp dụng nhiều trong việc dự báo dữ liệu chuỗi thời gian. Tuy nhiên, nhiều nghiên cứu cho thấy đối với chuỗi dữ liệu có tính mùa và tính xu hướng thì chất lượng dự báo của mạng neuron nhân tạo không được cao.

Trong luận văn này, tôi xây dựng và hiện thực hai mơ hình cải tiến cho mạng neuron nhân tạo. Mơ hình thứ nhất dựa trên ý tưởng khử thành phần mùa và xu hướng ra khỏi chuỗi dữ liệu và tiến hành huấn luyện mạng neuron trên chuỗi dữ liệu mới. Trong giai đoạn dự báo, kết quả do mạng neuron sinh ra sẽ được thêm vào thành phần mùa và xu hướng để tạo ra kết quả dự báo sau cùng. Mơ hình thứ hai tận dụng khả năng xấp xỉ tốt thành phần mùa và xu hướng của kĩ thuật làm trơn lũy thừa và khả năng xấp xỉ hàm phi tuyến của mạng neuron nhân tạo để tạo ra mơ hình lai có khả năng tạo ra kết quả dự đốn tốt hơn.

Trong q trình thực nghiệm dự đốn với dự liệu thực tế có tính mùa và tính xu hướng, hai mơ hình này cho kết quả dự đoán tốt hơn nhiều so với mơ hình mạng neuron nhân tạo thuần túy.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Chương 1: CƠ SỞ LÝ LUẬN...1

1.1. Khái niệm dữ liệu chuỗi thời gian (Time Series data)...1

1.2. Các thành phần của chuỗi thời gian...1

1.3. Đánh giá các phương pháp dự báo...3

1.4. Các phương pháp làm trơn dữ liệu chuỗi thời gian...4

Chương 2: MƠ HÌNH DỰ BÁO CỦA MẠNG NƠ-RON NHÂN TẠO VÀ HOLT-WINTERS

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>DANH MỤC HÌNH ẢNH</b>

Hình 1.1: Ví dụ về Time-series (a) chỉ số chứng khốn. (b) điện tâm đồ...1

Hình 1.2: Hình biểu diễn Tính xu hướng của chuỗi thời gian...2

Hình 1.3: Hình biểu diễn Tính mùa của chuỗi thời gian...2

Hình 1.4: Hình biểu diễn Tính chu kỳ của chuỗi thời gian...3

Hình 2.1: Cấu tạo một nơ-ron sinh học...8

Hình 2.2: Mơ hình sinh học của nơ-ron...9

Hình 2.3: Minh họa đầu vào và đầu ra ứng với một đơn vị nơ-ron nhân tạo...9

Hình 2.4: Mạng nơ-ron truyền thẳng...10

Hình 2.5: Mạng nơ-ron hồi quy...11

Hình 2.6: Mơ hình học có giám sát...12

Hình 2.7: Mơ hình mạng nơ-ron nhân tạo...13

Hình 2.8: Sử dụng phương pháp walk-forward chia tập dữ liệu...14

Hình 2.9: Mơ hình ANN dự kiến...15

Hình 2.10: Lưu đồ huấn luyện mạng nơ-ron...18

Hình 2.11: Kết quả dự đốn của mạng nơ-ron nhân tạo sinh ra...19

Hình 2.12: (a) Dữ liệu chuỗi thời gian gốc. (b) Dữ liệu chuỗi thời gian sau khi khử tính xu hướng tuyến tính. (c) Dữ liệu chuỗi thời gian sau khi khử tính xu hướng bằng lấy hiệu...22

Hình 2.13: (a) Dữ liệu chuỗi thời gian gốc. (b) Dữ liệu chuỗi thời gian sau khi tính khử mùa bằng RTMA. (c) Dữ liệu chuỗi thời gian sau khi khử tính mùa bằng lấy hiệu...23

Hình 2.14: Mơ hình mạng nơ-ron nhân tạo kết hợp với khử tính mùa và khử tính xu hướng24 Hình 2.15: Định dạng của file dữ liệu...25

Hình 2.16: Đồ thị của chuỗi thời gian được biểu diễn bởi Module đọc và biễu diễn dữ liệu.25 Hình 2.17: Hàm tự tương quan của chuỗi thời gian được biểu diễn bởi Module đọc và biễu diễn dữ liệu...26

Hình 2.18: Hình biểu diễn dự báo doanh số với  = 0.1...30

Hình 2.19: Hình biểu diễn dự báo doanh số với  = 0.6...31

<i>Hình 2.20: Hình biểu diễn chuỗi thời gian thích hợp cho phương pháp Winters Nhân...33</i>

<i>Hình 2.21: Hình biểu diễn chuỗi thời gian thích hợp cho phương pháp Winters Cộng...35</i>

Hình 3.1: Mơ hình Lai (Hybrid)...38

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>MỞ ĐẦU </b>

<b>Chương 1: CƠ SỞ LÝ LUẬN</b>

Trong chương này, tôi sẽ lần lượt giới thiệu các khái niệm cũng như các phương pháp nghiên cứu khi tiến hành phân tích dữ liệu chuỗi thời gian để người đọc có thể nắm bắt các kiến thức cơ bản trước khi đi sâu vào xem xét các mơ hình dự báo dữ liệu chuỗi thời gian cụ thể là ANN và Holt-Winters.

<b>1.1.Khái niệm dữ liệu chuỗi thời gian (Time Series data)</b>

Dữ liệu có yếu tố thời gian là sự quan sát tuần tự theo thời gian. Dữ liệu này có thể là 2 chiều hay nhiều chiều nhưng phải có 1 chiều là thời gian. Có rất nhiều loại dữ liệu khác nhau có yếu tố thời gian và thông thường đây là những dữ liệu rất lớn (very large database). Theo khảo sát từ 4000 hình ngẫu nhiên trên các tờ báo xuất bản giai đoạn 1974 – 1989 thì 75% là các hình biểu diễn dữ liệu chuỗi thời gian. Đặt biệt, trong thời đại hiện nay, thông tin là rất quan trọng. Tuy nhiên, dữ liệu thì quá lớn nên cần phải sử dụng cơng cụ máy tính để tìm được những thơng tin từ nguồn dữ liệu đó. Chính vì vậy những nghiên cứu và ứng dụng dữ liệu chuỗi thời gian là những lĩnh vực rất rộng lớn và cần thiết của khoa học máy tính và các ngành khoa học khác.

<b>Hình 1.1.1.1.1: Ví dụ về Time-series (a) chỉ số chứng khoán. (b) điện tâm đồ</b>

<b>1.2.Các thành phần của chuỗi thời gian</b>

Các mẫu hay hành vi của dữ liệu chuỗi thời gian có nhiều thành phần. Theo lý thuyết, bất dữ liệu kỳ chuỗi thời gian nào cũng có thể được phân giải thành các thần phần sau:

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

 <i><b>Tính xu hướng (Trend)</b></i>

Thành phần này giải thích cho sự dịch chuyển dần dần của dữ liệu chuỗi thời gian thành các giá trị tương đối thấp hơn hoặc cao hơn qua một khoảng thời gian dài. Tính xu hướng thường là kết quả của các yếu tố dài hạn như những sự thay đổi về dân số, nhân khẩu học, cơng nghệ và sở thích tiêu dùng.

<b>Hình 1.2.1.1.1: Hình biểu diễn Tính xu hướng của chuỗi thời gian</b>

 <i><b>Tính chu kỳ (Cyclical)</b></i>

Khi phát hiện bất ký bộ mẫu đều đặn nào của chuỗi giá trị ở trên hay ở dưới đường xu hướng mà kéo dài hơn một năm thì có thể gán cho nó là thành phần mang tính chu kỳ. Thơng thường thành phần này là do sự biến động theo chu kỳ nhiều năm trong kinh tế.

<b>Hình 1.2.1.1.2: Hình biểu diễn Tính mùa của chuỗi thời gian</b>

 <i><b>Tính mùa (Seasonal)</b></i>

Thành phần này giải thích cho các mẫu thường xuyên biến đổi trong những khoảng thời gian nhất định, chẳng hạn như một năm. Sự biến đổi không phải lúc

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

nào cũng tương ứng với mùa của năm (như Xn, Hạ, Thu, Đơng), ví dụ các hành vi theo mùa trong Tuần hay trong Ngày.

<b>Hình 1.2.1.1.3: Hình biểu diễn Tính chu kỳ của chuỗi thời gian</b>

 <i><b>Tính bất thường (Irregular)</b></i>

Là thành phần thể hiện sự biến đổi ngẫu nhiên khơng thể đốn được của chuỗi thời gian [5].

Tuy nhiên, sự phân giải này thường không dễ dàng vì các yếu tố này có ảnh hưởng đan xen với nhau.

<b>1.3.Đánh giá các phương pháp dự báo</b>

Có 3 cách đo độ chính xác của các mơ hình là MAPE, MAD và MSD. Đối với tất cả 3 cách đo này, giá trị càng nhỏ thì càng tốt hơn cho mơ hình. Chúng ta sẽ sử dụng các số liệu thống kê để so sánh mức độ phù hợp của các phương pháp khác nhau.

 <i><b>Sai số % tuyệt đối trung bình – MAPE (Mean Absolute Percentage Error) </b></i>

Trung bình của các khoảng chênh lệch tuyệt đối giữa các giá trị thực và giá trị dự báo, được thể hiện như là tỷ lệ của các giá trị thực.  <i><b>y’<small>t</small></b></i>: là giá trị dự báo,

 <i><b>n:</b></i> là số mẫu quan sát được.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

 <i><b>Sai số tuyệt đối trung bình – MAE (Mean Absolute Error) Đo lường sai số </b></i>

dự báo tổng thể cho một mơ hình.  <i><b>y’<small>t</small></b></i>: là giá trị dự báo,

 <i><b>n:</b></i> là số mẫu quan sát được.

 <i><b>Sai số bình phương trung bình – MSE (Mean Squared Error) Trung bình </b></i>

của các khoảng chênh lệch bình phương giữa các giá trị dự báo và giá trị thực.  <i><b>y’<small>t</small></b></i>: là giá trị dự báo

 <i><b>n:</b></i> là số mẫu quan sát được

<b>1.4.Các phương pháp làm trơn dữ liệu chuỗi thời gian</b>

Phương pháp làm trơn dữ liệu chuỗi thời gian được dùng để khử đi các biến động ngắn hạn hoặc đột biến bất thường, nó cũng được dùng để loại bỏ các biến động có tính mùa.

Ghi chú: Các mơ hình này đều phải là tất định (deterministic) nghĩa là các biến của các thành phần trong dữ liệu chuỗi thời gian là xác định chứ không phải là ngẫu nhiên. Các mơ hình này liên quan đến các kỹ thuật ngoại suy (extrapolation).

Có 2 phương pháp thơng dụng nhất để làm trơn dữ liệu chuỗi thời gian:

 <i><b>Phương pháp Trung bình Dịch chuyển Số học</b></i>

<i>(Arithmetic Moving Average)</i>

<i><b>Tính tốn một giá trị trung bình của n mẫu dữ liệu gần đây nhất để dự đoán</b></i>

<i>giá trị dữ liệu chuỗi thời gian cho thời điểm tiếp theo.</i>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Nếu số mẫu dữ liệu lớn thì các dữ liệu trong quá khứ càng cũ thì càng ít quan trọng hơn, nên chúng ta sẽ thêm các trọng số cho các dữ liệu này, bằng cách đánh trọng số càng nhỏ cho các dữ liệu càng cũ, trọng số càng lớn cho các dữ

<i><b>liệu càng gần đây nhất. Gọi là Trung bình dịch chuyển có trọng số (Weighted</b></i>

<i>Moving Average – WMA). Tổng các trọng số phải bằng 1.</i>

 <i>Chúng ta không thể tính tốn được các sai số tiêu chuẩn.</i>

 <i>Chúng ta khơng thể giải thích được các thành phần có tính ngẫu nhiêncủa chuỗi thời gian. Các thành phần có tính ngẫu nhiên này sẽ tạo racác sai số trong dự báo của chúng ta.</i>

 <i><b>Phương pháp làm trơn cấp số mũ</b></i>

<i>(Exponential Smoothing Method)</i>

<i>Có 3 Phương pháp làm trơn cấp số mũ (chương sau tơi sẽ trình bày kỹ hơn về</i>

3 phương pháp này)

 <i>Làm trơn cấp số mũ đơn (Single Exponential Smothing): dùng cho các</i>

<i><b>dữ liệu chuỗi thời gian mà thành phần khơng có tính xu hướng và</b></i>

<i><b>khơng có tính mùa.</b></i>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

 <i>Làm trơn cấp số mũ đôi (Double Exponential Smoothing) – phươngpháp của Holt: dùng cho các dữ liệu chuỗi thời gian mà thành phần có</i>

<i><b>tính xu hướng và khơng có tính mùa.</b></i>

 <i>Làm trơn cấp số mũ Tam (Triple Exponential Smoothing) – Phươngpháp của Holt-Winters: dùng cho các dữ liệu chuỗi thời gian mà thànhphần có tính xu hướng và có tính mùa.</i>

Có nhiều phương pháp dự báo đã được phát triển bởi nhiều nhà nghiên cứu và những người làm kinh doanh. Một số phương pháp phổ biến để dự đoán dữ liệu chuỗi thời gian, chẳng hạn như Phương pháp làm trơn cấp số mũ (xem bài viết [3], [4], [5], [9]), mơ hình ARIMA (xem bài viết [3], [11], [14], [15]) và phương pháp sử dụng ANN (xem bài viết [1], [2], [6], [12], [18], [19], [20], [21]) là thành công trong một số trường hợp thử nghiệm.

Trong các chương tiếp theo, tôi sẽ đề cập đến các mơ hình được nghiên cứu: ANN và Holt-Winters. Dựa trên các kết quả thu được để xây dựng nên mơ hình lai.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>Chương 2:MƠ HÌNH DỰ BÁO CỦA MẠNG NƠ-RON NHÂN TẠO VÀ HOLT-WINTERS</b>

Chương này tôi sẽ trình bày chi tiết về 2 mơ hình dự báo cho dữ liệu chuỗi thời gian là ANN (Artificial Nơ-ron Network) và Holt-Winters. Trong đó:

 <i><b>ANN: là một trong những mơ hình thường được sử dụng nhất, mạng truyền</b></i>

<i>thẳng một lớp ẩn được sử dụng cho dự báo dữ liệu chuỗi thời gian. Mơ hình</i>

được đặc trưng bởi một mạng lưới 3 lớp của các phần tử đơn được kết nối bởi các liên kết mạch hở. Nói chung, mơ hình có thể được huấn luyện bằng các dữ

<i>liệu lịch sử của một dữ liệu chuỗi thời gian để nắm bắt được các đặc tính phituyến của dữ liệu chuỗi thời gian cụ thể. Các tham số của mô hình (trọng số</i>

kết nối và độ lệch nút bias) sẽ được cập nhật lặp đi lặp lại theo một quy trình giảm thiểu các sai số dự đốn.

 <i><b>Phương pháp làm trơn cấp số mũ: cho dữ liệu chuỗi thời gian có tính xu</b></i>

<i>hướng và tính mùa: đây là sự kết hợp và cải tiến giữa 2 phương pháp của 2</i>

nhà nghiên cứu Holt và Winters. Phần này sẽ trình bày sâu hơn và giải thích vì sao bài luận văn này lại chọn mơ hình Holt-Winters.

<b>2.1.Mơ hình Mạng nơ-ron nhân tạo</b>

<i><b>2.1.1 Giới thiệu</b></i>

Bộ não là một tập hợp của khoảng 10 tỷ nơ-ron được nối kết nội tại với nhau. Mỗi nơ-ron là một tế bào sử dụng các phản ứng có cơ chế sinh hóa để nhận, xử lý và truyền dẫn thơng tin. Hình một cho thấy cấu tạo của một nơ-ron sinh học trong bộ não:

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<b>Hình 2.1.1.1.1: Cấu tạo một nơ-ron sinh học</b>

Dendrite là tơ-pơ hình cây được kết nối đến hàng trăm nơ-ron lân cận. Khi một trong số các ron được kích hoạt, một tín hiệu sẽ được nhận bởi một trong các dentrite của nơ-ron lân cận nối tiếp. Tổng gộp tín hiệu đầu vào sau đó sẽ được chuyển đến soma (thể sinh dưỡng) – thân nơ-ron. Soma và hạt nhân (Nucleus) khơng thực hiện vai trị đặc biệt gì trong việc xử lý dữ liệu đến và đi. Chức năng chính của chúng là thực hiện việc duy trì sự sống cho nơ-ron để giữ các chức năng khác của nơ-ron. Chỉ có một phần của thể sinh dưỡng liên quan đến các tín hiệu đó là axon hillock (mơ trục thần kinh). Nếu tổng gộp tín hiệu đầu vào lớn hơn giá trị ngưỡng của axon hillock, thì nơ-ron sẽ được kích hoạt và một tín hiệu đầu ra sẽ được truyền xuống axon (sợi trục thần kinh). Cường độ của tín hiệu đầu ra là một hằng số, cho dù tín hiệu đầu vào có lớn hơn ngưỡng bao nhiêu lần đi nữa. Cường độ tín hiệu đầu ra không bị ảnh hưởng bởi những sự phân chia của axon; nó đến mỗi terminal button (nút đầu cuối) với cùng cường độ tại axon hillock. Mỗi terminal button sẽ được kết nối đến dendrite của các nơ-ron lân cận nối tiếp qua một kẽ hỡ được gọi là một synapse (khớp thần kinh). Từ đây tín hiệu đầu ra của nơ-ron này sẽ trở thành tín hiệu đầu vào của nơ-ron khác.

Mạng nơ-ron nhân tạo là một sự mô phỏng đơn giản mạng nơ-ron sinh học. Cấu trúc của mạng bao gồm các đơn vị tính tốn đơn giản (tượng trưng cho các nơ-ron) được liên kết với nhau bằng các cạnh có trọng số (tượng trưng cho các khớp thần kinh synapse). Khả năng xấp xỉ hàm số của mạng nơ-ron nhân tạo phụ thuộc vào hình dạng và độ mạnh yếu của các liên kết (giá trị của các trọng số).

<b>Hình 2.1.1.1.2: Mơ hình sinh học của nơ-ron</b>

Mạng nơ-ron nhân tạo là một mạng gồm một tập các đơn vị (unit) được kết nối với nhau bằng các cạnh có trọng số (weight). Một đơn vị thực hiện một cơng việc rất đơn giản: nó nhận tín hiệu vào (input) từ các đơn vị phía trước hay một nguồn bên ngồi và sử dụng chúng để tính tín hiệu ra (output). Mỗi đơn vị có thể có nhiều tín hiệu đầu vào nhưng chỉ có một tín hiệu đầu ra duy nhất. Đôi khi các đơn vị cịn có một giá trị gọi là độ lệch (bias) được

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

gộp vào các tín hiệu đầu vào để tính tín hiệu ra. Để đơn giản ký hiệu, độ lệch của một đơn vị được xem như là trọng số nối từ một đơn vị giả có giá trị xuất ln là 1 đến đơn vị đó.

<b>Hình 2.1.1.1.3: Minh họa đầu vào và đầu ra ứng với một đơn vị nơ-ron nhân tạo.</b>

Khi nhận được các tín hiệu đầu vào, một đơn vị sẽ nhân mỗi tín hiệu với trọng số tương ứng rồi lấy tổng các giá trị vừa nhận được. Kết quả sẽ được đưa vào một hàm số gọi là hàm kích hoạt (Activation function) để tính ra tín hiệu đầu ra. Các đơn vị khác nhau có

Các đơn vị liên kết với nhau qua các cạnh có trọng số tạo thành mạng nơ-ron nhân tạo. Tùy theo số lượng các đơn vị và cách thức liên kết của chúng mà tạo thành các mạng nơ-ron khác nhau có khả năng khác nhau. Có hai loại hình dạng mạng nơ-ron nhân tạo cơ bản là Mạng truyền thẳng (Feed-forward ron network) và Mạng hồi quy (Recurrent nơ-ron network):

 <i><b>Mạng truyền thẳng: Mỗi một đơn vị ở lớp đứng trước sẽ kết nối với tất cả các</b></i>

đơn vị ở lớp đứng sau. Tín hiệu chỉ được truyền theo một hướng từ lớp đầu vào,

<i>Input Layer, qua các lớp ẩn, Hidden Layer, (nếu có) và đến lớp đầu ra, OutputLayer. Nghĩa là tín hiệu ra của một đơn vị không được phép truyền cho các đơn vị</i>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

trong cùng lớp hay ở lớp trước. Đây là loại mạng rất phổ biến và được dùng nhiều

<i>trong việc dự báo dữ liệu chuỗi thời gian. Trong luận văn này tôi chỉ sử dụng mơ</i>

hình mạng truyền thẳng.

<b>Hình 2.1.1.1.4: Mạng nơ-ron truyền thẳng</b>

 <i><b>Mạng hồi quy: Khác với mạng truyền thẳng, mạng hồi quy có chứa các liên kết</b></i>

ngược từ một đơn vị đến các đơn vị ở lớp trước nó. Giá trị đầu ra của một đơn vị sẽ được truyền ngược lại cho các đơn vị ở lớp trước để điều chỉnh cấu hình của mạng.

<b>Hình 2.1.1.1.5: Mạng nơ-ron hồi quy</b>

Chức năng của một mạng nơ-ron được quyết định bởi các nhân tố như: hình dạng mạng (số lớp, số đơn vị trên mỗi lớp, cách mà các lớp được liên kết với nhau) và các trọng số của các liên kết bên trong mạng. Đối với mạng truyền thẳng hình dạng của mạng thường là cố định, và các trọng số được quyết định bởi một thuật toán huấn luyện (training algorithm).

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

Tiến trình điều chỉnh các trọng số để mạng “nhận biết” được quan hệ giữa đầu vào và đầu ra mong muốn được gọi là học (learning) hay huấn luyện (training). Rất nhiều thuật tốn huấn luyện đã được phát minh để tìm ra tập trọng số tối ưu làm giải pháp cho các bài tốn. Các thuật tốn đó có thể chia làm hai nhóm chính: Học có giám sát (Supervised learning) và Học khơng có giám sát (Unsupervised Learning)

 <i><b>Học có giám sát: Mạng được huấn luyện bằng cách cung cấp cho nó các cặp mẫu</b></i>

đầu vào và các đầu ra mong muốn (target values). Các cặp này có sẵn trong quá trình thu nhập dữ liệu. Sự khác biệt giữa các đầu ra theo tính tốn trên mạng so với các đầu ra mong muốn được thuật toán sử dụng để thích ứng các trọng số trong mạng. Điều này thường được đưa ra như một bài toán xấp xỉ hàm số - cho

<i><b>dữ liệu huấn luyện bao gồm các cặp mẫu đầu vào x, và một đích ra tương ứng t,mục đích là tìm ra hàm f(x) thoả mãn tất cả các mẫu học đầu vàoĐây là mơ hình</b></i>

<i>học rất phổ biến trong việc áp dụng mạng nơ-ron vào bài toán dự báo dữ liệuchuỗi thời gian. Trong luận văn này tôi hiện thực giải thuật lan truyền quay lui</i>

(Backpropagation) để giải quyết vấn đề.

<b>Hình 2.1.1.1.6: Mơ hình học có giám sát</b>

 <i><b>Học khơng có giám sát: Với cách học khơng có giám sát, khơng có phản hồi từ</b></i>

mơi trường để chỉ ra rằng đầu ra của mạng là đúng. Mạng sẽ phải khám phá các đặc trưng, các điều chỉnh, các mối tương quan, hay các lớp trong dữ liệu đầu vào

<i>một cách tự động. Trong thực tế, đối với phần lớn các biến thể của học không cógiám sát, các đích trùng với đầu vào. Nói một cách khác, học khơng có giám sát</i>

ln thực hiện một công việc tương tự như một mạng tự liên hợp, cô đọng thông tin từ dữ liệu đầu vào

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<i><b>2.1.2 Giải thuật huấn luyện cho ANN</b></i>

Các mạng nơ-ron nhiều lớp ít khi sử dụng các hàm tuyến tính hay hàm phân ngưỡng mà chúng sử dụng các hàm kích hoạt là các hàm khả vi. Một trong những hàm hay dùng nhất là hàm sigma (sigmoid function). Một hàm sigma sẽ tính tổ hợp tuyến tính các giá trị đầu vào và đưa kết quả này vào hàm sigmoid để tính giá trị đầu ra.

Cơng thức tính giá trị đầu ra của đơn vị sigmoid là

<i>y=f ( x )=</i> <sup>1</sup> <i>1+e</i><small>−</small><i><small>x</small></i>

Một thuận lợi khi sử dụng các đơn vị sigmoid là nhờ đạo hàm của hàm sigmoid rất dễ tính (<i>y<sup>'</sup></i>=<i>f<sup>'</sup></i>(<i>x )=f ( x)∗(1−f ( x ))</i>). Điều này làm cho phương pháp giảm độ dốc được dễ dàng.

Một mạng nơ-ron điển hình sẽ có các nơ-ron được sắp xếp theo mơ hình được phân lớp riêng:

(Lớp đầu vào) (một hay nhiều Lớp bị che dấu) (Lớp đầu ra)

Lớp Input không thực sự là các nơ-ron: các đơn vị này đơn giản chỉ là các giá trị cho các biến đầu vào. Mỗi ron của lớp Hidden và lớp Ouput được kết nối đến tất cả các nơ-ron (hay còn gọi là các đơn vị) tnơ-rong lớp trước đó.

<b>Hình 2.1.2.1.1: Mơ hình mạng nơ-ron nhân tạo</b>

Khi mạng được thi hành (được sử dụng), các giá trị biến đầu vào sẽ được đặt vào trong các đơn vị Input, và sau đó các lớp Hidden và Output sẽ thi hành dần dần qua từng lớp. Mỗi nơ-ron trong từng lớp sẽ tự thi hành theo nguyên tắc hoạt động đã được để cập ở

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

phần trên. Khi toàn bộ mạng được thi hành, các giá trị đầu ra của lớp Output sẽ là giá trị đầu ra của tồn bộ mạng.

Có rất nhiều luật để huần luyện cho một mạng nơ-ron, nhưng trong đó có một luật để huấn luyện mạng nơ-ron đó là sử dụng thuật toán lan truyền quay lui – Back-propagate algorithm. Đây cũng là luật được dùng thông dụng nhất hiện nay vì tính đơn giản và hiệu quả. (xem thêm phần PHỤ LỤC)

<i><b>2.1.3 Xây dựng mơ hình</b></i>

Mơ hình mạng nơ-ron cho bài toán dự báo thường gồm nhiều bước, nhưng q trình này thường khơng phải là một q trình liên tiếp các bước, một số bước có thể được lặp lại

<i><b>Bước 1 – Thu thập dữ liệu: Sau khi được thu thập, các dữ liệu phải được kiểm tra để</b></i>

đảm tính hợp lệ, tính nhất quán và tránh các dữ liệu bị thiếu sót. Các dữ liệu bị thiếu sót có thể được bỏ qua hoặc chúng có thể xem như khơng thay đổi so với dữ liệu trước nó, và được tính tốn bằng phương pháp nội suy hoặc trung bình các giá trị lân cận.

<i><b>Bước 2 – Phân chia tập dữ liệu: Khi huấn luyện, người ta thường chia tập dữ liệu</b></i>

thành các tập: huấn luyện, kiểm tra và kiểm định (ngoài các mẫu). Tập huấn luyện thường là tập lớn nhất được sử dụng để huấn luyện cho mạng. Tập kiểm tra thường chứa khoảng 10% đến 30% tập dữ liệu huấn luyện, được sử dụng để kiểm tra mức độ tổng quát hóa của mạng sau khi huấn luyện. Kích thước của tập kiểm định cần được cân bằng giữa việc cần có đủ số mẫu để có thể kiểm tra mạng đã được huấn luyện và việc cần có đủ các mẫu còn lại cho cả pha huấn luyện và kiểm tra. Tập kiểm định nên bao gồm các giá trị liên tục mới nhất.

Một phương pháp chặt chẽ dùng để đánh giá mạng nơ-ron nhân tạo là walk-forward. Phương pháp walk-forward chia tập dữ liệu thành một chuỗi các tập dữ liệu nhỏ hơn huấn luyện-kiểm tra-kiểm định gối chồng lên nhau được minh họa như Hình 12.

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>Hình 2.1.3.1.1: Sử dụng phương pháp walk-forward chia tập dữ liệu</b>

<i><b>Bước 3 – Xây dựng cấu trúc mạng: Việc dùng ANN cho dự báo dữ liệu chuỗi thời</b></i>

gian có nghĩa là các nút đầu vào sẽ được kết nối với một số các giá trị quan sát trong quá khứ, mà phải đủ để xác định sự tiến triển tại các bước thời gian ở tương lai. Về số lượng nút đầu vào được kết nối, vẫn chưa có lý thuyết nào nói là cần phải dùng bao nhiêu nút. Nhng trong bi vit [10], Hamzaỗebi khuyn cỏo rng s nút đầu vào nên bằng khoảng thời gian theo mùa <i>s</i> để dự báo tốt hơn, ví dụ 12 cho chuỗi thời gian theo tháng và 4 cho chuổi thời gian theo quý.

Đối với số lượng nút đầu ra, ANN nên có một nút đầu ra trong trường hợp dự báo một bước và <i>k</i> nút đầu ra trong trường hợp <i>k</i> bước trước dự đoán, mà việc dự báo này dùng phương pháp đa bước trực tiếp. Số nút ẩn trong Lớp ẩn duy nhất có thể được xác định bới kinh nghiệm thiết kế.

<b>Hình 2.1.3.1.2: Mơ hình ANN dự kiến</b>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

Nhiều mơ hình mạng nơ-ron tầng vào-tầng ẩn-tầng ra đã được sử dụng hiệu quả trong bài toán dự báo chuỗi thời gian như: 8-8-1, 6-6-1, 5-5-1 [12]. Tuy nhiên, trong hiện thực của luận văn này, tơi sử dụng mơ hình mạng ứng với chu kì của chuỗi dữ liệu có tính mùa. Nghĩa là số nút ẩn sẽ bằng số nút đầu vào và bằng chu kì của chuỗi dữ liệu: 12-12-1.

Để dự đoán dữ liệu chuỗi thời gian, mối quan hệ giữa đầu ra (<i>y<sub>t</sub></i>) và đầu vào (<i>y<sub>t −1</sub></i>,

<i>y<sub>t −2</sub></i>, …, <i>y<sub>t −p</sub></i>) sẽ có cơng thức tốn học như sau:

Trong thực tế, mơ hình ANN của (1) sẽ thực hiện một việc ánh xạ chức năng phi tuyến từ quan sát quá khứ (<i>y<sub>t −1</sub></i>

<i><b>, </b></i>

<i>y<sub>t −2</sub></i>

<i><b>, …, </b></i>

<i>y<sub>t −p</sub></i>

) đến giá trị

<i>y<sub>t</sub></i>

tương lai.

<i>y<sub>t</sub></i>=<i>φ</i>

<sub>(</sub>

<i>y<sub>t −1</sub>, y<sub>t−2</sub>, … , y<sub>t− p</sub>, w</i>

<sub>)</sub>

+<i>δ<sub>t</sub></i>(2)

 <i>w</i>: là một vectơ của tất cả các tham số,

 <i>φ</i>: là một hàm chức năng được xác định bởi cấu trúc mạng và các trọng số kết nối,

 <i>δ<sub>t</sub><b>: là sai số dự đoán tại thời điểm t.</b></i>

<i><b>Bước 4 – Xác định tiêu chuẩn đánh giá: Để đánh giá khả năng xấp xỉ thời gian của</b></i>

một mạng nơ-ron, người ta thường dùng hàm Tổng bình phương lỗi (sum of squared errors) sau:

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

<i><small>k =1n</small></i>

Ở đây <i>n</i> là số điểm trong tập dữ liệu dùng để kiểm tra mạng, <i>t<sub>k</sub></i> và <i>o<sub>k</sub></i> lần lượt là giá trị mong muốn trong bộ dữ liệu và giá trị xuất của mạng nơ-ron. Mạng nơ-ron có tổng bình phương lỗi càng nhỏ càng tốt. Ngồi ra người ta còn dùng các hàm khác là hàm độ lệch tuyệt đối nhỏ nhất (least absolute deviation), hiệu phần trăm (percentage differences).

<i><b>Bước 5 – Huấn luyện mạng: Việc huấn luyên mạng để học các mẫu từ dữ liệu bằng</b></i>

cách lần lượt đưa các mẫu vào cùng với những giá trị mong muốn. Mục tiêu của việc huấn luyện mạng đó là tìm ra tập các trọng số cho ta giá trị nhỏ nhất toàn cục của chỉ số hiệu năng hay hàm lỗi. Một vấn đề quan trọng trong quá trình huấn luyên mạng nơ-ron là xác định điều kiện dừng của q trình huấn luyện. Có ba cách thường dùng để dừng một quá trình huấn luyện.

- Cách thứ nhất: nhấn mạnh vào việc tránh bị rơi vào điểm tối ưu cục bộ, nhà dự báo chỉ dừng q trình học khi khơng có một sự cải thiện đáng kể nào của hàm lỗi. Điểm mà mạng nơ-ron khơng cịn cải thiện được nữa gọi là điểm hội tụ.

- Cách thứ hai: là sử dụng một thông số cố định là số lần lặp tối đa, quá trình huấn luyện sẽ dừng nếu số số lần lặp (epoches) vượt quá thông số này. Mạng nơ-ron sẽ được kiểm tra, nếu kết quả khơng tốt thì q trình học sẽ được tiếp tục lại.

- Cách thứ ba: là ta sử dụng một tập dữ liệu ngoài dữ liệu huấn luyện gọi là tập dữ liệu kiểm định (validation set). Trong quá trình huấn luyện, cứ mỗi lần vector trọng số của mạng nơ-ron thay đổi, tập dữ liệu xác thực này sẽ được đưa vào mạng và tính ra sai số<i>δ</i>. Giải thuật huấn luyện sẽ dừng khi sai số trung bình ´δ nhỏ hơn một ngưỡng <i>θ</i>

mà nhà dự đoán mong muốn. Phương pháp này có khả năng tránh được hiện tượng quá khớp tuy nhiên không phải lúc nào cũng hội tụ do mạng nơ-ron có thể khơng đáp ứng được ngưỡng sai số mong muốn của người dùng.

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

<b>Hình 2.1.3.1.3: Lưu đồ huấn luyện mạng nơ-ron</b>

<i><b>Bước 6 – Dự đoán và cải tiến: Sau khi đã thực hiện các bước trên, ta có được một</b></i>

mơ hình mạng nơ-ron dùng để dự đoán. Các giá trị dự đoán của mạng được lưu lại và so sánh với các giá trị thực tế khi chúng xuất hiện. Sau một thời gian, có thể mơ hình mạng khơng cịn đúng nữa thể hiện qua việc kết quả dự đoán ngày càng xa các giá trị thật, ta cần phải tiến hành cải tiến mạng hoặc học lại và xây dựng mạng mới theo các bước trước.

Mặc dù các mạng nơ-ron có khả năng xấp xỉ tốt các hàm phi tuyến, nhưng chúng không thể lập mơ hình trực tiếp các thay đổi có tinh xu hướng và tính mùa trong dữ liệu chuỗi thời gian. Theo nhà nghiên cứu Zhang và đồng sự, năm 2005, lý do của thất bại này là một thực tế như là các mơ hình thống kê truyền thống; các mạng nơ-ron có thể khơng đồng thời xử lý nhiều thành phần khác nhau bên dưới một dữ liệu chuỗi thời gian.

Tính tốn giá trị đầu ra Tính tốn giá trị sai số

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>Hình 2.1.3.1.4: Kết quả dự đốn của mạng nơ-ron nhân tạo sinh ra</b>

Hình 2.11 ở trên là kết quả dự báo do mạng nơ-ron nhân tạo ba lớp có 12 đơn vị đầu vào, 12 đơn vị tầng ẩn và 1 đơn vị đầu ra. Ta thấy rõ ràng độ chính xác dự báo của mạng nơ-ron sinh ra khơng chính xác, do đó cần có sự cải tiến mạng nơ-ron nhân tạo để tăng khả năng dự báo cho những dữ liệu chuỗi thời gian có tính xu hướng và tính mùa. Trong luận văn này tơi sử dụng hai mơ hình là mạng nơ-ron nhân tạo kết hợp với khử mùa và làm trơn lũy thừa kết hợp với mạng nơ-ron nhân tạo.

<i><b>2.1.4 Khử tính mùa, khử tính xu hướng cho mạng ANN</b></i>

Mạng nơ-ron nhân tạo thuần khơng có khả năng đưa ra dự báo tốt cho dữ liệu chuỗi thời gian có tính xu hướng và tính mùa. Để cải thiện điều này, ta có thể tìm cách loại bỏ thành phần mùa và xu hướng trong dữ liệu rồi thực hiện huấn luyện và dự báo đối với chuỗi dữ liệu mới sau khi loại bỏ hai thành phần trên. Trong phần này, tôi sẽ giới thiệu về kỹ thuật để khử tính mùa, tính xu hướng ra khỏi dữ liệu chuỗi thời gian và một mơ hình kết hợp mạng nơ-ron nhân tạo với kỹ thuật này.

2.1.4.1. Kỹ thuật khử tính xu hướng cho dữ liệu chuỗi thời gian

Các dữ liệu chuỗi thời gian trong thực tế thường có thành phần xu hướng, thành phần này thể hiện sự tăng hay giảm giá trị của dữ liệu chuỗi thời gian trong một thời đoạn dài hạn. Có nhiều kỹ thuật để khử đi tính xu hướng này của dữ liệu chuỗi thời gian, trong đó có

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

hai kỹ thuật thường được sử dụng do tính đơn giản và hiệu quả của chúng là khử tính xu hướng bằng lấy hiệu (differencing) và khử tính xu hướng tuyến tính (linear detrend).

<b>a) Khử tính xu hướng tuyến tính</b>

Trong kỹ thuật khử xu hướng tuyến tính, ta xấp xỉ chuỗi thời gian bằng một đườnng thẳng hồi quy <i>at +b</i> với <i>t</i> là biến thời gian. Các hệ số <i>a</i> và <i>b</i> được ước lượng dựa trên việc tối thiểu hàm sai số sau:

<i>E (a , b )=</i>

<i><small>t=1n</small></i>

(<i>Y<sub>t</sub></i>−(<i>at +b))</i><small>2</small>

 <i>n</i>: là số giá trị quan sát được của dữ liệu chuỗi thời gian

 <i>Y<sub>t</sub></i>: là giá trị chuỗi thời gian tại thời điểm <i>t</i>

Trong giải tính tốn học, người ta đã chứng minh được rằng để hàm số <i>E(a , b)</i> đạt giá trị cực tiểu thì <i>a</i> và <i>b</i> phải là nghiệm của hệ sau:

Sau khi đã có đường thẳng <i>at +b</i>, ta khử xu hướng bằng cách ứng với mỗi <i>t</i>, lấy <i>Y<sub>t</sub></i> trừ đi <i>at +b</i>. Khi đó ta sẽ được chuỗi mới là chuỗi <i>Y '<sub>t</sub></i> là chuỗi thời gian đã khử xu hướng. Để phục hồi một chuỗi đã khử xu hướng bằng phương pháp này về chuỗi ban đầu chỉ cần lấy giá trị của nó tại mỗi thời điểm <i>t</i> cộng với <i>at +b</i>.

<b>b) Khử tính xu hướng bằng lấy hiệu</b>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

Một phương pháp khác để khử đi tính xu hướng của chuỗi thời gian là phương pháp lấy hiệu. Với chuỗi thời gian {<i>Y<sub>t</sub></i>} có tính xu hướng, đặt <i>X<sub>t</sub></i>=<i>Y<sub>t +1</sub></i>−<i>Y<sub>t</sub></i> thì chuỗi thời gian {<i>X<sub>t</sub></i>} sinh ra là một chuỗi khơng có tính xu hướng.

Để phục hồi một chuỗi thời gian {<i>X<sub>t</sub></i>} đã được khử tính xu hướng theo cách này về chuỗi ban đầu ta thực hiện <i>Y<sub>t +1</sub></i>=<i>X<sub>t</sub></i>+<i>Y<sub>t</sub></i>. Nếu ta biết được <i>Y</i><sub>1</sub> thì ta sẽ dễ dàng phục hồi lại tồn chuỗi {<i>Y<sub>t</sub></i>}. Hình 2.12 là đồ thị minh họa cho dữ liệu chuỗi thời gian trước và sau khi khử xu hướng bằng phương pháp tuyến tính và lấy hiệu.

<b>Hình 2.1.4.1.1: (a) Dữ liệu chuỗi thời gian gốc. (b) Dữ liệu chuỗi thời gian sau khi khử tính xuhướng tuyến tính. (c) Dữ liệu chuỗi thời gian sau khi khử tính xu hướng bằng lấy hiệu</b>

2.1.4.2. Kỹ thuật khử tính mùa cho dữ liệu chuỗi thời gian

Trong thực tế có rất nhiều chuỗi thời gian có tính mùa ví dụ như hàng năm doanh số bán hàng của một cửa hàng thực phẩm tăng cao trong các tháng 11, 12. Mạng nơ-ron khơng có khả năng dự đốn tốt cho chuỗi thời gian có tính mùa nên cần phải khử mùa cho chuỗi

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

thời gian trước khi sử dụng mạng nơ-ron để dự báo. Có nhiều phương pháp khử mùa cho chuỗi thời gian, ở đây tôi chọn hai phương pháp là lấy hiệu theo mùa (seasonal differencing) và RTMA (ratio to moving average) do tính hiệu quả và đơn giản cho việc phục hồi lại chuỗi ban đầu từ chuỗi đã khử mùa.

<b>a) Khử tính mùa bằng lấy hiệu</b>

Kỹ thuật này được sử dụng trong phương pháp luận Box-Jenkins. Kỹ thuật này thực hiện việc biến đổi chuỗi thời gian {<i>Y<sub>t</sub></i>} thành chuỗi {<i>X<sub>t</sub></i>} như sau <i>X<sub>t</sub></i>=<i>Y<sub>t −s</sub></i>−<i>Y<sub>t</sub></i>, với <i>s</i> là độ lớn một chu kỳ của chuỗi thời gian. Nếu chuỗi thời gian được quan sát theo đơn vị là tháng thì

<i>s=12</i>, nếu chuỗi quan sát theo q thì <i>s=4</i>.

<b>b) Khử tính mùa bằng RTMA</b>

Ý tưởng của giải thuật này là ta sẽ ước lượng chỉ số mùa (seasonal index) của các thời đoạn trong một chu kỳ của chuỗi thời gian, nghĩa là nếu chuỗi thời gian có tính mùa theo năm và giá trị được quan sát theo tháng thì ta sẽ tính chỉ số mùa cho từng tháng, nếu giá trị được quan sát theo quý thì ta sẽ tính chỉ số mùa cho từng quý. Để tính chỉ số mùa ta cần phải ước lượng và loại bỏ thành phần xu hướng và thành phần mùa của chuỗi thời gian bằng phương pháp trung bình di động trung tâm (centered moving average).

Giả sử ta có một chuỗi thời gian quan sát theo tháng thì chỉ số mùa theo tháng sẽ được tính như sau: Bắt đầu từ tháng 7 của năm đầu tiên ta tính tổng di động 12 tháng cho từng tháng. Với mỗi giá trị trong chuỗi tổng di động vừa tính ta cộng nó với giá trị kề sau và chia cho 24 để được chuỗi các giá trị trung bình di động trung tâm cho các thời đoạn. Chia giá trị của các thời đoạn trong chuỗi thời gian với giá trị trung bình di động trung tâm tương ứng ta được một chuỗi các giá trị ước lượng chỉ số mùa cho các tháng. Vì ứng với mỗi tháng có nhiều giá trị ước lượng như vậy nên giá trị trung vị của các giá trị ước lượng sẽ là chỉ số tạm thời mùa cho tháng. Lấy mỗi chỉ số mùa tạm thời này nhân với 12 và chia cho tổng chỉ số mùa tạm thời của 12 tháng ta sẽ có các chỉ số mùa thật sự của 12 tháng trong năm.

Để khử tính mùa trong chuỗi thời gian ta chỉ việc lấy giá trị của mỗi thời đoạn chia cho chỉ số mùa tương ứng của nó. Hình 2.13 là đồ thị minh họa cho dữ liệu chuỗi thời gian trước và sau khi khử mùa.

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

(a) (b)

<b>Hình 2.1.4.2.1: (a) Dữ liệu chuỗi thời gian gốc. (b) Dữ liệu chuỗi thời gian sau khi tính khửmùa bằng RTMA. (c) Dữ liệu chuỗi thời gian sau khi khử tính mùa bằng lấy hiệu.</b>

2.1.4.3. Hiện thực

<b>Ý tưởng</b>

Mơ hình mạng nơ-ron nhân tạo kết hợp với khử tính mùa và khử tính xu hướng được xây dựng dựa theo ý tưởng thay vì cho mạng nơ-ron học trực tiếp trên bộ dữ liệu có tính mùa và tính xu hướng, ta sẽ tiến hành khử tính mùa và khử tính xu hướng trước, sau đó mạng nơ-ron sẽ học trên tập dữ liệu mới này. Trong bước dự báo, các giá trị dự báo do mạng nơ-ron sinh ra sẽ được thêm vào tính mùa và tính xu hướng đã khử trước đó để cho ra kết quả dự báo sau cùng.

Tơi hiện thực mơ hình trên bằng ngơn ngữ lập trình C#, trên nền .NET framework 4.0 với bộ hỗ trợ lập trình Visual C# 2010. Chương trình gồm có các module chính được minh họa tại Hình 2.14.

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

<b>Hình 2.1.4.3.1: Mơ hình mạng nơ-ron nhân tạo kết hợp với khử tính mùa và khử tính xuhướng</b>

<b>Module đọc và biểu diễn dữ liệu: Module này thực hiện đọc dữ liệu từ file với định</b>

dạng như hình dưới và biễu diễn dữ liệu cho người dùng bằng đồ thị trực quan. Module này cịn có chức năng tính và biểu diễn hàm tự tương quan của dữ liệu chuỗi thời gian bằng đồ thị để hỗ trợ người dùng xác định các thành phần trong dữ liệu chuỗi thời gian. File chứa dữ liệu có định dạng gồm một hoặc nhiều cột các số, nếu file có nhiều cột số thì các số ở các cột khác nhau trong cùng một hàng phân cách nhau bởi dấu “,” hoặc ký tự trống. Các Hình 2.15, 2.16, 2.17 lần lượt minh họa định dạng file dữ liệu, việc vẽ đồ thị và đồ thị tự tương quan đối với một chuỗi dữ liệu.

<b>Hình 2.1.4.3.2: Định dạng của file dữ liệu.</b>

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<b>Hình 2.1.4.3.3: Đồ thị của chuỗi thời gian được biểu diễn bởi Module đọc và biễu diễn dữ liệu.</b>

<b>Hình 2.1.4.3.4: Hàm tự tương quan của chuỗi thời gian được biểu diễn bởi Module đọc vàbiễu diễn dữ liệu.</b>

<b>Module khử mùa và khử xu hướng: Module này có nhiệm vụ khử tính mùa và tính</b>

xu hướng khỏi một dữ liệu chuỗi thời gian để đưa vào mạng nơ-ron, đồng thời thêm thành phần mùa và xu hướng vào chuỗi dự báo của mạng nơ-ron để đưa ra giá trị dự báo sau cùng. Tôi hiện thực hết 4 giải thuật khử mùa và khử xu hướng đã nêu ở trên trong module này và cho phép người dùng chọn phương pháp phù hợp với dữ liệu của mình.

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<b>Module mạng nơ-ron: là module thực hiện chức năng của mạng nơ-ron trong mơ</b>

hình là học và sinh ra dự báo. Mơ hình mạng được hiện thực là mơ hình mạng truyền thẳng gồm ba lớp với một đơn vị đầu ra. Số lượng đơn vị ở tầng xuất và tầng ẩn do người dùng tùy chọn. Các giá trị đầu vào của mạng là các giá trị chuỗi thời gian ở các thời đoạn trước. Hàm kích hoạt được sử dụng ở tầng ẩn và tầng xuất là hàm Sigmoid, hàm kích hoạt ở tầng nhập là hàm đồng nhất. Ở đây tôi hiện thực giải thuật huấn luyên mạng là lan truyền ngược. Điều kiện dừng của quá trình học được xác định bởi hai thông số: số epoch tối đa và độ lệch sai số tối thiểu giữa hai epoch. Số epoch tối đa là một số do người dùng chọn, khi số epoch của quá trình học lớn hơn số epoch tối đa thì chương trình sẽ dừng. Độ lệch sai số tối thiểu là một số nhỏ do người dùng chọn, khi độ chênh lệch của hàm sai số trong hai epoch học kế tiếp nhỏ hơn giá trị này thì điều đó có nghĩa là việc học tiếp không cải thiện được hàm sai số một cách đáng kể, quá trình học sẽ dừng. Việc chọn điều kiện dừng như thế sẽ giúp người dùng chủ động trong việc kiểm sốt q trình học và tránh hiện tượng quá khớp. Ban đầu người dùng nên chọn số epoch tối đa nhỏ và độ lệch sai số tối thiểu lớn để q trình học dừng sau một số ít epoch. Mạng vừa học xong sẽ được kiểm tra, nếu sai số dự báo quá lớn thì người dùng tăng số epoch tối đa và giảm độ lệch sai số tối thiểu rồi học tiếp.

<b>Module scaling: Module này biến đổi dữ liệu đầu vào về một giá trị trong khoảng (0,</b>

1) và chuyển giá trị xuất của mạng nơ-ron (một giá trị nằm trong khoảng (0, 1)) về giá trị thực. Module này được hiện thực theo hai công thức sau:

<i>scaleValue = (value - minValue) / (maxValue - minValue) * (0.9999 - (0.0001)) + (0.0001)(4.3)</i>

<i>value = (Scalevalue – 0.0001) / (0.9999 – 0.0001) * (maxValue - minValue) + minValue (4.4)</i>

Trong đó: scaleValue là giá trị biến đổi nằm trong khoảng (0,1), value là giá trị nằm trong khoảng xác định (minValue, maxValue). Các thông số minValue và maxValue là cận dưới và cận trên của các giá trị trong chuỗi thời gian. Hai thông số này được chọn bởi người dùng tùy theo từng chuỗi thời gian.

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

<b>2.2.Mơ hình Holt-Winters</b>

<i><b>2.2.1 Các thành phần có tính xu hướng và tính mùa</b></i>

<i><b>Tính xu hướng trong một chuỗi thời gian là sự thay đổi dài hạn ở mức độ dữ liệu.</b></i>

Nếu, qua khoảng thời gian dài, chuỗi di chuyển hướng lên trên, chúng ta nói rằng dữ liệu cho thấy một xu hướng tích cực. Nếu mức độ dữ liệu giảm theo thời gian, đó là một xu hướng tiêu cực. Các thành phần mang tính theo xu hướng trong chuỗi thời gian rõ ràng là vi phạm điều kiện của sự cố định.

<i><b>Tính mùa được định nghĩa là xu hướng của dữ liệu trong chuỗi thời gian để thể hiện</b></i>

hành vi lặp đi lặp lại mỗi khoảng thời gian s. Giới hạn của mùa được dùng để đại diện cho khoảng thời gian trước khi hành vi bắt đầu lặp đi lặp lại. Do đó, <i>s</i> là độ dài mùa trong các khoảng thời gian.

<i><b>2.2.2 Mơ hình Holt-Winters</b></i>

Như được nhắc trong phần 1.4., làm trơn cấp số mũ là một phân lớp của các mơ hình tuyến tính, mà có thể nắm bắt các đặc trưng tuyến tính của chuỗi thời gian. Trong ứng dụng của mơ hình làm trơn cấp số mũ, có 3 loại mơ hình được dùng rộng rãi trong các chuỗi thời gian khác nhau đó là:

<b>2.2.2.1. Mơ hình 1: Phương pháp Làm trơn cấp số mũ đơn (Single</b>

Exponential Smoothing):

Đây là dạng đơn giản nhất của việc làm trơn cấp số mũ và có thể chỉ được dùng cho dữ liệu của chuỗi thời gian khơng có các thành phần mang tính xu hướng hay tính mùa triệt để. Với một chuỗi thời gian biết trước, một cách tiếp cận hợp lý đó là cấp một trọng số trung bình cho các giá trị trong quá khứ. Vì vậy, một chuỗi <i>y</i><sub>1</sub><i><b>, </b>y</i><sub>2</sub><i><b>, …, </b>y<sub>n</sub></i>, ước tính giá trị của

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

Trong đó, <i>w<sub>i</sub></i> là các trọng số được cấp cho các giá trị trong quá khứ của chuỗi mà tổng của chúng bằng 1 (

<i>w<sub>i</sub></i>=1) do đó các mẫu quan sát càng gần đây nhất thì càng liên quan nhiều nhất. Điều hợp lý là chúng sẽ được cho trọng số nhiều hơn so với các mẫu trong quá khứ. Điều này có được bằng cách cấp phát các trọng số suy giảm dần theo biểu đồ hình học theo chuỗi thời gian. Chúng suy giảm theo một hệ số hằng (constant ratio) theo cơng

Có thể thấy rằng các trọng số dựa trên mơ hình này sẽ có tổng <i>≈ 1</i> cho tất cả giá trị <i>α</i>. Cơng thức tính cho dự báo <i>Y</i>^<i><sub>n +1∨n</sub></i> sẽ như sau:

Trong đó, <i>Y</i>^<i><sub>n∨n−1</sub></i> đơn giản là một dự báo trước đó.

Cơng thức này sẽ định nghĩa cho việc làm trơn cấp số mũ và cực kỳ có ích cho chúng ta khi cập nhật cho các dự báo chỉ bằng cách dùng hai quan sát: quan sát gần nhất và quan sát trước đó. Nó cũng có thể được viết lại dưới dạng sai số như sau:

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

<i>Y<sub>n +1∨n</sub></i>=<i>α ε<sub>n</sub></i>+ ^<i>Y<sub>n∨n−1</sub></i>

Trong đó <i>ε<sub>n</sub></i>=<i>Y<sub>n</sub></i>− ^<i>Y<sub>n∨n−1</sub></i> và là một bước cho biết sai số dự báo.

Vấn đề cuối cùng đó là liên quan đến giá trị của hằng số làm trơn <i>α</i>. Điều này sẽ phụ thuộc vào các đặc tính của chuỗi thời gian cụ thể, đặc biệt là các bất thường của dữ liệu. Một giá trị cao của <i>α</i> sẽ dẫn đến phần lớn các trọng số được đặt lên các mẫu dữ liệu gần đây nhất trong khi một giá trị thấp của <i>α</i> sẽ mang ý nghĩa là các mẫu dữ liệu xa hơn trong q khứ thì sẽ có tầm quan trọng hơn. Hay nói một cách khác là khi <i>α</i> tiến gần 1, dự báo mới sẽ bao gồm một sự điều chỉnh đáng kể cho bất kỳ sai số nào xảy ra trong dự báo trước đó. Khi

<i>α</i> tiến gần 0, dự báo mới rất giống với dự báo cũ. Hằng số làm trơn thường đặt giữa 0.5 – 1.0, mặc dù có thể ước tính <i>α</i> bằng cách giảm thiểu tổng của các sai số dự báo bình phương.

<small>Sales data Single Exponential Smoothing .1</small>

<b>Hình 2.2.2.1.1: Hình biểu diễn dự báo doanh số với  = 0.1</b>

<small>Sales data Single Exponential Smoothing .6</small>

<i><b>Hình 2.2.2.1.2: Hình biểu diễn dự báo doanh số với  = 0.6</b></i>

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

Điều này có thể thực hiện bằng cách tính

<i>ε<sub>t</sub></i><small>2</small> cho các giá trị <i>α</i> nằm giữa 0 và 1 (với các bước nhảy 0,1), trong đó <i>ε<sub>t</sub></i> là một bước nhảy dẫn đến sai số dự báo như được phát biểu ở trên. Bằng cách thực thiện điều này có thể đạt được (đến bước thứ 10 gần nhất) giá trị của

<i>α</i> mà sẽ làm giảm thiểu tổng của các sai số bình phương. Các bước nhảy 0,01 có thể được thực hiện xoay quanh giá trị này để giảm thiểu tổng của các bình phương hơn nữa. Độ chính xác vào thời điểm này không phải là đặc biệt quan trọng khi hàm tổng của các bình phương có xu hướng là khá ngang bằng gần với mức tối thiểu.

<b>Giá trị khởi tạo:</b>

Giá trị khởi tạo cho <i>y</i><sub>0</sub> có vai trị quan trọng trong việc tính tốn tất cả các giá trị tiếp sau đó. Việc gán nó bằng <i>y</i><sub>1</sub> là một cách khởi tạo. Một khả năng khác là tính trung bình của bốn hay năm quan sát đầu tiên.

2.2.2.2. Mơ hình 2: Phương pháp Làm trơn cấp số mũ đôi (Doube Exponential Smoothing) – Phương pháp Holt

Khi một xu hướng trong chuỗi thời gian được biết trước, phương pháp Holt trong các phương pháp làm trơn cấp số mũ có thể được dùng. Phương pháp này yêu cầu một ước tính độ dốc (slope) hiện tại và cũng cần một ước tính của mức độ (level) hiện tại, do đó nó dùng hai hằng số làm trơn cho mỗi thành phần trên. Các hằng số làm trơn cung cấp cho các ước tính về mức độ và độ dốc, thích ứng theo thời gian khi những quan sát mới trở nên sẵn sàng. Cho một chuỗi <i>y</i><sub>1</sub><i><b>, </b>y</i><sub>2</sub><i><b>, …, </b>y<sub>n</sub></i>, là các hàm dự báo, trong đó cung cấp một ước tính cho chuỗi với <i>p</i> kỳ dự báo, sẽ đơn giản được viết như sau:

Trong đó, <i>L<sub>t</sub></i> là thành phần của ước tính mức độ (level) hiện tại và <i>T<sub>t</sub></i> là thành phần của ước tính xu hướng (độ dốc – slope). Do đó, với một kỳ dự báo sẽ đơn giản được cho như sau:

<i>Y<sub>t + p∨n</sub></i>=<i>L<sub>t</sub></i>+<i>T<sub>t</sub></i>

Vì vậy, giờ đây sẽ có hai tham số cho phương pháp làm trơn cấp số mũ, hay hai hằng số làm trơn riêng biệt là <i>α</i> cho ước tính mức độ hiện tại và <i>β</i> cho ước tính xu hướng (độ dốc

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

– slope) hiện tại. Như trong phương pháp làm trơn cấp số mũ đơn, ước lượng được cập nhật của mức độ <i>L<sub>t</sub></i> là một kết hợp tuyến tính của <i>Y</i>^<i><sub>t ∨t−1</sub></i> và <i>Y<sub>t</sub></i>:

<i>L<sub>t</sub></i>=<i>α y<sub>t</sub></i>+<i>(1−α )</i>

(

<i>L<sub>t −1</sub></i>+<i>T<sub>t −1</sub></i>

<sub>)</sub>

(0<α<1) (5)

Điều này cung cấp ước tính mức độ tại thời điểm <i>t</i>. Khi ước tính mức độ tại thời điểm <i>t−1</i> được biết, thì có thể cập nhật ước tính xu hướng (độ dốc – slope):

Phương pháp này, được gọi là phương pháp Holt, đòi hỏi phải bắt đầu từ giá trị <i>L<sub>t</sub></i> và

<i>T<sub>t</sub></i> được nhập vào, và các ước tính của các giá trị cho <i>α</i> và <i>β</i> sẽ được thực hiện, nhưng chúng cũng có thể được ước tính bằng cách giảm thiểu tổng của các sai số bình phương (sum of squared errors) như trong phương pháp làm trơn theo cấp số mũ đơn.

<b>Giá trị khởi tạo:</b>

Một các khởi tạo đó là <i>L</i><sub>1</sub>=<i>y</i><sub>1</sub> và <i>T</i><sub>1</sub>=0.

Một khả năng khác là tính trung bình của bốn hay năm quan sát đầu tiên của cả <i>L</i><sub>1</sub> và

2.2.2.3. Mơ hình 3: Phương pháp Làm trơn cấp số mũ ba (Triple Exponential Smoothing) – Phương pháp Holt-Winters

Nhà nghiên cứu Winter thấy rằng phương pháp Holt có thể mở rộng cho chuỗi thời gian có cả tính xu hướng và sự biến đổi có tính mùa. Do đó, phương pháp của Winters bổ sung thêm cho phương pháp của Holt, nên có thể gọi chung đây là phương pháp Holt-Winters. Phương pháp Holt-Winters có hai cách tiếp cận, Cộng và Nhân, việc sử dụng loại

</div>

×