딥러닝 세계에서 데이터 흐름을 이해하는 법

by 송동훈 Hoon Song

수학과 딥러닝 강의 내용을 통해 발견한 인사이트들을 정리해봤다. 특히 시간 관련 데이터를 어떻게 다루는지에 대한 접근 방식이 흥미로웠다.


1. Feed Forward Network와 Recurrent Network의 결정적 차이점

Screenshot 2025-05-01 at 2.17.56 PM.png

Feed Forward Network는 정보가 한쪽 방향으로만 흐르는 구조다. 입력이 들어오면 여러 Hidden Layer를 거쳐 출력으로 진행된다. 반면 Recurrent Network는 과거의 정보를 기억하고 활용한다. 마치 주식 가격을 예측할 때 오늘의 데이터뿐 아니라 이전 날들의 흐름을 모두 고려하는 것과 비슷하다.


2. 시간 데이터를 다루는 첫 시도

Screenshot 2025-05-01 at 2.20.17 PM.png

TDNN. Sequence Data 형태의 데이터를 다루기 위한 첫 접근법이 Time Delay Neural Network(TDNN)이다. 이 방식은 연속된 여러 개의 데이터를 묶어서 하나의 큰 입력으로 취급한다. 예를 들어 주식 예측에서 최근 4일치 가격을 하나의 데이터로 묶어 다음날 가격을 예측하는 방식이다.


3. Window Size는 TDNN의 핵심이자 약점

Screenshot 2025-05-01 at 2.20.59 PM.png

TDNN에서는 얼마나 많은 과거 데이터를 묶을지 결정하는 'Window Size'가 중요하다. 너무 작으면 시간적 패턴을 파악하지 못하고, 너무 크면 학습이 어려워지고 불필요한 노이즈가 포함된다. 아타리 게임처럼 짧은 시간 패턴이 중요한 경우에는 효과적이지만, 주식처럼 장기 패턴이 중요한 문제에는 적합하지 않다.


4. TDNN 접근의 한계. TDNN은 고정된 Window Size를 사용하기 때문에, 언어 번역처럼 데이터 길이가 가변적인 경우 적합하지 않다. 또한 윈도우 밖의 과거 정보는 완전히 무시되는 문제가 있다. 그리고 윈도우 내 데이터의 순서적 의미를 제대로 활용하지 못한다.


5. RNN의 핵심 메커니즘

Screenshot 2025-05-01 at 2.26.01 PM.png

RNN은 현재 입력만이 아니라 'Hidden State Vector'라는 개념을 통해 과거 정보를 저장하고 활용한다. 매 시점마다 새로운 입력이 들어오면, 이전 Hidden State와 함께 처리하여 새로운 출력과 Hidden State를 생성한다. 이 과정을 통해 과거 정보가 지속적으로 반영된다.


6. RNN의 다양한 응용 패턴

Screenshot 2025-05-01 at 2.27.51 PM.png

RNN은 입력과 출력의 형태에 따라 다양하게 활용된다. 하나의 입력에서 여러 출력을 만드는 'One-to-Many'(이미지 캡션 생성), 여러 입력에서 하나의 출력을 만드는 'Many-to-One'(감성 분석), 여러 입력에서 여러 출력을 만드는 'Many-to-Many'(Machine Translation) 등의 형태가 있다.


7. 유연성이 주는 강점. RNN의 가장 큰 장점은 고정된 길이에 제한되지 않는다는 점이다. 길이가 다양하게 변하는 Sequence Data(문장, 시계열 등)를 다룰 수 있어 언어 번역, 음성 인식 등 다양한 분야에 활용된다.


8. 이론과 실제 사이의 균형. 때로는 복잡한 RNN보다 단순한 TDNN이 더 효과적일 수 있다. 해결하려는 문제의 특성에 맞게 적절한 모델을 선택하는 것이 중요하다. 복잡함이 항상 더 나은 결과를 보장하지는 않는다.


딥러닝 모델을 선택할 때는 데이터의 특성과 문제의 본질을 먼저 이해하는 것이 중요하다. 시간적 구조가 중요한 데이터라면 그 패턴을 효과적으로 포착할 수 있는 모델을 선택해야 한다. 결국 좋은 모델은 데이터의 본질을 잘 이해하고 그에 맞는 구조를 선택할 때 만들어진다.

keyword
일요일 연재
이전 25화CNN 구조의 혁신