ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Recurrent Neural Networks
    Google ML Bootcamp/Sequence Models 2023. 9. 29. 16:34
    728x90

    ※ Recurrent Neural Network Model

    - Problem 1 : 입력과 출력이 다른 예시에서 다른 길일 수 있음. 모든 단일 예시가 같은 입력 길이 T_x 이거나 같은 대문자 길이 T_y를 가지지 않고 모든 문장은 최대 길이가 아니다.

    - Problem 2 : 텍스트의 서로 다른 위치에서 학습한 기능을 공유하지 않는다.

     

    - 단일 신경망에서와 같이 하나의 Input에 Output이 하나가 존재하는 느낌이 아니라, 신경망을 여러개 연결 하는 느낌으로 순환신경망을 구성한다.

    - 모든 노드마다 같은 파라미터값을 가지고 Input은 Wax, Output은 Wya가 된다.

     

    - yhat_Ty에서는 x_1, x_2, x_3, ..., x_Ty까지의 정보를 모두 얻을 수 있음.

    - 약점 : RNN은 앞서 나온 정보만을 사용해서 예측을 한다는 것. -> 특정 시점의 예측이 시퀀스에 이전에 입력된 입력값이나 정보를 사용하지만 그 뒤에 나온 정보는 사용하지 않는다.

    - 이러한 약점은 아래 두 문장을 보면 이해가 되는데, 앞의 세 단어만 볼 경우 차이를 구별할 수 없음.

     

     

    - Waa와 Wax를 Wa로 간단하게 표현 가능 -> Wa = [Waa ; Wax]

    - Wya도 Wy로 간단하게 표현 가능

     

    - Forward propagation의 Cost Function

    - RNN에서의 Backpropagation 구조

     

     

    ※ Different Types of RNNs

    - Many to many : 입력 길이와 출력 길이가 정확히 같아야 한다.

    - Many to one

    - One to one

    - One to many

    - Many to many : encoder와 decoder가 구분되어 Input(T<x>)과 Output(T<y>)의 길이가 다른 경우

     

     

    ※ Language Model and Sequence Generation

    - 앞에 있었던 정보를 그대로 끌고와서 Input으로 넣어주는 Many to many Model

    - x<2> = y<1>, ... x<9> = y<8>의 형태가 된다.

    - Cost Function은 아래와 같이 되며, 각각의 확률은 조건부확률을 따른다.

    - 주로 활성화 함수로는 Softmax 함수를 이용한다.

     

    Charater-level language model

    - 장점 1 : 알 수 없는 단어 토큰에 대해 걱정할 필요 X -> 문자 수준 언어 모델은 0이 아닌 확률인 mau와 같은 시퀀스를 지정할 수 있음. 반면에 mau가 단어 수준 언어 모델에 대한 어휘에 없는 경우에는 알 수 없는 단어 토큰을 지정해야 함.

    - 단점 1 : 긴 배열로 끝난다는 것. 사이의 긴 범위의 종속성을 캡처할 때 단어 수준 언어 모델 만큼 좋지 않다.

    - 단점 2 : cost가 많이 든다.

     

    ※ Vanishing Gradients with RNNs

    - RNN이 1000 ~ 10,000 신경망 레이어를 가지고 있기 때문에 Vanishing Gradients, Exploding Gradients 문제를 맞닥뜨릴 수 있음.

    - Solution : Gradient Clipping -> 기울기 벡터를 보고 일부 임계값보다 크다면 벡터의 일부를 다시 조정해서 너무 크지 않게 만드는 것. 최댓값에 클리핑 됨. 함수가 복원을 하려 한다면 적용하면 기울기 exploding을 해결하는데 도움이 됨.

     

     

    ※ Gated Recurrent Unit (GRU)

    - gamma 가 0과 매우 가깝기 때문에 결국 C<t> = C<t-1> 이 된다. 결국 C의 값은 거의 정확하게 유지가 되고 기울기 소멸 문제를 해결해 줄 수 있다.

     

    - gamma r(relevance) : 적절성까지 추가 해서 GRU를 사용한다.

    - GRU와 LSTM이 대표적으로 사용하는 인스턴스이다.

    - c<t> = gamma_u * c_tilder<t> + (1 - gamma_u) * c<t-1> 이 맞는 수식

     

     

    ※ LSTM

    - gamma_u = update

    - gamma_f = forget

    - gamma_o = output

    - 마지막 a<t> = gamma_o * tanh c<t>

    LSTM

    - 복잡한 LSTM 대신 GRU가 파생된 것.

    - GRU가 훨씬 단순한 모델이다. -> 두 개의 게이트만을 가지고 훨씬 더 큰 네트워크를 빌드할 수 있음. 계산도 더 빠르게 실행되기 때문에 더 큰 모델을 빌드할 수 있다.

    - LSTM : 게이트가 두 개가 아닌 세 개가 있기 때문에 더 유연하다. LSTM은 역사적으로 검증된 모델이다.

     

     

    ※ Bidirectional RNN

    - 일반적으로 NLP 문제에서는 LSTM과 BRNN을 대부분 사용한다.

    - 장점 : 전체 시퀀스에서 잠재적으로 정보를 고려하여, 시퀀스 중간에라도 예측을 할 수 있다.

    - 단점 : 예측을 하기 전에 전체 데이터 시퀀스가 필요하다.

     

    ※ Deep RNNs

     

    728x90

    'Google ML Bootcamp > Sequence Models' 카테고리의 다른 글

    Transformer Networks  (1) 2023.10.04
    Various Sequence To Sequence Architectures  (0) 2023.10.03
    Learning Word Embeddings: Word2vec & GloVe  (0) 2023.10.02
    Word Embeddings  (1) 2023.10.01
Designed by Tistory.