特に生成モデリング、異常検出、データ圧縮などのタスクでは、機械学習の分野で強力なツールとして変分自動エンコーダー(VAE)が浮上しています。一方、スライディングウィンドウ手法は、信号処理と時間シリーズ分析におけるよく知られている方法です。このブログでは、変分自動エンコーダーにスライディングウィンドウを使用する方法を探り、スライディングウィンドウサプライヤーとしての製品も強調表示されます。
バリエーションカースコーダーの理解
スライドウィンドウのテクニックの適用を掘り下げる前に、vaesが何であるかを理解することが重要です。 VAEは、従来の自動エンコーダーアーキテクチャに確率的なひねりを加える一種の自動エンコーダーです。標準の自動エンコーダーでは、目標は、入力をより低い寸法表現(エンコード)にマッピングし、このエンコードからの入力を再構築することです。ただし、VAEは、エンコードが確率分布、通常はガウス分布からサンプリングされていると想定しています。
VAEのエンコーダーは、エンコードがサンプリングされるガウス分布の平均と分散を出力します。この確率的アプローチにより、VAEはトレーニングデータと同様の新しいデータポイントを生成できます。次に、デコーダーはサンプリングされたエンコードを取り、元の入力を再構築しようとします。 VAEのトレーニングには、再構成損失(入力が再構築されている)とKL-発散損失を組み合わせた損失関数を最小限に抑えることが含まれます(これは、学習分布が事前の分布にどれだけ近いか、通常は標準のガウス)を測定します。
スライドウィンドウのテクニック
スライディングウィンドウ手法は、シーケンシャルデータを処理するためのシンプルで効果的な方法です。一連のデータポイントが与えられた場合、固定サイズのウィンドウが定義されています。このウィンドウは、一度に1つのデータポイント(またはストライドに応じて一度に複数のポイント)にスライドし、各位置でウィンドウ内のデータが処理されます。
VAESのコンテキストでは、スライディングウィンドウはいくつかの方法で使用できます。 1つの一般的なアプリケーションは、時間内のシリーズ分析です。たとえば、時間 - センサーの測定値のシリーズがある場合、スライディングウィンドウを使用して、固定長のサブシーケンスを抽出できます。これらのサブシーケンスは、VAEへの入力として使用できます。
vaesのスライディングウィンドウを使用します
データの準備
VAESにスライディングウィンドウを使用する最初のステップは、データ準備です。時間があると仮定します-seriesデータセット(x = [x_1、x_2、\ cdots、x_n])。ウィンドウサイズ(W)とストライド(S)を定義します。シーケンスの先頭から、サイズ(w)の窓を抽出します(s)。
(i)をウィンドウの開始インデックスとします。 (i)-thウィンドウ(w_i = [x_i、x_ {i + 1}、\ cdots、x_ {i + w -1}])が形成されます。そのようなすべてのウィンドウのセットは、VAEをトレーニングするための新しいデータセットを形成します。この新しいデータセットには、VAEの入力に適した形状があります。たとえば、元の時間系列に単一の次元がある場合、各ウィンドウには((w、1))の形状があります。
np def sliding_window(data、window_size、stride)としてnumpyをインポートする:num_windows =(len(data) - window_size)// sride + 1 windows = [] for i in range(num_windows):start = i * stride end = start + window_size windows.append(end])return 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)print(windows)
vaeの訓練
スライディングウィンドウテクニックを使用してデータを準備したら、VAEを訓練できます。トレーニングプロセスは、標準のVAEトレーニングに似ていますが、Windowsの新しいデータセットがあります。
VAEのエンコーダーは、各ウィンドウをより低い寸法の確率表現にマッピングすることを学びます。デコーダーは、この表現から元のウィンドウを再構築しようとします。トレーニング中に、再構成損失とKL-発散損失を監視して、モデルが効果的に学習していることを確認できます。
tensorflow.kerasのインポートレイヤーからtfとしてtensorflowをインポートする#vaeモデルクラスサンプリング(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 =] 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)) Activation = 'Relu')(x)(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] necoder = necoder = tf.keras.model(encoder_inputs、[z_mean、z_log_var、z]、name = 'encoder')decoder_inputs = tf.keras.inputs(latent_dim、))x = layers.dense(16、activation = 'lelu')(decoder_utter_utter_utter_puts)x = leays.dense( Activation = 'linear')(x)(x)decoder_outputs = layers.reshape((window_size、1))(x)decoder = tf.keras.model(decoder_inputs、decoder_outputs、name = 'decoder')outputs = decoder(encoder_inputs)vae = decoder(encoder_inputs)vae = decoder tf.keras.model(encoder_inputs、outputs、name = 'vae') + 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)v.add_loss(vae_loss) vae.compile(optimizer = 'adam')
アプリケーション
異常検出
スライディングウィンドウをVAESに使用する最も重要なアプリケーションの1つは、時間内の異常検出です - シリーズデータ。通常のデータでVAEをトレーニングした後(スライドウィンドウ技術を使用)、訓練されたモデルを使用して異常を検出できます。
新しい時間 - シリーズが与えられた場合、スライドウィンドウを再度使用してウィンドウを抽出します。次に、これらのウィンドウを訓練されたVAEに通し、各ウィンドウの再構成エラーを計算します。ウィンドウの再構成エラーが特定のしきい値を上回っている場合、そのウィンドウ(および潜在的には、時間 - シリーズの対応する部分)を異常と見なすことができます。
生成モデリング
スライディングウィンドウアプローチは、シーケンシャルデータの生成モデリングにも使用できます。 VAEがWindowsのデータセットで訓練されたら、潜在スペースからサンプリングし、デコーダーを使用して新しいウィンドウを生成できます。次に、これらの生成されたウィンドウを組み合わせて、新しい時間 - シリーズを形成できます。
私たちのスライディングウィンドウの提供
スライディングウィンドウサプライヤーとして、幅広い高品質のスライドウィンドウを提供しています。私たちの滑空窓スムーズな操作と耐久性で知られています。エネルギー効率を維持しながら、優れた換気と自然光を提供するように設計されています。
私たちの水平スライドストームウィンドウ厳しい気象条件に耐えるように特別に設計されています。彼らはあなたの家やオフィスに追加の保護層を提供し、エネルギーコストと騒音公害を削減します。
特定の要件を持っている人のために、私たちも提供しますカスタムスライドウィンドウソリューション。私たちの専門家チームは、ユニークなサイズ、形状、スタイルであろうと、あなたの正確なニーズに合ったスライディングウィンドウを設計および製造するためにお客様と協力できます。
スライディングウィンドウ製品に興味がある場合、または機械学習アプリケーションでスライドウィンドウテクニックを使用することについて質問がある場合は、詳細な議論と調達についてお問い合わせください。あなたのニーズを満たすためにあなたと協力することを楽しみにしています。
参照
Kingma、DP、&Welling、M。(2013)。自動 - エンコーディングバリエーションベイズ。 arxiv preprint arxiv:1312.6114。
ビショップ、CM(2006)。パターン認識と機械学習。スプリンガー。





