728x90

[5] Self Supervised Learning

 

 

1. Supervised Learning

: Input data(x)에 대한 label 정보(Y)가 한 쌍으로 주어졌을 때 해당 X, Y사이의 관계를 학습

:  예측과 분류 

 

한계: 데이터의 구조가 복잡할 수록 데이터가 많이 필요하지만 그 만큼의 양질의 Label 정보를 얻기 힒



2. Self-Supervised Learning

: Unsupervised Learning 기법

: input data(x) 자체에서 쉽게 얻을 수있는 정보를 통해 자동으로 Label로 생성하여 지도학습에 이용



  • Pretext-based Learning
    : input Data에 사전 정의된 작업(Pretext task)을 수행하여 Data 내의 semantic한 정보를 네트워크(layers)가 이해할 수 있도록하는 임의의 Task기반 학습방식

 

  • Contrastive Learning
    : Pretext-based Learning 없이 학습을 진행
    : Label 정보 없이 관측치의 유사성을 바탕으로 학습을 진행하여 관측 대상의 전체를 표현하는 기법

 


Self-Supervised Learning 기본 Step

1). Pre-trained Model 생성
: 다량의 Untagged Data를 통해 전반적인 Data의 특징(Feature)을 추출하고 학습하는 Model 생성

: Label이 없는 Data를 이해하도록 사전 정의된 작업(Pretext task)을 위한 임의의 Label을 만들어 Model을 학습하거나 데이터 간의 관계를 이용하여 학습

: Pre-trained Model을 바탕으로 Dataset을 Representations Learning 하여 다음 Step에 전이 시킴

“Label 없는 데이터를 프리텍스트 태스크로 학습”

“학습된 특징들로 Model을 학습하여 더 적은 레이블을 가진 새로운 데이터에도 적용 가능하게 학습”

2). Downstream Task
: 사전학습된 소량의 Tagged Data만으로 Semantic Representation을 찾아 좋은 성능을 위한 Transfer Learning(전이 학습)을 진행

“더 적은 Label을 가진 새로운 데이터에도 적용 가능하도록 Fine Tuning”

“목적에 맞게 Pre-trained Model을 Fine Tuning ”

"목적에 따라 Layer를 추가하여 Tagged Data를 학습하여 진행”

728x90
728x90



[4] Advanced Recurrent Neural Network



1. RNN’s Vanishing Gradient Problem

: RNN에서는 이전 Step(t-1)에 대한 output(h(t-1)) 벡터와 새로운 input(X(t))의 Layer 통과 후 벡터의 선형결합 후 Activation Function을 통과함 

 

 

: 결국 t = n 인 시점에서는 무수한 Activation Function(Tanh)을 합성되어 Gradient가 점점 0으로 수렴함

 

“Gradient Vanishing”




2. Long Short Term Memory Network(LSTM)

: RNN의 Gradient Vanishing를 해결하기 위해 각 스텝에서 시간에 따른 Information flow(Cell State)을 공급하여 중요한 정보만 계속 흘러가도록 구현함

 

:Hidden State(h, 각 Step에서의 output, Short Term)는 각 Cell State(시간에 따른 이전정보들의 흐름,  Long Term)에서 output으로 가공하여 제공

 

  • Gate
    : 각 차원의 정보들의 중요여부를 0~1사이의 값으로 표시하는 벡터(vector)

    :Linear Transformation의 가중치와 Input 벡터(vector)와 곱하여 중요도를 확정 후 0~1을 매핑하는 Sigma를 적용하여 Gate를 생성

    ex).
    Weight: {0.1, 0.2, 0.8, 0.9, 0.1, 0.2, 0.2}
    “Linear Transformation”
    Input: {3, 4, 5, 5, 3, 3, 2}
    Gate(g(t)) = (Mapping Transformation sigma - 0~1) * (weight * Input)

    C(t) = t 시간에서의 Cell State(시간에 따른 이전정보들의 흐름)

    * C(t)` = g(t)*C(t)
    * Gate 유형: forget Gate, input Gate, output Gate

    “LTSM에서 Gate는 input을 보고 학습하여 자동으로 생성된다”

 



  • LSTM Process 기본 Step


    1). C(t-1)에서 중요한 정보만 남기고 지움

    “forget gate(f(t))를 통해 불필요한 정보를 지움”


    2). 이때 C(t-1)에 새로운 input  X(t)와 output h(t-1)을 보고 중요한 정보를 확인 후 넣음

    “input gate(i(t))를 통해 임의의 C(t)`를 계산”


    3). C(t)를 생성

    “f(t)를 통해 C(t-1)의 불필요 정보를 날리고 input gate(i(t))를 통해 임의의 C(t)`정보를 추가하여 C(t)를 생성”

    “ C(t) = f(t)*C(t-1)  + i(t)*C(t)` ”


    4). C(t)를 바탕으로 계산하여 h(t)를 만듬

    “output gate(o(t))를 만들어 C(t)를 가공하여 output h(t)를 생성”


    5). C(t)와 h(t)를 다음 step (t+1)로 전달함

 

  • Gradient Vanishing Problem Solution with LSTM
    : Cell-state에서는 Non-linear Activation Function(Tanh)을 거치지 않아 t시점에서 이전의 중요 정보들이 활용되기에 Gradient Vanishing Problem을 해결할 수 있음

 

3. Gated Recurrent Unit (GRU)

