滑動視窗 是什麼?
Sliding Window:滑動視窗 的完整解釋
在序列資料上以固定大小的視窗逐步滑動取樣的技術,廣泛用於時間序列分析、NLP 和語音處理。
滑動視窗技術的核心直覺是:序列資料中的局部模式往往比全局模式更容易學習和識別,而且局部模式在序列的不同位置可能重複出現(平移不變性)。透過滑動視窗,演算法能系統性地掃描整個序列的每一個局部片段,提取特徵或生成訓練樣本。
在時間序列預測任務中,滑動視窗是生成訓練資料的標準方法。給定一段歷史觀測值序列(如股價、氣溫、電力消耗),以視窗大小 W 滑動,每個視窗覆蓋 t 到 t+W-1 的觀測值,作為輸入特徵,視窗後的一個或多個時間步作為預測目標。步長(Stride)決定每次視窗移動的距離:步長為 1 時相鄰視窗重疊最多,產生的樣本數最多;步長等於視窗大小時視窗不重疊,樣本數最少。視窗大小是重要超參數:太小無法捕捉長期趨勢,太大包含過多舊資訊、模型難以學習近期模式。
在卷積神經網路(CNN)中,卷積操作本質上就是一種滑動視窗:卷積核(Filter)在輸入特徵圖上滑動,在每個位置計算局部內積,產生輸出特徵圖。1D 卷積在時間序列或文字序列上滑動,2D 卷積在影像上水平和垂直方向雙向滑動。池化層(Pooling Layer)也使用滑動視窗取局部最大值或平均值,逐步降低特徵圖的空間解析度。
在自然語言處理中,滑動視窗有多種應用。詞袋(n-gram)特徵提取使用滑動視窗掃描文字,提取連續 n 個詞的組合。命名實體識別(NER)中,滑動視窗在句子上滑動,為每個位置的詞彙或詞彙組合判斷是否為命名實體。在處理超長文件時(如法律文件、學術論文),許多 LLM 應用採用「分塊滑動視窗」策略:以一定大小(如 512 tokens)的視窗切割文件,相鄰視窗有部分重疊(如 50 tokens 的重疊區),確保跨塊的語義不會完全斷裂,再對每個視窗分別召回,最後彙整結果。
在語音處理中,短時傅立葉變換(STFT)就是在音訊波形上應用滑動視窗(稱為「幀」),對每一幀計算頻域特徵(如 Mel 頻譜),再疊加成語譜圖(Spectrogram)作為語音模型的輸入。幀長(Frame Length)和跳步長度(Hop Length)是語音處理中對應視窗大小和步長的參數。
在異常偵測應用中,滑動視窗讓模型只需關注當前時間窗口內的資料,而非整個歷史序列,使得計算複雜度可控,也更能捕捉最近的異常模式。工業 IoT 感測器數據、網路流量異常、伺服器效能監控等場景都廣泛使用基於滑動視窗的異常偵測演算法。
iPAS 考試中滑動視窗的考點包括:視窗大小和步長的概念與效果、滑動視窗如何用於時間序列樣本生成、在卷積操作中視窗的角色、以及在特定應用場景(長文件 RAG 處理、語音特徵提取)中滑動視窗的具體用途。
滑動視窗的概念看似簡單,但其設計思路貫穿了現代 AI 系統的多個層次:從底層的卷積運算、中層的時序特徵提取,到上層的文件分塊與語境處理策略,都是同一個「以局部觀察近似全局理解」思想的不同體現。在設計處理序列資料的 AI 系統時,理解如何正確設定視窗大小與步長,並根據業務需求在樣本數量、計算效率與語義完整性之間取得平衡,是 AI 應用工程師的基本功。滑動視窗策略的失當(如視窗過小切斷關鍵語境、步長過大遺漏重要片段)是 RAG 系統和時序預測應用中常見的效能問題根源之一,值得在系統設計階段仔細規劃並透過實驗驗證最佳參數組合。 滑動視窗(Sliding Window)是序列資料分析中最基礎且廣泛應用的技術,在自然語言處理、時間序列分析、電腦視覺等領域各有不同的具體應用形式。
在自然語言處理中,滑動視窗是 N-gram 語言模型的基礎操作。透過以固定大小的視窗在文字序列上滑動,可以統計相鄰詞組的共現頻率,進而建構語言統計模型。在 Transformer 架構出現之前,這種方法是文字特徵提取的主要手段之一。
時間序列預測中,滑動視窗定義了模型的「感受野」:使用過去 k 個時間步的資料預測下一個時間步。視窗大小的選擇是重要的超參數:視窗過小會忽略長期依賴關係,視窗過大則增加計算複雜度並可能引入不相關的歷史資料。LSTM、GRU 等循環神經網路本質上是在學習自適應的滑動視窗機制。
在電腦視覺的傳統目標偵測方法中,滑動視窗掃描整張圖像的所有位置和尺度,在每個位置提取特徵並進行分類。這種暴力掃描方式計算成本極高,後來被錨框(Anchor Box)機制和基於區域的卷積神經網路(R-CNN 系列)所取代。
在 Transformer 的注意力機制中,局部自注意力(Local Self-Attention)採用滑動視窗限制每個 token 只能關注鄰近位置的 token,將全域自注意力的 O(n²) 複雜度降低為 O(n·k),這是 Longformer 等長文本模型的核心創新。