[python] 파이썬 PyTorch에서 L1, L2 규제를 적용하는 방법은?
L1 규제를 적용하는 방법은 다음과 같습니다.
import torch
import torch.nn as nn
# 모델 정의
model = nn.Linear(10, 1)
# L1 규제를 위한 하이퍼파라미터
l1_lambda = 0.01
# Optimizer 및 L1 규제 적용
optimizer = torch.optim.Adam(model.parameters(), lr=0.001, weight_decay=l1_lambda)
L2 규제를 적용하는 방법은 다음과 같습니다.
import torch
import torch.nn as nn
# 모델 정의
model = nn.Linear(10, 1)
# L2 규제를 위한 하이퍼파라미터
l2_lambda = 0.01
# Optimizer 및 L2 규제 적용
optimizer = torch.optim.Adam(model.parameters(), lr=0.001, weight_decay=l2_lambda)
위의 코드에서 weight_decay
매개변수를 사용하여 L1 및 L2 규제를 적용할 수 있습니다. weight_decay
값이 작을수록 규제 효과가 적용됩니다.
참고로, L1 및 L2 규제는 모델의 가중치에만 적용되며, 편향(bias)에는 적용되지 않습니다.
자세한 내용은 PyTorch의 문서를 참조하시기 바랍니다: