본문 바로가기
  • 책상 밖 세상을 경험할 수 있는 Playground를 제공하고, 수동적 학습에서 창조의 삶으로의 전환을 위한 새로운 라이프 스타일을 제시합니다.
카테고리 없음

[2025-1] 임재열 - Unidirectional/Bidirectional LSTM, TCN(Temporal Convolution Network)

by limlimlim1109 2025. 1. 11.

- Unidirectional LSTM(Long Short-Term Memory)는 1997년 Sepp Hochreiter가 제안

- Bidirectional LSTM는 2005년 Alex Gravesa와 J ̈urgen Schmidhubera가 제안

- TCN(Temporal Convolutional Network)는 2018년 Shaojie Bai 등이 제안

 

[(Unidirectional) LSTM]

https://glossary.midtown.ai/assets/l/long_short_term_memory_paper.pdf

 

[Bidirectional LSTM]

https://www.sciencedirect.com/science/article/pii/S0893608005001206?casa_token=xM-FOYWtiycAAAAA:b0BARHG-kramNuKlm8djLL6yr3uLtaCAFAScr0ZMYPcpCVOzwVfcsIgfOhZu1FT4iynnDK-HSLA

 

Framewise phoneme classification with bidirectional LSTM and other neural network architectures

In this paper, we present bidirectional Long Short Term Memory (LSTM) networks, and a modified, full gradient version of the LSTM learning algorithm. …

www.sciencedirect.com

[TCN]

https://arxiv.org/abs/1803.01271

 

An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling

For most deep learning practitioners, sequence modeling is synonymous with recurrent networks. Yet recent results indicate that convolutional architectures can outperform recurrent networks on tasks such as audio synthesis and machine translation. Given a

arxiv.org

<RNN>

* RNN(Recurrent Neural Network)이란?

https://colah.github.io/posts/2015-08-Understanding-LSTMs/

- sequence data를 처리하기 위해 고안 (sequence data는 시간적/순차적 의존성을 지니고, 데이터 길이가 가변적)

- t 단계의 hidden state(h_t)를 계산할 때, t-1 단계의 hidden state(h_t-1)과 현재 입력(x_t)을 사용

* RNN의 수식적 구현

https://velog.io/@nayeon_p00/%EB%94%A5%EB%9F%AC%EB%8B%9D-%EB%AA%A8%EB%8D%B8-RNN-%EA%B3%BC-LSTM

* RNN의 문제점

1. Gradient Vanishing(기울기 소실), Gradient Exploding(기울기 문제)

2. 장기 의존성 학습의 어려움(먼 과거의 정보를 학습하는 데 어려움 존재)

3. 병렬 처리 불가능(다음 시간 단계의 출력을 계산하기 위해 이전 시간 단계의 계산이 완료되어야 함)

4. 구조적 단순함

...

 

<LSTM>

* LSTM이란?

https://colah.github.io/posts/2015-08-Understanding-LSTMs/

- RNN 구조에 장기 상태를 추가하여 장기 기억을 구현

- 장기 상태에 저장할 것, 버릴 것, 읽어들일 것을 학습

* LSTM의 수식적 구현

https://docs.likejazz.com/lstm/

1. 상태

- C_t: 장기 상태(long-term state)

- h_t: 단기 상태(short-term state)

 

2. 게이트

- 삭제 게이트(forget gate): 기존 장기기억 중 얼마나 잃을 것인가?

https://colah.github.io/posts/2015-08-Understanding-LSTMs/

- 입력 게이트(input gate): 단기기억 중 얼마나 장기기억에 저장할 것인가?

https://colah.github.io/posts/2015-08-Understanding-LSTMs/

- 출력 게이트(output gate): 장기기억과 단기기억을 기반으로 하여 새로운 단기기억 출력

https://colah.github.io/posts/2015-08-Understanding-LSTMs/

 

<Bidirectional LSTM>

* Bidirectional LSTM이란?

https://computer-nerd-zettelkasten.tistory.com/entry/BiLSTM-Bidirectional-Long-Short-Term-Memory

- 과거 정보와 미래 정보를 모두 사용

- 특히 문맥 이해가 중요한 작업에서 사용(NLP, 음성 처리 등)

- 순방향 LSTM → 역방향 LSTM → 결합(Concatenation, Sum, Mean, ...)

 

<TCN>

* Abstract

1. 대부분의 딥러닝 실무자들에게 sequence 모델링은 순환 신경망과 동의어로 여겨집니다. 그러나 최근 연구 결과에 따르면, convolutional 아키텍처가 오디오 합성(audio synthesis)과 기계 번역(machine translation)과 같은 작업에서 순환 신경망을 능가할 수 있음이 밝혀졌습니다.

 

2. 본 연구에서는 시퀀스 모델링을 위해 범용적인 convolutional 아키텍처와 recurrent 아키텍처를 체계적으로 평가하였습니다.

 

