순환 신경망은 순차적인 데이터를 처리하는 신경망으로, 합성곱 신경망이 이미지와 같은 격자 형태의 입력을 처리하는 것과 유사하게 순차열을 처리하는 데 특화되어 있습니다. 이러한 신경망은 순차열의 길이를 쉽게 확장할 수 있으며, 대부분 가변 길이의 순차열도 처리할 수 있습니다.
순환 신경망의 역사
1980년대의 기계 학습과 통계적 모델에서 순환 신경망으로의 전환은 중요한 역할을 했습니다. 이 과정에서 중요한 개념은 신경망의 다양한 부분에서 매개변수를 공유하는 것이었습니다. 이렇게 하면 다층 신경망을 다양한 형태의 데이터에 쉽게 적용하고 일반화할 수 있습니다. 매개변수를 공유하지 않으면 다양한 길이와 시간 지점의 순차열에 대한 일반화가 어려워지며, 특히 여러 위치에서 동일한 정보가 나타날 때 있은 큰 장점이 됩니다. 예를 들어, "나는 2009년에 한국에 갔다"와 "2009년에 나는 한국에 갔다"의 경우 기계는 2009년이 어디에 위치하든 중요한 정보로 인식해야 합니다. 이를 처리할 때 순환 신경망은 동일한 가중치를 몇 시간 단계에 공유하여 훨씬 효율적으로 작동합니다.
시간적 순차열과 합성곱 신경망
1차원 시간적 순차열에 합성곱 신경망을 적용하는 아이디어는 시지연 신경망으로 구현되었습니다. 시지연 신경망에서 합성곱은 입력의 인접 성분들에 대한 함수를 계산하며, 각 시간 단계에서 동일한 합성곱 핵을 사용하여 매개변수를 공유합니다. 반면, 순환 신경망은 출력의 각 성분이 이전 성분의 함수로 계산되며, 이는 점화식과 유사한 방식으로 구현되어 깊은 계산 그래프를 통해 매개변수가 공유됩니다.
계산 그래프의 개념과 펼치기
계산 그래프는 계산의 구조를 표현하는 방법으로, 입력에서 출력으로의 변환 계산이나 매개변수에서 손실값으로의 변환을 그래프 형태로 나타낼 수 있습니다.
그래프 펼치기는 재귀적이거나 순환적인 계산을 반복 구조를 가진 계산 그래프 형태로 펼치는 과정을 말합니다. 이렇게 그래프를 펼치면 심층 신경망에서 전체 매개변수가 공유되는 효과가 생깁니다.
순환 신경망의 도식화 방법
순환 신경망을 도식화하는 두 가지 주요 방법이 있습니다. 첫 번째 방법은 신경망의 물리적인 구성요소를 개별 노드로 표현하는 것입니다. 이 도식에서 신경망은 실시간으로 작동하는 하나의 회로를 형성하며, 회로도의 검은 사각형은 상호작용이 한 시간 단계의 지연을 가지고 일어남을 나타냅니다. 두 번째 방법은 RNN을 펼쳐진 계산 그래프로 나타내는 것입니다. 이 경우, 그래프는 여러 계산 요소의 각 시간 단계에서의 상태를 나타내는 다양한 변수로 구성됩니다.
순환 신경망에서의 상태 벡터의 역할과 정보 손실
과거로부터 미래를 예측하는 작업에서 순환 신경망을 훈련할 때, 상태 벡터는 과거 입력 순차열의 중요한 측면들을 요약하는 함수로 활용됩니다. 이 요약 함수는 일반적으로 임의 길이의 순차열을 고정 길이의 벡터로 변환하므로 정보 손실이 발생합니다. 훈련의 목표에 따라, 이러한 요약 함수는 과거 순차열의 특정 측면을 높은 정밀도로 유지할 수도 있습니다. 예를 들어, 통계적 언어 모델링에 RNN을 사용할 때, 시간 t까지의 입력 순차열의 모든 정보를 저장하는 것이 아니라 문장의 나머지 부분을 예측하는 데 필요한 정보만 저장할 수 있습니다. 상태 벡터가 가능한 많은 정보를 포함해야 하는 가장 큰 경우는 입력 순차열을 거의 완벽하게 복원해야 할 때이며, 이는 자동부호기 프레임워크에서 발생할 수 있습니다.
그래프 펼치기의 장점
그래프 펼치기의 두 가지 장점은 다음과 같습니다
1. 학습된 모델은 상태의 가변적인 히스토리가 아니라 한 상태에서 다른 상태로 전이를 명확히 하므로 입력 크기는 순차열의 길이와 무관하게 항상 일정합니다.
2. 모든 시간 단계에서 동일한 전이 함수를 동일한 매개변수를 사용하여 적용할 수 있습니다.
이러한 장점으로 인해 하나의 모델 함수가 모든 시간 단계와 모든 순차열 길이를 지원하도록 만들 수 있습니다. 각각의 시간 단계에 대해 별도의 모델을 학습할 필요가 없으며, 하나의 공유 모델을 학습함으로써 모델은 훈련 데이터에 없는 길이의 순차열에도 일반화됩니다. 또한, 매개변수를 공유하지 않는 방법보다 적은 수의 훈련 데이터로도 모델을 효과적으로 추정할 수 있습니다.
순환 그래프와 펼쳐진 그래프의 장단점
순환 그래프와 펼쳐진 그래프는 각각의 장점을 가지고 있습니다. 순환 그래프는 표현이 간결하여 복잡한 구조를 간단하게 표현할 수 있습니다. 반면, 펼쳐진 그래프는 수행되는 계산을 명확하게 서술하기 때문에 이해하기 쉽습니다. 특히, 시간에 따른 정보의 흐름과 시간을 거슬러 가는 정보의 흐름을 파악하기 쉽습니다. 이는 정보가 흐르는 경로를 명시적으로 보여주기 때문입니다.
결론
순환 신경망은 순차적인 데이터를 처리하는 데 특화되어 있으며, 입력의 길이에 무관하게 효과적으로 작동합니다. 이러한 신경망은 그래프를 펼치면서 모든 시간 단계에서 동일한 매개변수를 사용하여 전이 함수를 적용할 수 있어 일정한 입력 크기를 유지합니다. 또한, 순환 그래프와 펼쳐진 그래프는 각각 간결한 표현과 계산의 명확한 서술을 제공하여 모델을 이해하고 효과적으로 학습할 수 있도록 합니다.