- 논문명: ModernTCN: A Modern Temporal Convolutional Network for Time Series Forecasting
- 학회(출판연도): ICLR(2024)
- 연구분야: 머신러닝, 시계열 예측, 시퀀스 모델 아키텍쳐 설계
최근 Transformer 또는 MLP 기반 모델이 시계열 분석에 주도권을 가지고 있으나, 전통적인 TCN을 현대화함으로써 더 나은 효율성과 성능을 증명
✓ 설명을 덧붙이자면
- 2018년~2022년동안 시계열 분야는 LSTM → Transformer → 더 복잡한 Transformer 변형과 같이 발전
- 하지만 Transformer가 NLP에서 성공했을지라도 시계열은 NLP와 분명히 다르기 때문에 Transformer가 항상 최적은 아닐 수 있다.
[참고]
<NLP의 경우> ① 데이터가 많고 ② 문맥이 복잡하며 ③ 문장 길이가 제한되어 있다
↔ <시계열>은 ① 데이터가 적고 ② 패턴이 반복적이며 ③ 수 천~수 만 길이 가능
✓ 시계열 예측이란?
- 과거 데이터를 기반으로 미래 값을 예측하는 문제
X{t-L:t} → X{t+1:t+H}- 시계열 예측은 시간 순서가 절대적이고, 패턴이 고정되어 있지 않으며, 계절성 및 추세, 잡음이 많기 때문에 쉽지 않음
✓ TCN은 무엇인가?
- TCN은 시계열 데이터를 처리하기 위해 설계된 1차원 합성곱(1D Conv)기반 시퀀스 모델
즉, 단순 CNN이 아님!- RNN → LSTM/GRU → Transformer → (다시) Convolution
- RNN의 경우 병렬화의 어려움과 기울기 소실 문제가 있고,
- Transformer의 경우에는 메모리를 많이 사용하고 작은 데이터셋에서는 과적합 등의 문제로 인해 다시 Convolution으로 흐름이 변하고 있는 추세
✓ TCN의 3가지 핵심구조
- 인과적 합성곱(Causal Convolution)
![]()
- 출력 y_t는 현재와 과거만 연결, 미래는 연결X (시계열 예측에서는 미래 정보를 보면 안되기 때문
- 확장 합성곱(Dilated Convolution)
- 커널 사이에 dilation(간격)을 둬서 긴 과거 정보(long-range dependecy)를 적은 층으로 커버
- dilation을 1,2,4,8식으로 늘리는데 커널 간격을 띄어서 과거를 샘플링하는 방식
- 레이어 수는 줄이고 계산량은 거의 유지할 수 있다는 장점
- Residual Connection
- 깊어질수록 gradient 소실 문제 발생
- Resnet스타일의 구조를 활용하여 깊은 네트워크에서도 학습 안정성 확보
- y=x+TCNBlock(x)
✓ ERF란?
- 모델의 출력 하나가 실제로 얼마나 넓은 입력 범위의 정보에 영향을 받는지
- 실제로는 학습과 추론에서 의미이쎅 기여하는 범위를 의미
- 입력시계열의 더 넓은 범위의 데이터를 사용하여 각 출력 지점의 정보 계산

✓ 색이 진할수록 해당 시점 출력에 더 큰 영향을 미친다는 의미제한된 ERF로 인해 장기 의존성을 모델링하는데에 어려움


⇒ Transformer가 강한 이유는 attention이 아닌 블록설계에 있다.
때문에, Modern TCN은 ① Transformer block 구조 차용, ② attention 제거, ③ 큰 커널의 Conv로 ERF를 확보하고, ConvFFN으로 변수간 의존성 처리
: ConvNet → ViT → Modern Conv(ConvNeXt)
DWConv
ConvFFN
Transformer의 FFN 모듈과 유사
2개의 PWConv로 구성
ConvFFN블록의 hidden 채널수가 입력 채널보다 r배 더 큰 inverted bottleneck 구조 채택
✓ inverted bottleneck (역병목 구조)
: 입력과 출력 차원을 중간층(Hidden layer)의 차원을 훨씬 크게(r배) 가져가는 구조
즉, 채널을 먼저 확장하고 연산한 후 다시 줄이는 구조
↔ [병목구조]: 중간채널을 줄였다가 다시 늘리는 구조→ 더 적은 파라미터로도 효율적으로 깊은 특징을 학습할 수 있음
[참고]
⇒ 이러한 설계는 시간정보와 feature 정보의 혼합을 분리함
⇒ 즉, DWConv와 ConvFFN은 각각 시간 차원 또는 feature 차원 중 하나에서만 정보를 혼합하고, 이는 두 차원을 동시에 섞는 전통적인 합성곱과 다름!

적절한 패딩 후 이를 patch 크기P의 N개의 패치로 나눔

이후 패치들은 D차원 임베딩 벡터로 변환

입력 임베딩

L이 아니라 N으로 Patchify
✓ 왜 M x D x N 이어야 하는가?
- M이 가장 먼저 있는 이유
: 변수는 처음부터 섞으면 안된다.
→ 각 변수는 독립적으로 patchify 및 embedding- D가 있어야 하는 이유
: 이 패치를 어떠한 관점으로 볼 것인가?
상승하강, 주기성, 변화량 등을 담는 표현 공간임- 마지막에 N인 이유
: 시간축으로 Conv해야함
즉, N이 새로운 time axis
구현을 단순화하기 위해 본 논문에서는
Patchify embedding을 완전 합성곱 방식 채택

Modern TCN 좋다~
커널 크기 늘리는 것이 ERF 에 좋았다~
시계열 분석에 있어서 컨볼루션 기반도 좋다~
향후 더 긴 시퀀스, 다양한 도메인에서의 일반화 및 모델 경량화, 추론 최적화같은 방향 확장이 과제