: Gate의 수를 줄이고 Cell State를 없애고 Gradient Vanishing 문제까지 해결하기 위한 Compact한 RNN 모델




 

  • GRU Process 기본 Step

    1). Reset gate(r(t))를 계산하여 임의의 h(t)`를 만듬

    2). Update gate(z(t))를 통해 h(t-1)와 h(t)간의 balance를 계산 “가중치 계산”

    3). z(t)를 바탕으로 h(t)를 계산

    “ h(t) = (1-z(t))*h(t-1) + z(t)*h(t)` ”


728x90
728x90



[3] Recurrent Neural Network (RNN) 기초



1. Sequential Data

: 직역 그대로 순차적인 데이터를 의미함

ex.) 문장, 시계열 데이터, 순서가 있는 데이터, 랭킹 데이터



2. Sequential Data Process Without Deep Learning

  • Time Domain
    : signal’s width, step, height (파형 분석)

 

  • Frequency Domain
    : Fourier or Wavelets (파형 분석)

 

  • Nearest Neighbors
    : Dynamic time warping (DTW)

 

  • Probabilistic Model
    : Language modeling
    (sequence에 대해 다음은 뭐가 나올지에 대한 확률적 접근 모델)

 

  • (S)AR(I)MA(X) Model
    : Autocorrelation inside of series

 

  • Decomposition
    : Time Series
    (trend(증가추이) + season(계절) + residuals(오류))

 

  • Nonlinear Dynamics
    : Differential Equation
    (ordinary, partial, stochastic: 미분을 통해 차이분석)

 

  • Machine Learning
    : ML model
    (hand-made features, 간단한 ML 기법사용 - Regression or Classification)

 

3. Sequential Data Process With RNN

: 이전 Step(t-1)에서의 output(h(t-1))과 새로운 input(X(t)), 두 가지를 동시에 고려하여 새로운 Step(t)을 진행하는 취지

 

  • RNN Process 기본 Step

    1). 이전 Step(t-1)에서의 output(h(t-1), Hidden State) 벡터(vector)와 새로운 input(X(t))이 Layer 통과 후 벡터를 선형결합

    2). 선형결합에 따라 새로운 벡터(vector)를 만든다

    3). 해당 벡터(vector)를 Non-Linear Activation Function을 통과시켜 새로운 output(h(t), Hidden State)를 만듬

 

  • One to One Data
    : 기존 MLP나 ML을 통해 Input(X)에 대응하는 output(Y)를 만듬

 

  • One to Many Data
    : ‘RNN Process 기본 Step’ 마다 새로운 MLP 모델을 만들어 새로운 Output(Y)를 만들고 Input을 X 대신 Y로 Step을 진행

    step1 : input - X(1) , output - h(1), Y(1) “MLP”
    step2 : input - Y(1), output - h(2), Y(2) “MLP”
    step3 : input - Y(2), output - h(3), Y(3) “MLP”

 

  • Many to One Data
    : ‘RNN Process 기본 Step’ 뒤에 새로운 MLP 모델을 만들어 새로운 Output(Y)를 만듬

    step1 : input - X(1) , output - h(1),
    step2 : input - X(2), output - h(2),
    step3 : input - X(3), output - h(3), Y “MLP”

 

  • Many to Many Data (Sync sequence Input and output)
    : ‘RNN Process 기본 Step’ 마다 새로운 MLP 모델을 만들어 새로운 Output(Y(t))를 만듬

    step1 : input - X(1) , output - h(1) , Y(1) “MLP”
    step2 : input - X(2), output - h(2), Y(2) “MLP”
    step3 : input - X(3), output - h(3), Y(3) “MLP”

 

  • Many to Many Data(Sequence input and sequence output) - 주로 번역에서 사용
    : ‘RNN Process 기본 Step’ 뒤에 새로운 MLP 모델을 만들어 새로운 Output(Y(t))를 만들고 이를 새로운 input(Y(t))삼아 ‘RNN Process 기본 Step’을 X가 input으로 진행 되었던 만큼 수행한다

    : ‘RNN Process 기본 Step’에서의 h(t)와 선형결합을 했던 새로운 input에 X(t) 대신 Y(t)를 추가로 진행 함

    : input(X)가 3개 있을 시 Y 또한 3번 생성 가능하도록 Step을 진행
    (결국 input(X) 3번째 끝에 새로운 MLP 모델를 통해 Y가 생성되므로 2번 더 RNN Step을 진행하여, 총 5번 진행)

    step1 : input - X(1) , output - h(1)
    step2 : input - X(2), output - h(2)
    step3 : input - X(3), output - h(3), Y(1) ”MLP”
    step4 : input - Y(1), output - h(4), Y(2) ”MLP”
    step5 : input - Y(2), output - h(5), Y(3) ”MLP”

    : Encoder, Decoder 개념이 적용되어 있음
    “서로 다른 모델이라고도 표현 가능 - step 1~3 : encoding Model, step 3~5 : decoding Model”

  • 이전 Step(t-1)에서의 output(h(t-1)), 새로운 input(X(t)), 추가 MLP 모델을 통해 만든 새로운 Output(Y(t))의 파라미터(W,U,V)를 찾고 Loss에 대한 Gradient 업데이트를 진행하는 것이 RNN의 목표

  • 단 RNN에서는, Gradient 업데이트시 Gradient가 점점 0에 수렴하기에 Gradient Vanishing이 될 가능성이 존재함





728x90

+ Recent posts