pytorch

[pytorch] Dropout

독립성이 강한 ISFP 2023. 4. 6. 23:26
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
반응형