딥러닝

Difference of data sampling method (mini batch vs bagging model)

관형이 2023. 7. 12. 18:44

안녕하세요. 이번 시간에는 마지막 세번째 시간 mini batch bagging 알고리즘의 데이터 샘플링 방식의 차이를 공부하겠다.
신경망 학습을 하다가 비슷한듯 비슷하지 않은 미니 배치와 배깅알고리즘을 정리하면서, 다시 한번 샘플링 차이를 이해하는 시간이 되었다.. 목차는 다음과 같다.

목차

  • mini batch와 bagging 알고리즘
  • 데이터 샘플링 방식의 차이
  • 중심극한 정리와 배깅 알고리즘

 

bagging의 이해

 
배깅 알고리즘은 앙상블 알고리즘 중 하나이다. 모델링에서 배깅의 핵심 방식을 요약하면,

  • 부트스트래핑
  • 단일 알고리즘 적용
  • 보팅(hard or soft)

이것으로 요약할 수 있다.

배깅 vs 보팅

전체 데이터(모집단) 중 중복을 허용한 뽑기(부트 스트래핑) 방식으로 여러개의 샘플 데이터들을 만든다.

부트 스트래핑

여러 개의 샘플 데이터의 서브 세트는 하나의 모집단 속에서 나온 여러 개의 표본들입니다. 이러한 여러 표본들에 단일 알고리즘, 즉 같은 모델(ex) decision tree)을 적용한다.
(보팅의 방식을 전체 데이터에 서로 다른 모델들을 적용하는 방식)
 
뽑힌 표본들의 단일 알고리즘을 적용하면, 나온 결과들을 보팅(투표)을 통해 예측 target을 적용한다.
보팅의 방식을 일반적으로 2가지가 있는데, 하드 보팅소프트 보팅이 있다.
 

하드 보팅과 소프트 보팅 차이

하드 보팅: 다수결
소프트 보팅: 확률
 
만약 이진 분류의 방식이었으면(0, 1)
하드 보팅은 예측한 라벨값을 반환한다.
sample1: 1, sample2: 2, sample3: 1, sample4: 1
2보다 1의 라벨 값이 더 많으므로, 다수결로 1의 라벨값을 반환하는 것이다. 
 
소프트 보팅은 각각의 확률 값을 반환한다.
sample1: [0.7, 0.3],  sample2: [0.2, 0.8], sample3: [0.8, 0.2], sample4: [0.9, 0.1]
(cf sample1의 예시는 1이 될 확률 0.7, 2가 될 확률 0.3)
표본들의 확률 값을 구했으면, 각 샘플 데이터의 표본 평균 값을 구한다.
표본 평균: [0.65, 0.35]
위의 결과로 1이 될 확률이 더 높으니, 1을 체택하는 방식을 가진다.
 

미니 배치의 방식

 
기본적으로 미니 배치의 목적은 '병목 현상' 을 해결하려고 사용하는 샘플링 방식이다.
즉, 신경망의 input으로 너무 많은 데이터를 하나씩 순차적으로 해결하려면, 시간이 너무 오래 걸리니
여러개의 묶음으로 동시에 처리하는 방식을 말한다.
 
나는 미니 배치의 데이터 샘플링 방식을 교차검증 k-fold와 비슷하게 이해를 했는데, 둘다 중복을 허용하지 않고 일정한 묶음으로 처리하는 방식이기 때문이다.

미니 배치 데이터 샘플링

k-fold방식과 동일하게 전체 데이터를 일정한 묶음으로 나누어 처리한다. 즉 전체 데이터를 N등분 하여 계산한다. 주의 할점은 중복을 허용하지 않는다.
 
k-fold 방식과 다른점은 shuffle-option이 있다는 점이다. 즉 데이터를 무작위로 혼합할 수 있다.
또한 iterationEpoch의 방식이 있는데,
 

iteration

iteration은 한 번의 에포크 내에서 이루어지는 매개변수인 가중치 w b의 업데이트 횟수이다. 전체 데이터가 2,000일 때 배치 크기를 200으로 한다면 iteration의 수는 총 10개인 것이다. 이는 한 번의 에포크 당 매개변수 업데이트가 10번 이루어짐을 의미합니다.
 
Epoch는 인공 신경망의 전체 데이터 셋의 학습을 한번 완료했으면 Epoch 1이 된다.
주의 할점은, 신경망은 최적값을 찾기 위해 역전파 알고리즘을 이용하는데, 순전파 학습과 역전파 학습이 완료 됐을때, 에포크가 1번인 것이다.
 

mini batch vs bagging

 
둘의 기본 원리에 대해 알았다면, 차이점을 분석해보자.
요약하면,

  • 비복원 추출 vs 복원 추출
  • 데이터 일부 샘플링 vs 데이터 균등 분할
  • 사용의 목적(배깅 앙상블-> 모델의 학습 정확도 향상, 미니배치 -> 학습의 병목 현상 해결)