TCN-时间卷积网络
目錄
一、引言
二、時(shí)序卷積神經(jīng)網(wǎng)絡(luò)
2.1 因果卷積(Causal Convolution)
2.2 膨脹卷積(Dilated Convolution)
2.3 殘差鏈接(Residual Connections)
三、討論和總結(jié)
1. TCN的優(yōu)點(diǎn)
2. TCN的缺點(diǎn)
參考論文:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling
Github:https://github.com/LOCUSLAB/tcn
參考鏈接:
? ? ? ?序列建模之時(shí)間卷積網(wǎng)絡(luò)TCN - 楊鎰銘的文章 - 知乎
? ? ??TCN時(shí)間卷積網(wǎng)絡(luò) - 剪水作花飛的文章 - 知乎
? ? ? ?時(shí)間卷積網(wǎng)絡(luò)(TCN)在 NLP 多領(lǐng)域發(fā)光,RNN 或?qū)](méi)落
一、引言
? ? ? ?時(shí)序問(wèn)題的建模大家一般習(xí)慣性的采用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)來(lái)建模,這是因?yàn)镽NN天生的循環(huán)自回歸的結(jié)構(gòu)是對(duì)時(shí)間序列的很好的表示。傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)一般認(rèn)為不太適合時(shí)序問(wèn)題的建模,這主要由于其卷積核大小的限制,不能很好的抓取長(zhǎng)時(shí)的依賴(lài)信息。 但是最近也有很多的工作顯示,特定的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)也可以達(dá)到很好的效果,比如Goolgle提出的用來(lái)做語(yǔ)音合成的wavenet,Facebook提出的用來(lái)做翻譯的卷積神經(jīng)網(wǎng)絡(luò)。這就帶來(lái)一個(gè)問(wèn)題,用卷積來(lái)做神經(jīng)網(wǎng)絡(luò)到底是只適用于特定的領(lǐng)域還是一種普適的模型? 本文就帶著這個(gè)問(wèn)題,將一種特殊的卷積神經(jīng)網(wǎng)絡(luò)——時(shí)序卷積網(wǎng)絡(luò)(Temporal convolutional network, TCN)與多種RNN結(jié)構(gòu)相對(duì)比,發(fā)現(xiàn)在多種任務(wù)上TCN都能達(dá)到甚至超過(guò)RNN模型。
二、時(shí)序卷積神經(jīng)網(wǎng)絡(luò)
2.1 因果卷積(Causal Convolution)
?? ? ? ? ? ? ? ? ? ?
? ? ? ? 因果卷積可以用上圖直觀表示。 即對(duì)于上一層t時(shí)刻的值,只依賴(lài)于下一層t時(shí)刻及其之前的值。和傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)的不同之處在于,因果卷積不能看到未來(lái)的數(shù)據(jù),它是單向的結(jié)構(gòu),不是雙向的。也就是說(shuō)只有有了前面的因才有后面的果,是一種嚴(yán)格的時(shí)間約束模型,因此被成為因果卷積。
2.2 膨脹卷積(Dilated Convolution)
? ? ? ?單純的因果卷積還是存在傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的問(wèn)題,即對(duì)時(shí)間的建模長(zhǎng)度受限于卷積核大小的,如果要想抓去更長(zhǎng)的依賴(lài)關(guān)系,就需要線(xiàn)性的堆疊很多的層。為了解決這個(gè)問(wèn)題,研究人員提出了膨脹卷積。如下圖所示。
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? 和傳統(tǒng)卷積不同的是,膨脹卷積允許卷積時(shí)的輸入存在間隔采樣,采樣率受圖中的d控制。 最下面一層的d=1,表示輸入時(shí)每個(gè)點(diǎn)都采樣,中間層d=2,表示輸入時(shí)每2個(gè)點(diǎn)采樣一個(gè)作為輸入。一般來(lái)講,越高的層級(jí)使用的d的大小越大。所以,膨脹卷積使得有效窗口的大小隨著層數(shù)呈指數(shù)型增長(zhǎng)。這樣卷積網(wǎng)絡(luò)用比較少的層,就可以獲得很大的感受野。
2.3 殘差鏈接(Residual Connections)
? ? ? ? ? ? ? ??
? ? ? ? 殘差鏈接被證明是訓(xùn)練深層網(wǎng)絡(luò)的有效方法,它使得網(wǎng)絡(luò)可以以跨層的方式傳遞信息。本文構(gòu)建了一個(gè)殘差塊來(lái)代替一層的卷積。如上圖所示,一個(gè)殘差塊包含兩層的卷積和非線(xiàn)性映射,在每層中還加入了WeightNorm和Dropout來(lái)正則化網(wǎng)絡(luò)。
三、討論和總結(jié)
? ? ? ?總體來(lái)講,TCN模型上的創(chuàng)新并不是很大,因果卷積和擴(kuò)展卷積也并不是本論文提出來(lái),本文主要是將TCN的結(jié)構(gòu)梳理了一下,相比于wavenet中的結(jié)構(gòu),去掉了門(mén)機(jī)制,加入了殘差結(jié)構(gòu),并在很多的序列問(wèn)題上進(jìn)行了實(shí)驗(yàn)。實(shí)驗(yàn)效果如下:
? ? ? ? ? ? ??
在多個(gè)任務(wù)上,都比標(biāo)準(zhǔn)的LSTM、GRU等效果好。
1. TCN的優(yōu)點(diǎn)
? ? (1)并行性。當(dāng)給定一個(gè)句子時(shí),TCN可以將句子并行的處理,而不需要像RNN那樣順序的處理。
? ? (2)靈活的感受野。TCN的感受野的大小受層數(shù)、卷積核大小、擴(kuò)張系數(shù)等決定。可以根據(jù)不同的任務(wù)不同的特性靈活定制。
? ? (3)穩(wěn)定的梯度。RNN經(jīng)常存在梯度消失和梯度爆炸的問(wèn)題,這主要是由不同時(shí)間段上共用參數(shù)導(dǎo)致的,和傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)一樣,TCN不太存在梯度消失和爆炸問(wèn)題。
? ? (4)內(nèi)存更低。RNN在使用時(shí)需要將每步的信息都保存下來(lái),這會(huì)占據(jù)大量的內(nèi)存,TCN在一層里面卷積核是共享的,內(nèi)存使用更低。
2. TCN的缺點(diǎn)
? ? (1)TCN 在遷移學(xué)習(xí)方面可能沒(méi)有那么強(qiáng)的適應(yīng)能力。這是因?yàn)樵诓煌念I(lǐng)域,模型預(yù)測(cè)所需要的歷史信息量可能是不同的。因此,在將一個(gè)模型從一個(gè)對(duì)記憶信息需求量少的問(wèn)題遷移到一個(gè)需要更長(zhǎng)記憶的問(wèn)題上時(shí),TCN 可能會(huì)表現(xiàn)得很差,因?yàn)槠涓惺芤安粔虼蟆?/p>
? ? (2)論文中描述的TCN還是一種單向的結(jié)構(gòu),在語(yǔ)音識(shí)別和語(yǔ)音合成等任務(wù)上,純單向的結(jié)構(gòu)還是相當(dāng)有用的。但是在文本中大多使用雙向的結(jié)構(gòu),當(dāng)然將TCN也很容易擴(kuò)展成雙向的結(jié)構(gòu),不使用因果卷積,使用傳統(tǒng)的卷積結(jié)構(gòu)即可。
? ? (3)TCN畢竟是卷積神經(jīng)網(wǎng)絡(luò)的變種,雖然使用擴(kuò)展卷積可以擴(kuò)大感受野,但是仍然受到限制,相比于Transformer那種可以任意長(zhǎng)度的相關(guān)信息都可以抓取到的特性還是差了點(diǎn)。TCN在文本中的應(yīng)用還有待檢驗(yàn)。
總結(jié)
以上是生活随笔為你收集整理的TCN-时间卷积网络的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计算机二级Python公共基础部分
- 下一篇: 前端学习(529):等分布局存在间距得实