Softmax_Classification

H(x) = wx의 단점은 리턴값이 어떤 실수의 값이 되기 때문에 2개중 하나를 고르는 Logistic Regression에 적합하지 않습니다.

그래서 Sigmoid라는 함수를 사용했습니다.

Sigmoid

하지만 여기서 0 or 1이 아니라 선택지가 여러개 있으면 Linear과 Logistic을 사용하기에는 적합하지 않습니다.

그래서 나온 개념이 Softmax Classification입니다.

※ Sigmoid를 여러번 사용하면 여러개의 클래스를 구분할 수 있다.

 

Softmax의 output은 각 클래스에 대한 확률값이 나오고 그 확률값들을 모두 더해주면 1이라는 값이 나옵니다.

 

이제 간단한 설명은 끝났으니 Pytorch로 Softmax를 만들어 보겠습니다.

 


Module

먼저 필요한 모듈들을 import 해주겠습니다.


Data

필요한 데이터들을 선언해주겠습니다.


Model and Training

w, b를 선언을 해줍니다.

여기서 w가 (4, 3)의 값을 갖는 이유는 데이터를 보면서 설명하겠습니다.

처음에 [1, 2, 1, 1]이라는 4개의 숫자가 input이 되고

2라는 숫자가 output이 됩니다.

그런데 y_train값들을 살펴보면 0, 1, 2로 이루어져 있는 것을 알 수 있고

즉, Class의 수는 3개라는 뜻입니다.

그래서 (4, 3)이라는 형태로 넣어주게 됩니다.

※ x1w1 + x2w2 + x3w3 + x4w4 = y

'Deep Learning > Pytorch' 카테고리의 다른 글

10_Pytorch_Perceptron_XOR  (0) 2021.08.25
09_Pytorch_Softmax_Classifier MNIST  (0) 2021.08.25
07_Pytorch_Logistic_Regression  (0) 2021.08.18
05_Pytorch_nn.Module  (0) 2021.08.13
04_Pytorch_Multivariate_Linear_Regression  (0) 2021.08.12

+ Recent posts