728x90
1. Dataset
- Dataset은 보통 Training Set, Validation(Dev) Set, Test Set 을 70/15/15로 랜덤하게 나눈다.
- 데이터 개수가 부족하면 k-fold cross validation을 사용하는데, 이는 over-fit이 될 수 있다.
2. Model
3. Loss Function
-손실의 그레디언트는 모델 파라미터를 얼마나 많이 바꿔야 하는지는 나타냄
4. Optimizer
모델이 예측하고, 손실함수가 예측과 타깃 사이의 오차를 측정하면, 옵티마이저가 모델의 가중치를 업데이트
학습률 : 오차 신호가 가중치 업데이트에 영향을 얼마나 미치는지 조절
- Adam / Adagrad
- optim.Adam(params=perceptron.parameters(), lr=lr)
GRADIENT UPDATE ALGORITHM
for epoch_i in range(n_epochs):
for batch_i in range(n_batches):
#step0 : prepare dataset
x_data, y_target = dataset(batch_size)
#step1 : gradient initialize
perceptron.zero_grad()
#step2 : model forward propagation
y_pred = perceptron(x_data, apply_sigmoid=True)
#step3 : calculcate loss
loss = bce_loss(y_pred, y_target)
#step4 : backward propagation
loss.backward()
#step5 : update with optimizer
optimizer.step()
전체 training dataset은 batch_size(hypterparameter) 로 분할되고 gradient 계산은 배치 하나에서 수행된다.
epoch : 완전한 훈련 반복 1번을 의미
5. Stopping Point
- Early stopping
더 이상 데이터셋 대한 성능이 좋아지지 않을 때 훈련을 종료
- L1, L2 Regularization
- Dropout
'NLP > with PyTorch' 카테고리의 다른 글
[CHAPTER01] Introduction 소개 (0) | 2022.02.15 |
---|---|
[CHAPTER03] perceptron, activation function, loss function (0) | 2022.02.15 |
NLP with PyTorch (0) | 2022.02.03 |