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

74 0 0
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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài toá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ự đoán tốt hơn. Trong quá trình thực nghiệm dự đoá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.

Trang 1

-NGUYỄN BÁ PHAN TÙNG

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 HOLT-WINTERS

Chuyên ngành: HỆ THỐNG THÔNG TINMã số: 60.48.01.04

LUẬN VĂN THẠC SĨ KỸ THUẬT

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

PGS TS DƯƠNG TUẤN ANH

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

Trang 2

-NGUYỄN BÁ PHAN TÙNG

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

Trang 3

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

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

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

(Ghi rõ học hàm, học vị)

Phản biện 1:

Phản biện 2:

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

Trang 4

LỜI CẢM ƠN

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

Trang 5

TÓM TẮT LUẬN VĂN

Bài toá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ự đoán tốt hơn

Trong quá trình thực nghiệm dự đoá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.

Trang 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

Trang 7

DANH MỤC HÌNH ẢNH

Hình 1.1: Ví dụ về Time-series (a) chỉ số chứng khoá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ự đoá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

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

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

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

Trang 8

MỞ ĐẦU

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

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.

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

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.

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

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

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:

Trang 9

Tính xu hướng (Trend)

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.

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

Tính chu kỳ (Cyclical)

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

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

Tính mùa (Seasonal)

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

Trang 10

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

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

Tính bất thường (Irregular)

Là thành phần thể hiện sự biến đổi ngẫu nhiên không thể đoá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.

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

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.

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

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  y’t: là giá trị dự báo,

n: là số mẫu quan sát được.

Trang 11

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

dự báo tổng thể cho một mô hình  y’t: là giá trị dự báo,

n: là số mẫu quan sát được.

Sai số bình phương trung bình – MSE (Mean Squared Error) Trung bình

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  y’t: là giá trị dự báo

n: là số mẫu quan sát được

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

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:

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

(Arithmetic Moving Average)

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

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

Trang 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ữ

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

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

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

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.

Phương pháp làm trơn cấp số mũ

(Exponential Smoothing Method)

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ề

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

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

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

không có tính mùa.

Trang 13

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ó

tính xu hướng và không có tính mùa.

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.

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.

Trang 14

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

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 đó:

ANN: là một trong những mô hình thường được sử dụng nhất, mạng truyền

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

đượ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ữ

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ố

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ự đoán.

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

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

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.

2.1.Mô hình Mạng nơ-ron nhân tạo

2.1.1 Giới thiệu

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:

Trang 15

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

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 toá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ố).

Hình 2.1.1.1.2: Mô hình sinh học của nơ-ron

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 ngoà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

Trang 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 luôn là 1 đến đơn vị đó

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.

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

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

đơ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,

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ị

Trang 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

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ô

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

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

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

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.

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

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

Trang 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 toá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 toán Các thuật toá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)

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

đầ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 toá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

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

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

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

Hình 2.1.1.1.6: Mô hình học có giám sát

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ừ

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

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

luôn 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

Trang 19

2.1.2 Giải thuật huấn luyện cho ANN

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à

y=f ( x )= 1 1+ex

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 (y'=f'(x )=f ( x)∗(1−f ( x ))) Đ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 đó.

Hình 2.1.2.1.1: Mô hình mạng nơ-ron nhân tạo

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 ở

Trang 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 toà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)

2.1.3 Xây dựng mô hình

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 quá trình này thường không phải là một quá trình liên tiếp các bước, một số bước có thể được lặp lại

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 để

đả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 toán bằng phương pháp nội suy hoặc trung bình các giá trị lân cận.

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

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.

Trang 21

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

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

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 Nhưng trong bài viết [10], Hamzaçebi khuyến cáo rằng số nút đầu vào nên bằng khoảng thời gian theo mùa s để 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à k nút đầu ra trong trường hợp k 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ế.

Hình 2.1.3.1.2: Mô hình ANN dự kiến

Trang 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 (yt) và đầu vào (yt −1,

yt −2, …, yt −p) sẽ có công thức toá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ứ (yt −1, yt −2, …, yt −p) đến giá trị yt tương lai.

yt=φ(yt −1, yt−2, … , yt− p, w)+δt(2)

w: là một vectơ của tất cả các tham số,

φ: 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,

δt: là sai số dự đoán tại thời điểm t.

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

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:

Trang 23

k =1n

