반응형
기계는 다음과 같은 과정을 통해 학습한다.
1. 임의의 파라미터(가중치($w$))를 정한다.
2. 이 가중치에 대한 손실값을 구하고 손실 함수(Loss function)의 기울기(Gradient)를 구한다.
3. 경사하강법(Gradient Descent)을 이용해 파라미터를 업데이트 한다.
4. 업데이트 된 지점에서 새 손실 함수의 기울기를 구한다.
5. 3번 다시 실시
6. 파라미터가 최적값에 도달하면 파라미터 업데이트를 중지한다.
학습 과정에서의 문제
- 보통 기계를 학습 시킬 때 사용하는 데이터의 양은 매우 많으며 이렇게 많은 데이터를 모두 한꺼번에 모델에 태우게 되면, 컴퓨터가 버티질 못한다.
- 데이터 크기가 너무 크면 메모리가 부족해진다.
- 한번의 학습에 계산되어야할 파리미터 수가 지나치게 많아져 학습 속도가 느려진다.
- 한 번의 계산으로 최적화 된 값을 찾는 건 힘들다.
따라서, 머신 러닝에서 최적화를 할 시에 일반적으로 여러 번의 학습 과정을 거친다. 한번의 학습 과정 역시 사용하는 데이터의 크기를 나누는 방식으로 세분화시킨다.
1. Batch size
- 사전적 의미: (일괄적으로 처리되는) 집단, 무리
- 전체 데이터 셋을 여러 작은 그룹을 나누었을 때 batch size는 하나의 소그룹에 속하는 데이터 수를 의미한다.
- 1000개의 수학문제를 20개씩 나눠서 푸는 것으로 생각하면 된다. (여기서 20이 batch size)
- (문제를 다 푼 후 사람이 채점하고 틀린 문제에 대한 이유 등을 학습하는 것 처럼 머신러닝도 Batch 크기만큼 데이터를 활용해 모델의 예측값$(y ̂)$과 실제 정답($y$) 간의 오차를 계산하여 파라미터를 업데이트한다.)
- Batch size 가 너무 큰 경우
=> 한 번에 처리해야할 데이터의 양이 많아져, 학습 속도가 느려지고, 메모리 부족 문제가 발생할 수 있다.
- Batch size 가 너무 작은 경우
=> 적은 데이터로 가중치가 자주 업데이트되어 훈련이 불안정해진다.
2. Epoch
- 사전적 의미: (중요한 사건·변화들이 일어난) 시대
- 딥러닝에서 epoch는 전체 데이터 셋이 신경망을 통과한 횟수, 즉 모든 데이터셋을 학습 하는 횟수를 의미한다.
- 예로, 1-epoch은 전체 데이터셋이 하나의 신경망에 적용되어 순전파와 역전파를 통해 신경망을 한 번 통과했다는 것을 의미한다.
- 문제집에 있는 모든 문제들을 풀고 채점까지 맞췄다는 것.
- (문제집 한 권 전체를 1번 푼 사람이 있듯이, 2번, 3번 5번 푼 사람도 존재한다. Epoch은 따라서, 문제집 한 권 전체를 몇 회 풀었는지를 의미하는 것)
- Epoch 값이 너무 작으면 Underfitting, 너무 크면 Overfitting이 발생할 확률이 높다.
위는 전체 데이터셋을 2회 활용하여 모델을 학습을 시켰다는 것. (Epoch : 2)
3. Iteration
- 사전적 의미: (계산·컴퓨터 처리 절차의) 반복
- 1-epoch를 마치는데 필요한 미니배치의 수를 의미한다.
- 다른 말로, 1-epoch를 마치는데 필요한 파라미터 업데이트 횟수
- Step이라 부르기도 한다.
- 각 배치마다 한 번씩 파라미터 업데이트가 이루어지니 '파라미터 업데이트 횟수 = 배치의 수' 가 된다.
- 예: 2000개의 데이터를 200개씩 10개의 미니배치로 나눈다면, 1-epoch을 위해선 10-iteration 이 필요하며 10번의 파라미터 업데이트가 진행된다는 것,
- 예: 2000개의 데이터에 batch_size = 500 일 시 epoch 을 20번으로 설정한다면, iteration 4번이 될 것이고 전체 데이터 셋에 대해선 총 20 번의 학습이 이루어졌으며, iteration 기준으론 80번의 학습이 이루어진 셈이다.
참고
https://heytech.tistory.com/386
https://m.blog.naver.com/qbxlvnf11/221449297033
728x90
반응형
'인공지능 > Machine & Deep Learning' 카테고리의 다른 글
Train data | Test data | Validation data 차이 (0) | 2023.04.19 |
---|---|
과대적합(Overfitting)과 과소적합(Underfitting) (0) | 2023.04.18 |
손실함수(Loss function) (0) | 2023.04.13 |
최적화와 경사하강법(Gradient Descent) (0) | 2023.04.12 |
다층 퍼셉트론(MLP: Multi Layer Perceptron)과 활성화 함수(Activation function) (0) | 2023.04.12 |