Algoritma DeepAR+ - Amazon Forecast

Amazon Forecast tidak lagi tersedia untuk pelanggan baru. Pelanggan Amazon Forecast yang ada dapat terus menggunakan layanan seperti biasa. Pelajari lebih lanjut”

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Algoritma DeepAR+

Amazon Forecast DeepAR+ adalah algoritma pembelajaran yang diawasi untuk meramalkan deret waktu skalar (satu dimensi) menggunakan jaringan saraf berulang (). RNNs Metode peramalan klasik, seperti autoregressive integrated moving average (ARIMA) atau exponential smoothing (ETS), menyesuaikan model tunggal untuk setiap deret waktu individu, dan kemudian menggunakan model itu untuk mengekstrapolasi deret waktu ke masa depan. Namun, dalam banyak aplikasi, Anda memiliki banyak deret waktu serupa di satu set unit penampang. Pengelompokan deret waktu ini menuntut berbagai produk, beban server, dan permintaan untuk halaman web. Dalam hal ini, akan bermanfaat untuk melatih satu model bersama-sama di semua deret waktu. DeepAR+ mengambil pendekatan ini. Ketika kumpulan data Anda berisi ratusan deret waktu fitur, algoritme DeepAR+ mengungguli metode ARIMA dan ETS standar. Anda juga dapat menggunakan model terlatih untuk menghasilkan perkiraan untuk deret waktu baru yang mirip dengan yang telah dilatih.

Notebook Python

Untuk step-by-step panduan tentang penggunaan algoritma DeepAR+, lihat Memulai dengan DeepAR+.

Bagaimana DeepAR+ Bekerja

Selama pelatihan, DeepAR+ menggunakan kumpulan data pelatihan dan kumpulan data pengujian opsional. Ini menggunakan dataset pengujian untuk mengevaluasi model terlatih. Secara umum, kumpulan data pelatihan dan pengujian tidak harus berisi rangkaian deret waktu yang sama. Anda dapat menggunakan model yang dilatih pada set pelatihan tertentu untuk menghasilkan perkiraan untuk masa depan deret waktu dalam set pelatihan, dan untuk deret waktu lainnya. Baik pelatihan dan kumpulan data pengujian terdiri dari (lebih disukai lebih dari satu) deret waktu target. Secara opsional, mereka dapat dikaitkan dengan vektor deret waktu fitur dan vektor fitur kategoris (untuk detailnya, lihat Antarmuka Input/Output DeepAR di Panduan Pengembang AI). SageMaker Contoh berikut menunjukkan cara kerjanya untuk elemen kumpulan data pelatihan yang diindeks oleh. i Dataset pelatihan terdiri dari deret waktu target,zi,t, dan dua rangkaian waktu fitur terkait, xi,1,t danxi,2,t.

Gambar: Data deret waktu DeepAR+.

Deret waktu target mungkin berisi nilai yang hilang (dilambangkan dalam grafik dengan jeda dalam deret waktu). DeepAR+hanya mendukung fitur time series yang dikenal di masa depan. Ini memungkinkan Anda untuk menjalankan skenario “bagaimana-jika” kontrafaktual. Misalnya, “Apa yang terjadi jika saya mengubah harga suatu produk dengan cara tertentu?”

Setiap deret waktu target juga dapat dikaitkan dengan sejumlah fitur kategoris. Anda dapat menggunakan ini untuk menyandikan bahwa deret waktu milik pengelompokan tertentu. Menggunakan fitur kategoris memungkinkan model untuk mempelajari perilaku khas untuk pengelompokan tersebut, yang dapat meningkatkan akurasi. Sebuah model mengimplementasikan ini dengan mempelajari vektor embedding untuk setiap grup yang menangkap properti umum dari semua deret waktu dalam grup.

Untuk memfasilitasi pembelajaran pola yang bergantung pada waktu, seperti lonjakan selama akhir pekan, DeepAR+ secara otomatis membuat deret waktu fitur berdasarkan perincian deret waktu. Misalnya, DeepAR+ membuat dua rangkaian waktu fitur (hari dalam sebulan dan hari dalam setahun) pada frekuensi deret waktu mingguan. Ini menggunakan deret waktu fitur turunan ini bersama dengan deret waktu fitur khusus yang Anda berikan selama pelatihan dan inferensi. Contoh berikut menunjukkan dua fitur deret waktu turunan: ui,1,t mewakili jam dalam sehari, dan ui,2,t hari dalam seminggu.

Gambar: DeepAR+ dua deret waktu turunan.

DeepAR+ secara otomatis menyertakan rangkaian waktu fitur ini berdasarkan frekuensi data dan ukuran data pelatihan. Tabel berikut mencantumkan fitur yang dapat diturunkan untuk setiap frekuensi waktu dasar yang didukung.

