Logistic classification 모두의 딥러닝 실습 및 개념 파악 하기 | sTricky
Logistic classification 모두의 딥러닝 실습 및 개념 파악 하기 | sTricky
우선, Binary Classification에 대해서 알아 보도록 하겠습니다. 여기에서 classification 이란 아래 그림을 보시면서 이야기 해보도록 하겠습니다.
자, 가장 위에 있는 Spam Detection은 spam 메일이냐, Ham 메일이냐, 다음은 Facebood feed에 보여 줄것이냐, 숨길것이냐, 마지막으로 신용카드의 사용내역이 일반적인 사용이냐 아니면 뭔가 어떤 범위와 벗어난 불법적인 사용이냐 아니냐를 알려 주는 로직을 이야기 합니다.
그동안 앞서 공부했던 linear regression 처럼 어떤 학습을 통해서 그래프위에 위치를 리턴하는 방법과는 약간 다를수 있습니다. 하지만 그 그래프 위에서 어디선가 이상이면 1, 아니면 0을 리턴하도록 하면 classification에서 linear regression을 응용하여 사용 할 수 있을 겁니다. 그럼 한번 공부를 같이 해보도록 하시죠.
classification 이란?
Classification을 구현하기 위한 함수 공식은 아래와 같습니다.
위 함수를 이용해서 아래와 같은 그래프를 그릴 수 있습니다.
이걸 바탕으로 classification을 구현 할 수 있겠죠.
결국 위 함수를 바탕으로 아래와 같은 공식을 얻을 수 있습니다.
linear regression의 Hypothesis와는 조금 다른 형태를 가지고 있습니다.
이것은 0과 1의 범위를 벗어나지 않도록 하기 위함 입니다.
Classification 실습 코드
classification의 실습을 진행 해보도록 하겠습니다.
아래와 같이 Training Data를 만들어서 x_data는 예를 드시기를, 어떤 시험을 위해서 공부한 시간이라고 가정하고 y_data는 시험의 탈락(0), 통과(1)를 의미 한다고 가정 합시다.
그리고 나서 코드에 Hypothesis와 cost 수식에 데이터를 넣도록 합니다.
코드는 아래와 같이 구현 할 수 있습니다.
그냥 코드를 가지고 와서 진행을 하지만, 각자 하나씩 확인을 하면서 코드를 읽어 보아야 합니다.
그래야 공부가 되겠죠.
import tensorflow as tf
x_data = [[1, 2],
[2, 3],
[3, 1],
[4, 3],
[5, 3],
[6, 2]]
y_data = [[0],
[0],
[0],
[1],
[1],
[1]]
tf.model = tf.keras.Sequential()
tf.model.add(tf.keras.layers.Dense(units=1, input_dim=2))
# use sigmoid activation for 0~1 problem
tf.model.add(tf.keras.layers.Activation('sigmoid'))
'''
better result with loss function == 'binary_crossentropy', try 'mse' for yourself
adding accuracy metric to get accuracy report during training
'''
tf.model.compile(loss='binary_crossentropy', optimizer=tf.keras.optimizers.SGD(lr=0.01), metrics=['accuracy'])
tf.model.summary()
history = tf.model.fit(x_data, y_data, epochs=5000)
# Accuracy report
print("Accuracy: ", history.history['accuracy'][-1])
위에서 실습을 총 5천번 하는데, 결과가 잘 출력 되는것을 확인 할 수 있습니다.
자, 오늘도 이렇게 하나 공부를 해보았습니다.
점점 tensorflow와 친해지는걸 느끼시는지 모르겠습니다.
감사합니다.
#지난 <모두의 딥러닝> 관련 자료 보러가기
2021/01/24 - [Data Science] - Multivariable linear regression 딥러닝 예제 개념 및 실습 | sTricky
2021/01/17 - [Data Science] - 파이썬 머신러닝 linear regression과 supervised learning (모두의 딥러닝) | sTricky
by.sTricky