本文將詳細(xì)探討一種基于Transformer架構(gòu)的時(shí)間序列去噪模型的構(gòu)建過程及其應(yīng)用價(jià)值。

Transformer是一種專為處理序列數(shù)據(jù)而設(shè)計(jì)的高效神經(jīng)網(wǎng)絡(luò)架構(gòu)。自2017年問世以來,Transformer已在自然語言處理(NLP)領(lǐng)域取得顯著成就,并成為現(xiàn)代人工智能平臺(tái)的核心組件,如OpenAI的ChatGPT[1]、Anthropic的Claude[2]以及Google的Gemini[3]等。除了語言模型應(yīng)用外,Transformer架構(gòu)的序列建模能力使其在多種序列數(shù)據(jù)處理任務(wù)中展現(xiàn)出巨大潛力,其中包括本文重點(diǎn)討論的時(shí)間序列去噪應(yīng)用。

打開網(wǎng)易新聞 查看精彩圖片

時(shí)間序列數(shù)據(jù)在現(xiàn)實(shí)世界中廣泛存在,從物理傳感器采集的數(shù)據(jù)(如熱敏電阻、加速度計(jì)等測量結(jié)果)到金融市場的證券價(jià)格波動(dòng)。這些數(shù)據(jù)通常包含各種來源的噪聲干擾,這些噪聲可能掩蓋了數(shù)據(jù)中潛在的重要模式和趨勢。傳統(tǒng)的時(shí)間序列去噪方法,如移動(dòng)平均技術(shù)和卡爾曼濾波器[4]等,長期以來一直是處理此類問題的標(biāo)準(zhǔn)工具。

移動(dòng)平均法雖然實(shí)現(xiàn)簡單,但由于其固有的平均機(jī)制——每個(gè)數(shù)據(jù)點(diǎn)都與其前序點(diǎn)進(jìn)行平均計(jì)算,因此會(huì)引入明顯的時(shí)間滯后,這在需要實(shí)時(shí)處理的應(yīng)用場景中可能產(chǎn)生不利影響。

在許多專業(yè)領(lǐng)域中,卡爾曼濾波器[4]被視為時(shí)間序列去噪的首選技術(shù)??柭鼮V波器的應(yīng)用通常需要針對(duì)特定監(jiān)測系統(tǒng)進(jìn)行復(fù)雜且定制化的實(shí)現(xiàn),這增加了其應(yīng)用難度和適用范圍的局限性。

隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,特別是Transformer架構(gòu)的出現(xiàn),為解決經(jīng)典的時(shí)間序列去噪問題提供了一種新穎且具有潛力的方法。這種基于神經(jīng)網(wǎng)絡(luò)的方法有望克服傳統(tǒng)技術(shù)的局限性,并在復(fù)雜的去噪任務(wù)中展現(xiàn)出優(yōu)越性能。

本文將系統(tǒng)性地介紹時(shí)間序列去噪問題的理論基礎(chǔ),并詳細(xì)闡述如何利用TensorFlow框架構(gòu)建一個(gè)在合成數(shù)據(jù)集上訓(xùn)練的時(shí)間序列去噪Transformer模型。

通過對(duì)這個(gè)精簡但功能完整的Transformer模型的深入分析,我們將能夠更好地理解經(jīng)典論文"Attention is All You Need"[5]中提出的核心概念,特別是位置編碼(Positional Encoding)和自注意力(Self-Attention)機(jī)制的工作原理及其在實(shí)際應(yīng)用中的重要性。

本文所使用的全部源代碼已在GitHub倉庫[6]開放獲取,供讀者參考和擴(kuò)展。

時(shí)間序列噪聲

時(shí)間序列噪聲是指序列數(shù)據(jù)中的非預(yù)期波動(dòng),這些波動(dòng)通常會(huì)掩蓋數(shù)據(jù)中蘊(yùn)含的潛在模式和趨勢。噪聲可能源自多種因素,包括傳感器精度不足、環(huán)境干擾、市場隨機(jī)波動(dòng)或計(jì)算過程中的誤差累積等。