Frekuensi Deret Waktu Fitur Berasal
Menit minute-of-hour, hour-of-day, day-of-week, day-of-month, day-of-year
Jam hour-of-day, day-of-week, day-of-month, day-of-year
Hari day-of-week, day-of-month, day-of-year
Minggu week-of-month, week-of-year
Bulan month-of-year

Model DeepAR+ dilatih dengan mengambil sampel secara acak beberapa contoh pelatihan dari masing-masing deret waktu dalam kumpulan data pelatihan. Setiap contoh pelatihan terdiri dari sepasang konteks dan jendela prediksi yang berdekatan dengan panjang yang telah ditentukan sebelumnya. context_lengthHyperparameter mengontrol seberapa jauh di masa lalu jaringan dapat melihat, dan ForecastHorizon parameter mengontrol seberapa jauh prediksi masa depan dapat dibuat. Selama pelatihan, Amazon Forecast mengabaikan elemen dalam kumpulan data pelatihan dengan deret waktu lebih pendek dari panjang prediksi yang ditentukan. Contoh berikut menunjukkan lima sampel, dengan panjang konteks (disorot dengan warna hijau) 12 jam dan panjang prediksi (disorot dengan warna biru) 6 jam, diambil dari elemeni. Demi singkatnya, kami telah mengecualikan deret waktu fitur xi,1,t danui,2,t.

Gambar: DeepAR+ sampel.

Untuk menangkap pola musiman, DeepAR+ juga secara otomatis memberi umpan nilai tertinggal (periode sebelumnya) dari deret waktu target. Dalam contoh kami dengan sampel yang diambil pada frekuensi per jam, untuk setiap indeks waktut = T, model memperlihatkan zi,t nilai yang terjadi kira-kira satu, dua, dan tiga hari di masa lalu (disorot dalam warna merah muda).

Gambar: DeepAR+ tertinggal.

Untuk inferensi, model terlatih mengambil input deret waktu target, yang mungkin atau mungkin tidak digunakan selama pelatihan, dan memperkirakan distribusi probabilitas untuk ForecastHorizon nilai berikutnya. Karena DeepAR+ dilatih pada seluruh kumpulan data, perkiraan memperhitungkan pola yang dipelajari dari deret waktu yang serupa.

Untuk informasi tentang matematika di balik DeepAR +, lihat DeepAR: Peramalan Probabilistik dengan Jaringan Berulang Autoregresif di situs web Perpustakaan Universitas Cornell.

DeepAR+Hyperparameter

Tabel berikut mencantumkan hyperparameters yang dapat Anda gunakan dalam algoritma DeepAR+. Parameter dalam huruf tebal berpartisipasi dalam optimasi hyperparameter (HPO).

Nama Parameter Deskripsi
context_length

Jumlah titik waktu yang dibaca model sebelum membuat prediksi. Nilai untuk parameter ini harus hampir sama denganForecastHorizon. Model ini juga menerima input tertinggal dari target, sehingga context_length bisa jauh lebih kecil daripada musim biasa. Misalnya, deret waktu harian dapat memiliki musim tahunan. Model secara otomatis menyertakan jeda satu tahun, sehingga panjang konteksnya bisa lebih pendek dari satu tahun. Nilai lag yang dipilih model bergantung pada frekuensi deret waktu. Misalnya, nilai lag untuk frekuensi harian adalah: minggu sebelumnya, 2 minggu, 3 minggu, 4 minggu, dan tahun.

Nilai valid

Bilangan bulat positif

Nilai khas

ceil (0,1 *ForecastHorizon) hingga min (200, 10 *ForecastHorizon)

Nilai default

2 * ForecastHorizon

epochs

Jumlah lintasan maksimum untuk memeriksa data pelatihan. Nilai optimal tergantung pada ukuran data dan tingkat pembelajaran Anda. Kumpulan data yang lebih kecil dan tingkat pembelajaran yang lebih rendah keduanya membutuhkan lebih banyak zaman, untuk mencapai hasil yang baik.

Nilai valid

Bilangan bulat positif

Nilai khas

10 hingga 1000

Nilai default

500

learning_rate

Tingkat pembelajaran yang digunakan dalam pelatihan.

Nilai valid

Angka floating-point positif

Nilai khas

0,0001 hingga 0,1

Nilai default

0,001

learning_rate_decay

Tingkat di mana tingkat pembelajaran menurun. Paling-paling, tingkat pembelajaran dikurangi max_learning_rate_decays waktu, kemudian pelatihan berhenti. Parameter ini hanya akan digunakan jika max_learning_rate_decays lebih besar dari 0.

Nilai valid

Angka floating-point positif

Nilai khas

0,5 hingga 0,8 (inklusif)

Nilai default

0,5

likelihood

Model menghasilkan perkiraan probabilistik, dan dapat memberikan kuantil distribusi dan sampel pengembalian. Bergantung pada data Anda, pilih kemungkinan yang sesuai (model kebisingan) yang digunakan untuk perkiraan ketidakpastian.

