본문 바로가기
Artificial Intelligence/Deep Leaning

Neurons with Recurrence

by YUNZEE 2024. 2. 1.
728x90

순환 신경망(RNN)의 개념과 순차 데이터를 처리하는 데 사용하는 방법에 대해 설명하겠습니다. 

먼저 퍼셉트론(perceptron)에 대한 기본 구성 요소부터 설명드리겠습니다.

 

위의 이미지는 perceptron의 기본 구성 요소를 보여준다. 입력층은 X1부터 XM까지의 입력에 해당한다. 각 입력은 해당 가중치를 곱한 다음 비선형 활성화 함수를 통과하여 출력을 생성한다. 출력은 y로 표시된다. RNN의 피드백 루프는 은닉층의 출력을 은닉층의 입력으로 다시 연결하여 생성된다. 이미지에서는 이 피드백 루프가 표시되지 않지만 RNN의 중요한 특징이다. 

 

RNN은 텍스트, 오디오 또는 비디오와 같은 데이터의 시퀀스에서 정보를 학습하고 처리할 수 있는 인공 신경망의 한 유형이다. 이를 수행하러면 아키텍처에 피드백 루프를 통합하여 이전 입력의 정보를 저장하고 이를 향후 입력에 대한 예측에 영향을 미치도록 허용한다.

 

이미지는 percetron의 다이어그램으로, RNN의 기본 구성 요소로 사용되는 간단한 유형의 신경망이다. perceptron은 입력층, 은닉층 및 출력층으로 구성된다. 입력층은 입력 데이터를 수신하고, 은닉층은 데이터를 처리하고, 출력층은 출력을 생성한다. perceptron의 가중치는 각 입력이 얼마나 많은 영향을 미치는지 결정한다.

 

RNN의 맥락에서 피드백 루프는 은닉층의 출력을 은닉층의 입력으로 다시 연결하여 생성된다. 이렇게 하면 RNN이 이전 입력 정보를 저장하고 이를 향후 입력에 대한 예측에 영향을 미치도록 허용한다. 예를 들어 RNN이 단어 시퀸스를 처리하는 경우 이전 단어의 정보를 사용하여 시퀀스의 다음 단어를 예측할 수 있다. 

 

RNN은 순차 데이터를 처리하는 강력한 도구이며 기계 번역, 음성 인식 및 이미지 캡서닝과 같은 다양한 작업에서 최첨단 결과를 달성하는 데 사용되었다.

Feed-Forward Networks Revisited

 

이미지에서 왼쪽 파란색 원을 보면 오른쪽에 보라색 출력이 있고 녹색은 이러한 입력을 출력으로 변환하는 단일 신경망 층을 신경으로 정의한다.

 

인공 신경망은 다양한 작업에 사용되는 강력한 도구이다. 그러나 순차 데이터를 처리하는 작업에는 적합하지 않다. 순차 데이터는 시간적 순서가 있는 데이터이다. 

 

순환 신경망(RNN)은 순차 데이터를 처리하는 데 사용되는 인공 신경망의 한 유형이다.

 

피드포워드 신경망은 순차 데이터를 처리하는 데 적합하지 않다. 그 이유로는 피드포워드 신경망은 이전 입력의 정보를 저장할 수 없다. 따라서 피드포워드 신경망은 이전 입력과 현재 입력 간의 관계를 학습할 수 없다.

 

예를 들어, 피드포워드 신경망을 사용하여 단어 시퀸스를 처리한다고 가정해 보자. 피드포워드 신경망은 현재 단어만 보고 다음 단어를 예측할 수 있다. 즉, 이전 단어의 정보는 사용할 수 없다. 

 

그래서 피드백 루프를 사용하여 이전 입력의 정보를 저장한다. 피드백 루프는 은닉층의 출력을 은닉층의 입력으로 다시 연결하는 것이다. 피드백 루프를 사용하면 RNN은 이전 입력의 정보를 저장하고 이를 향후 입력에 대한 예측에 사용할 수 있다.

 

이제 어떻게 확장하고 구축할 수 있는지 여러 시간 단계와 잠재적으로 정보 시퀀스를 처리할 수 있는지 생각해 보도록 하겠습니다.

handing individual time steps

위에 보낸 이미지(다이어그램)을 90도 회전했다. 여전히 입력 벡터가 입력되어 출력 벡터가 생성된다.

여러 신경망이 연결되어 있지 않고 독립적으로 작동하는 방식을 보여준다. 이는 순차적 문제를 해결하기에 적합하지는 않다.

만약 위의 네트워크를 복사하여 여러 번 실행하면 어떨까? 서로 다른 시간에 해당하는 입력을 처리할 수 있다. t0에서 시작하는 개별 시간 단계까지 있다. 다음 시간 단계에 대해 동일한 작업을 수행한다. 이를 독립된 인스턴스로 처리하고 반복한다. 이 모든 모델은 서로 복사본이며, 각 시간 단계에서 입력만 다르다.

 

특정 시간 단계에서 t에서 예측된 출력 y_hat(t)는 해당 시간 단계 t에서의 입력 x(t)의 함수이다. 이 함수는 신경망 가중치에 의해 학습되고 정의된다.

Neurons with Recurrence

이전 이미지의 다이어그램 문제점은 이전 시간 단계의 정보를 고려하지 않는다는 것이다. 이 문제를 해결하기 위해 네트워크의 계산을 이전 시간 단계의 정보와 연결하는 방법이 필요하다.

 

그래서 진정한 순차적 문제라면 이후 시간 단계의 예측된 출력은 이전 시간 단계의 입력에 정확히 의존할 수 있다. 내부 상태(h)가 이전 시간 단계의 정보를 저장하고 다음 시간 단계로 전달하는 역할을 한다. 이를 위해 '재귀 관계'를 도입한다. 이는 특정 시간에 네트워크가 계산한 정보의 일부가 이후 시간 단계로 전달되는 것을 의미한다.

 

이 정보를 저장하는 변수를 '내부 상태(H)'라고 부르며, 이는 네트워크의 기억이라고 생각할 수 있다. 따라서 네트워크의 출력은 입력 데이터(x)뿐만 아니라 내부 상태(H)의 함수이기도 하다. 예측된 출력 y_hat(t)는입력뿐만 아니라 과거의 기억(H)에도 의존한다.

 

시간 의존성(temporal dependence)과 재귀(recurrence)의 연결이 순환 신경망(recurrent neural network, RNN)의 핵심 개념이다. 이 재귀 관계는 순환적인 시간 의존성을 포착한다.

728x90