開發(fā)高效的去噪技術(shù)對(duì)于從時(shí)間序列數(shù)據(jù)中提取有意義的信息、提高傳感器測量精度和優(yōu)化決策過程具有至關(guān)重要的意義。

Transformer模型

打開網(wǎng)易新聞 查看精彩圖片

本文設(shè)計(jì)的噪聲去除Transformer模型由四個(gè)主要組件構(gòu)成:輸入嵌入層(Input Embedding Layer)、位置編碼器(Positional Encoder)、Transformer編碼器(包含全局自注意力層和前饋神經(jīng)網(wǎng)絡(luò)),以及輸出映射層。輸出映射層負(fù)責(zé)將Transformer編碼器的高維輸出轉(zhuǎn)換回原始信號(hào)空間,從而生成去噪后的信號(hào)。

具體而言,輸入嵌入層將長度為1000的噪聲輸入向量映射到32維的特征空間中。位置編碼器則在輸入嵌入中為每個(gè)元素添加位置信息編碼,使模型能夠感知序列中元素的相對(duì)位置。Transformer編碼器通過全局自注意力機(jī)制對(duì)輸入序列中的各個(gè)時(shí)間步進(jìn)行分析,從而有效識(shí)別并去除噪聲成分。最后,模型的輸出層將編碼器輸出從高維特征空間(1000, 32)映射回一維的去噪信號(hào)向量(長度為1000)。

接下來,我們將深入探討Transformer模型的各個(gè)關(guān)鍵組件的實(shí)現(xiàn)細(xì)節(jié)和工作原理。

輸入嵌入

在Transformer模型中,輸入嵌入層的主要作用是將形狀為(1000, )的一維噪聲時(shí)間序列數(shù)據(jù)映射到形狀為(1000,d_model)的高維表示空間,其中d_model= 32表示映射后的特征維度。這一轉(zhuǎn)換過程通過標(biāo)準(zhǔn)的密集神經(jīng)網(wǎng)絡(luò)層[7]實(shí)現(xiàn)。經(jīng)過這一處理,原始輸入中的每個(gè)時(shí)間步值都被轉(zhuǎn)換為一個(gè)32維的向量表示。

輸入嵌入層的輸出計(jì)算公式如下:

打開網(wǎng)易新聞 查看精彩圖片

公式中,X表示長度為1000的輸入向量,W表示形狀為(1000, 32)的可學(xué)習(xí)權(quán)重矩陣,b表示長度為32的偏置向量。經(jīng)過此層處理后,輸出的張量形狀為(1000, 32)。

位置編碼器

由于Transformer架構(gòu)本身對(duì)輸入序列中元素的順序沒有內(nèi)在感知能力,因此需要通過位置編碼器為輸入添加位置信息。位置編碼器通過計(jì)算一組特定的正弦函數(shù)值并將其與輸入嵌入相加來實(shí)現(xiàn)這一功能。位置編碼的計(jì)算公式如下:

打開網(wǎng)易新聞 查看精彩圖片

其中,pos表示序列中的位置索引(取值范圍為0, 1, ..., 999),i表示嵌入維度(對(duì)于d_model= 32,取值為0, 1, ..., 31),10000是一個(gè)縮放因子,其作用是確保位置編碼與輸入嵌入的數(shù)值量級(jí)相近,便于模型學(xué)習(xí)。

打開網(wǎng)易新聞 查看精彩圖片

序列長度為1000的32維嵌入的位置編碼可視化

位置編碼器層的輸出是輸入嵌入與位置編碼的元素級(jí)加和:

打開網(wǎng)易新聞 查看精彩圖片

其中,Length(X) = 1000代表序列長度,d_model= 32代表嵌入空間的維度。

