이번엔 저번 FC Layer에 이어서 Softmax Layer에 대해 알아본다.
FC layer는 신경망의 마지막 단계에서 중요한 역할을 하는데, Softmax Layer와 결합되어 최종 분류 결과를 제공한다.
이때의 결합되는 Softmax Layer에 대한 내용이다.
최종 출력을 내는건 소프트 레이어 이다.
"Softmax Layer는 CNN의 최종 출력 단계를 담당하며, 클래스별 확률을 생성하는 역할"
FC Layer를 통해 물체를 인식했지만, 아직 확률을 출력하지 않았다.
이해는했지만 기술적으로 이 결과물의 수학적 연산은 하지 않았다는것.
Fully Connected Layer의 출력 값(로그 값)을 입력으로 받는다.
각 출력 값의 지수를 계산한 후, 이를 모든 출력 값의 지수 합으로 나누어 확률을 구한다.
이 과정은 모든 출력 값이 양수가 되며, 합이 1이 되도록 만든다.
아래는 Softmax 함수가 Logits Scores(로그 값)를 확률로 변환하는 과정을 시각적 자료이다.
세가지로 구성돼있다.
Logits scores(로그 값)
신경망의 출력 값으로 최종 확률로 변환되기 전의 값들
Softmax 함수
Logits Scores를 확률로 변환하는 함수
Probabilities (확률)
Softmax 함수의 결과로 얻어진 확률 값이며,
각 Logits Score가 확률로 변환된 결과
Softmax 함수는 Logits Scores를 확률로 변환하여, 각 클래스에 대한 확률 값을 제공한다.
이 확률 값들은 모두 합쳐서 1이 되며, 신경망의 예측 결과를 해석하는 데 사용
아래 그림을 보면 이해에 도움이 된다.
0.06+0.94+0.00이 1을 보장하고, CNN에서 나온 로직값을 Softmax가 계산해서 확률로 변환해주고 있다.