Softmax Regression

Softmax Regression을 알아보겠습니다.


Softmax Regression은 다중 분류(Multi-class classification)에 사용됩니다.

Class(분류하는 것)가 4 개라면, Softmax Regression을 통해 나오는 값의 개수도 4 개입니다.
예를 들어 고양이, 강아지, 병아리, 오리를 Class로 분류해야 한다면, Softmax Regression의 값 또한 [x, x, x, x]로 나옵니다.

Softmax의 값은 각 해당하는 함수의 확률을 나타냅니다.
아래의 예에서 첫 번째 위치는 고양이일 확률, 두 번째 위치는 강아지일 확률, 세 번째 위치는 병아리일 확률, 마지막 번째 위치는 오리일 확률입니다.




Softmax의 값은 소수점으로 표현됩니다. 그래서 이름이 Softmax로 명명되었습니다.

Hardmax의 경우는 큰 것이 1 나머지가 0으로 표기되기 때문입니다.





그리고 Softmax의 특이한 점은 모든 값의 합이 1이 된다는 점입니다.

0.1 + 0.1 + 0.7 + 0.1 = 1



Softmax가 어떻게 구해지는지 알아보겠습니다.

먼저, 각 각의 경우에 대해서 Linear Regression을 합니다.





그럼 해당 값이 나옵니다.

여기서 나온 z를 activation function(활성 함수)에 넣습니다.

활성화 함수에 넣기 전에 약간의 계산이 필요합니다. e의 z 제곱을 임시 변수 t로 저장합니다.




이 t를 활용하여 activation function을 만듭니다.






아래에 Cat(고양이)으로 예시를 들어보겠습니다.




개별 값에 전체를 나누어서 Normalization을 해줌과 동시에 전체 합이 1이 되게 만듭니다.




Softmax Regression의 Loss 함수는 다음과 같습니다.

#class는 class의 개수입니다.




Cost 함수는 다음과 같습니다.





끝.



카테고리: Machine learning


댓글

이 블로그의 인기 게시물

Python urllib.parse.quote()

Python OpenCV 빈 화면 만들기

tensorflow tf.random.uniform()

Android Notification with Full Screen

KiCad 시작하기 2 (PCB 만들기)

Android Minimum touch target size

Python bs4.SoupStrainer()

KiCad 시작하기 4 (기존 회로도 수정 및 추가)

음악 총보(Score), 파트보(Part)

tensorflow tf.expand_dims()