我們Transformer模型中的PositionalEncoding層實(shí)現(xiàn)代碼如下:

class PositionalEncoding(tf.keras.layers.Layer):
def __init__(self, seq_len, d_model, **kwargs):
super(PositionalEncoding, self).__init__()
self.pos_encoding = self.get_positional_encoding(seq_len, d_model)
def get_positional_encoding(self, seq_len, d_model, n=10000):
# 創(chuàng)建位置數(shù)組(形狀:[seq_len, 1])
position = np.arange(seq_len)[:, np.newaxis]
# 創(chuàng)建維度數(shù)組(形狀:[d_model/2])
denominator = np.power(n, 2 * np.arange(0, d_model, 2) / d_model)
# 計(jì)算正弦函數(shù)并堆疊它們
P = np.zeros((seq_len, d_model))
P[:, 0::2] = np.sin(position / denominator) # 對(duì)偶數(shù)索引應(yīng)用sin
P[:, 1::2] = np.cos(position / denominator) # 對(duì)奇數(shù)索引應(yīng)用cos
# 轉(zhuǎn)換為TensorFlow張量并重塑為(1, seq_len, d_model)
P_tensor = tf.convert_to_tensor(P, dtype=tf.float32)
P_tensor_reshaped = tf.reshape(P_tensor, (1, seq_len, d_model))
return P_tensor_reshaped
def call(self, inputs):
return inputs + self.pos_encoding[:, :tf.shape(inputs)[1], :]

Transformer編碼器

Transformer編碼器構(gòu)成了噪聲去除Transformer模型的核心部分,它由兩個(gè)主要子層組成:全局自注意力層和前饋神經(jīng)網(wǎng)絡(luò)[8]。為了優(yōu)化模型的訓(xùn)練過程并提高性能,在全局自注意力層和前饋網(wǎng)絡(luò)之后都應(yīng)用了殘差連接(將層輸入直接加到其輸出)和層歸一化步驟,這有助于緩解梯度消失問題并提高訓(xùn)練穩(wěn)定性。

全局自注意力[5]層使Transformer能夠在處理輸入序列時(shí),根據(jù)當(dāng)前生成輸出的需要自適應(yīng)地關(guān)注序列中的不同時(shí)間步。與循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)或卷積神經(jīng)網(wǎng)絡(luò)(CNN)不同,全局自注意力機(jī)制能夠同時(shí)處理整個(gè)輸入序列,從而有效學(xué)習(xí)全局依賴關(guān)系,這對(duì)于復(fù)雜的時(shí)間序列去噪任務(wù)尤為重要。

本模型使用TensorFlow提供的MultiHeadAttention[9]層來實(shí)現(xiàn)自注意力計(jì)算。具體計(jì)算過程如下:

首先,全局自注意力層將形狀為(1000, 32)的位置編碼器輸出X作為輸入,分別生成查詢矩陣Q、鍵矩陣K和值矩陣V:

打開網(wǎng)易新聞 查看精彩圖片

其中,W_Q、W_K和W_V是形狀為(1000,d?)的可學(xué)習(xí)權(quán)重矩陣。在單頭注意力的情況下,d?=d_model/H,其中H= 1是注意力頭的數(shù)量,因此對(duì)于本模型,d?= 32。

接下來,通過計(jì)算查詢矩陣Q與鍵矩陣K的轉(zhuǎn)置之間的點(diǎn)積,得到注意力分?jǐn)?shù):

打開網(wǎng)易新聞 查看精彩圖片

這個(gè)注意力分?jǐn)?shù)是一個(gè)形狀為(1000, 1000)的矩陣,其中每個(gè)元素表示輸入序列中一個(gè)時(shí)間步對(duì)另一個(gè)時(shí)間步的關(guān)注程度。

然后,對(duì)注意力分?jǐn)?shù)進(jìn)行縮放并應(yīng)用softmax函數(shù),以穩(wěn)定訓(xùn)練過程并獲得概率化的注意力分布,確保注意力權(quán)重矩陣的每一行元素和為1:

