Variations Autoencoder (VAEs) haben sich im Bereich des maschinellen Lernens als leistungsstarkes Werkzeug entwickelt, insbesondere für Aufgaben wie generative Modellierung, Anomalieerkennung und Datenkomprimierung. Die Gleitfenstertechnik hingegen ist eine gut bekannte Methode in der Signalverarbeitung und -serie -Serie -Analyse. In diesem Blog werden wir untersuchen, wie das Schiebebefenster für Variations -Autocoder verwendet, und unsere Angebote als Sliding -Fensterlieferant hervorheben.
Variationskarscodierer verstehen
Bevor Sie sich mit der Anwendung der Schiebefenstertechnik befassen, ist es wichtig zu verstehen, was Vaes sind. Eine VAE ist eine Art von Autocoder, der der traditionellen Autoencodierarchitektur eine probabilistische Wendung verleiht. In einem Standard -Autocoder ist das Ziel, einen Eingang einer niedrigeren dimensionalen Darstellung (die Codierung) zuzuordnen und dann die Eingabe aus dieser Codierung zu rekonstruieren. Vaes gehen jedoch davon aus, dass die Codierung aus einer Wahrscheinlichkeitsverteilung abgetastet wird, typischerweise eine Gaußsche Verteilung.
Der Encoder in einem VAE gibt den Mittelwert und die Varianz der Gaußschen Verteilung aus, aus der die Codierung abgetastet wird. Dieser probabilistische Ansatz ermöglicht es VAES, neue Datenpunkte zu generieren, die den Trainingsdaten ähneln. Der Decoder nimmt dann die abgetastete Codierung ein und versucht, den ursprünglichen Eingang zu rekonstruieren. Das Training einer VAE beinhaltet die Minimierung einer Verlustfunktion, die den Rekonstruktionsverlust (wie gut der Eingang rekonstruiert wird) und den KL -Divergenzverlust (der misst, wie nahe die gelernte Verteilung an einer vorherigen Verteilung ist, normalerweise ein Standard -Gaußscher).
Die Schiebetechnik
Die Schiebefenstertechnik ist eine einfache und dennoch effektive Methode zur Verarbeitung von sequentiellen Daten. Bei einer Abfolge von Datenpunkten wird ein Fenster einer festen Größe definiert. Dieses Fenster rutscht über die Sequenz, ein Datenpunkt jeweils (oder mehrere Punkte nach dem anderen Zeitpunkt, abhängig vom Schritt), und an jeder Position werden die Daten innerhalb des Fensters verarbeitet.
Im Kontext von Vaes kann das Schiebebefenster auf verschiedene Weise verwendet werden. Eine gemeinsame Anwendung ist in der Zeit - Serienanalyse. Wenn wir beispielsweise eine Reihe von Sensorwerte haben, können wir ein Gleitfenster verwenden, um Untersequenzen einer festen Länge zu extrahieren. Diese Untersequenzen können dann als Eingänge für die VAE verwendet werden.
Verwenden des Schiebefensters für Vaes
Datenvorbereitung
Der erste Schritt bei der Verwendung des Schiebungsfensters für Vaes ist die Datenvorbereitung. Angenommen, wir haben eine Zeit - Seriendatensatz (x = [x_1, x_2, \ cdots, x_n]). Wir definieren eine Fenstergröße (W) und einen Schritt (s). Ab dem Beginn der Sequenz extrahieren wir mit einem Schritt von (s) Fenster der Größe (W).
Sei (i) der Startindex eines Fensters. Das Fenster (i) - Th (w_i = [x_i, x_ {i + 1}, \ cdots, x_ {i + w - 1}]) wird gebildet. Die Menge aller dieser Windows bildet unseren neuen Datensatz zum Training der VAE. Dieser neue Datensatz hat eine Form, die für die Eingabe der VAE geeignet ist. Wenn beispielsweise die ursprüngliche Zeit - Serie eine einzelne Dimension hat, hat jedes Fenster eine Form von ((w, 1)).
Importieren Sie Numpy als NP Def Sliding_Window (Daten, Window_Size, Stride): num_windows = (Len (Daten) - Window_Size) // Stride + 1 Windows = [] Für i in Bereich (num_windows): start = i * stride end = start + fenster_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) Druck (Windows)
Training der Vae
Sobald wir die Daten mithilfe der Schieberfenstertechnik erstellt haben, können wir die VAE trainieren. Der Trainingsprozess ähnelt dem Standard -VAE -Training, jedoch mit dem neuen Datensatz von Windows.
Der Encoder der VAE lernt, jedes Fenster einer niedrigeren dimensionalen probabilistischen Darstellung abzubilden. Der Decoder versucht dann, das ursprüngliche Fenster aus dieser Darstellung zu rekonstruieren. Während des Trainings können wir den Rekonstruktionsverlust und den KL -Divergenzverlust überwachen, um sicherzustellen, dass das Modell effektiv lernt.
import tensorflow as tf from tensorflow.keras import layers # Define the VAE model class Sampling(layers.Layer): def call(self, inputs): z_mean, z_log_var = inputs batch = tf.shape(z_mean)[0] dim = tf.shape(z_mean)[1] epsilon = tf.keras.backend.random_normal(shape=(batch, dim)) return z_mean + tf.exp(0.5 * z_log_var) * epsilon latent_dim = 2 encoder_inputs = tf.keras.Input(shape=(window_size, 1)) x = layers.Flatten()(encoder_inputs) x = layers.Dense(16, Activation = '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 = Sampling () ([Z_Mean) (Z_MEAN, Z_LOG_VAR]). tf.keras.model (CCCOCER_INPUTS, [Z_MEAN, Z_LOG_VAR, Z], Name = 'Encoder') decoder_inputs = tf.keras.input (Form = (latent_dim,)) x = Schichten.Dense (16, activation = 'relu') (decoder_input) x = leuchten (Fenster. Activation = 'linear') (x) decoder_outputs = layers.reshape ((fowster_size, 1)) (x) decoder = tf.keras.model (decoder_inputs, decoder_outputs, name = 'decoder') outputs = decoder (ccoder (ccoders) [2] [2] [2]) vae = vader (ccoder (ccoderputs)) [2] [2] [2]) vae = tf.keras.Model(encoder_inputs, outputs, name='vae') # Define the loss function reconstruction_loss = tf.keras.losses.mean_squared_error(encoder_inputs, outputs) reconstruction_loss = tf.reduce_sum(reconstruction_loss, axis=[1, 2]) kl_loss = - 0.5 * (1 + Z_Log_var - tf.square (z_mean) - tf.exp (z_log_var)) kl_loss = tf.reduce_sum (kl_loss, axis = 1) vae_loss vae.comPile (optimizer = 'adam') # trainieren Sie die vae vae.fit (Windows, epochs = 10, batch_size = 2)
Anwendungen
Anomalieerkennung
Eine der wichtigsten Anwendungen bei der Verwendung des Schiebungsfensters für VAES ist die Anomalie -Erkennung in der Zeit - Seriendaten. Nach dem Training der VAE in normalen Daten (unter Verwendung der Schiebungsfenstertechnik) können wir das geschulte Modell verwenden, um Anomalien zu erkennen.
Bei einer neuen Zeit - Serie verwenden wir erneut das Schieberfenster, um Fenster zu extrahieren. Wir geben diese Fenster dann durch die geschulten VAE und berechnen den Rekonstruktionsfehler für jedes Fenster. Wenn der Rekonstruktionsfehler eines Fensters über einem bestimmten Schwellenwert liegt, können wir dieses Fenster (und möglicherweise den entsprechenden Teil der Zeit - Serie) als Anomalie betrachten.
Generative Modellierung
Der Ansatz für Schiebungsfenster kann auch zur generativen Modellierung von sequentiellen Daten verwendet werden. Sobald die VAE auf einem Datensatz mit Fenstern trainiert wurden, können wir aus dem latenten Raum probieren und den Decoder verwenden, um neue Fenster zu generieren. Diese generierten Fenster können dann zu einer neuen Zeit -Serie kombiniert werden.
Unsere Schiebenfensterangebote
Als Lieferant für Schiebefenster bieten wir eine breite Palette von Schiebern mit hoher Qualität. UnserGleitende Fenstersind bekannt für ihren reibungslosen Betrieb und ihre Haltbarkeit. Sie sind so konzipiert, dass sie exzellente Belüftung und natürliches Licht bieten und gleichzeitig die Energieeffizienz aufrechterhalten.
UnserHorizontale Schiebersturmfenstersind speziell so konstruiert, dass sie den harten Wetterbedingungen standhalten. Sie bieten eine zusätzliche Schutzschicht für Ihr Zuhause oder Büro und senken die Energiekosten und die Lärmbelastung.
Für diejenigen mit spezifischen Anforderungen stellen wir auch vorBenutzerdefiniertes SchiebenfensterLösungen. Unser Expertenteam kann mit Ihnen zusammenarbeiten, um Schiebernfenster zu entwerfen und herzustellen, die Ihren genauen Anforderungen entsprechen, unabhängig davon, ob es sich um eine einzigartige Größe, Form oder einen einzigartigen Stil handelt.
Wenn Sie an unseren Schieberfensterprodukten interessiert sind oder Fragen zur Verwendung der Schiebungsfenstertechnik in Anwendungen für maschinelles Lernen haben, empfehlen wir Ihnen, uns für eine weitere Diskussion und Beschaffung zu kontaktieren. Wir freuen uns darauf, mit Ihnen zusammenzuarbeiten, um Ihre Bedürfnisse zu erfüllen.
Referenzen
Kingma, DP & Welling, M. (2013). Auto - Codierungsvariation Bayes. Arxiv Preprint Arxiv: 1312.6114.
Bishop, CM (2006). Mustererkennung und maschinelles Lernen. Springer.






