- Sequence data 란

 : 일반적인 ML 알고리즘은 독립적이고 동일하게 분산 된 i.i.d 데이터를 가정합니다.

    i.i.d란 independent and identically distributed의 약자로 sample 간 독립적이라는 뜻입니다.

 

   예를 들어 비디오 프레임의 경우는 순서에 영향을 받기 때문에 sequence data라고 부릅니다.

   sequence data로는 stock prediction, speech recognition, text classification, sequence generation 등이 있습니다.

 

 

- Sequence modeling

 : input이 sequence로 들어왔을 경우, 기존 neural network 구조로는 sequence data 처리하기 어렵습니다.

   sequence의 길이가 고정되어 있지 않은 것이 가장 문제입니다.

 

 

- Inputs of variable size

 : 예를 들어 감정 분석에서 입력 문장의 길이가 가변적 일 수 있습니다.

   표준 신경망은 입력 크기가 고정 된 데이터 만 처리 할 수 ​​있습니다.

 

   feature의 수가 sample 마다 달라질 수가 있지만,

   standard neural network model의 경우 input feature가 고정이여야만 합니다.

 

 

 

 

- Recurrent Neural Network

 : RNN은 시퀀스 모델링을 위해 설계되었으며 과거 정보를 기억할 수 있습니다.

   특징은 sequence 길이에 상관없이 적용이 가능하고,  과거의 정보를 기억하여 다음 time point에 활용 가능합니다.


  • Language: sequence of words
  • Acoustic: sequence of phonemes
  • Movie: sequence of images
  • Genes

 

 

 

- Different categories of sequence modeling

 : time이 들어갈 경우 다양한 sequence model이 생길 수 있습니다.

 

 

 

- RNN looping mechanism

 : Recurrent neural network는 hidden layer 간에 loop가 있습니다.

   이전 단계에서 계산한 hidden node의 값을 다시 input으로 받을 수 있습니다.

 

 

 

- Feedforward NN vs. RNN

 : Recurrent network 에서 h는 이전 h로 부터 값도 받고, 현재 time에서의 값도 받습니다.

   현재 time에서의 x와 이전 time에서의 h가 같이 input으로 들어가는 것이 가장 큰 차이입니다.

 

 

 

- Output of RNN

 : output 은 시간마다 있을 수도 있고, 마지막에 하나만 있는 경우도 있다.

 

 - RNN input is a sequence
 - The recurrent layer can return a sequence as output (𝑜1,𝑜2,…,𝑜(𝑇)), or simply return the last output (at t=T, 𝑜(𝑇))

   • Either many to many, or many to one

 

 

- Recurrent neural network 

 : input으로 들어오는 sequence의 길이가 계속 바뀔 수 있으나, parameter 들을 모든 time에 공유함으로써 해결합니다.니

 

 

 

- Recurrent Hidden Units

 

 

- Training RNN

 : 모든 time에서의 Loss를 합한 값을 가장 작게하는 W, U, V를 알아내는 것이 Training의 목적입니다.

 

 

 

 : Basic recurrent networks는 skip  및 공유 가중치가있는 표준 신경망의 특별한 경우이기도 합니다.

    따라서 표준 역 전파를 사용할 수 있습니다.

 

 

 

- BackPropagation Through Time (BPTT)

 : Loss가 모든 time으로 부터 영향을 받으므로 모두 고려하여야 합니다.

   시간이 길어지면 gradient vanishing 문제가 발생할 수 있습니다.

 

 

 

- RNN is hard to train

 : RNN based network is not always easy to learn

 

 

 

- Truncated BPTT

 : 다음과 같이 time 포인트를 잘라서 forward, backward를 하는 방법이 있습니다.

 

 

 

