2.7 (월) - DL basic(history, MLP, RNN, LSTM, transformer)

ivor·2022년 2월 7일
0

부스트캠프 AI TECH

목록 보기
10/18

앞으로는 평일에는 간단하게 그날 배운 내용을 정리하고 부족한 부분은 주말을 이용해서 채워넣기로 했다.

논문 리뷰를 해야 해서 overview와 MLP 파트를 수강한 뒤, RNN 파트로 점프했다. 때문에 강의 순서와 학습 순서가 조금 달라졌다.


Deep Learning basic

overview

  • definition
  • tools
  • key components
    • data
    • model
    • loss function
      • (regression) MSE
      • (classification) CE
        • KL divergence와 엔트로피, CE와의 관계 공부
      • (probability) MLE
        (대표적)
    • algorithm(optimization)
      • SGD
      • Momentum
      • NAG
      • Adagrad
      • Adadelta
      • Rmsprop

papers

(특히 중요한 것만)

  • (2015) Generative Adversarial Network
  • (2017) Transformer
  • (2019) BIG Language Models
    • GPT-3
  • (2020) Self-supervised Learning

MLP

인간(혹은 동물)의 신경망에서 concept idea를 얻은 것은 맞다.
하지만 실제적 구현에 있어서 인간 신경망과는 다소 다른 양상을 보인다.

어떠한 input에 대해 그에 대응되는 output을 출력하는 미지의 함수가 존재한다고 할 때, 그 함수를 모사하는 function approximator에 가깝다.
(이 개념이 왜 CE(Cross Entropy)가 classfication 문제에서 사용되는지 이해하는데에 도움이 되었다.)

Linear Neural Network

  • parameters
  • partial derivative
  • optimization
  • non-linearity
    • activation functions
      • ReLU
      • sigmoid
      • tanh
  • MLP(Multi-Layer Perceptron)

RNN

Sequential Model

seq의 핵심은 이전의 정보들로 다음의 정보를 예측하는 것.

근본적인 문제가 하나 존재 → 전체적인 크기(길이)를 예측할 수 없다는 것.
→ 이전 몇번째 정보까지 참고할 것인지 정하는 식으로 해결 가능.

  • Naive seq model
  • Autoregressive model
  • Markov model(1st-order autoregressive model)
  • Latent autoregressive model

Recurrent Neural Network(RNN)

  • long-term dependency: 먼 순서의 정보를 참조하기가 어려움.
    • vanishing gradient(ex. sigmoid)
    • exploding gradient(ex. ReLU)

Long Short Term Memory(LSTM)

  • Forget gate
    • input x, previous hidden state
    • sigmoid
  • Input gate
    • input x, prev hidden state
    • sigmoid, tanh
  • update cell
    • outputs of forget gate and input gate, previous cell state
  • Output gate
    • input x, previous hidden state, updated cell state
    • sigmoid, tanh

Gated Recurrent Unit(GRU)

  • reset gate, update gate
  • no cell state

RNN의 long-term dependencies 문제
→ LSTM → gate 하나 줄임. cell state가 불필요함.
→ GRU

Transformer

Attention이라는 일종의 구조에 기반을 둔 모델.
번역에 강력한 성능. 번역 외에 이미지 관련해서도 사용됨.

seq-seq(seq-to-seq, seq2seq)

Encoder, Decoder의 이용

transformer

Encoders, Decoders 이용.
각각의 encoder는 크게 봐서 self-Attention, Feed Forward Neural Network로 구성.

  1. 각 단어를 embedding vector로 나타냄.(각 단어에 특정 숫자가 mapping된 벡터)
  2. self-Attention에서 각 단어를 인코딩.(인코딩 과정에서 다른 단어들의 정보들이 서로 사용됨)(Dependency)
  3. Feed Forward Neural Network에서 변환되어 평행하게 전달됨.(No Dependency)

word input
→ embedding
→ 각 embedding vector 별로 query, key, value 생성
→ 어느 한 query와 모든 key 간에 내적(dot product) 유사도 측정(score)
→ normalize 및 softmax 적용
→ 해당 값들을 각 단어의 value와 곱하고 취합하여 sum을 구함.
→ Z 도출

*(아직 강의가 좀 더 남아서 transformer의 나머지 부분은 이후 포스트에서 다룰 예정)


Questions

  • non-linearity의 구체적인 의미와 효용
  • 여러 optimization algorithms
  • LSTM에서 왜 sigmoid, tanh 함수가 사용되는지
    • 또 LSTM을 구체적으로 어떻게 구현하는지(언뜻 보기엔 복잡해보이는데)
    • cell state가 반드시 필요할 것 같지는 않은데 왜 사용되었는지
      • GRU에서는 없는 것으로 보아 아마 그냥 저 시점에 제안된 방법 중 하나가 아니었을까.
  • transformer에서 내적으로 score를 매겨 유사도를 구하는데 만약 q1=[1,1,1,1], k1=[1,1,1,1], k2=[2,2,2,2]라면 q1·k1=4, q1·k2=8이 되어 score1<score2가 된다.
    하지만 q1에 대해 'k1과 k2 중에 어떤 벡터가 더 유사한가?'라는 질문을 한다면 'k1이 더 유사하다'고 답하게 되지 않겠는가?
    • '내적값(score)이 클수록 더 유사하다'라는 명제가 과연 맞는 것인지 의문이다. key에 사용되는 조건들이 있나?

회고

모르는 이론들을 계속 찾아가면서 공부하다보니 이해도 더 잘되는 하루였다.
내일은 직접 구현해보면서 더 알아가봐야겠다.

profile
BEST? BETTER!

0개의 댓글