打開網(wǎng)易新聞 查看精彩圖片

最后,通過對(duì)形狀為(1000, 1000)的注意力權(quán)重矩陣與形狀為(1000, 32)的值矩陣V進(jìn)行點(diǎn)積運(yùn)算,計(jì)算得到全局自注意力層的輸出,其形狀為(1000, 32):

全局自注意力層GlobalSelfAttention層的具體實(shí)現(xiàn)代碼如下:

class BaseAttention(tf.keras.layers.Layer):
def __init__(self, **kwargs):
super().__init__()
self.mha = tf.keras.layers.MultiHeadAttention(**kwargs)
self.add = tf.keras.layers.Add()
self.layernorm = tf.keras.layers.LayerNormalization()
class GlobalSelfAttention(BaseAttention):
def call(self, x):
attn_output, attn_scores = self.mha(
query=x,
value=x,
key=x,
return_attention_scores=True)
x = self.add([x, attn_output])
x = self.layernorm(x)
return x, attn_scores

值得注意的是,GlobalSelfAttention類繼承自BaseAttention基類。這種設(shè)計(jì)模式使得我們可以基于相同的基礎(chǔ)結(jié)構(gòu)實(shí)現(xiàn)不同類型的注意力機(jī)制,例如,我們可以輕松實(shí)現(xiàn)一個(gè)CausalSelfAttention層:

class CausalSelfAttention(BaseAttention):
def call(self, x):
attn_output, attn_scores = self.mha(
query=x,
value=x,
key=x,
return_attention_scores=True,
use_causal_mask = True)
x = self.add([x, attn_output])
x = self.layernorm(x)
return x, attn_scores

CausalSelfAttention類與GlobalSelfAttention類的主要區(qū)別在于它啟用了因果掩碼(Causal Mask),即將未來時(shí)間步的注意力權(quán)重設(shè)置為0。因果自注意力確保序列中某個(gè)位置的輸出僅基于該位置及其之前位置的信息,這種機(jī)制在文本生成等需要逐步預(yù)測的任務(wù)中尤為重要。

Transformer編碼器中的前饋網(wǎng)絡(luò)[8]由兩個(gè)大小分別為128和32的密集層[7]組成,同時(shí)集成了一個(gè)dropout層[10]以防止模型過擬合。前饋網(wǎng)絡(luò)在全局自注意力層混合各時(shí)間步信息后,對(duì)每個(gè)時(shí)間步獨(dú)立進(jìn)行處理,進(jìn)一步增強(qiáng)了模型的表達(dá)能力。

前饋網(wǎng)絡(luò)的數(shù)學(xué)表達(dá)如下:

打開網(wǎng)易新聞 查看精彩圖片

其中,W?和W?分別是大小為(32,d_ff)和(d_ff, 32)的可學(xué)習(xí)權(quán)重矩陣(前饋網(wǎng)絡(luò)的維度d_ff= 128),b?和b?分別是長度為d_ff和32的偏置向量。經(jīng)過處理后,前饋網(wǎng)絡(luò)輸出的張量形狀為(1000, 32)。

FeedForward層的實(shí)現(xiàn)代碼如下:

class FeedForward(tf.keras.layers.Layer):
def __init__(self, d_model, dff, dropout_rate=0.1):
# dff = 前饋網(wǎng)絡(luò)的維度(隱藏層的大小)
super().__init__()
self.seq = tf.keras.Sequential([
tf.keras.layers.Dense(dff, activation='relu'),
tf.keras.layers.Dense(d_model),
tf.keras.layers.Dropout(dropout_rate)
])
self.add = tf.keras.layers.Add()
self.layer_norm = tf.keras.layers.LayerNormalization()
def call(self, x):
x = self.add([x, self.seq(x)])
x = self.layer_norm(x)
return x

