일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- SGD
- 머신러닝
- Overfitting
- 부스트캠프
- recommendation system
- 데이터
- Python
- TF-IDF
- pytorch
- 딥러닝
- 웹스크래핑
- codingtest
- coursera
- 코테
- Tensor
- 데이터 엔지니어링
- 파이썬
- 웹크롤링
- 협업 필터링
- selenium
- 추천시스템
- 백준
- 코딩테스트
- Cosine-similarity
- 프로그래머스
- 추천 시스템
- 알고리즘
- wordcloud
- 시각화
- 분산 시스템
- Today
- Total
개발자식
[딥러닝] 딥러닝 모델 최적화 이론_Batch 본문
배치 (Batch)
: 한번에 여러개의 데이터를 묶어서 입력하는 것인데, GPU의 병렬 연산 기능을 최대한 효율적으로 사용하기 위해 쓰는 방법이다.
- 데이터를 1개씩 입력받아 총 10만번의 연산을 진행하는 것보다 한번에 큰 묶음으로 데이터로 입력받아(Batch) n번의 연산을 진행하는 것이 더 빠르다.
-> 느린 I/O를 통해 데이터를 읽는 횟수를 줄이고 CPU나 GPU로 순수계산을 하는 비율을 높여 속도를 빠르게 할 수 있다.
- 수치 계산 라이브러리 대부분이 큰 배열을 효율적으로 처리할 수 있도록 고도로 최적화되어 있기 때문에 Batch로 데이터를 입력받아 학습시키는 것이 속도 측면에서도 효율적이다.
Full-Batch Gradient Descent
: 모든 Training data에 대해 Cost를 구하고 Cost function 값을 구한 다음 이를 기반으로 Gradient descent를 적용
- training data가 많으면 cost function 등의 계산에 필요한 양이 많아진다
-> 학습이 오래걸린다.
- Weight Initialization의 결과에 따라 global minimum이 아닌 local minimum으로 수렴할 수 있다.
Stochastic Gradient Descent (SGD, 확률적 경사 하강법)
: 하나의 Training Data(Batch size=1)마다 Cost를 계산하고 바로 Gradient descent를 적용하여 weight를 빠르게 update한다.
- 한 개의 training data마다 매번 weight를 갱신하기 대문에 신경망의 성능이 들쑥날쑥 변한다 (cost 값이 안정적으로 줄어들지 않는다)
- 최적의 learning rate를 구하기 위해 일일이 튜닝하고 수렴조건(early-Stop)을 조정해야 한다.
Mini-Batch Stochastic Gradient Descent
: Training data에서 일정한 크기 (==Batch size)의 데이터를 선택하여 cost function 계산 및 Gradient descent 적용
- 앞선 Full-Batch Gradient Descent, SGD 의 단점을 보완하고 장점을 취한다.
- 설계자의 의도에 따라 속도와 안정성을 동시에 관리할 수 있으며, GPU 기반의 효율적인 병렬 연산이 가능해진다.
에폭 (Epoch)
: 인공 신경망에서 전체 데이터 셋에 대해 한 번 학습을 완료한 상태를 의미한다.
- 신경망은 최적의 가중치와 기타 파라미터를 찾기 위해서 역전파 알고리즘을 사용한다.
역전파에는 파라미터를 사용하여 입력부터 출력까지의 각 계층의 weight을 계산하는 과정인 순방향과 반대로 거슬러 올라가며 다시 한번 계산 과정을 거쳐 기존의 weight를 수정하는 역방향으로 나뉜다.
-> 이 순방향과 역방향을 모두 완료하면 한 번의 Epoch가 완료됨을 의미한다.
아담(Adam)은 Adaptive Moment Estimation의 약자입니다. 모멘텀과 RMSprop을 섞어놓은 최적화 알고리즘 이기 때문에, 딥러닝에서 가장 흔히 사용되는 최적화 알고리즘(Optimizer)이다.
loss function의 최소값을 찾는 것을 학습의 목표로 하는데 여기서 최소값을 찾아가는 것을 최적화(Optimization)라고 하고 이를 수행하는 알고리즘이 최적화 알고리즘(Optimizer)이다.
Plateau
: Loss function에 평지가 생겨 기울기가 0에 가까워져 loss가 업데이트 되지 않는 현상이다.
-> local minimum에 비해 일어날 확률이 높다.
-> SGD는 Plateau에 취약하다.
'AI > Deep Learning' 카테고리의 다른 글
[딥러닝] Batch Normalization (0) | 2022.05.01 |
---|---|
[딥러닝] Avoiding Overfitting - Dropout (0) | 2022.05.01 |
[딥러닝] 딥러닝 모델 최적화 이론_Weight Regularization (0) | 2022.05.01 |
[딥러닝] 딥러닝 모델 최적화 이론_가중치 초기화 (0) | 2022.05.01 |
[딥러닝] 딥러닝 , 논리회로 (0) | 2022.05.01 |