티스토리 뷰
본 내용은 ML, DNN을 학습함에 있어서 기록하는 것으로
틀린 내용이 존재합니다.
Batch Size란?
모델이 학습하는 과정에서 최적화(Gradient descent)를 한번에 몇개의 데이터를 가지고 할 지 데이터 그룹의 크기를 나타내는 단위.
Batch Size에 따른 명명 법
Full Batch : Full-Batch size Gradient descent
1epoch당 전체 데이터에 대해 1회 parameter update가 발생한다.
Mini Batch: Mini-Batch size Greadient descent
1epoch당 전체 데이터에 대해 (전체 데이터 / Batch size)올림한 횟수의 parameter update가 발생한다.
1 Batch size(SGD) : Stochastic Gradient Descent
1epoch당 전체 데이터 횟수 만큼의 parameter update가 발생한다.
Batch Size를 사용하는 이유
- 데이터가 많은 경우 전체데이터(Full Batch Size)를 보고 최적화를 할 때 엄청난 시간이 할애될 수 있다.
- 이는...
Optimizer가 parameter update를 함에 있어 결국 Loss값을 기준으로 결정이 되는데,
Loss값은 대략적으로 $y - \hat{y}$함에 있어 각각의 row의 모든 loss를 계산하여 더한 뒤 평균을 내야 하기 때문에,
Batch size를 나눠 계산하는 것이,
한 보폭을 나아가는데 있어 수행되는 계산이 줄어들게 되어 시간이 줄어 들게 되는 것 이다. - Local minima에 갇히는 상황을 벗어날 수 있다.
- 이는...
Batch Size의 보폭에 따라 Local minima를 탈출하여 Global minimum를 찾을 수 있다. - SGD의 단점을 절충
- 이는...
반복이 충분하면 SGD가 효과는 있지만 노이즈에 따른 변화가 매우 심하다.
이를 해결 하기 위해 Mini-Batch를 적용하여 노이즈를 줄이는 방안으로 활용
'ML&DNN > 제목 미정' 카테고리의 다른 글
| Batch-Normalization은 왜 해야하는가? (정리중~) (0) | 2022.07.12 |
|---|
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 이스케이프 코드
- underscore
- asd ad
- list comprehension
- sdsad
- 백준
- sep=
- sad asd
- Python
- d asd asd
- _의미
- recursive function
- 연산속도
- arguments
- _meaning
- 변수 덮어쓰기
- conda
- 재귀?
- parameters
- 재귀함수 설명
- print()
- 이중 프린트
- recursive
- 파이썬 변수
- 재귀함수 이해
- 파이썬
- matplotlib
- anaconda
- 콘다
- 덮어쓰기
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
글 보관함