CUAI-CAU / PyTorch-Study-T2_2022

2022년 CUAI 5기 PyTorch Study 2팀 Repository입니다.
0 stars 0 forks source link

Feat: [Question] criterion 용어.. #2

Open unanchoi opened 2 years ago

unanchoi commented 2 years ago
X = torch.FloatTensor([[0, 0], [0, 1], [1, 0], [1, 1]]).to(device)
Y = torch.FloatTensor([[0], [1], [1], [0]]).to(device)
# nn layers
linear1 = torch.nn.Linear(2, 2, bias=True)
linear2 = torch.nn.Linear(2, 1, bias=True)
sigmoid = torch.nn.Sigmoid()
model = torch.nn.Sequential(linear1, sigmoid, linear2, sigmoid).to(device)
# define cost/loss & optimizer
criterion = torch.nn.BCELoss().to(device)
optimizer = torch.optim.SGD(model.parameters(), lr=1)
for step in range(10001):
 optimizer.zero_grad()
 hypothesis = model(X)
 # cost/loss function
 cost = criterion(hypothesis, Y)
 cost.backward()
 optimizer.step()
 if step % 100 == 0:
 print(step, cost.item())

이번 주 강의 내용입니다. loss function을 왜 criterion이라고 선언하는지 궁금합니다!

kayoooon1 commented 2 years ago

공식 문서 torch.nn.BCELoss() 클래스 설명에 따르면 Creates a criterion that measures the Binary Cross Entropy between the target and the input probabilities 라고 나와있습니다. input과 target 간 BCE 측정하는 criterion을 생성한다는 뜻에서 저자가 변수를 위와 같이 지정한 것 같습니다. 자세한 내용은 공식문서를 참조해보세요! https://pytorch.org/docs/stable/generated/torch.nn.BCELoss.html

대체적으로 loss function 클래스를 불러올 때 'criterion'을 create한다라고 용어를 사용하는 것 같아요. 다른 loss function인 torch.nn.CrossEntropyLoss 공식문서에도 클래스를 criterion이라고 부르네요. https://pytorch.org/docs/stable/generated/torch.nn.CrossEntropyLoss.html

linkyouhj commented 2 years ago

What is the difference between (objective / error / criterion / cost / loss) function in the context of neural networks?

한 번 읽어보셔도 좋을 거 같아요

kayoooon1 commented 2 years ago

히재님 링크 읽어봤어요! 그럼 loss function에 대해 최소의 근처에 이르면 알고리즘을 멈추게 되니까 criterion이라고 한거라고 이해하면 맞는건가요?