Menangani sekuens dengan PyTorch

Deep Learning Lanjutan dengan PyTorch

Michal Oleszak

Machine Learning Engineer

Data sekuensial

  • Berurutan dalam waktu atau ruang
  • Urutan titik data menyimpan ketergantungan
  • Contoh data sekuensial:
    • Deret waktu
    • Teks
    • Gelombang audio

Deret waktu ditampilkan di layar komputer.

Sebuah buku terbuka.

Serangkaian pengeras suara dan layar komputer dengan perangkat lunak pemrosesan audio terbuka.

Deep Learning Lanjutan dengan PyTorch

Prediksi konsumsi listrik

  • Tugas: memprediksi konsumsi listrik masa depan dari pola historis

  • Dataset konsumsi listrik:

                 timestamp  consumption
0      2011-01-01 00:15:00    -0.704319
1      2011-01-01 00:30:00    -0.704319
...                    ...          ...
140254 2014-12-31 23:45:00    -0.095751
140255 2015-01-01 00:00:00    -0.095751
1 Trindade,Artur. (2015). ElectricityLoadDiagrams20112014. UCI Machine Learning Repository. https://doi.org/10.24432/C58C86.
Deep Learning Lanjutan dengan PyTorch

Pembagian train-test

  • Tidak ada pembagian acak untuk deret waktu!
  • Look-ahead bias: model tahu info masa depan
  • Solusi: bagi berdasarkan waktu

Set pelatihan 2011-2013 berwarna biru dan set uji 2014 berwarna oranye, dipisahkan secara visual.

Deep Learning Lanjutan dengan PyTorch

Membuat sekuens

  • Panjang sekuens = jumlah titik data per contoh latih
    • 24 × 4 = 96 -> lihat 24 jam terakhir
  • Prediksi satu titik data berikutnya

Sekuens masukan berdurasi sama berwarna biru dan nilai target berwarna hijau, dipisahkan secara visual.

Deep Learning Lanjutan dengan PyTorch

Membuat sekuens di Python

import numpy as np

def create_sequences(df, seq_length):

xs, ys = [], []
for i in range(len(df) - seq_length):
x = df.iloc[i:(i+seq_length), 1] y = df.iloc[i+seq_length, 1]
xs.append(x) ys.append(y)
return np.array(xs), np.array(ys)
  • Ambil data dan panjang sekuens sebagai masukan
  • Inisialisasi daftar input dan target
  • Iterasi atas titik data
  • Tentukan input dan target
  • Tambahkan ke daftar yang sudah diinisialisasi
  • Kembalikan input dan target sebagai array NumPy
Deep Learning Lanjutan dengan PyTorch

TensorDataset

Buat contoh pelatihan

X_train, y_train = create_sequences(train_data, seq_length)
print(X_train.shape, y_train.shape)
(34944, 96) (34944,)

Ubah ke Torch Dataset

from torch.utils.data import TensorDataset

dataset_train = TensorDataset(
    torch.from_numpy(X_train).float(),
    torch.from_numpy(y_train).float(),
)
Deep Learning Lanjutan dengan PyTorch

Keterterapan pada data sekuensial lain

Teknik yang sama berlaku untuk sekuens lain:

  • Large Language Models
  • Pengenalan ucapan
Deep Learning Lanjutan dengan PyTorch

Ayo berlatih!

Deep Learning Lanjutan dengan PyTorch

Preparing Video For Download...