[TIL]선형분류2, MNIST, 분류문제 실습

1 minute read

  • 확률적 식별 모델
    • 다중클래스 로지스틱 회귀
    • 우도함수 소프트맥스, 시그모이드의 함수들 사이의 관계를 잘 기억해둬라!
      체인룰을 쓰기 위해 함수관계를 잘 이해해야 한다.
  • Gradient Descent(batch)
    • 사이킷런의 make_classification을 통해 쉽게 데이터를 만들어낼 수 있다.
    • 로지스틱 리그레션 모델에서 반드시 써야하는 함수가 시그모이드 함수이다. 지수함수에 1을더해서 나눈것을 시그모이드 함수로 정의한다.
    • Cost를 계산하는 함수 : 현재의 파라미터값 w가 주어져 있을 때 입력 X와 목표값 t에 대해 cost를 계산한다.
    • 전체 데이터를 한꺼번에 넣어서 그래디언트를 업데이트 하는데, 이를 배치 업데이트라고한다. 배치란 데이터 전체를 한꺼번에 원샷으로 다 쓴다는 의미이다. 딥러닝에서 말하는 배치사이즈는 보통 미니배치를 말하는 것이다. 여기서 배치라는 것은 전체 데이터를 다 쓴다는 것이다.
  • Stochastic Gradient Descent
    • 앞의 배치방법과 거의 유사하지만 단지 파라미터를 업데이트할때 데이터 전체를 사용하는 것이 아니라 데이터 하나만을 사용한다는 점이 다르다.
    • 초기에 cost가 굉장히 높다가, 들쭉날쭉하다. 하나의 그래디언트를 업데이트 할 때, 다른 그래디언트에 대해서는 결과가 안좋아질 수 있으므로 들쑥날쑥하다. 하지만 뒤로 갈수록 안정되어진다.
  • Mini-batch Gradient Descent
    • 미니배치를 이용한 경사하강법. Gradient Descent와 Stochastic Gradient Descent의 중간정도의 방법이다.
    • 배치 사이즈를 조절할 수 있다. 데이터를 10개를 한번에 돌릴 수도 있고, 20개를 한번에 돌릴 수도 있다.
    • 확률적 경사하강법보다 cost값 변화 추이가 덜 들쭉날쭉하다.
    • 딥러닝에서는 미니배치 그래디언트 디센트를 많이 쓴다. 하나의 샘플을 볼수도, 데이터 전체를 다 볼 수도 없기 때문이다.

MNIST 이중분류(binary classification)

이중분류 문제의 경우 클래스가 비슷한 분포를 가지고 있지 않을 때 불균형의 문제가 있어 정확도만 구하는 것은 좋은 지표가 될 수 없다. 따라서…

  • 오차행렬(Confusion matrix)
    • 오차행렬을 구하기 위해서 사이킷런에 포함된 오차행렬을 사용한다.
    • TP(True Positive) : 모델이 Positive인데 실제로도 positive라고 예측한 경우
    • FP(False Positive) : 모델이 negative인데 positive라고 예측한 경우
    • TN(True Negative) : 모델이 negative인데 negative라고 예측한 경우
    • FN(False Negative) : 모델이 Positive인데 negative라고 예측한 경우
  • 정밀도 : 모델이 positive라고 했을 때 그중 몇개가 정말로 Positive인지의 비율
    • TP/(TP+FP)
  • 재현율 : 데이터에서 positive인 것들의 개수 중에서 모델이 얼마나 잘 positive를 찾아냈는지에 대한 비율
    • TP/(TP+FN)