관측 데이터의 구성

  • 범주형
    클래스 별로 비율을 맞추는 것이 중요

    특정 클래스에 데이터가 치우친다면 데이터를 강제로 늘려주거나 데이터의 분포를 고려하여 손실 함수에 가중치가 조절되도록 알고리즘적으로 해결해야 한다.

  • 회귀형
    입력 데이터가 근사하려는 함수 범위를 잘 지지하고 있는가?

    신경망이 연속함수를 근사할 때 관측 데이터 사이의 함수 구간은 보간(interpolation)해서 근사하겠지만, 관측 데이터 범위 밖의 영역에 있는 함수 구간에서 외삽(extrapolation)을 해서 근사할 경우 근사 능력이 떨어진다.

    따라서 함수를 만들려는 범위에 필요한 데이터가 충분히 있는지 확인

데이터 셋의 분리

관측 데이터가 준비되면 데이터를 train set, validation set, test set으로 분리한다.

  • train set
    모델 훈련할 때 사용

  • validation set
    훈련된 모델의 성능을 평가해서 하이퍼 파라미터를 튜닝하는데 사용

  • test set
    훈련이 완료된 모델의 최종 성능을 평가할 때 사용

이 세 종류의 데이터셋은 일반화를 위해 서로 중복되지 않도록 분리해야 한다.

주요 원칙
분리된 데이터셋의 분포가 원래의 데이터 분포를 따르도록 해야한다.
즉, train set == validation set == test set (distribution)

훈련 데이터의 단위

  • batch
    학습 데이터를 한꺼번에 입력하는 방식
  • mini batch
    데이터를 작은 단위로 묶어서 훈련
  • stochastic 방식
    데이터 샘플 단위로 훈련
    -> 개별 샘플의 용량이 매우 클 때는 샘플 단위로 훈련하기도 한다

minibatch의 크기를 1로하면 확률적 방식이 되고, minibatch의 크기를 훈련 데이터 셋 크기로 하면 batch 방식이 된다.

훈련 데이터 단위에 따른 경사하강법의 분류

  • batch gradient descent
    gradient를 정확히 계산하므로 부드러운 경로를 만든다
  • minibatch gradient descent
    중간정도로 부드러운 경로를 만든다
  • stochastic gradient descent
    하나의 샘플로 그래디언트를 근사하므로 상당히 많이 진동한다.

minibatch 방식이 우수한 이유

미니배치 방식은 배치 방식보다 학습이 더 빠르고, 모델의 성능이 좋아진다.

미니배치 방식은 데이터를 작은 단위로 묶어서 훈련하기 때문에 미니배치를 생성할 때마다 매번 다른 데이터로 묶인다. 따라서 그때마다 조금씩 다른 통계량을 갖는 확률적 성질이 생긴다.

확률적 성질이 생기면 일반화 오류가 줄어들고 과적합이 방지되는 정규화 효과를 보게된다.

profile
사람을 연구하는 공돌이

0개의 댓글

Powered by GraphCDN, the GraphQL CDN