Pendekatan pembelajaran satu langkah

Mesin Pembelajaran Ekstrim

Arsitektur jaringan saraf tiruan yang paling umum adalah jaringan saraf feedforward. Informasi jaringan ini merambat (mengalir) dalam satu arah dari lapisan masukan ke lapisan keluaran.

Extreme Learning Machine (ELM) adalah jaringan saraf feedforward, yang dapat digunakan untuk pendekatan regresi dan klasifikasi, misalnya. Bobot antara lapisan masukan dan lapisan tersembunyi diberikan secara acak. Sedangkan bobot antara lapisan tersembunyi dan lapisan keluaran dihitung atau dipelajari dalam satu langkah. Kumpulan bobot kedua dihitung dengan invers Moore-Penrose dari matriks keluaran lapisan tersembunyi.

Jaringan Neural Umpan Balik

Gambar di bawah menunjukkan jaringan saraf feedforward, yang mendemonstrasikan elemen dalam ELM.

Lapisan masukan disusun oleh matriks masukan X berukuran M x N ditambah bias berukuran M x 1, dengan M adalah banyaknya contoh dan N (sama dengan 3 pada gambar) adalah banyaknya fitur. Selanjutnya menunjukkan bobot W1 yang ditetapkan secara acak dengan ukuran L x N + 1, dimana L adalah jumlah neuron pada lapisan tersembunyi.

Keluaran lapisan tersembunyi dihitung dengan persamaan berikut:

Dimana Xa adalah rangkaian bias dan matriks masukan X dan tanh adalah fungsi aktivasi tangen hiperbolik, yang membatasi keluaran setiap neuron menjadi -1 dan 1.

Bobot W2 diperoleh dengan mengalikan invers Moore-Penrose dari Ha dan target y, seperti terlihat pada persamaan di bawah ini:

Dimana Ha adalah bias ditambah matriks keluaran lapisan tersembunyi H. Dengan demikian, kita dapat melakukan prediksi dengan persamaan berikut:

Semua langkah untuk mendapatkan parameter W1 dan W2 dilakukan oleh data pelatihan, dan dengan parameter ini, kita dapat membuat prediksi baru terhadap data yang tidak ada dalam proses pelatihan, dalam hal ini data pengujian. Fungsi di bawah ini menunjukkan pembelajaran satu langkah ELM untuk mendapatkan prediksi dan parameter W1 dan W2:

Perkiraan Rangkaian Waktu

Awalnya, masalah peramalan deret waktu perlu diubah menjadi masalah pembelajaran mesin. Untuk melakukan hal tersebut, kami menyesuaikan data temporal dalam hal input dan variabel target agar tersedia untuk aplikasi regresi linier apa pun, termasuk EML.

Dengan cara ini, kami menggunakan konsep lag, yaitu nilai masa lalu dalam suatu deret waktu. Untuk soal kita, lag digunakan untuk mengatur jumlah fitur pada matriks masukan, jika kita menggunakan lag 3 maka matriks masukan akan berukuran M x 3, dan digunakan tiga nilai masa lalu dari deret waktu. sebagai masukan. Variabel target ditetapkan sebagai nilai berikutnya dalam rangkaian, yang bisa segera setelah jeda pertama (satu langkah maju) atau beberapa langkah maju.

Sebagai contoh, perhatikan contoh di bawah ini:

# Time series
series = [3.93, 4.58, 4.8, 5.07, 5.14, 4.94]
# Three lags and one-step forward
X = [[3.93, 4.58, 4.8],
[4.58, 4.8, 5.07],
[4.8, 5.07, 5.14]]
y = [[5.07],
[5.14],
[4.94]]
# Two lags and two-steps forward
X = [[3.93, 4.58],
[4.58, 4.8],
[4.8, 5.07]]
y = [[5.07],
[5.14],
[4.94]]

Dalam contoh ini, deret waktu adalah seri, X dan y masing-masing merupakan matriks masukan dan target. Contoh pertama menyajikan tiga lag dan satu langkah maju, yang mana untuk memprediksi nilai pada X(t) diperlukan nilai pada X(t-1), X(t-2), dan X(t-3). Pada contoh terakhir, dua lag dan dua langkah maju, nilai pada X(t-2) dan X(t-3) digunakan untuk memprediksi nilai pada X(t).

Fungsi di bawah menyesuaikan deret waktu dengan masalah pembelajaran mesin:

Input dari fungsi tersebut adalah deret waktu, jumlah kelambatan (lag) dan jumlah langkah maju (step_forward). Sedangkan keluarannya adalah matriks masukan berukuran (M-(lag+step_forward-1)) x lag dan variabel target berukuran (M-(lag+step_forward-1)) x 1.

Hasil dan Evaluasi

Untuk mengevaluasi prediksi ELM digunakan mean squared error (MSE) seperti terlihat pada persamaan di bawah ini:

Dimana M adalah jumlah contoh, C adalah jumlah keluaran, y adalah variabel target sebenarnya dan y_pred adalah variabel target prediksi.

Fungsi di bawah ini menghitung MSE:

Sebelum melatih model ELM dan mendapatkan bobot yang ditetapkan untuk membuat prediksi, kita harus menormalkan deret waktu. Di sini digunakan normalisasi min-maks, yang menormalkan data masukan ke dalam rentang tertentu (a, b), dalam hal ini (0, 1), seperti yang ditunjukkan pada fungsi di bawah ini.

Untuk mendapatkan parameter normalisasi yang digunakan hanya data latih saja, dan dengan parameter tersebut kita normalisasi baik data latih maupun data uji. Dengan cara ini, setelah melatih model dan membuat prediksi pada kedua data, kami melakukan normalisasi terbalik untuk mengevaluasi performa model dengan benar.

Kami menggunakan rangkaian waktu produk domestik bruto Brasil antara tahun 1980 dan 1997 dan frekuensi datanya bulanan (total 256 bulan), tersedia di link. Ini menggunakan 80% data bulanan pertama untuk melatih model dan 20% data bulanan terakhir untuk menguji parameter pelatihan. Gambar di bawah menunjukkan pembagian deret waktu menjadi data pelatihan (garis biru) dan pengujian (garis hijau), dengan garis putus-putus hitam mewakili pemisahan tersebut.

Pertama, untuk membuat X dan y digunakan lag 2 dan satu langkah maju untuk membuat prediksi. Model yang dilatih dengan 3 neuron tersembunyi menunjukkan performa yang baik pada peramalan deret waktu, yang masing-masing mencapai MSE sebesar 30,99 dan 38,74 pada data pelatihan dan pengujian. Gambar di bawah menunjukkan prediksi pada data pengujian, yang diberi garis putus-putus merah, serupa dengan data pengujian sebenarnya (garis hijau).

Saat mengubah lag menjadi 3 dan mempertahankan satu langkah maju, terjadi penurunan performa model, mencapai MSE 180,83 pada data pengujian. Oleh karena itu, bukanlah ide yang baik untuk menambah jumlah nilai masa lalu guna memprediksi satu langkah maju untuk rangkaian waktu yang dianalisis.

Kesimpulan

Dengan cara ini, penggunaan mesin pembelajaran ekstrim merupakan metode awal yang baik untuk peramalan deret waktu, dimana perlu mengubah deret waktu menjadi masukan dan target sebelumnya. ELM adalah pendekatan yang sederhana, namun memperoleh hasil yang kuat dalam usulan, dimana pelatihan dilakukan dalam satu langkah dengan bantuan invers Moore-Penrose.

Kode lengkapnya tersedia di Github dan Colab. Ikuti blognya jika postingannya bermanfaat bagi Anda.