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 memperkirakan rangkaian waktu skalar (satu dimensi) menggunakan jaringan saraf berulang (RNN). Metode peramalan klasik, seperti autoregressive integrated moving average (ARIMA) atau exponential smoothing (ETS), sesuai dengan model tunggal untuk setiap rangkaian waktu individu, dan kemudian menggunakan model itu untuk mengekstrapolasi deret waktu ke future. Namun, dalam banyak aplikasi, Anda memiliki banyak rangkaian waktu serupa di satu set unit penampang melintang. Pengelompokan seri waktu ini menuntut produk yang berbeda, beban server, dan permintaan untuk halaman web. Dalam hal ini, dapat bermanfaat untuk melatih satu model bersama-sama di semua rangkaian waktu. Deepar+mengambil pendekatan ini. Saat kumpulan data Anda berisi ratusan rangkaian waktu fitur, algoritme DeePar+ mengungguli metode ARIMA dan ETS standar. Anda juga dapat menggunakan model terlatih untuk menghasilkan perkiraan untuk seri waktu baru yang mirip dengan yang telah dilatih.

Notebook Python

Untuk step-by-step panduan tentang penggunaan algoritme Deepar+, lihat Memulai dengan Deepar+.

Bagaimana DeePar+ Bekerja

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

Gambar: Deepar+data seri waktu yang khas.

Seri 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 future. Hal ini memungkinkan Anda untuk menjalankan counterfactual “what-if” skenario. Misalnya, “Apa yang terjadi jika saya mengubah harga suatu produk dengan cara tertentu?”

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

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

Gambar: Deepar+dua turunan waktu-seri.

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 Seri Waktu Fitur turunan turunan yang khas
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 rangkaian 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, danForecastHorizon parameter mengontrol seberapa jauh prediksi future dapat dibuat. Selama pelatihan, Amazon Forecast mengabaikan elemen dalam kumpulan data pelatihan dengan deret waktu yang lebih pendek dari panjang prediksi yang ditentukan. Contoh berikut menunjukkan lima sampel, dengan panjang konteks (disorot dalam warna hijau) 12 jam dan panjang prediksi (disorot dengan warna biru) 6 jam, diambil dari elemeni. Demi singkatnya, kami telah mengecualikan rangkaian waktu fiturxi,1,t danui,2,t.

Gambar: Deepar+sampel.

Untuk menangkap pola musiman, DeePar+juga secara otomatis memberi makan nilai yang tertinggal (periode terakhir) dari deret waktu target. Dalam contoh kita dengan sampel yang diambil pada frekuensi per jam, untuk setiap indeks waktut = T, model memaparkanzi,t nilai-nilai yang terjadi kira-kira satu, dua, dan tiga hari di masa lalu (disorot dalam warna pink).

Gambar: Deepar+tertinggal.

Untuk inferensi, model terlatih mengambil sebagai masukan seri waktu target, yang mungkin atau mungkin tidak telah digunakan selama pelatihan, dan memperkirakan distribusi probabilitas untukForecastHorizon nilai berikutnya. Karena DeePar+dilatih di seluruh dataset, perkiraan memperhitungkan pola yang dipelajari dari rangkaian waktu yang sama.

Untuk informasi tentang matematika di balik DeepAR +, lihat DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks di situs web Cornell University Library.

Hiperparameter Deepar +

Tabel berikut mencantumkan hyperparameter yang dapat Anda gunakan di Deepar + algoritma lainnya. 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 yang tertinggal dari target, sehinggacontext_length bisa jauh lebih kecil daripada musiman khas. Misalnya, rangkaian waktu harian dapat memiliki musiman tahunan. Model ini secara otomatis mencakup jeda satu tahun, sehingga panjang konteksnya bisa lebih pendek dari setahun. Nilai lag yang diambil 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 yang khas

Nilai tipikal yang khas

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

Nilai default

2 *ForecastHorizon

epochs

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

Nilai valid

Bilangan bulat Positif yang khas

Nilai tipikal yang khas

10 hingga 1000

Nilai default

500

learning_rate

Tingkat pembelajaran yang digunakan dalam pelatihan.

Nilai valid

Angka floating-point positif

Nilai tipikal yang khas

0,0001 hingga 0,1

Nilai default

0.001

learning_rate_decay

Laju pembelajaran menurun. Paling-paling, tingkat pembelajaran berkurangmax_learning_rate_decays kali, kemudian pelatihan berhenti. Parameter ini akan digunakan hanya jikamax_learning_rate_decays lebih besar dari 0.

Nilai valid

Angka floating-point positif

Nilai tipikal yang khas

0,5 hingga 0,8 (inklusif)

Nilai default

0,5

likelihood

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

Nilai valid

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

  • deterministic-L1: Fungsi kerugian yang tidak memperkirakan ketidakpastian dan hanya mempelajari perkiraan poin.

  • gaussian: Gunakan untuk data bernilai nyata.

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

  • piecewise-linear: Gunakan untuk distribusi fleksibel.

  • student-T: Gunakan alternatif ini untuk data bernilai nyata untuk data yang meledak.

Nilai default

student-T

max_learning_rate_decays

Jumlah maksimum pengurangan tingkat pembelajaran yang seharusnya terjadi.

Nilai valid

Bilangan bulat Positif yang khas

Nilai tipikal yang 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 yang khas

Nilai tipikal yang khas

1 sampai 5 (inklusif)

Nilai default

1

num_cells

Jumlah sel yang digunakan di setiap lapisan tersembunyi RNN.

Nilai valid

Bilangan bulat Positif yang khas

Nilai tipikal yang khas

30 hingga 100

Nilai default

40

num_layers

Jumlah lapisan tersembunyi di RNN.

Nilai valid

Bilangan bulat Positif yang khas

Nilai tipikal yang khas

1 hingga 4

Nilai default

2

Tune Deepar+Model

Untuk menyesuaikan model Amazon Forecast Deepar+, ikuti rekomendasi ini untuk mengoptimalkan proses pelatihan dan konfigurasi perangkat keras.

Praktik Terbaik untuk Optimasi Proses yang khas

Untuk mencapai hasil terbaik, ikuti rekomendasi ini:

  • Kecuali saat membagi kumpulan data pelatihan dan pengujian, selalu berikan seluruh rangkaian 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 daripadacontext_length fitur nilai yang 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 rangkaian waktu yang sama yang digunakan dalam pelatihan, tetapi pada titikForecastHorizon 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 rangkaian waktu) sebagai kumpulan data pengujian dan hapusForecastHorizon poin terakhir dari setiap rangkaian waktu untuk pelatihan. Dengan cara ini, selama pelatihan, model tidak melihat nilai target untuk titik waktu yang dievaluasi selama pengujian. Pada tahap pengujian,ForecastHorizon poin terakhir dari setiap rangkaian waktu dalam kumpulan data pengujian ditahan dan prediksi dihasilkan. Perkiraan tersebut kemudian dibandingkan dengan nilai aktual untukForecastHorizon 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 selama beberapa prakiraan 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 future, 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 rangkaian waktu sebanyak yang tersedia. Meskipun model DeePar+yang dilatih pada rangkaian waktu tunggal 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 dataset Anda berisi ratusan rangkaian waktu fitur. Saat ini, DeePar+mensyaratkan bahwa jumlah pengamatan yang tersedia, di semua rangkaian waktu pelatihan, setidaknya 300.