Dự báo chuỗi thời hạn (Time series forecasting) hiện nay là nghành nghiên cứu rất phổ biến. Dễ dàng tìm thấy các loại dữ liệu chuỗi thời hạn trong y học, dự báo thời tiết, sinh học, cai quản chuỗi cung ứng và dự làm giá cổ phiếu, v.v.
Bạn đang xem: Sử dụng thuật toán LSTM để dự đoán chuỗi thời gian
Với sự dâng lên của dữ liệu cùng mức độ mạnh đo lường trong trong những năm gần đây, học sâu (deep learning) đã trở thành lựa chọn hàng đầu để thi công các quy mô dự báo chuỗi thời gian. Trong lúc các quy mô Học máy truyền thống lịch sử – ví dụ điển hình như quy mô tự hồi quy (AR) hoặc Exponential smoothing (san bằng hàm mũ) thực hiện quá trình đổi khác tập dữ liệu thô ban đầu thành tập những thuộc tính theo cách thủ công và vấn đề tối ưu hóa thông số cũng phải dựa vào chọn lọc các đặc trưng, thì mô hình Học sâu chỉ học những tính năng trực tiếp chỉ còn dữ liệu. Nhờ vào đó, nó góp tăng tốc quá trình chuẩn bị dữ liệu và rất có thể học những mẫu dữ liệu phức tạp hơn một bí quyết đầy đủ. Trong nội dung bài viết dưới đây, Vin
Bigdata sẽ reviews một số giải pháp tiếp cận học tập sâu thông dụng nhất đối với Dự báo chuỗi thời gian.
Khái quát tháo về chuỗi thời gian
Chuỗi thời hạn (time series) gồm một số đặc trưng chính, rất có thể kể đến:
Xu hướng lâu năm hạn: xu thế dài hạn là hướng tổng thể và toàn diện chung của tài liệu thu được khi quăng quật qua bất kỳ tác động ngắn hạn nào như biến động theo mùa hoặc nhiễu.Tính thời vụ: Tính thời vụ nói đến các biến động chu kỳ được tái diễn trong tất cả các khoảng thời gian.Tính ổn định: Tính ổn định định là 1 trong những đặc tính đặc biệt của chuỗi thời gian. Chuỗi thời hạn được đến là cố định nếu cực hiếm trung bình, phương sai và hiệp phương sai của nó không đổi khác đáng nhắc theo thời gian.Nhiễu: hồ hết tập dữ liệu đều phải sở hữu nhiễu, điều đó đề cập đến các dao hễ hoặc trở thành thể tự nhiên do các yếu tố ko thể điều hành và kiểm soát gây nên.Tự tương quan: Đây là mối tương quan giữa chuỗi thời hạn và phiên bạn dạng trễ của thiết yếu nó. Tự tương quan được sử dụng để xác minh tính thời vụ và xu thế trong tài liệu chuỗi thời gian.Dự báo chuỗi thời hạn cùng technology Học máy
Một số quy mô học máy truyền thống lịch sử được sử dụng để tham dự báo chuỗi thời gian bao gồm ARIMA và Exponential smoothing (san bằng hàm mũ). ARIMA là sự kết hợp giữa các phương pháp tiếp cận tự hồi quy (AR) cùng Trung bình rượu cồn (MA) trong việc xây dựng quy mô tổng phù hợp của chuỗi thời gian. Mô hình này khá đơn giản, nhưng rất có thể cho công dụng tốt. Nó bao hàm các tham số để tính mang đến tính thời vụ, xu thế dài hạn, từ hồi quy và trung bình động, từ đó cách xử trí tự đối sánh tương quan được nhúng vào dữ liệu.
Tuy nhiên, điểm yếu của học máy truyền thống lịch sử là:
Các đặc trưng bị thiếu bao gồm thể ảnh hưởng đến hiệu suất của những mô hình;Các mô hình học sản phẩm không thể phân biệt các mẫu phức tạp trong dữ liệu;Học sản phẩm không có công dụng tốt trong dự báo lâu năm hạn.Dự báo chuỗi thời gian bằng công nghệ Học sâu
Việc áp dụng học sâu để tham dự báo chuỗi thời gian đã hạn chế được những giảm bớt của học máy truyền thống lịch sử với nhiều phương pháp tiếp cận khác nhau. Hiện nay nay, Mạng thần gớm hồi quy (RNN) là kiến trúc cổ điển và được sử dụng nhiều nhất cho những bài toán dự đoán chuỗi thời gian. RNN có ưu thế ở chỗ:
Hiệu suất của RNN ko bị ảnh hưởng đáng nói bởi các giá trị bị thiếu.
RNN rất có thể tìm thấy những mẫu phức tạp trong chuỗi thời hạn đầu vào.RNN cho công dụng tốt trong vấn đề dự báo lâu năm hạn, nhiều hơn thế nữa là chỉ một vài bước.RNN rất có thể mô hình hóa chuỗi tài liệu để mang định mối đối sánh giữa các mẫuTuy nhiên, một số trong những hạn chế của RNN là:
Khi được huấn luyện trên chuỗi thời gian dài, RNN thường gặp mặt phải vụ việc biến mất/bùng nổ gradient. Điều đó có nghĩa là các thông số trong các lớp ẩn không đổi khác nhiều hoặc dẫn đến sự không ổn định về số liệu với hành vi. Lý do là chính vì gradient của hàm tác động đến khả năng ghi lưu giữ của nó.RNN có khả năng ghi lưu giữ hạn chế, bởi đó, có thể sẽ vứt qua một vài yếu tố của vượt khứ vào việc dự kiến tương lai.Việc giảng dạy RNN rất tinh vi và tốn nhát về khía cạnh hạ tầng tính toán.Do những nhược điểm này, những phần mở rộng không giống nhau của RNN đã có phong cách thiết kế để bớt bớt bộ nhớ lưu trữ trong, như mạng nơ-ron nhì chiều, LSTM, GRU, qui định chú ý.
Bộ nhớ nhiều năm – thời gian ngắn (LSTM) được cách tân và phát triển dựa bên trên RNN để khắc phục vụ việc gradient biến đổi mất;Gated Recurrent Unit (GRU), tương tự như LSTM, là 1 trong những dạng tiến hóa không giống của RNN. GRU giúp sút thiểu vấn đề gradient đổi thay mất, với vấn đề sử dụng những cổng, điều chỉnh luồng tin tức qua chuỗi trình tự. Việc sử dụng LSTM với GRU cho hiệu quả đáng kể trong những ứng dụng như thừa nhận dạng giọng nói, tổng vừa lòng giọng nói, hiểu ngôn ngữ tự nhiên, v.v.Mô hình bộ mã hóa-Giải mã: quy mô này dành cho các RNN nhằm giải quyết những vấn đề liên quan tới việc chuỗi đầu vào có độ lâu năm khác cùng với chuỗi đầu ra;Cơ chế để ý khắc phục tình trạng giảm hiệu suất của quy mô Bộ mã hóa – giải thuật khi có các chuỗi dài, sử dụng một vectơ ngữ cảnh không giống nhau cho mỗi bước thời gian. Cơ chế để ý cho công dụng tốt trong nhiều lĩnh vực như NLP, phân các loại phân vị, phân các loại tài liệu, v.v.Việc mở rộng bộ nhớ lưu trữ có ý nghĩa quan trọng trong một số lĩnh vực nhất định như tài chính, nơi đòi hỏi ghi ghi nhớ càng những dữ liệu lịch sử hào hùng càng tốt, để ship hàng quá trình dự đoán các bước tiếp theo.
Thực ra, các bài toán về Nartual Language Processing(NLP) không hẳn là thế mạnh mẽ của mình. Tự trước mang đến giờ, mình đa số làm những bài toán về Computer Vision(CV). Mặc dù nhiên, trong thời gian gần đây, xã hội nói không ít về Attention, Transformer, BERT, …. Đó là đều kỹ thuật tiên tiến và phát triển mới ra đời, giúp xử lý rất nhiều tác vụ cực nhọc của NLP, đạt cho độ State of Art. Hoạt động trong lĩnh vực ai đó đã lâu, mình không muốn đứng bên cạnh dòng chảy công nghệ đó. Tuy nhiên bên CV, mình còn không hề ít thứ mong mỏi viết, nhưng lại trong một số bài viết sắp tới mình muốn “đổi gió” một chút. Mình sẽ viết về những kỹ thuật áp dụng trong NLP, sau khi đã để dành ra kha khá thời hạn để khám phá về chúng. Mục đích viết vẫn là để ghi lưu giữ và chia sẻ với đầy đủ người. Các kỹ thuật mình dự định viết sẽ bao gồm: RNN, LSTM, Transformer, BERT, Attention, Seq2Se2, …
Bài đầu tiên trong chủ đề NLP, mình đã cùng các bạn tìm gọi về RNN.
Nếu như các bên CV gồm CNN thì mặt NLP gồm RNN. CNN siêng xử lý tài liệu có phong cách thiết kế dạng lưới (grid), (VD: Images, …), còn RNN chăm xử lý tài liệu dạng chuỗi (sequential).
1. Overview
1.1 kiến trúc RNN
Giả sử:
$X_t in R^n imes d$ là input đầu vào tại Time-Step $t$,$h_t in R^n imes h$ là Hidden State trên Time-Step $t$,$W_xh in R^d imes h$ là ma trận trọng số của Hidden State trên Time-Step $t$,$b_h in R^1 imes h$ là thông số Bias của Hidden State tại Time-Step $t$,$h_t-1$ là Hidden State tại Time-Step $t-1$,$W_hh in R^h imes h$ là ma trận trọng số của Hidden State tại Time-Step $t-1$,$W_hq in R^h imes q$ là ma trận trọng số của đầu ra Layer tại Time-Step $t$$b_q in R^1 imes h$ là thông số Bias của đầu ra Layer trên Time-Step $t$,$phi$ là hàm kích hoạt.
Khi đó:
Trạng thái của Hidden Layer trên Time_Step $t$ đang là:
$h_t = phi(X_t
W_xh + h_t-1W_hh + b_h)$
Giá trị cổng đầu ra tại Time-Step $t$ đang là:
$O_t = h_t
W_hq + b_q$
1.2 Ưu điểm, nhược điểm của RNN
Ưu điểm:
Có kỹ năng xử lý dữ liệu đầu vào ở ngẫu nhiên độ nhiều năm nào.Kích thước mô hình không tăng theo size đầu vào.Việc huấn luyện quy mô có sử dụng thông tin ở Time-Step trước đó.Các hệ số của mô hình (weight và bias) được chia sẻ theo thời gian.Nhược điểm:
Việc xử lý, đo lường và thống kê mất không hề ít thời gian.Thông tin từ các Time-Step sinh sống xa không được bảo trì tốt.Không thể xem xét bất kỳ đầu vào nào về sau cho trạng thái hiện nay tại.1.3 một số loại mô hình RNN
Dạng 1: One-to-One

