-
[Training] Mini Batch를 왜 사용할까?ML/etc 2022. 4. 4. 13:03
사진 100장으로 개와 고양이(각각 50장 씩)를 분류하는 모델을 학습하고자한다.
모든 사진을 한번에 모델에 넣고 학습하면
1. 모형은 데이터에서 개와 고양이를 잘 분류할 수 있는 특징을 찾을 것이다.
- 그것이 수염이 될 수 있고, 뾰족한 귀가 될 수 있고, 눈이 될 수 있을것같다.
- 간혹 개를 찍은 사진은 모두 잔디 들판이고, 고양이를 찍은 사진은 모두 도심이면 그것을 기준으로 나눌 위험도 있다.
가지고있는 100장에서, 모델이 학습을 하는데. 수염만 특징으로 잡고 학습해도 거의 정확하게 분류가 된다면 다른 특징을 학습할 이유가 있을까?(Local optimum)
- 모형 입장에서 loss를 떨어뜨리는 목적(아주 같은 말은 아니지만; error를 낮게하는)만 있는것이고 현재의 결과들이 global한 loss인지는 관심 밖이다.
따라서 mini batch단위로 데이터를 불러들여 눈, 귀, 코, 피부 등 다양한 특징을 학습할 수 있도록(확률적으로..)의도하여 모형이 global optimum에 도달하도록 한다.
- 미니배치로 뽑아봤더니 개사진과 고양이사진의 가장큰 구분 특징이 수염이 아니라 눈일 수 있기때문에.
더 나아가 생각하면
- 기존 나와있는 Optimizer를 사용하여 더 좋은 optimum을 찾는것이 쉽지않은것이다.
- 데이터를 한번에 다 넣어서 학습할 수 있는 컴퓨팅 파워도 문제가 된다.
그렇다면 배치 크기는 어느정도가 좋은것이가?
배치가 커진다면 성능이 점점 좋아지는걸 확인한적도 있지만, 때로는 성능 하락을 경험하기도 한다. 그래서 안해보고는 모르는것.
매직 넘버를 사용하기를 권한다. 16 32 64 128 256 512..
refernece
-사진
'ML > etc' 카테고리의 다른 글
Meaning of x^TAx (0) 2022.12.14 Hubness Phenomena in feature space (0) 2022.04.21 [평가지표 정리] DST(Dialogue State Tracking) Micro f1-score (0) 2022.04.03 [평가지표 정리] STS(Semantic Textual Similarity) (0) 2022.04.03 [평가지표 정리] 한국어 자연어 모델의 RE 분석 성능(Micro F1 Score) (0) 2022.04.03