3. 모델은 순환 신경망을 벤치마크하는 데 일반적으로 사용되는 다양한 표준 작업에 대해 평가되었습니다.

 

4. 결과적으로, 간단한 convolutional 아키텍처가 LSTM과 같은 기존의 순환 신경망보다 다양한 작업과 데이터셋에서 더 뛰어난 성능을 보였으며, 더 긴 효과적인 메모리를 보여주었습니다.

 

5. 이에 따라, sequence 모델링과 순환 신경망 사이의 일반적인 연관성을 재고해야 하며, convolutional 네트워크를 sequence 모델링 작업의 자연스러운 출발점으로 간주해야 한다고 결론지었습니다.

* Introduction

1. 딥러닝 실무자들은 일반적으로 순환 아키텍처를 sequence 모델링 작업의 기본 시작점으로 간주합니다.

 

2. 한편, 최근 연구에 따르면 특정 convolutional 아키텍처가 오디오 합성, 단어 수준 언어 모델링, 기계 번역과 같은 작업에서 SOTA 정확도에 도달할 수 있음이 밝혀졌습니다.

 

3. 우리는 이 질문에 답하기 위해 다양한 sequence 모델링 작업에서 convolutional 아키텍처와 순환 아키텍처를 체계적으로 실험적으로 평가했습니다.

 

4. convolutional network를 대표하기 위해, 모든 작업에 적용된 범용적인 Temporal Convolutional Network(TCN) 아키텍처를 설명합니다.

 

5. 결과에 따르면, TCN은 광범위한 sequence 모델링 작업에서 기본 순환 아키텍처를 설득력 있게 능가하는 것으로 나타났습니다.

* Temporal Convolutional Networks

1. TCN의 주요 특징

  - 아키텍처 내의 convolution은 causal(인과적). 즉, 미래의 정보가 과거로 “누출” X

  - 입력 sequence를 동일한 크기의 출력 sequence로 mapping

  - 아주 긴 효과적인 기록(장기기억)의 구성에 중점

 

2. sequence modeling

  - mapping function: causal constraint 만족 (y_t는 x_0, ... x_t에만 의존, x_t+1, ..., x_T에는 의존 X)

  - Loss function

3. Causal Convolutions

  - 1D fully-convolutional network (FCN) 아키텍처 사용 → 동일한 출력 길이 유지

  - causal convolution 사용

  - TCN = 1D FCN + causal convolution

https://velog.io/@tobigsts1617/6%EC%A3%BC%EC%B0%A8-Temporal-Convolution-Network-TCN

4. Dilated Convolutions

  - Dilated Convolution 사용 → receptive field 확장 더 긴 기록이 필요한 시퀀스 작업에 causal convolution을 적용

5. Residual Block

  - Residual block 사용 → 깊은 네트워크에서 안정화

  - Residual block 구성: dilated causal convolution과 비선형성으로 구성된 두 개의 레이어 포함

6. Discussion

  - 장점

    1. 병렬 처리: 이전 단계의 예측을 기다릴 필요가 없음
    2. 유연한 receptive field: 확장 계수, 필터 크기 등을 통해 receptive field 크기 조정 가능
    3. 안정적인 gradient: RNN의 gradient vanishing/exploding 문제 해결
    4. 훈련 시 낮은 memory 요구량: 레이어 내에서 필터를 공유하고, backpropagation 경로가 네트워크 깊이에만 의존
    5. 가변 길이 입력 처리: 1D convolution kernal을 sliding 하여 가변 길이 입력 처리 가능

 

  - 단점

    1. 평가 시 데이터 저장 요구: 원본 시퀀스를 입력으로 받아야 함
    2. 도메인 전이 시 매개변수 변경 가능성: 도메인마다 예측에 필요한 receptive field의 크기가 다를 수 있음

 

* Sequence Modeling Test

1. 실험 설정

  - TCN 아키텍처와 LSTM, GRU, vanilla RNN을 비교

  - TCN은 동일한 아키텍처를 사용하되, 네트워크 깊이 n과 커널 크기 k를 조정하여 receptvie field가 예측에 필요한 문맥을 충분히 포함

  - 확장 계수 d = 2^i (i: 레이어 깊이 → 지수적 증가)

  - 학습 시

    * TCN: Adam 옵티마이저(학습률 0.002), 기울기 클리핑(max norm: [0.3, 1]).

    * RNN: 최적 하이퍼파라미터를 찾기 위해 그리드 검색 수행.

  - 모든 모델에서 게이팅 메커니즘(gating mechanisms)이나 스킵 연결(skip connections) 같은 추가적인 설계는 사용하지 않음.

 

2. 데이터셋

  - Adding problem

  - Sequential MNIST, P_MNIST

  - Copy Memory

  - JSB Chorales,  Nottingham

  - PennTreebank (PTB)

  - Wikitext-103

  - LAMBADA

  - text8

 

3. 실험 결과