기존의 argmax에서는[1,2,3]이면 [0,0,1]인데, softmax에서는[0.0900,0.2447,0.6652]로 부드럽게 뽑아줌. sum은 1이다.
두 개의 확률분포가 주어졌을 때, 두 개가 얼마나 비슷한지 나타내는 것
W
와 편향 b
를 모두 0으로 초기화합니다. W
의 크기는 (4, 3)으로, 입력 특성이 4개이고 결과로 나오는 클래스가 3개임을 나타냅니다. requires_grad=True
는 이 변수들에 대해 자동으로 기울기를 계산할 수 있도록 설정합니다.lr
)은 0.1로 설정합니다.x_train
에 대해 모델의 가설을 계산합니다. 이는 입력 데이터에 가중치를 곱하고 편향을 더한 후, 결과로 나온 로짓(logit)에 소프트맥스 함수를 적용하여, 각 클래스에 대한 확률을 얻습니다.y_train
을 원-핫 인코딩 형식으로 변환합니다.hypothesis
)과 원-핫 인코딩된 실제 레이블(y_one_hot
)을 이용해 크로스 엔트로피 오차(Cross Entropy Loss)를 계산합니다. 이는 모델의 예측이 실제 레이블에서 얼마나 떨어져 있는지를 나타냅니다.F.cross_entropy
함수를 사용합니다. 이로 인해 원-핫 인코딩 과정이 필요 없어지고, 코드가 더 간결