Jun 20, 2025

Como usar a janela deslizante para autoencoders variacionais?

Deixe um recado

Os autoencodentes variacionais (VAEs) surgiram como uma ferramenta poderosa no campo do aprendizado de máquina, especialmente para tarefas como modelagem generativa, detecção de anomalias e compactação de dados. A técnica de janela deslizante, por outro lado, é um método bem conhecido no processamento de sinal e na análise de tempo - em série. Neste blog, exploraremos como usar a janela deslizante para autoencoders de variação e também destacarmos nossas ofertas como fornecedor de janelas deslizantes.

Entendendo cardcoders variacionais

Antes de investigar a aplicação da técnica de janela deslizante, é crucial entender o que são VAEs. Um VAE é um tipo de autoencoder que adiciona uma reviravolta probabilística à arquitetura tradicional de autoencoder. Em um autoencoder padrão, o objetivo é mapear uma entrada para uma representação dimensional inferior (a codificação) e, em seguida, reconstruir a entrada dessa codificação. Vaes, no entanto, assume que a codificação é amostrada de uma distribuição de probabilidade, geralmente uma distribuição gaussiana.

O codificador em um VAE produz a média e a variação da distribuição gaussiana da qual a codificação é amostrada. Essa abordagem probabilística permite que Vaes gerem novos pontos de dados semelhantes aos dados de treinamento. O decodificador pega a codificação amostrada e tenta reconstruir a entrada original. O treinamento de um VAE envolve minimizar uma função de perda que combina a perda de reconstrução (quão bem a entrada é reconstruída) e a perda de divergência de KL (que mede o quão perto a distribuição aprendida é de uma distribuição anterior, geralmente um gaussiano padrão).

A técnica de janela deslizante

A técnica de janela deslizante é um método simples, mas eficaz, para processar dados seqüenciais. Dada uma sequência de pontos de dados, uma janela de tamanho fixo é definida. Essa janela desliza sobre a sequência, um ponto de dados por vez (ou vários pontos de cada vez, dependendo do passo) e em cada posição, os dados dentro da janela são processados.

No contexto do VAES, a janela deslizante pode ser usada de várias maneiras. Uma aplicação comum está no tempo - análise em série. Por exemplo, se tivermos um tempo - série de leituras de sensores, podemos usar uma janela deslizante para extrair subsequências de um comprimento fixo. Essas subseqüências podem então ser usadas como entradas para o VAE.

Usando a janela deslizante para vaes

Preparação de dados

O primeiro passo no uso da janela deslizante para VAEs é a preparação de dados. Suponha que tenhamos um conjunto de dados de tempo - série (x = [x_1, x_2, \ cdots, x_n]). Definimos um tamanho de janela (W) e um passo (s). A partir do início da sequência, extraímos janelas de tamanho (W) com um passo de (s).

Seja (i) o índice inicial de uma janela. A (i) - TH Janela (w_i = [x_i, x_ {i + 1}, \ cdots, x_ {i + w - 1}]) é formada. O conjunto de todos esses Windows forma nosso novo conjunto de dados para treinar o VAE. Este novo conjunto de dados tem uma forma adequada para a entrada da VAE. Por exemplo, se o horário original - a série tiver uma única dimensão, cada janela terá uma forma de ((w, 1)).

importar numpy como np definitivamente sliding_window (dados, window_size, stride): num_windows = (len (dados) - window_size) // stride + 1 windows = [] para i no intervalo (num_windows): start = i * stride end = start + windows_size windows.apn (steping [start: end]): return np np np np (stride end = windows_size Windows.Apn (Data [start: end]): retorna np. np.array ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) window_size = 3 passadas = 1 janelas = sliding_window (time_series, window_size, stride) impressão (windows)

Treinando o VAE

Depois de prepararmos os dados usando a técnica de janela deslizante, podemos treinar o VAE. O processo de treinamento é semelhante ao treinamento padrão da VAE, mas com o novo conjunto de dados do Windows.

