BESS(Back-End Study Space)

Mini-Batch, Back Propagation, Overfitting 본문

데이터 분석 입문/딥러닝

Mini-Batch, Back Propagation, Overfitting

leeez 2020. 12. 5. 13:50

2020/12/05 - [데이터 분석 입문/딥러닝] - Perceptron, Deep Learning, Gradient Descent

 

Perceptron, Deep Learning, Gradient Descent

#1. Perceptron(1958, Frank Rosenblatt) 생물학적 뉴런을 모방하여 인공신경망(Artificial Neural Network)의 기본 단위 ※ Activation function : 가중치들의 합으로 만들어진 신호가 이 함수를 만족해야 다음..

leeezxxswd.tistory.com

#1. Mini-Batch

weight 값을 아주 조금 바꾸기 위해서 내가 가진 모든 training data에 대하여 loss를 모두 계산하는 건 너무 오래 걸림

 전체 data 중에 일부 data만 뽑고(sampling) 이 data들이 전체 training data를 잘 대표한다고 가정해서
이 data들로만 loss를 계산하여 weight를 update해도 되지 않을까

1. Batch Gradient Descent : 모든 data에 대하여 loss를 계산하여 다 더하고 이를 이용해서 GD
2. Stochastic Gradient Descent : Data를 1개만 뽑고, 그 1개의 data에 대한 loss를 이용하여 GD
3. Mini-batch Gradient Descent : Batch/Stochastic의 중간 형태로 data를 n개 뽑고 그 n개의 data에 대한
loss를 계산하여 다 더한 뒤 이를 이용하여 GD (제일 많이 쓰는 방법)

 

#2. Back Propagation

Loss로부터 거꾸로 한 단계씩 미분 값을 구하고 이 값들을 chain rule에 의하여 곱해가면서 weight에 대한 gradient를 구하는 방법

Back Propagation


chain rule : 미분들을 전부 각각 곱하면 연쇄되어 사라지는 것들이 생김


☞  우리가 구하려고 했던 미분 값 (aL/aw11)


 

#3. Overfitting

Training data에 너무 최적화(fitting)를 함으로 인하여 일반화(generalization) 성능이 떨어지는 현상

▶ Underfitting vs. Overfitting
- test error = training error + generalization gap
- model capacity(layer의 수)가 너무 작으면,
   아무리 학습을 해도 성능이 안나옴 → Underfitting
- model capacity(layer의 수)가 너무 크면,
   Generalization gap이 커짐 Overfitting
- Deep Learning에 사용되는 model은 capacity가 대부분 크기 때문에
   (layer의 수가 많음) overfitting에 취약함

1차원(Underfitting) 4차원 15차원(Overfitting)
성능이 떨어지는 부분이 존재   점으로 표시되지 않은 x값이 들어왔을 때
y예측이 잘못될 수 있음

(Deep Learning의 목적 : 내가 가지지 않은 데이터x에 대해서도 y예측이 잘 이루어져야 함)
    실제 정답인 초록색과 가장 멀리 떨어져있는 값으로 예측함 성능이 가장 좋지 않음

내가 가지고 있는 데이터에 너무 최적화시키려고 하다 보니, 내가 보지 못했던 데이터에 대해 성능이 떨어지는 현상


Overfitting을 막는 방법
> 1. Data 양을 늘린다.
> 2. Regularization(정규화 or 규제) 방법을 사용
     - L1 / L2 Regularization (Weight Decay)
     - Dropout
     - Batch Normalization

'데이터 분석 입문 > 딥러닝' 카테고리의 다른 글

TensorFlow와 PyTorch  (0) 2020.12.07
Generative Adversarial Network  (0) 2020.12.07
Recurrent Neural Network(RNN)  (0) 2020.12.06
Convolutional Neural Network(CNN)  (0) 2020.12.06
Perceptron, Deep Learning, Gradient Descent  (0) 2020.12.05