Jun 20, 2025

Как да използвате плъзгащия се прозорец за вариационни автокодери?

Остави съобщение

Вариационните автокодери (VAE) се превърнаха в мощен инструмент в областта на машинното обучение, особено за задачи като генеративно моделиране, откриване на аномалия и компресия на данни. Техниката на плъзгащия се прозорец, от друга страна, е добре известен метод в обработката на сигнала и серийния анализ във времето. В този блог ще проучим как да използваме плъзгащия се прозорец за вариационни автокодери, а също така ще подчертаем нашите предложения като доставчик на плъзгащи се прозорци.

Разбиране на вариационни автомобили

Преди да се задълбочите в прилагането на техниката на плъзгащия се прозорец, е от съществено значение да разберете какви са VAE. VAE е вид автокодер, който добавя вероятностно обрат на традиционната архитектура на автокодери. В стандартен автокодер целта е да се картографира вход към по -ниско представяне на размери (кодирането) и след това да се реконструира входа от това кодиране. VAE обаче приемат, че кодирането е извадено от разпределение на вероятността, обикновено гаусско разпределение.

Енкодерът във VAE извежда средната стойност и дисперсията на гауссовото разпределение, от което се взема проби от кодирането. Този вероятностен подход позволява на VAE да генерират нови точки от данни, подобни на данните за обучение. След това декодерът взема извадката кодиране и се опитва да реконструира оригиналния вход. Обучението на VAE включва минимизиране на функция за загуба, която комбинира загубата на реконструкция (колко добре се реконструира входът) и загубата на дивергенция на KL - което измерва колко близо е наученото разпределение за предварително разпределение, обикновено стандартен гаус).

Техниката на плъзгащия се прозорец

Техниката на плъзгащия се прозорец е прост, но ефективен метод за обработка на последователни данни. Като се има предвид последователност от точки от данни, се определя прозорец с фиксиран размер. Този прозорец се плъзга по последователността, една точка от данни в даден момент (или няколко точки на момент в зависимост от крачка) и на всяка позиция данните в прозореца се обработват.

В контекста на VAE, плъзгащият се прозорец може да се използва по няколко начина. Едно общо приложение е във времето - сериен анализ. Например, ако имаме серия от показания на сензора, можем да използваме плъзгащ се прозорец, за да извлечем последствия с фиксирана дължина. След това тези последствия могат да се използват като вход към VAE.

Използване на плъзгащия се прозорец за VAES

Подготовка на данни

Първата стъпка при използването на плъзгащия се прозорец за VAES е подготовката на данни. Да предположим, че имаме набор от данни от серия от време (x = [x_1, x_2, \ cdots, x_n]). Определяме размер на прозореца (W) и крачка (и). Започвайки от началото на последователността, ние извличаме прозорци с размер (w) с крачка от (и).

Нека (i) да бъде стартовият индекс на прозорец. (I) - th прозорец (w_i = [x_i, x_ {i + 1}, \ cdots, x_ {i + w - 1}]). Наборът от всички подобни Windows формира нашия нов набор от данни за обучение на vae. Този нов набор от данни има форма, подходяща за входа на VAE. Например, ако оригиналната серия във времето има едно измерение, всеки прозорец има форма ((W, 1)).

импортирайте numpy като np def sliding_window (данни, window_size, ъгъст): num_windows = (len (data) - window_size) // stride + 1 windows = [] за i в обхват (num_windows): start = i * stride end = start + window_size windows.append (data [start: end]) върнете се np. 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) Печат (Windows)

Обучение на vae

След като подготвим данните с помощта на техниката на плъзгащия се прозорец, можем да тренираме VAE. Процесът на обучение е подобен на стандартното обучение на VAE, но с новия набор от данни на Windows.

Енкодерът на VAE ще се научи да картографира всеки прозорец до по -ниско измерение вероятностно представяне. След това декодерът ще се опита да реконструира оригиналния прозорец от това представяне. По време на тренировките можем да следим загубата на реконструкция и загубата на дивергенция на KL, за да гарантираме, че моделът се учи ефективно.

Импортирайте tensorflow като tf от tensorflow.keras импортиране на слоеве # Определете вземане на проби от клас VAE (Layers.layer): Def Call (Self, Inputs): Z_Mean, Z_LOG_VAR = входове BATCT = 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 = слой. 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_log_var]) encoder = tf.keras.Model(encoder_inputs, [z_mean, z_log_var, z], name='encoder') decoder_inputs = tf.keras.Input(shape=(latent_dim,)) x = layers.Dense(16, activation='relu')(decoder_inputs) x = layers.Dense(window_size, Activation = 'linear') (x) decoder_outputs = layers.reshape ((window_size, 1)) (x) decoder = tf.keras.model (decoder_inputs, decoder_outputs, name = 'decoder') изход = декодер (encoder (encoder_inputs) [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 = tf.reduce_mean (reconstruction_loss + kl_loss) vae.add_loss (vae_loss) vae.compile (оптимиз # Тренирайте vae vae.fit (Windows, епохи = 10, BATCH_SIZE = 2)

Приложения

Откриване на аномалия

Едно от най -важните приложения за използване на плъзгащия се прозорец за VAES е откриването на аномалия във времето - данни от сериите. След трениране на vae на нормални данни (използвайки техниката на плъзгащия се прозорец), можем да използваме обучения модел за откриване на аномалии.

Като се има предвид нова серия от времето -, ние отново използваме плъзгащия се прозорец за извличане на прозорци. След това преминаваме тези прозорци през обучения VAE и изчисляваме грешката в реконструкцията за всеки прозорец. Ако грешката на реконструкцията на прозорец е над определен праг, можем да разгледаме този прозорец (и потенциално съответната част от времевата серия) като аномалия.

Генеративно моделиране

Подходът на плъзгащия се прозорец може да се използва и за генеративно моделиране на последователни данни. След като VAE се обучава на набор от данни на Windows, можем да пробваме от латентното пространство и да използваме декодера за генериране на нови прозорци. След това тези генерирани прозорци могат да бъдат комбинирани, за да образуват нова серия от време.

Нашите предложения за плъзгащи се прозорци

Като доставчик на плъзгащи се прозорци, ние предлагаме широка гама от висококачествени плъзгащи се прозорци. НашитеПлъзгащи се прозорциса известни със своята плавна работа и издръжливост. Те са проектирани да осигуряват отлична вентилация и естествена светлина, като същевременно поддържат енергийната ефективност.

НашитеХоризонтални плъзгащи се бурни прозорциса специално проектирани, за да издържат на тежки метеорологични условия. Те предлагат допълнителен слой защита за вашия дом или офис, намалявайки енергийните разходи и замърсяването на шума.

За тези със специфични изисквания ние също предоставямеПерсонализиран плъзгащ се прозорецрешения. Нашият екип от експерти може да работи с вас за проектиране и производство на плъзгащи се прозорци, които отговарят на вашите точни нужди, независимо дали това е уникален размер, форма или стил.

Ако се интересувате от нашите продукти за плъзгане на прозореца или имате въпроси относно използването на техниката на плъзгащия се прозорец в приложенията за машинно обучение, ние ви насърчаваме да се свържете с нас за по -нататъшно обсъждане и поръчки. Очакваме с нетърпение да работим с вас, за да отговорим на вашите нужди.

ЛИТЕРАТУРА

Kingma, DP, & Welling, M. (2013). Автоматично - кодиране на вариационни байки. Arxiv Preprint Arxiv: 1312.6114.
Bishop, CM (2006). Разпознаване на модели и машинно обучение. Спрингър.

64ff668086ed94c5964fd79a156194b3

Изпрати запитване