O codificador do VAE aprenderá a mapear cada janela para uma representação probabilística inferior - dimensional. O decodificador tentará reconstruir a janela original desta representação. Durante o treinamento, podemos monitorar a perda de reconstrução e a perda de divergência de KL para garantir que o modelo esteja aprendendo efetivamente.

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 = (lote, dim)) retorna z_mean + tf.exp (0,5 * z_log_var) * epsilon latent_dim = 2 coder_inputs = tf.keras.input (shape (window_size, 1) xs) xs.flatts = tf.keras.input) ativação = 'relu') (x) z_mean = sayers.dense (latent_dim, name = 'z_mean') (x) z_log_var = layers.dense (latent_dim, name = 'z_log_var') (x) z = sampling () ([z_mean, z_log tf.keras.model (coder_inputs, [z_mean, z_log_var, z], name = 'coder') decoder_inputs = tf.keras.input (shapes = (latent_dim,)) x = sayers.Dense (16, ativação = '') (decoder_dim)) x = ativação = 'linear') (x) decoder_outputs = sayers.rehape ((window_size, 1)) (x) decoder = tf.keras.model (decoder_inputs, decoder_outputs, name = 'decoder')) = decoder (coder (coder_inputs) [2] [2] [2]) 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, exis = 1) vae_loss = tf.reduce_mean (reconstruction_loss + kl_loss) vago.add_dd_dd_dd_loss_loss = tf.reduce_mean (recruta_loss + kl_loss) vross.add_dd_dd_dd_loss_loss = tf.reduce_mean (Reconstruction_loss + kl_loss) vae.compile (otimizador = 'adam') # treine o vae vae.fit (windows, épocas = 10, batch_size = 2)

Aplicações

Detecção de anomalia

Uma das aplicações mais importantes do uso da janela deslizante para VAEs é a detecção de anomalia nos dados da série Time -. Depois de treinar o VAE em dados normais (usando a técnica de janela deslizante), podemos usar o modelo treinado para detectar anomalias.

Dada uma nova série de horários, usamos novamente a janela deslizante para extrair janelas. Em seguida, passamos essas janelas através do VAE treinado e calculamos o erro de reconstrução para cada janela. Se o erro de reconstrução de uma janela estiver acima de um certo limite, podemos considerar essa janela (e potencialmente a parte correspondente da série - série) como uma anomalia.

Modelagem generativa

A abordagem da janela deslizante também pode ser usada para modelagem generativa de dados seqüenciais. Depois que o VAE é treinado em um conjunto de dados do Windows, podemos provar do espaço latente e usar o decodificador para gerar novas janelas. Essas janelas geradas podem ser combinadas para formar uma nova série de horários.

Nossas ofertas de janelas deslizantes

Como fornecedor de janelas deslizantes, oferecemos uma ampla gama de janelas deslizantes de alta qualidade. NossoJanelas deslizantessão conhecidos por sua operação e durabilidade suaves. Eles foram projetados para fornecer excelente ventilação e luz natural, mantendo a eficiência energética.

NossoJanelas de tempestade deslizantes horizontaissão especificamente projetados para suportar condições climáticas duras. Eles oferecem uma camada extra de proteção para sua casa ou escritório, reduzindo os custos de energia e a poluição por ruído.

Para aqueles com requisitos específicos, também fornecemosJanela deslizante personalizadasoluções. Nossa equipe de especialistas pode trabalhar com você para projetar e fabricar janelas deslizantes que atendam às suas necessidades exatas, seja um tamanho, forma ou estilo exclusivas.

Se você estiver interessado em nossos produtos de janela deslizante ou tiver alguma dúvida sobre o uso da técnica de janela deslizante em aplicativos de aprendizado de máquina, incentivamos você a nos contatar para uma discussão e compras adicionais. Estamos ansiosos para trabalhar com você para atender às suas necessidades.

Referências

Kingma, DP, & Welling, M. (2013). Auto - codificando bayes variacionais. Arxiv pré -impressão Arxiv: 1312.6114.
Bishop, CM (2006). Reconhecimento de padrões e aprendizado de máquina. Springer.

64ff668086ed94c5964fd79a156194b3

Enviar inquérito