728x90
반응형
과적합(over-fitting)은 train 데이터를 과하게 학습해서 발생합니다. 일반적으로 train 데이터는 실제 데이터의 일부분입니다. 따라서 train 데이터를 과하게 학습했기 때문에 예측 값과 실제 값 차이인 오차가 감소하지만, 검증 데이터에 대해서는 오차가 증가할 수 있습니다. 즉, 과적합은 훈련 데이터에 대해 과하게 학습하여 실제 데이터에 대한 오차가 증가하는 현상을 의미합니다.
과적합을 해결하는 방법으로 드롭아웃이 있습니다.
dropout : 신경망 모델이 과적합되는 것을 피하기 위한 방법으로, 학습 과정 중 임의로 일부 노드를 학습에서 제외시킵니다.
class DropoutModel(torch.nn.Module):
def __init__(self):
super(DropoutModel,self).__init__()
self.layer1 = torch.nn.Linear(784, 1200)
self.dropout1 = torch.nn.Dropout(0.5)
self.layer2 = torch.nn.Linear(1200, 1200)
self.dropout2 = torch.nn.Dropout(0.5)
self.layer3 = torch.nn.Linear(1200,10)
def forward(self, x):
x = F.relu(self.layer1(x))
x = self.dropout1(x)
x = F.relu(self.layer2(X))
x = self.dropout2(x)
return self.layer3(x)
728x90
반응형
'pytorch' 카테고리의 다른 글
[pytorch] 합성곱층 - Filter(stride / padding) (0) | 2023.04.09 |
---|---|
[pytorch] CNN (합성곱 신경망)의 구조 (0) | 2023.04.09 |
[pytorch] 3. 모델 학습 (파이토치 학습 절차) (0) | 2023.04.05 |
[pytorch] 2. 모델 파라미터(손실 함수/ 옵티마이저 / 학습률 스케줄러) (0) | 2023.04.04 |
[pytorch] 1. 모델 정의 (nn.Module / nn.Sequential) (0) | 2023.03.22 |