在全局自注意力層和前饋網(wǎng)絡(luò)之后應(yīng)用的殘差連接和層歸一化步驟可表示為:

打開網(wǎng)易新聞 查看精彩圖片

完整的EncoderLayer實(shí)現(xiàn)代碼如下:

class EncoderLayer(tf.keras.layers.Layer):
def __init__(self,*, d_model, num_heads, dff, dropout_rate=0.1):
super().__init__()
self.self_attention = GlobalSelfAttention(
num_heads=num_heads,
key_dim=d_model,
dropout=dropout_rate)
self.ffn = FeedForward(d_model, dff)
def call(self, x):
x, attn_scores = self.self_attention(x)
x = self.ffn(x)
return x, attn_scores

輸出映射層

Transformer編碼器輸出的張量形狀為(1000, 32)。模型的最終輸出層負(fù)責(zé)將這個(gè)高維特征表示映射回原始信號(hào)空間,生成形狀為(1000, )的去噪信號(hào)向量。這一映射過程通過單個(gè)密集層[7]實(shí)現(xiàn)。

完整的NoiseRemovalTransformer模型實(shí)現(xiàn)代碼如下:

class NoiseRemovalTransformer(tf.keras.Model):
def __init__(self, d_model, seq_len, num_heads, dff, num_layers, dropout_rate=0.1):
super(NoiseRemovalTransformer, self).__init__()
# 嵌入層
self.embedding_layer = tf.keras.layers.Dense(d_model, activation=None)
# 位置編碼層
self.pos_encoding_layer = PositionalEncoding(seq_len, d_model)
# 編碼器層
self.enc_layers = [EncoderLayer(d_model=d_model, num_heads=num_heads, dff=dff, dropout_rate=dropout_rate)
for _ in range(num_layers)]
# 最終層
self.final_layer = tf.keras.layers.Dense(1, activation=None) # 為每個(gè)時(shí)間步輸出單個(gè)值
def call(self, x, return_attn_scores=False):
x = self.embedding_layer(x)
x = self.pos_encoding_layer(x)
for i in range(len(self.enc_layers)):
x, attn_scores = self.enc_layers[i](x)
x = self.final_layer(x)
if return_attn_scores:
return x, attn_scores
return x

生成合成時(shí)間序列數(shù)據(jù)

為了訓(xùn)練模型,我們生成了具有特定特性的合成時(shí)間序列數(shù)據(jù)。數(shù)據(jù)生成過程分為三個(gè)關(guān)鍵步驟:

首先,使用隨機(jī)游走算法[11]生成干凈的基礎(chǔ)信號(hào)。為了使生成的信號(hào)更加平滑并適合模型訓(xùn)練,我們對(duì)隨機(jī)游走的輸出進(jìn)行平滑處理,并將其縮放至[-1, 1]范圍內(nèi)。

其次,為每個(gè)干凈信號(hào)生成對(duì)應(yīng)的噪聲配置文件。這一過程首先為基礎(chǔ)噪聲水平指定一個(gè)隨機(jī)值(0.1到0.5之間),然后通過將基礎(chǔ)噪聲乘以一個(gè)可變的噪聲因子(0.5到2之間)計(jì)算最大和最小噪聲水平。最后,通過在最大和最小噪聲水平之間均勻采樣并進(jìn)行插值,生成完整的噪聲配置文件。

噪聲信號(hào)通過將干凈信號(hào)與生成的噪聲配置文件相加得到:

打開網(wǎng)易新聞 查看精彩圖片

其中,f(t)C表示干凈信號(hào),f(t)N表示噪聲信號(hào),μ(t)表示噪聲配置文件。

最后,為了準(zhǔn)備訓(xùn)練數(shù)據(jù),對(duì)噪聲信號(hào)f(t)N_應(yīng)用縮放,使其在[-1, 1]范圍內(nèi)。相同的縮放系數(shù)也應(yīng)用于干凈信號(hào),以確保正確配對(duì)的信號(hào)對(duì):