Nilai valid

  • beta: Gunakan untuk target bernilai riil antara 0 dan 1, secara inklusif.

  • deterministic-L1Fungsi kerugian yang tidak memperkirakan ketidakpastian dan hanya mempelajari perkiraan poin.

  • gaussian: Gunakan untuk data bernilai riil.

  • negative-binomial: Gunakan untuk menghitung data (bilangan bulat non-negatif).

  • piecewise-linear: Gunakan untuk distribusi yang fleksibel.

  • student-T: Gunakan alternatif ini untuk data bernilai riil untuk data bursty.

Nilai default

student-T

max_learning_rate_decays

Jumlah maksimum pengurangan tingkat pembelajaran yang harus terjadi.

Nilai valid

Bilangan bulat positif

Nilai khas

0 hingga 10

Nilai default

0

num_averaged_models

Di DeepAR+, lintasan pelatihan dapat menemukan beberapa model. Setiap model mungkin memiliki kekuatan dan kelemahan peramalan yang berbeda. DeepAR+dapat rata-rata perilaku model untuk mengambil keuntungan dari kekuatan semua model.

Nilai valid

Bilangan bulat positif

Nilai khas

1 sampai 5 (inklusif)

Nilai default

1

num_cells

Jumlah sel yang digunakan di setiap lapisan tersembunyi RNN.

Nilai valid

Bilangan bulat positif

Nilai khas

30 hingga 100

Nilai default

40

num_layers

Jumlah lapisan tersembunyi di RNN.

Nilai valid

Bilangan bulat positif

Nilai khas

1 hingga 4

Nilai default

2

Model Tune DeepAR+

Untuk menyetel model Amazon Forecast DeepAR+, ikuti rekomendasi berikut untuk mengoptimalkan proses pelatihan dan konfigurasi perangkat keras.

Praktik Terbaik untuk Optimasi Proses

Untuk mencapai hasil terbaik, ikuti rekomendasi ini:

  • Kecuali saat membagi kumpulan data pelatihan dan pengujian, selalu sediakan seluruh deret waktu untuk pelatihan dan pengujian, dan saat memanggil model untuk inferensi. Terlepas dari bagaimana Anda mengaturcontext_length, jangan membagi deret waktu atau hanya menyediakan sebagian saja. Model akan menggunakan titik data lebih jauh ke belakang daripada context_length fitur nilai tertinggal.

  • Untuk penyetelan model, Anda dapat membagi kumpulan data menjadi kumpulan data pelatihan dan pengujian. Dalam skenario evaluasi yang khas, Anda harus menguji model pada deret waktu yang sama yang digunakan dalam pelatihan, tetapi pada titik ForecastHorizon waktu future segera setelah titik waktu terakhir terlihat selama pelatihan. Untuk membuat kumpulan data pelatihan dan pengujian yang memenuhi kriteria ini, gunakan seluruh kumpulan data (semua deret waktu) sebagai kumpulan data pengujian dan hapus ForecastHorizon poin terakhir dari setiap deret waktu untuk pelatihan. Dengan cara ini, selama pelatihan, model tidak melihat nilai target untuk titik waktu yang dievaluasi selama pengujian. Pada fase pengujian, ForecastHorizon poin terakhir dari setiap deret waktu dalam kumpulan data pengujian ditahan dan prediksi dihasilkan. Perkiraan kemudian dibandingkan dengan nilai aktual untuk ForecastHorizon poin terakhir. Anda dapat membuat evaluasi yang lebih kompleks dengan mengulangi deret waktu beberapa kali dalam kumpulan data pengujian, tetapi memotongnya pada titik akhir yang berbeda. Ini menghasilkan metrik akurasi yang dirata-ratakan pada beberapa perkiraan dari titik waktu yang berbeda.

  • Hindari menggunakan nilai yang sangat besar (> 400) ForecastHorizon karena ini memperlambat model dan membuatnya kurang akurat. Jika Anda ingin meramalkan lebih jauh ke masa depan, pertimbangkan untuk menggabungkan ke frekuensi yang lebih tinggi. Misalnya, gunakan 5min sebagai ganti dari 1min.

  • Karena kelambatan, model dapat melihat lebih jauh ke belakang daripadacontext_length. Oleh karena itu, Anda tidak perlu mengatur parameter ini ke nilai yang besar. Titik awal yang baik untuk parameter ini adalah nilai yang sama denganForecastHorizon.

  • Latih model DeepAR+ dengan deret waktu sebanyak yang tersedia. Meskipun model DeepAR+ yang dilatih pada satu deret waktu mungkin sudah bekerja dengan baik, metode peramalan standar seperti ARIMA atau ETS mungkin lebih akurat dan lebih disesuaikan dengan kasus penggunaan ini. DeepAR+ mulai mengungguli metode standar ketika kumpulan data Anda berisi ratusan deret waktu fitur. Saat ini, DeepAR+ mensyaratkan bahwa jumlah total pengamatan yang tersedia, di semua deret waktu pelatihan, setidaknya 300.