[모두의 딥러닝] Logistic Classifier - tensorflow
📗강의노트/모두의 딥러닝

[모두의 딥러닝] Logistic Classifier - tensorflow

728x90
반응형

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

좋은 강의 감사드립니다!

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


가설은 sigmoid 함수 

Cost를 작게하는 W를 구하는 것이 학습의 과정이다!

그리고 기울기(알파)의 반대방향으로 움직여 W를 계속 조정한다. Step step 움직여서 조정한다

tf.placeholder을 만들 때에는 shape에 주의해야한다. 

먼저 학습할 데이터들을 입력한다

그 후 tf.placeholder을 통해 tensor을 만들어준다. 이 때 shape에 주의해야한다. 
None으로 두어 X variable의 갯수를 미리 지정하지 않고, X의 열 갯수만 2로 정해둔다
Y의 shape 역시 [None,1]로 둔다

그 후 가설을 세우는데 tf.sigmoid를 통해 간단하게 가설을 나타낼 수 있다. 
이를 쓰지 않을 경우 tf.div(1. , 1. + tf.exp(tf.matmul(X, W))) 를 해주어 수식을 똑같이 나타낼 수 있다

그리고 cost함수의 경우도 tf.log를 통해 나타낼 수 있다.
그 후 이제 미분한 식을 도출하기 위하여 GradientDescentOptimizer을 사용하여 학습하고, cost를 최소화시키는 train을 만든다.

그리고 예측을 할 때에 값이 0.8처럼 나올 수 있기 때문에 0.5를 기준으로 이상일 경우 1, 미만일 경우 0으로 처리해준다. 

Accuracy를 보기 위해 tf,equal을 통해 predicted와 y가 같은지 보고 이를 tf.cast를 통해 본다. Tf.float32로 해두어서 1 또는 0으로 볼 수 있다.

그리고 session을 열고 값을 초기화해준후에 
원하는 cost_val을 설정하고, 그 뒤에 _ 로 해준 것은 원하는 값이 아니기 때문이다
그리고 feed_dict를 통해 원하는 데이터를 넣어 확인한다.











728x90
반응형