
Pengarang: Reza Yazdanfar
Awalnya diterbitkan di Towards AI the World’s Leading AI and Technology News and Media Company. Jika Anda sedang membangun produk atau layanan terkait AI, kami mengundang Anda untuk mempertimbangkan untuk menjadi sponsor AI. Di Towards AI, kami membantu menskalakan AI dan startup teknologi. Biarkan kami membantu Anda melepaskan teknologi Anda kepada massa.
Ada banyak upaya dalam tugas-tugas NLP (Natural Language Processing) baru-baru ini, dan sebagian besar memanfaatkan model yang telah dilatih sebelumnya. Umpan tugas NLP sebagian besar adalah data yang dibuat oleh manusia, penuh dengan informasi yang subur dan sangat baik yang hampir dapat dianggap sebagai unit data. Dalam peramalan deret waktu, kita dapat merasakan kurangnya model yang telah dilatih sebelumnya. Mengapa kita tidak dapat menggunakan keunggulan ini dalam deret waktu seperti yang kita lakukan di NLP?! Artikel ini adalah ilustrasi rinci dari mengusulkan model seperti itu. Model ini dikembangkan dengan mempertimbangkan dua sudut pandang dan memiliki 4 bagian dari input hingga output. Juga, kode Python ditambahkan untuk pemahaman yang lebih baik.
TSMantan
Ini adalah model pra-pelatihan tanpa pengawasan untuk Time Series berdasarkan blok TransFormer (TSFormer) dengan strategi Mask AutoEncoder (MAE) yang diterapkan dengan baik. Model ini mampu menangkap dependensi yang sangat panjang dalam data kami.
NLP dan Seri Waktu:
Sampai batas tertentu, informasi NLP dan data Time Series adalah sama. Keduanya adalah data sekuensial dan sensitif secara lokal, yang berarti terkait dengan titik data berikutnya/sebelumnya. BTW, ada beberapa perbedaan yang akan saya katakan sebagai berikut:
Ada dua fakta (sebenarnya, ini adalah perbedaan) yang harus kami pertimbangkan saat mengusulkan model pra-terlatih kami seperti yang telah kami lakukan untuk tugas NLP:
Kepadatannya jauh lebih rendah dalam data Time Series daripada di Natural Language Kami membutuhkan panjang urutan data Time Series yang lebih panjang daripada data NLP
TSMantan Dari ZERO
Prosesnya, seperti semua model lainnya, seperti sebuah perjalanan (Tidak ada yang baru, tetapi perspektif yang baik). Seperti yang saya katakan tentang strategi MAE, arsitektur utama melalui encoder dan kemudian diproses menjadi decoder, akhirnya hanya untuk merekonstruksi target.
Anda dapat melihat arsitekturnya pada Gambar 1:
Gambar 1 | [source]
Itu saja sobat!! Tidak ada yang lebih dari Gambar ini. Namun; jika Anda ingin tahu cara kerjanya, saya akan menggambarkannya di bagian berikut:
Prosesnya: 1. Masking 2. Encoding 3. Decoding 4. Rekonstruksi Target
1. Masking
Gambar 2 | sumber
Ini adalah langkah pertama untuk memberikan feed ke langkah berikutnya (Encoder). Kita dapat melihat bahwa urutan input (Sᶦ) telah didistribusikan ke dalam patch P dengan panjang L. Akibatnya, panjang jendela geser yang digunakan untuk meramalkan langkah waktu berikutnya adalah P x L.
Rasio pembuatan (r) adalah 75% (relatif tinggi bukan?); ini hanya tentang membuat tugas yang diawasi sendiri dan membuat Encoder lebih produktif.
Alasan utama untuk melakukan ini (maksud saya menambal urutan input) adalah:
Segmen (yaitu tambalan) lebih baik daripada titik terpisah. Itu membuatnya lebih mudah untuk menggunakan model hilir (STGNN mengambil segmen unit sebagai input) Dengan ini, kita dapat mengurangi ukuran input untuk Encoder.
https://medium.com/media/01a1fbac680de982ddf791dd75ae25af/hrefhttps://medium.com/media/a3439c1e83b723f90661b7c1de5347a0/href
2. Pengkodean
Gambar 3 | [source]
Seperti yang Anda lihat, ini adalah urutan dari Input Embedding, Positional Encoding, dan Transformer Blocks. Encoder dapat bekerja hanya pada patch yang terbuka. Tunggu!! Apa itu tadi??
Penyematan Masukan
T) Langkah sebelumnya adalah tentang penyembunyian dan sekarang saya katakan kita perlu membuka kedok??!!
A) Penyematan Masukan.
T) Bagaimana?
A) Ini sebenarnya adalah proyeksi linier yang mengubah ruang terbuka menjadi ruang laten. Rumusnya bisa dilihat di bawah ini:
Persamaan 1.
W dan b adalah parameter yang dapat dipelajari dan U adalah vektor input model dalam dimensi tersembunyi d.
Pengkodean Posisi
Lapisan Encoding Posisi Sederhana digunakan untuk menambahkan informasi sekuensial baru. Istilah “Dapat Dipelajari” ditambahkan, yang membantu menunjukkan kinerja yang lebih baik daripada sinusoidal. Selain itu, penyematan posisi yang dapat dipelajari menunjukkan hasil yang baik untuk deret waktu.
https://medium.com/media/c3f7327853c96457ca8daeef8a84e2a7/href
Blok Transformer
Para peneliti menggunakan 4 lapisan transformator, hanya lebih rendah dari jumlah umum dalam visi komputer dan tugas NLP. Ilustrasi jenis trafo yang digunakan di sini adalah arsitektur trafo yang paling banyak digunakan. Anda dapat membacanya secara menyeluruh di “Perhatian adalah semua yang Anda Butuhkan” yang diterbitkan pada tahun 2017. BTW, saya akan memberikan ringkasannya (Ilustrasi singkat ini berasal dari salah satu artikel saya sebelumnya, ‘Informer: Beyond Efficient Transformer for Long Peramalan Deret Waktu Urutan’):
Transformer adalah model pembelajaran mendalam baru yang disajikan dengan kecepatan tinggi. Mereka mengadopsi mekanisme perhatian-diri dan menunjukkan peningkatan yang signifikan dalam kinerja model pada tugas-tugas yang menantang di NLP dan Computer Vision. Arsitektur Transformer dapat digambarkan menjadi dua bagian yang dikenal sebagai encoder dan decoder, seperti yang diilustrasikan pada Gambar 4, di bawah ini:
Gambar 4. Arsitektur Transformator | [source]
Poin utama transformator adalah kemandiriannya dari lokalitas. Berbeda dengan model populer lainnya seperti CNN, transformer tidak dibatasi oleh lokalisasi. Selain itu, kami tidak mengusulkan arsitektur CNN apa pun di transformer; sebagai gantinya, kami menggunakan struktur berbasis Perhatian di transformator, yang memungkinkan kami mencapai hasil yang lebih baik.
Attention Architecture dapat diringkas pada Gambar 5:
Gambar 5 (Kiri) Skala Perhatian Dot-Product. (kanan) Multi-Head Attention terdiri dari beberapa lapisan perhatian yang berjalan secara paralel. | [source]
Fungsi Perhatian Produk Titik Berskala adalah Persamaan. 2
Persamaan. 2 [source]
Q (Query), K (Key), dan V(Vector) adalah masukan yang menjadi perhatian kami.
Untuk realisasi fundamental transformator yang lengkap, lihat “Hanya perhatian yang Anda butuhkan.” Ini memberi Anda pemahaman yang baik tentang perhatian dan transformer; sebenarnya, untuk pertama kalinya, saya benar-benar memahami model penting ini melalui makalah ini.
Saya pikir jumlah ringkasan ini cukup untuk transformer
https://medium.com/media/eaf0db66a7052b40266851d28cfb010d/href
3. Dekode
Gambar 6 | [source]
Dekoder mencakup serangkaian Blok Transformer. Ia bekerja dengan semua set tambalan (token bertopeng, dll.). Sebaliknya, MAE (Masked AutoEncoders), tidak ada penyematan posisi karena tambalan sudah memiliki informasi posisi. Jumlah lapisan hanya satu. Setelah itu, MLP sederhana (Multi-Layer Perceptions) digunakan (saya ingin memastikan bahwa tidak perlu mengilustrasikan MLP😉), yang membuat panjang output sama untuk setiap patch.
4. Target Rekonstruksi
Gambar 7 | [source]
Secara paralel, perhitungan atas patch yang disamarkan adalah untuk setiap titik data (i). Juga, mae (Mean-Absolute-Error) dipilih sebagai fungsi kerugian dari deret utama dan deret rekonstruksi.
Persamaan 3.
Itu dia!! Anda melakukannya! Tidak terlalu sulit bukan??!
Sekarang, mari kita lihat arsitekturnya:
Gambar 8 | [source]
https://medium.com/media/b78784131c08ec2643d2d3e2b08b58ea/href
Tamat
Sumber kode dan arsitektur masing-masing adalah ini dan ini.
Anda dapat menghubungi saya di Twitter di sini atau LinkedIn di sini. Terakhir, jika menurut Anda artikel ini menarik dan bermanfaat, Anda dapat mengikuti saya di media untuk menjangkau lebih banyak artikel dari saya.
Bagaimana Merancang Model Pra-pelatihan (TSFormer) Untuk Time Series? awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyoroti dan menanggapi cerita ini.
Diterbitkan melalui Menuju AI