AI & BigData/모두를 위한 딥러닝(정리)

텐서플로우(Tensor Flow) #6_ TensorFlow로 Logistic Classification 구현하기

Tigercow.Door 2018. 3. 16. 16:24


안녕하세요.

이번 포스팅에서는 TensorFlow로 Logistic Classification을 구현해보도록 하겠습니다.


* 해당 포스트의 모든 내용은 김성훈 교수님의 '모두를 위한 딥러닝'을 바탕으로 제작되었습니다.

관련한 상세 내용은 아래 링크를 참고해주세요.

https://hunkim.github.io/ml/




1. Logistic Classification


바로 텐서플로우로 구현하기 전에, 이론적인 내용을 간단히 살펴보겠습니다.

보다 자세한 내용은 아래 포스팅에서 확인하실 수 있습니다.


머신러닝(ML) #5_ Logistic Classification의 가설 함수 정의


머신러닝(ML) #6_ Logistic Regression의 cost 함수 설명



위의 사진을 보시면 Logistic Regression에서의 Hypothesis와 Cost 함수가 함께 나와 있습니다.

또한 cost를 최소화하기 위해 Linear Regression에서와 같이 기울기를 이용합니다.


그럼 이제 우리가 실제로 Logistic Regression을 구현하는데 사용할 데이터를 살펴보겠습니다.



위와 같은 데이터가 있는데, y 데이터에서 0은 False, 1은 True를 나타냅니다.

우리가 어떤 점수에 대한 합/불에 대해 생각한다면 0은 Fail, 1은 Pass로 생각할 수 있을 것입니다.



그럼 이러한 데이터를 통한 전체적인 코드는 위와 같습니다.


처음에 X에 대한 placeholder에서 x데이터에 맞도록 shape을 2로 지정하였습니다.

그리고 hypothesis 에는 sigmoid함수를 통해 설정해주었습니다.

cost 또한 이론적인 부분에서 학습했던 내용을 통해 설정하였고

이에 맞춰서 train 코드를 작성합니다.

그리고 predicted 에서 hypothesis가 0.5보다 클때로 설정하였는데, 이것은 1이나 0으로 분류되는 기준 값을 정한 것이라고 생각하시면 되겠습니다.



이제 모델을 훈련시키는데 필요한 코드는 위와 같습니다.

위의 코드는 지난 실습들에서 진행했던 것과 동일합니다.


위의 코드를 돌리면 Hypothesis 에서 작은 값들은 0으로 분류가 되며 0.5보다 큰 값들은 1로 분류가 됩니다.

실제적인 y데이터와 비교해보면 100% 일치한 것을 확인할 수 있습니다.



728x90