Dạng 2: One-to-Many

Ứng dụng: Music generation
Dạng 3: Many-to_One


Ý tưởng của Gradient Clipping cũng giống như như Re
LU, nó chỉ dẫn một giới hạn, và Gradient chỉ bao gồm thể nhỏ hơn hoặc bằng giới hạn đó.
3. Long Short Team Memory (LSTM)
Long Short Team Memory (LSTM)) là một trong phiên phiên bản cải tiến của RNN, giúp dễ dàng ghi nhớ dữ liệu quá khứ trong bộ lưu trữ của nó. Vấn đề Vanishing Gradient của RNN được giải quyết tốt rộng với LSTM. LSTM rất phù hợp giải quyết những bài toán phân loại, giải pháp xử lý và dự kiến chuỗi thời gian có độ nhiều năm không xác định. Mô hình LSTM cũng được huấn luyện bằng phương pháp thuật toán Backpropagation.
Kiến trúc mạng LSTM bao hàm nhiều Layers, mỗi Layers được kết cấu bởi nhiều đối chọi vị nhỏ tuổi gọi là Cell. Từng Cell được thay mặt bởi 2 cỗ nhớ: Cell State ($C$) với Hidden State ($h$).
- Hidden State - h,H: bộ nhớ lưu trữ ngắn hạn (working memory), chỉ lưu tin tức của Cell ngay trước Cell hiện nay tại. Trường thọ trong cả RNN và LSTM. Hidden State cũng chính là Ouput của RNN/LSTM Cell.
- Cell State - C: bộ nhớ dài hạn (long-term memory, memory cell), lưu lại thông tin của nhiều Cells trong thừa khứ. Chỉ tồn tại trên LSTM.
Xét 1 Cell lúc này ($C_t, h_t$) trong LSTM. Luồng dữ liệu trong Cell này tuần tự trải qua 3 cổng như sau:
- Forget gate: Cổng này ra quyết định thông tin nào từ Cell trước kia ($C_t-1$) bắt buộc được lưu lại hoặc ném đi. Tin tức từ Hidden State trước đó ($h_t-1$) và thông tin từ Input bây giờ ($x_t$) được gửi qua hàm Sigmoid, đã tạo ra một giá trị trong tầm từ 0 mang lại 1. Quý hiếm này càng ngay sát 0 nghĩa là tin tức ít đặc biệt quan trọng (*trường phù hợp = 0 thì rất có thể bỏ qua - Forget*), cực hiếm càng ngay gần 1 nghĩa là thông càng tin quan tiền trọng.
Xem thêm: Có mấy loại môi trường sống của sinh vật, môi trường sống của sinh vật là gì
Input gate: Cổng này ra quyết định giá trị như thế nào từ Hidden State trước kia ($h_t-1$) và thông tin từ Input lúc này ($x_t$) sẽ được đi vào Cell hiện tại. Để làm được việc này, nó sử dụng 2 hàm Sigmoid với Tanh. Tương tự như như Forget Gate, thông tin từ Hidden State trước kia ($h_t-1$) và thông tin từ Input hiện tại ($x_t$) được gửi qua hàm Sigmoid, cho ra một giá trị trong tầm từ 0 cho 1. Quý giá này càng ngay gần 0 nghĩa là thông tin càng ít quan trọng , quý hiếm càng ngay gần 1 nghĩa là tin tức càng quan tiền trọng. Hàm Tanh tạo thành một vector ứng cử của Cell State hiện tại ($widetildeC_t$). Output đầu ra của 2 hàm này được nhân cùng với nhau tính toán Cell State hiện tại tại.