打開網(wǎng)易新聞 查看精彩圖片

模型訓(xùn)練

模型在由1000個(gè)生成的信號(hào)對(duì)組成的數(shù)據(jù)集上進(jìn)行訓(xùn)練,其中800個(gè)樣本用于訓(xùn)練集,200個(gè)樣本用于驗(yàn)證集。訓(xùn)練過程使用Adam優(yōu)化器[12],學(xué)習(xí)率設(shè)置為0.001。損失函數(shù)選用均方誤差(MSE),同時(shí)在訓(xùn)練過程中監(jiān)控平均絕對(duì)誤差(MAE)指標(biāo)。訓(xùn)練數(shù)據(jù)以16個(gè)樣本為一批(batch)進(jìn)行處理,總共進(jìn)行100個(gè)訓(xùn)練周期(epochs)。

實(shí)驗(yàn)結(jié)果

經(jīng)過訓(xùn)練,噪聲去除Transformer模型在驗(yàn)證集上收斂至MSE = 0.0026和MAE = 0.0387的性能水平。

打開網(wǎng)易新聞 查看精彩圖片

訓(xùn)練歷史圖表(左:MSE損失函數(shù)變化曲線,右:MAE評(píng)估指標(biāo)變化曲線)

信噪比與模型性能關(guān)系

考慮到每個(gè)樣本具有不同的噪聲配置文件,我們可以通過分析模型在不同噪聲條件下的表現(xiàn)來深入了解其性能特性。為此,我們繪制了模型MSE與原始干凈信號(hào)和噪聲信號(hào)間信噪比(SNR)的散點(diǎn)圖。SNR(以分貝為單位)的計(jì)算公式為:

打開網(wǎng)易新聞 查看精彩圖片

SNR是衡量信號(hào)質(zhì)量的重要指標(biāo),表示干凈信號(hào)相對(duì)于噪聲的強(qiáng)度。較高的SNR值表示較好的信號(hào)質(zhì)量,而較低的SNR值則表示較差的信號(hào)質(zhì)量。當(dāng)SNR小于0時(shí),意味著噪聲強(qiáng)度超過了信號(hào)強(qiáng)度。

MSE與SNR的關(guān)系散點(diǎn)圖

上圖展示了500個(gè)訓(xùn)練樣本的散點(diǎn)分布,可以觀察到大多數(shù)樣本集中在MSE = 0.002和SNR = 5 dB附近。

在圖中可以觀察到兩個(gè)特殊區(qū)域:min(SNR)(對(duì)應(yīng)低MSE)區(qū)域和max(MSE)(對(duì)應(yīng)高SNR)區(qū)域。這兩個(gè)區(qū)域的樣本表現(xiàn)出與直覺預(yù)期相反的情況,即低SNR對(duì)應(yīng)低MSE,而高SNR對(duì)應(yīng)高M(jìn)SE。

以下是這兩個(gè)特殊區(qū)域以及主樣本簇中典型樣本的可視化結(jié)果。在每個(gè)圖中,模型輸出的去噪信號(hào)用藍(lán)色實(shí)線表示,原始干凈信號(hào)用藍(lán)色虛線表示,噪聲信號(hào)(模型輸入)用紅色實(shí)線表示。

打開網(wǎng)易新聞 查看精彩圖片

最小SNR樣本(SNR = -7.047,MSE = 0.002)

打開網(wǎng)易新聞 查看精彩圖片

最大MSE樣本(SNR = 8.727,MSE = 0.011)

打開網(wǎng)易新聞 查看精彩圖片

主樣本簇中的典型樣本(SNR = 5.709,MSE = 0.002)

注意力機(jī)制內(nèi)部分析

