Home [AI]Deep Learning 이란
Post
Cancel

[AI]Deep Learning 이란

Deep learning

딥러닝 기초

인공지능 vs ML vs DL

  • 인공지능: 사람의 지능을 모방하여 분류하는 알고리즘
  • ML: 데이터를 기반으로 학습하는 알고리즘
  • DL: 인공신경망을 통해 데이터를 학습하는 알고리즘

데이터

어떠한 문제를 해결하기 위해 그에 알맞은 데이터 포맷을 요구

  • Classification
  • Semantic segmentation
  • Detection
  • Pose Estimation
  • Visual Q&A

Loss function

오차를 판별하고, 가중치를 수정할 기준을 정의

Generalization; 일반화

학습 성능과 테스트 성능에 대한 차이 정도

Regularization

Generalization을 위한 규제를 정의

  • Early stopping
    • Validation error가 최저인 점을 기준으로 n회 동안 발전이 없을 시 학습 종료
  • Parameter Norm Penalty; Weight decay
    • 네트워크 가중치 수들이 크기 관점으로 작을수록 좋다는 가정을 수립
  • Data Augmentation
    • 데이터의 특징을 살려서 데이터를 늘리는 기법
  • Noise Robustness
    • 입력 데이터에 Noise 삽입
    • Weight에 Noise 삽입
  • Label Smoothing
    • Mixup/CutMix와 같은 전처리 시 강아지 0.5, 고양이 0.5… 이런식으로 label을 다양화
  • Batch Normalization
    • 평균과 분산등을 통해 정규화 진행

Over/Under fitting

  • Overfitting(과적합)
    • 학습 데이터에 대해 우수한 성능을 보이나 학습을 진행하지 않은 테스트 데이터셋에 대해 낮은 성능을 도출하는 현상
    • 학습 데이터를 깊이 학습하여 나타나는 현상

Generalization gap: 특정 에폭에 대해 학습 정확도(loss)와 테스트 정확도(loss)의 차이

Cross-Validation; K-fold validation

  • 학습용 데이터를 k개로 쪼개어 각각의 partition을 해당 학습의 validation으로 이용

Bias vs Variance

  • Bias
    • target위치와 떨어져있는 정도
  • Variance
    • 집단이 퍼져있는 정도

      bias and variance tradeoff: bias 혹은 variance를 조정하기 위해 데이터에 노이즈가 삽입되었다고 가정할 때, 서로 간의 Tradeoff 관계 형성

Bootstraping

학습 데이터가 고정되어있다고 가정할 때, Subsampling된 데이터를 기반으로 여러 모델을 통해 metric을 추출하여 결과를 분석

  • Bagging(Bootstrapping aggregating)
    • 일반적인 Bootstraping 기법을 의미
    • 데이터를 100% 사용한 모델에 비해 Subsampled 데이터를 학습하여 도출된 metrics를 분석하는 것이 더 좋은 성능을 도출할 경우도 다수 존재
  • Boosting
    • Subsampled 데이터를 학습한 모델들의 결과를 Sequential하게 취급하여 가중치 학습과 유사하게 처리함으로써 하나의 모델로 도출

최적화

Gradient Descent

  • $\eta$: 학습률
  • $g_t$: 이전 gradient

Practical Gradient Descent

  • Stochastic gradient descent
    • 하나의 데이터에 대해 경사하강법 진행
  • Mini-batch gradient descent
    • Subset 데이터에 대해 경사하강법 진행
  • Batch gradient descent
    • 전체 데이터에 대해 경사하강법 진행

Batch-size Matters

Batch size의 값을 작게 적용하면 Flat minimizer에 도달하고, 크게 적용하면 Sharp minimizer에 도달

  • Generalization 성능이 향상
  • Train 성능과 Test 성능의 유사성을 실험적으로 도출

Stochastic Gradient descent

데이터의 일부(Batch)만을 이용하여 경사하강법 적용

  • $W_{t+1} = W_t - \eta g_t$

Momentum

SGD 미분 값에 관성을 적용하여 갱신

  • 빠른 수렴을 유도
  • $\beta$: momentum
  • $a_{t+1} = \beta a_t + g_t$
  • $W_{t+1} = W_t - \eta a_{t+1}$

Nesterov Accelerated Gradient(NAG)

Momentum 적용 후의 위치에서 기울기를 고려

  • $\nabla L(W_t - \eta \beta a_t)$: Lookahead gradient
  • $a_{t+1} = \beta a_t + \nabla L(W_t - \eta \beta a_t)$
  • $W_{t+1} = W_t - \eta a_{t+1}$

Adagrad

