时序卷积网络-因果卷积与空洞卷积
一般来说,时间序列分析大多基于循环神经网络(RNNs)来进行, 但RNNs也存在着训练速度慢, 门控机制复杂, 难以并行化等缺点。相比之下, 卷积神经网络(CNNs)具有更快的训练速度,更强的并行能力,可以充分利用GPU加速计算,适用于大规模数据处理。那么能否将CNNs引入时序任务中,以达到改善计算性能的目的呢?答案是肯定的,这种架构被称作时序卷积网络(Temporal Convolutional Network,TCN)。
TCN可由因果卷积和空洞卷积两种架构来实现,本节我们将分别展开介绍
2.1 因果卷积
使用卷积运算来处理序列数据时首先会面临一个首要问题,就是普通的卷积操作并不符合因果律。换句话来说,当普通的卷积核在输入数据上进行滑动时,对当前位置的左右(或上下)数据都有访问权限。这意味着在时间序列或其他序列数据中,普通卷积会使用未来和过去的数据来计算当前输出。这在时间相关任务中可能引入未来信息,从而违反因果律。

这就引入了“因果卷积”。因果卷积保证了在任何时间点
具体地说,假设我们有一个一维的输入序列和一个大小为k的卷积核,为了实现因果卷积,我们可以在序列的开始处填充k-1个零,然后进行标准的卷积操作。这样,卷积的输出在任何时间点t都会依赖于时间点t及其之前的输入,如下图:

这其实就是一个类似数据对齐的操作,通过填充0将卷积核与序列对齐到位,相当于把真正的序列向后移,这样卷积核就不会覆盖到未来的时间步上面了
2.2 空洞卷积
空洞卷积(dilated convolution),又称膨胀卷积,一种改进的卷积操作,通过在卷积核中的元素之间插入间隔来扩大感受野,而无需增大卷积核,节省了计算资源。在时序任务中,使用空洞卷积有助于网络提取更长距离的时序依赖关系。如下图所示,由于空洞卷积后的特征图中存在空隙,不再是连续的矩形空间,故称空洞。

注意空洞卷积是通过卷积后填充实现的,所需的参数量于普通卷积相同,输出的特征图大小与普通卷积相同
空洞卷积中一个重要的参数称为膨胀因子,这个参数规定了数据点之间的间距大小,也就是将卷积后的特征图扩张多少倍。

如图,在膨胀因子 dilation=2 的时候,网络在卷积时会隔掉一个数据,以此类推,当膨胀因子为3时这个卷积核中间会空的更大,会隔过去两个数据,膨胀因子为4时同理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)