RNN 기본 구조와 개념

hooo·2023년 12월 8일
1

Deep learning 개념

목록 보기
2/2
post-thumbnail

이번 딥러닝 시리즈 포스팅에선 트랜스포머 기반의 모델이 많이 등장하여 많이 사용하진 않지만,

현재 사용하는 모델들의 기반이라고 할 수 있는 RNN의 기본적인 매커니즘에 대해 이해해보려고 한다.

해당 포스팅은 유튜브에 있는 설명을 바탕으로 만들었는데 기존과 다른 방법으로 접근하여서 참고 후 사용했다.

링크: https://www.youtube.com/watch?v=Hn3GHHOXKCE



1. RNN 개념

RNN 기본 구조

  • RNN은 Recurrrent neural network의 약자

  • 시계열 데이터 처리하기에 좋은 신경망 구조를 갖고 여러 분야에 사용할 수 있다.
    ex - 번역기 / 음성인식 / DNA 분석 등

  • 딥러닝 시리즈 이전 포스팅에서 정리한 CNN은 같은 구역에서 동일한 weight를 갖는데, RNN은 시간 별로 같은 weight를 공유한다.

    CNN -> 입력 이미지에 대해 동일하게 커널 or 필터가 적용

    RNN -> 과거와 현재는 같은 weight를 공유

  • 위 그럼에서 black line이 weight를 의미 (세 가지 모두 다른 weight)



2. 수식 통한 이해

first order system을 통해 이해해보려고 한다.

first order system

현재 시간의 상태가 이전 시간의 상태와 관련 있다고 가정,

(그림 1) 위와 같은 식으로 표현할 수 있다.

여기서 X_t -> t 시점의 현재 상태(state)를 나타내고,
X_t-1 -> (t-1)시점의 state라고 보면 된다.

즉 ,어떤 함수 f에 대해 이전 시점의 상태가 현재 시점의 상태에 영향을 준다고 해석할 수 있다.

여기서 말하는 state란, 주식, 기온, 강수량 등 을 의미

만약 , 입력(input)도 있다면?

(그림 2)와 같이 표현할 수 있다. (U_t -> t 시점에서의 입력)

가령 날씨를 예로 들면 상태 X_t는 온도, 일사향, 풍속 등 존재
이러한 X_t일 때, 모든 state 알지는 못함 (관측 불가능한 상태인 경우)

그렇다면 , 관측 가능한 state는 어떻게 구할까?
관측 가능한 state를 따로 만들어 주기 위해 state-space model을 사용

state-space model

위 모델은 관측가능한 state를 찾을 수 있도록 도와줄 수 있다

(그림 3)즉, Y_t는 관측 가능한 state의 집합을 뜻하고, 출력(output)이라고 함

따라서,
fitsr order system의 state space model은 다음과 같이 정의할 수 있다.

(그림 4)

즉, U_t(input)과 Y_t(output) 관계에서 input이 있을 때 어떤 함수들에 의해 output을 알 수 있다.

이는 우리가 뉴럴 네트워크에서 흔히 볼 수 있는 구조와 같다.

(그림 5)

  • state space model에서 f()와 h()가 활성화 함수 역할을 하고,
    X_t가 hidden layer의 hidden state가 되는 구조라고 할 수 있다.

  • 위 ANN 구조와 차이점은 self-feedback이 존재한다는 것이다



3. RNN의 구조

(그림 6)

  • X_0는 초기값으로, 보통 random값 또는 특정 조건에 맞게 구성할 수 있다.

  • 이전에 언급한 ANN의 차이점 (self-feedback)이 빨간 선을 의미한다.

  • 즉, 그림을 풀어서 설명하면 state인 Xt와 입력 U_t를 통해 Y_t가 나오고, X_t는 이전 시점의 U(t-1)과 X_(t-1)에 대한 '압축본'이라고 할 수 있다.



(그림 7)

  • 각 연결이 weight를 의미

  • 그럼에서 1번 박스와 2번 박스 과정이 f(), 3번 박스가 h()를 의미함

  • f와 h는 선형 or 비선형인 지 모르기 때문에 뉴럴 네트워크 사용하여 추정


뉴럴 네트워크 사용한 최종 수식

(그림 8) (각 번호는 그럼 5에서 확인)


σ는 activation function (tanh, relu, softmax ....)



4. 추가 개념

  • RNN은 training 과정에서 back propagation(역전파)를 사용
    (RNN에선 BPTT라고함 (back propa~ through time))

(그림 9) 참값과의 loss로 역전파 진행하여 training



  • RNN을 사용하는 유형을 크게 3가지로 나눔
  1. Many to Many
    -> ex 번역
  1. Many to One
    -> ex 예측 (단어)
  1. One to Many
    -> ex 문장 생성

(번외로 Seq2Seq구조는 Many to One + One to Many의 구조를 가짐)
profile
Data Science

0개의 댓글