Ở đây n là số điểm trong tập dữ liệu dùng để kiểm tra mạng, tkok 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 Ngoà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).

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

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 quá 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 quá 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ì quá 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ốδ Giải thuật huấn luyện sẽ dừng khi sai số trung bình ´δ nhỏ hơn một ngưỡng θ

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.

Trang 24

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

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

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 toán giá trị đầu ra Tính toán giá trị sai số

Trang 25

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

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.

2.1.4 Khử tính mùa, khử tính xu hướng cho mạng ANN

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ó

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

a) Khử tính xu hướng tuyến tính

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 at +b với t là biến thời gian Các hệ số ab được ước lượng dựa trên việc tối thiểu hàm sai số sau:

E (a , b )=

t=1n

(Yt−(at +b))2

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

Yt: là giá trị chuỗi thời gian tại thời điểm t

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

Sau khi đã có đường thẳng at +b, ta khử xu hướng bằng cách ứng với mỗi t, lấy Yt trừ đi at +b Khi đó ta sẽ được chuỗi mới là chuỗi Y 't 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 t cộng với at +b.

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

Trang 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 {Yt} có tính xu hướng, đặt Xt=Yt +1Yt thì chuỗi thời gian {Xt} 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 {Xt} đã được khử tính xu hướng theo cách này về chuỗi ban đầu ta thực hiện Yt +1=Xt+Yt Nếu ta biết được Y1 thì ta sẽ dễ dàng phục hồi lại toàn chuỗi {Yt} 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.

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

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ự đoá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

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

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

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 {Yt} thành chuỗi {Xt} như sau Xt=Yt −sYt, với s 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ì

s=12, nếu chuỗi quan sát theo quý thì s=4.

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

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

Trang 29

(a) (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.

2.1.4.3 Hiện thực

Ý tưởng

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.

Trang 30

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

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

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.

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

Trang 31

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.

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.

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

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

Trang 32

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

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 soát quá 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 để quá 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.

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

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:

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

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

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.

Trang 33

2.2.Mô hình Holt-Winters

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

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.

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.

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

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 đó, s là độ dài mùa trong các khoảng thời gian.

2.2.2 Mô hình Holt-Winters

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

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

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 y1, y2, …, yn, ước tính giá trị của

Trang 34

Trong đó, wi 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 (∑wi=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 ≈ 1 cho tất cả giá trị α Công thức tính cho dự báo Y^n +1∨n sẽ như sau:

Trong đó, Y^n∨n−1 đơ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:

Trang 35

Yn +1∨n=α εn+ ^Yn∨n−1

Trong đó εn=Yn− ^Yn∨n−1 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ề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 α 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 α sẽ mang ý nghĩa là các mẫu dữ liệu xa hơn trong quá khứ thì sẽ có tầm quan trọng hơn Hay nói một cách khác là khi α 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

α 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 α bằng cách giảm thiểu tổng của các sai số dự báo bình phương.

Sales data Single Exponential Smoothing 1

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

Sales data Single Exponential Smoothing 6

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

Trang 36

Điều này có thể thực hiện bằng cách tính ∑εt2 cho các giá trị α nằm giữa 0 và 1 (với các bước nhảy 0,1), trong đó εt 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

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

Giá trị khởi tạo:

Giá trị khởi tạo cho y0 có vai trò quan trọng trong việc tính toán tất cả các giá trị tiếp sau đó Việc gán nó bằng y1 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 y1, y2, …, yn, là các hàm dự báo, trong đó cung cấp một ước tính cho chuỗi với p kỳ dự báo, sẽ đơn giản được viết như sau:

Trong đó, Lt là thành phần của ước tính mức độ (level) hiện tại và Tt 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:

Yt + p∨n=Lt+Tt

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à α cho ước tính mức độ hiện tại và β cho ước tính xu hướng (độ dốc

Trang 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 độ Lt là một kết hợp tuyến tính của Y^t ∨t−1Yt:

Lt=α yt+(1−α )(Lt −1+Tt −1) (0<α<1) (5)

Điều này cung cấp ước tính mức độ tại thời điểm t Khi ước tính mức độ tại thời điểm t−1 đượ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ị Lt

Tt được nhập vào, và các ước tính của các giá trị cho αβ 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.

Giá trị khởi tạo:

Một các khởi tạo đó là L1=y1 và T1=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ả L1 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

Ngày đăng: 11/04/2024, 09:48

Tài liệu cùng người dùng

Tài liệu liên quan