- Practical measure

 : Exploding gradients
   • Truncated BPTT (how many steps to BP)
   • Clip gradient at threshold
   • RMSProp to adjust learning rate Practical measure
   Vanishing gradient (harder to detect
   • Weight initialization (Identity Matrix for W)
   • ReLU as Activation
   • LSTM, GRU

 

 

- Long short term memory cells

 : LSTM는 vanishing gradient 문제를 극복하기 위해 소개된 방법으로

   memory cell 안에 세 가지의 gate가 존재합니다.

 

   이전 단계의 data를 사용할 것인지의 여부 및 얼마만큼의 값을 넘겨 줄 것인지 등을 고려합니다.

   gate의 값을 생성하는 neural network의 값을 추가로 같이 학습합니다.

 

 

 : Introducing gate

 

 

 : Long Short-Term Memory

 

 

 : LSTM

 

 

- Gated Recurrent Units (GRU)

 : LSTM이 너무 복잡하고, 세 개의 gate를 모두 사용해야 하는 것에 대한 문제로 새롭게 나온 방법으로

   GRU는 LSTM에 비해 gate의 수가 줄고 계산이 조금 더 단순해졌습니다.

 

   GRU는 표준 반복 신경망 GRU (Gated Recurrent Unit)의 개선 된 버전입니다.

   표준 RNN의 소멸 기울기 문제를 해결하기 위해 GRU는 소위 업데이트 게이트 및 리셋 게이트를 사용합니다.

   시간을 흘리거나 예측과 무관 한 정보를 제거하지 않고도 오래 전의 정보를 유지하도록 훈련시킬 수 있습니다.

 

   forget gate와 input gate를 하나도 합친 update gate로 사용합니다.

   cell state와 hidden state를 하나로 합쳤습니다.

 

 

 : update gate는 과거의 information 중 얼마만큼이 다음 단계로 넘어가야 할지를 정합니다.

   reset gate는 과거의 information을 얼마만큼 버릴지를 결정합니다.

 

 

- How LSTM/GRUs process sequential input

 : Suppose we are classifying sentences into {POS, NEG} classes
   • Need to represent sentences as vectors
   • Sequentially feed in words into the LSTM and take the final hidden representation

 

 

 

- Advice on Training (gated) RNN

 : Use an LSTM or GRU
   Initialize recurrent matrices to be orthogonal (서로 다른방향으로)
   Initialize other matrices with a sensible (small) scale
   Initialize forget gate bias to 1: default to remembering
   Use adaptive learning rate algorithms: Adam, AdaDelta, ...
   Clip the norm of the gradient
   Either only dropout vertically or learn how to do it right

   Be patient! (학습이 잘 되지 않으므로)

 

 

- Bi directional RNN

 : 양방향으로 정보를 모델링

 

 

 - Makes two passes over each input sequence
   • Forward pass and a reverse pass
   • The results are concatenated by default
   • May use ‘sum’, ‘ mul ’, ave ’, or ‘none’

 

 

- Deep RNN

 

 

- Sequence to sequence with RNN

 : encoder와 decoder의 구조를 가집니다.

   encoder를 걸친 값을 context vector로 이해하여 이를 input으로 decoder 부분에 넣어 계산하는 방법입나다.니

 

 

 

- Self attention

 : Transformer architecture는 input과 output element 간 global dependencies 반영할 수 있는 model로

   "attention" 이라는 중요한 개념이 존재합니다.

 

    attention이란 input element와 output element 간에 관계 및 상관성을 표현합니다.

    자신의 time 값이 가장 많이 반영되지만, 다른 time의 값도 반영됩니다.

 

 

 

- Multi head attention

 : Multi head attention은 self attention을 parallel로 붙여서 사용하는 방법입니다.

   Encoder & Decoder Idea는 다음과 같습니다.

 

 

 

 

- Transformer model

 : Input sequence is passed to MHA

   Input sequences are added to the output of MHA via residual connections 
   • Improves training speed and convergence
   Outputs are normalized via layer normalization, and then go through a series of MLP layers
   Finally, output is normalize again and returned as the output sequence, to be used for sequence classification

   or sequence generation

 

 

- Image measures

 : 겹치는 정도를 교집합/합집합 값으로 표현하여 얼마나 정확하게 맞췄는지 표현가능합니다.

   F1 Score를 사용하여 정답과 비교한 모델의 성능을 표현할 수 있습니다.

 

 

 

- Text metrics 

 : BLEU (Bilingual evaluation understudy
   • Based on n gram based precision
   • A measure of fluency rather than semantic similarity between two sentences

   Rouge (Recall Oriented Understudy of Gisting Evaluation
   METEOR (Metric for Evaluation of Translation with Explicit ORdering

 

 

 아주대학교 정보통신대학원 손경아 교수님의 기계학습 및 데이터 마이닝 강의를 바탕으로 작성하였습니다.

 학습 목적으로 포스팅 합니다.

'Machine Learning' 카테고리의 다른 글

Convolution Neural Network  (0) 2020.10.14
Artificial Neural network  (0) 2020.10.01
Neural network: perceptron  (0) 2020.10.01
Logistic regression  (0) 2020.09.29
Model selection  (1) 2020.09.29