Làm thế nào để đào tạo mô hình LSTM trên nhiều dữ liệu chuỗi thời gian?


13

Làm thế nào để đào tạo mô hình LSTM trên nhiều dữ liệu chuỗi thời gian?

Trường hợp sử dụng: Tôi có doanh số hàng tuần là 20.000 đại lý trong 5 năm qua. Cần dự báo doanh số hàng tuần sắp tới cho mỗi đại lý.

Tôi có cần tuân theo một kỹ thuật xử lý hàng loạt - mỗi lần một đại lý, đào tạo mô hình LSTM không? Còn cách nào tốt hơn không?


Bạn có hình dung điều này? Tôi đang xem xét một vấn đề tương tự.
vishnu viswanath

@vishnuviswanath chúng tôi đang nghiên cứu phát triển mạng lưới thần kinh (RNN) có thể là một mô hình cho tất cả các tác nhân.
Aljo Jose

cảm ơn. Làm thế nào bạn đào tạo mô hình cho nhiều đại lý? bạn đang đào tạo một đại lý mỗi đợt.
vishnu viswanath

chúng tôi vẫn đang trong giai đoạn xây dựng. kaggle.com/c/web-traffic-time-series-forecasting/discussion/ay có thể giúp đỡ.
Aljo Jose

Câu trả lời:


11

Làm cho danh tính của tác nhân trở thành một trong những tính năng và đào tạo trên tất cả dữ liệu. Có thể đào tạo một lô nhỏ gồm 128 đại lý cùng một lúc: chạy qua chuỗi thời gian từ đầu đến cuối cho 128 đại lý đó, sau đó chọn một lô đại lý nhỏ mới. Đối với mỗi lô nhỏ, hãy chạy một lát gồm 50 dấu thời gian, sau đó sao lưu. Giữ các trạng thái kết thúc từ lát cắt đó và chạy 50 dấu thời gian tiếp theo, bắt đầu từ các trạng thái kết thúc đó. Rửa sạch và lặp lại cho đến khi bạn kết thúc dấu thời gian, cho lô nhỏ đó gồm 128 đại lý.

Bằng cách đặt danh tính của từng tác nhân làm một trong các tính năng, bạn có thể tạo điều kiện cho mạng:

  • học hỏi từ tất cả dữ liệu của bạn, từ đó tối đa hóa việc sử dụng dữ liệu của bạn và
  • tìm hiểu các đặc điểm độc đáo của từng tác nhân, để nó không chỉ trung bình tất cả các tác nhân với nhau
  • khi bạn dự đoán tương lai cho một tác nhân cụ thể, hãy đảm bảo sử dụng các tính năng id tác nhân tương ứng của chúng và mạng sẽ điều chỉnh dự đoán tương ứng.

Chỉnh sửa: Alpo Jose đã viết:

ok, tôi có cần sử dụng một mã hóa nóng để tạo danh tính của đại lý không?

Ồ, đó là sự thật. Có 20.000 người trong số họ. Đó là loại rất nhiều. Tôi nghĩ rằng những gì bạn có thể muốn làm là 'nhúng' chúng. Có một lớp tra cứu, lấy một id tác nhân (được biểu thị dưới dạng một số nguyên, một chỉ mục) và xuất ra một vectơ có chiều cao, giống như một vectơ có chiều dài 50-300, có thể là một vectơ có chiều dài xấp xỉ với kích thước ẩn của LSTM của bạn.

Về mặt toán học, một bảng tra cứu, còn được gọi là 'lớp nhúng', tương đương với việc biến các id tác nhân thành các vectơ một nóng, sau đó đi qua một lớp tuyến tính (được kết nối đầy đủ). Tuy nhiên, các yêu cầu trong bộ nhớ được giảm nhiều cho lớp nhúng.

Về những gì lớp nhúng sẽ học, khi bạn huấn luyện nó, lớp nhúng sẽ tạo thành một loại đại diện tiềm ẩn của mỗi tác nhân. Đại diện tiềm ẩn sẽ có thể đọc được / có thể hiểu được bằng bất kỳ cách nào, nhưng sẽ cho phép mô hình học những thứ như 'ok tác nhân này, 1524, tương đối hiệu quả, nhưng không phải vào cuối tuần; nơi 1526 là tuyệt vời mỗi ngày; Vân vân ....'. Kích thước tiềm ẩn của vectơ nhúng có thể thực sự có nghĩa là công cụ, nhưng không ai từng cố gắng tìm hiểu ý nghĩa của chúng (tôi nghĩ rằng điều đó sẽ khó / không thể). Tuy nhiên, các nhúng nhúng trên mỗi tác nhân chiều cao cho phép mô hình tìm hiểu điều gì đó về hành vi của từng tác nhân và mô hình hóa điều này trong các dự đoán chuỗi thời gian.


ok, tôi có cần sử dụng một mã hóa nóng để tạo danh tính của đại lý không?
Aljo Jose

@AljoJose đã cập nhật câu trả lời để tính đến câu hỏi này
Hugh Perkins

Tôi hiểu rồi, sẽ thử. cảm ơn Hugh
Aljo Jose

Tôi có một vấn đề tương tự, nhưng không giống như các tác nhân ở đây, tôi có nhiều chuỗi thời gian là các thể hiện của cùng một quy trình, nhưng mỗi chiều dài thay đổi. Vì vậy, tôi không cần tác nhân (quy trình, trong trường hợp của tôi) là một tính năng. Bất kỳ đề nghị làm thế nào để xử lý đó?
Anakin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.