과거를 보았을 때, 적게 변화한 가중치에 대해서 큰 변화를 유도

  • $G_t$: 지금까지의 gradient 제곱의 합
  • $W_{t+1} = W_t - \frac{\eta}{\sqrt{G_t + \epsilon}}g_t$

Adadelta

Adagrad에서 $G_t$가 커지는 현상을 완화

  • 학습률이 없는 학습법
  • $G_t = \gamma G_{t-1} + (1 - \gamma)g_t^2$
  • $W_{t+1} = W_t - \frac{\sqrt{H_{t-1} + \epsilon}}{\sqrt{G_t + \epsilon}}g_t$
  • $H_t = \gamma H_{t-1} + (1 - \gamma)(\Delta W_t)^2$

RMSprop

Adagrad에서 $G_t$가 커지는 현상을 완화하기 위해 지수 이동 평균을 이용하여 영향력을 상쇄

  • $G_t = \gamma G_{t-1} + (1 - \gamma)g_t^2$
  • $W_{t+1} = W_t - \frac{\eta}{\sqrt{G_t + \epsilon}}g_t$

Adam

Momentum을 확보한 Adaptive 기법

  • $m_t$: Momentum
  • $v_t$: EMA of gradient squares
  • $m_t = \beta_1 m_{t-1} + (1-\beta_1)g_t$
  • $v_t = \beta_2 m_{t-1} + (1-\beta_2)g_t^2$
  • $W_{t+1} = W_t - \frac{\eta}{\sqrt{v_t + \epsilon}}\frac{\sqrt{1-\beta_2^t}}{1-\beta_1^t}m_t$

Recurrent Neural Networks(RNN)

Autoregressive model

과거의 Time span을 고정하는 기법으로, AR(n)일 시, 과거 n 스텝에 의존

Markov model

직전 스텝의 과거에 의존하는 기법

  • 이때 껏의 많은 정보를 포기

Latent autoregressive model

과거 정보를 요약하는 Hidden State를 형성

RNN; Vanila RNN

Short-term dependencies

  • Hidden State를 보유하여 과거를 기억하는 노드 형성
  • 멀리 있는 기억 노드에 대해서 점차 잊게 되는 한계보유
  • Gradient Vanishing/Exploding 현상 발생
RNN 구조Gradient Vanishing/Exploding

Long Short Term Memory(LSTM)

3개의 입력을 받아 과거의 정보 유실 정도를 결정

  • 입력(출력)
    • Input(Output): 현재 노드의 입력(출력)
    • Previous(Next) cell state: 이전(현재)까지의 노드 정보를 취합하여 요약
    • Previous(Next) hidden state: 이전(현재) 노드의 output
  • 출력
    • Output
    • Next cell state
    • Next hidden state
  • Gate
    • Forget gate: 정보의 유용함을 판단하여 현재까지의 정보(Cell state) 중 버릴 정보를 조정
    • Input gate: 현재 정보에서 Cell state에 등록할 정보를 선택
    • Output gate: 최종적으로 조작하여 다음 노드로 전달할 정보를 정리

<img src = /static/img/Study/AI/lstm_summary.png height = 400px>

GRU

LSTM 구조에서 Gate를 2개로 줄여 구조적 단순함 식별

Transformer

기존 seq2seq 모델과 달리, Attention 기법을 적용한 NLP 모델

  • Encoder
    • Feed Forward Neural Network와 Self-Attention으로 구성
    • Self-Attention
      • 여러 언어가 Encoder의 입력으로 들어갈 때 각 단어가 다른 단어를 고려하여 인코딩
    • Feed Forward Neural Network
      • Self-Attention을 통해 인코딩된 각 단어를 일대일로 변환

예시 문장: The animal didn`t cross the street, because it was too tired

위의 예시 문장에서 it이 무엇을 지칭하는지 아는 것이 번역의 핵심으로 취급한다.
Self-Attention기법을 통해 it이라는 단어가 그 외의 모든 단어들과 비교하여 연관성을 학습한다.


Convolution Neural Network(CNN)

Convolution

|Filter 연산| |:-:| |<img src=/static/img/Study/AI/convolution_0.png height=300px>|

CNN 청사진 예시
<img src=/static/img/Study/AI/convolution_1.png height=200px>

Stride

  • 슬라이딩 간격 설정

Padding

  • 영상의 테두리에 일정한 값을 주입하여 사이즈 확대

연산

  • 예시
    • Padding = 1, Stride = 1
    • Input: 40*50*128
    • Kernel: 3*3
    • Output: 40*50*64
    • Parameter: 3*3*128*64

1*1 Convolution

Dimension reduction을 위한 기법

  • Parameter 수를 줄이면서 깊이를 보존
  • Bottle neck architecture
This post is licensed under CC BY 4.0 by the author.