[모두의 딥러닝] Softmax Classification - TensorFlow
📗강의노트/모두의 딥러닝

[모두의 딥러닝] Softmax Classification - TensorFlow

728x90
반응형


Sung Kim 님의 "모두의 딥러닝" 강의노트입니다

좋은 강의 감사드립니다!

https://www.youtube.com/watch?v=mQGwjrStQgg&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=5


여러개의 Class를 예측할 때 유용하다!

n개의 예측할 것들이 있을 때 Softmax classification 사용

Scores들을 softmax를 통해 probabilities(확률)로 나오게 된다. 이 확률들을 다 더하면 1이 되어야한다.

먼저 수식을 작성한다 

tf.matmul(X,W) + b    * matmul은 matrix의 곱을 말한다.

Hypothesis = tf.nn.softmax(tf.matmul(X,W) + b)  와 같이 가설을 세운다
어떤 label로 나올 것인지에 대한 확률이 나온다!

그후 아래와 같이 Cross-Entropy cost 를 구현한다


 합을 한 후 평균을 내어 표시한다

Minimize는 경사면 내려가는 방법을 사용한다.


One-hot-encoding    방법을 사용한다 말 그대로 하나만 hot하게 한다는 것이다.  하나에만 1로 만들어 주는 것 이다. 0,1,2가 있을 때, Y 값이 0일 경우 [1,0,0] / 1일 경우 [0,1,0] / 2일 경우 [0,0,1]  로 표시하는 것이 one-hot-encoding이다
Y-class의 갯수만큼 y의 shape이 결정된다. Ex. 성적 A / B / C / D 가 있다면 class = 4이고 shape을 [None, 4]로 정할 수 있다. 

Tf.arg_max는 몇 번째 arg가 가장 높은지를 보여줌 [1]로 나오면 1번째에 해당하는 arg가 가장 큰 것 이다. 
tf.arg_max(data, 1) 1번째로 높은것을 보여줘라 / 숫자에 따른 순서를 알 수 있다.




*axis = 0,1,2    가 뜻하는 것 


  • 항상 주의해야 할 것 : Session을 만들어주고 global_variables_initializer() 실행

728x90
반응형