Autoencoder variasional (VAE) telah muncul sebagai alat yang kuat di bidang pembelajaran mesin, terutama untuk tugas -tugas seperti pemodelan generatif, deteksi anomali, dan kompresi data. Teknik jendela geser, di sisi lain, adalah metode yang diketahui dengan baik dalam pemrosesan sinyal dan analisis waktu - seri. Di blog ini, kami akan mengeksplorasi cara menggunakan jendela geser untuk autoencoders variasional, dan juga menyoroti penawaran kami sebagai pemasok jendela geser.
Memahami Carscoders Variasional
Sebelum mempelajari penerapan teknik jendela geser, sangat penting untuk memahami apa itu VAE. VAE adalah jenis autoencoder yang menambahkan sentuhan probabilistik ke arsitektur autoencoder tradisional. Dalam autoencoder standar, tujuannya adalah untuk memetakan input ke representasi dimensi yang lebih rendah (pengkodean) dan kemudian merekonstruksi input dari pengkodean ini. VAE, bagaimanapun, berasumsi bahwa pengkodean diambil sampelnya dari distribusi probabilitas, biasanya distribusi Gaussian.
Encoder dalam VAE mengeluarkan rata -rata dan varian dari distribusi Gaussian dari mana pengkodean diambil sampelnya. Pendekatan probabilistik ini memungkinkan VAE untuk menghasilkan titik data baru yang mirip dengan data pelatihan. Dekoder kemudian mengambil pengkodean sampel dan mencoba merekonstruksi input asli. Pelatihan VAE melibatkan meminimalkan fungsi kerugian yang menggabungkan kehilangan rekonstruksi (seberapa baik inputnya direkonstruksi) dan kehilangan KL - divergensi (yang mengukur seberapa dekat distribusi yang dipelajari dengan distribusi sebelumnya, biasanya Gaussian standar).
Teknik jendela geser
Teknik jendela geser adalah metode sederhana namun efektif untuk memproses data berurutan. Diberi urutan titik data, jendela ukuran tetap ditentukan. Jendela ini meluncur di atas urutan, satu titik data pada satu waktu (atau beberapa titik pada satu waktu tergantung pada langkah), dan pada setiap posisi, data di dalam jendela diproses.
Dalam konteks VAE, jendela geser dapat digunakan dalam beberapa cara. Salah satu aplikasi umum adalah analisis waktu - seri. Misalnya, jika kita memiliki waktu - serangkaian pembacaan sensor, kita dapat menggunakan jendela geser untuk mengekstrak selanjutnya dengan panjang tetap. Selanjutnya ini kemudian dapat digunakan sebagai input ke VAE.
Menggunakan jendela geser untuk VAES
Persiapan data
Langkah pertama dalam menggunakan jendela geser untuk VAE adalah persiapan data. Misalkan kita punya waktu - dataset seri (x = [x_1, x_2, \ cdots, x_n]). Kami mendefinisikan ukuran jendela (W) dan langkah. Mulai dari awal urutan, kami mengekstrak jendela ukuran (w) dengan langkah (s).
Biarkan (i) menjadi indeks awal jendela. Jendela (i) - th (w_i = [x_i, x_ {i + 1}, \ cdots, x_ {i + w - 1}]) dibentuk. Himpunan semua Windows membentuk dataset baru kami untuk melatih VAE. Dataset baru ini memiliki bentuk yang cocok untuk input VAE. Misalnya, jika seri waktu asli - memiliki dimensi tunggal, setiap jendela memiliki bentuk ((w, 1)).
Impor numpy sebagai np def sliding_window (data, window_size, stride): num_windows = (len (data) - window_size) // stride + 1 windows = [] untuk i dalam jangkauan (num_windows): start = i * stride end = start + window_size windows. lamping (data [start: end] return np = stride end = start + window_size windows.Append (data [start: end] return np = start = start + window_size windows. lamping (data [start: end] return np = start = windows window_size windows. np.array ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) window_size = 3 stride = 1 windows = sliding_window (time_series, window_size, stride) cetak (windows)
Melatih VAE
Setelah kami menyiapkan data menggunakan teknik jendela geser, kami dapat melatih VAE. Proses pelatihan mirip dengan pelatihan VAE standar, tetapi dengan dataset baru Windows.
Encoder dari VAE akan belajar memetakan setiap jendela ke representasi probabilistik dimensi lebih rendah. Decoder kemudian akan mencoba merekonstruksi jendela asli dari representasi ini. Selama pelatihan, kita dapat memantau kehilangan rekonstruksi dan kehilangan KL - divergensi untuk memastikan bahwa model ini belajar secara efektif.
Impor TensorFlow sebagai TF dari TensorFlow.keras Lapisan Impor # Tentukan sampling kelas model VAE (Layers.layer): DEF Call (self, input): Z_mean, Z_LOG_VAR = input batch = tf.shape (z_mean) [0] dim = tf.spape (zumean = tf.shape (z_mean) [0] dim = tf.shape (zumean = tf.shape (z_mean) [0] dim = tf.shape (zumeAn tf.keras.backend.random_normal (bentuk = (batch, redup)) return z_mean + tf.exp (0,5 * z_log_var) * Epsilon latent_dim = 2 encoder_inputs = tf.keras.input (bentuk = (window_size, 1)) x = layers = tf.keras.input (bentuk = (window_size, 1)) x = layers = tf.keras.input (shape = window_size, 1)) x = layers = tf.keras. aktivasi = 'relu') (x) z_mean = layers.dense (latent_dim, name = 'z_mean') (x) z_log_var = layers.dense (latent_dim, name = 'z_log_var') (x) z = pengambilan sampel () ([z_mean, z_log_var ') (x) z = pengambilan sampel () ([z_mean, z_log_var') (x) z = pengambilan sampel () ([z_mean, z_log_var ') (x) z = sampling () ([z_mean, z_log_var') (x) z = pengambilan sampel () ([z_mean, z_log_var ') (x) z = sampling () ([Z_Mean, Z_LOG_VAR') tf.keras.model (encoder_inputs, [z_mean, z_log_var, z], name = 'encoder') decoder_inputs = tf.keras.input (bentuk = (latent_dim,)) x = layers.dense (16, aktivasi = 'relu') (decoder,)) x = layers.dense (16, aktivasi = 'relu') (decoder,)) x = layers.dense (16, aktivasi = 'Relu') (decoder)) aktivasi = 'linear') (x) decoder_outputs = layers.reshape ((window_size, 1)) (x) decoder = tf.keras.model (decoder_inputs, decoder_outputs, name = 'decoder') outputs = decoder (encoder (encoder_inputs) (decoder ') [decoder (encoder (encoder_inputs) (decoder') [decoder (encoder (encoder_inputs) (decoder ') [decoder (encoder (encoder_inputs) (decoder') [decoder (encoder (encoder_inputs) (decoder ') [ tf.keras.model (encoder_inputs, outputs, name = 'vae') # Tentukan fungsi kerugian reconstruction_loss = tf.keras.losses.mean_squared_error (encoder_input, outputs) reconstruction_loss = tf.reduce_sum (outputs = reconstruction_loss = tf.reduce_sum (outputs) outponsor = 1sum (tf.reduce_sum (outputs = * (1 + z_log_var - tf.square (z_mean) - tf.exp (z_log_var)) kl_loss = tf.reduce_sum (kl_loss, axis = 1) vae_loss = tf.reduce_mean (reconstruction_loss + KLOSS + KLOSS) VAE) (reconstruction_loss + KLOSS) KLOSS) (reconstruction_loss + KLOSS) KLOSS) (reconstruction_loss + KLOSS) KLOSS) KLOSS (reconstruction_loss + KLOSS + KLOSS) vae.compile (optimizer = 'adam') # latih vae vae.fit (windows, zaman = 10, batch_size = 2)
Aplikasi
Deteksi anomali
Salah satu aplikasi paling penting menggunakan jendela geser untuk VAE adalah deteksi anomali dalam data seri waktu. Setelah melatih VAE pada data normal (menggunakan teknik jendela geser), kita dapat menggunakan model terlatih untuk mendeteksi anomali.
Diberikan seri waktu baru, kami kembali menggunakan jendela geser untuk mengekstrak windows. Kami kemudian melewati jendela -jendela ini melalui VAE terlatih dan menghitung kesalahan rekonstruksi untuk setiap jendela. Jika kesalahan rekonstruksi jendela berada di atas ambang batas tertentu, kita dapat mempertimbangkan jendela itu (dan berpotensi bagian yang sesuai dari seri waktu -) sebagai anomali.
Pemodelan generatif
Pendekatan jendela geser juga dapat digunakan untuk pemodelan generatif data berurutan. Setelah VAE dilatih pada dataset Windows, kami dapat mencicipi dari ruang laten dan menggunakan dekoder untuk menghasilkan jendela baru. Jendela yang dihasilkan ini kemudian dapat digabungkan untuk membentuk seri waktu baru.
Penawaran Jendela Geser kami
Sebagai pemasok jendela geser, kami menawarkan berbagai jendela geser berkualitas tinggi. KitaJendela meluncurdikenal karena pengoperasian dan daya tahannya yang lancar. Mereka dirancang untuk memberikan ventilasi yang sangat baik dan cahaya alami sambil mempertahankan efisiensi energi.
KitaJendela badai geser horizontalsecara khusus direkayasa untuk menahan kondisi cuaca yang keras. Mereka menawarkan lapisan perlindungan tambahan untuk rumah atau kantor Anda, mengurangi biaya energi dan polusi suara.
Bagi mereka yang memiliki persyaratan spesifik, kami juga menyediakanJendela geser khusussolusi. Tim ahli kami dapat bekerja dengan Anda untuk merancang dan memproduksi jendela geser yang sesuai dengan kebutuhan Anda, apakah itu ukuran, bentuk, atau gaya yang unik.
Jika Anda tertarik dengan produk jendela geser kami atau memiliki pertanyaan tentang penggunaan teknik jendela geser dalam aplikasi pembelajaran mesin, kami mendorong Anda untuk menghubungi kami untuk diskusi dan pengadaan lebih lanjut. Kami berharap dapat bekerja sama dengan Anda untuk memenuhi kebutuhan Anda.
Referensi
Kingma, DP, & Welling, M. (2013). Auto - Encoding Variational Bayes. ARXIV Preprint ARXIV: 1312.6114.
Uskup, CM (2006). Pengenalan pola dan pembelajaran mesin. Peloncat.