通過可視化注意力權(quán)重矩陣,我們可以深入了解噪聲去除Transformer中全局自注意力機(jī)制的工作原理。在注意力權(quán)重矩陣中,行對(duì)應(yīng)查詢位置(從序列中收集信息的位置),列對(duì)應(yīng)鍵位置(被查看信息的序列位置)。

下圖展示了主樣本簇中典型樣本的注意力權(quán)重分布:

打開網(wǎng)易新聞 查看精彩圖片

主樣本簇中典型樣本的注意力權(quán)重矩陣(SNR = 5.709,MSE = 0.002)

結(jié)果討論

通過實(shí)驗(yàn)結(jié)果分析,我們發(fā)現(xiàn)噪聲去除Transformer模型在各種噪聲條件下展示出了較強(qiáng)的去噪能力。結(jié)果部分中展示的三個(gè)代表性樣本揭示了模型在不同場景下的性能特點(diǎn)。

在min(SNR)樣本(對(duì)應(yīng)低MSE)中,雖然噪聲水平較高(SNR為負(fù)值),但由于原始干凈信號(hào)的波動(dòng)較小,模型能夠較好地重建信號(hào)特征,從而實(shí)現(xiàn)低MSE。

而在max(MSE)樣本(對(duì)應(yīng)高SNR)中,盡管噪聲水平相對(duì)較低,但原始干凈信號(hào)呈現(xiàn)強(qiáng)烈的波動(dòng)特性,使得模型難以準(zhǔn)確重建其中的高頻細(xì)節(jié),導(dǎo)致較高的MSE值。

主樣本簇中的典型樣本(MSE = 0.002,SNR = 5 dB)代表了模型在中等噪聲條件和適中信號(hào)波動(dòng)情況下的表現(xiàn),模型能夠有效地去除噪聲并重建原始信號(hào)。

從主樣本簇中典型樣本的注意力權(quán)重矩陣可以觀察到明顯的對(duì)角線優(yōu)勢,表明在進(jìn)行去噪處理時(shí),模型主要關(guān)注當(dāng)前時(shí)間步及其鄰近時(shí)間步的信息。此外,注意力權(quán)重矩陣中存在多條對(duì)角線帶,這表明模型已經(jīng)學(xué)習(xí)到訓(xùn)練數(shù)據(jù)中的某些周期性結(jié)構(gòu),這可能是由于合成數(shù)據(jù)生成方法導(dǎo)致的。

本研究中的模型是在具有不同噪聲水平和整體較低SNR的樣本上進(jìn)行訓(xùn)練的。未來的研究方向可以包括針對(duì)特定噪聲特征的模型微調(diào),以及為特定去噪任務(wù)開發(fā)專門化的Transformer模型。通過生成具有系統(tǒng)特定噪聲配置文件的合成訓(xùn)練數(shù)據(jù),我們可以訓(xùn)練適應(yīng)各種具體應(yīng)用場景的專業(yè)去噪模型。

總結(jié)

本文提出了一種基于Transformer架構(gòu)的時(shí)間序列去噪模型,系統(tǒng)介紹了時(shí)間序列去噪問題的理論基礎(chǔ),并詳細(xì)闡述了一個(gè)能夠接受噪聲輸入信號(hào)并輸出去噪信號(hào)的小型Transformer模型的構(gòu)建過程。為了訓(xùn)練和評(píng)估模型,我們生成了具有特定特性的合成時(shí)間序列數(shù)據(jù)。

實(shí)驗(yàn)結(jié)果表明,所提出的噪聲去除Transformer模型在各種噪聲條件下均展現(xiàn)出了較強(qiáng)的去噪能力。本文介紹的基礎(chǔ)Transformer架構(gòu)為特定任務(wù)的模型微調(diào)和專門化去噪模型的開發(fā)提供了堅(jiān)實(shí)的基礎(chǔ)。

https://avoid.overfit.cn/post/768a4ca4225c47c09db1822dd24a4cad

作者:Callum Bruce