4. [머신러닝] Logistic Regression - Classification

김범수·2022년 6월 2일
0

머신러닝, 딥러닝

목록 보기
4/10

분류 (Classification)

Training Data 특성과 관계 등을 파악한 후에,

미지의 입력 데이터에 대해서 결과가 어떤 종류의 값으로 분류될 수 있는지를 예측

https://blog.kakaocdn.net/dn/XUekH/btqV19WkTMf/50kvY21UY6gKvuHgPe5aC0/img.png

앞선 Regression은 결과(t) 값 또한 연속적인 값으로 입력 받았으나 Classification은 입력 값은 연속적인 데이터지만 출력 값은 0과 1의 값을 예측해주는 시스템입니다.

https://blog.kakaocdn.net/dn/Eumt2/btqV37p9jO2/a2SsjjAwOcKwm72598mnLk/img.png

즉, Logistic Regression 알고리즘은,

  1. Training Data 특성과 분포를 나타내는 최적의 직선을 찾고 (Linear Regression)
  2. 그 직선을 기준으로 데이터를 분류(Classification)해주는 알고리즘입니다.
  • sigmoid function

https://blog.kakaocdn.net/dn/nunVz/btqWsIbjzDn/G6H4iwoHzUzZaRegtSIie1/img.png

분류(Classification) 시스템에서 출력 값 y를  1 또는 0 만을 가지므로, 함수 값으로 0~1 사이 값을 갖는 sigmoid 함수를 사용할 수 있습니다.

https://blog.kakaocdn.net/dn/bLZMuq/btqWxfUeH6y/XQpAKezkCvNKXXmnUjgQU0/img.png

=> sigmoid 계산 값이 0.5보다 크면 결과로 1이 나올 확률이 높음

=> sigmoid 계산 값이 0.5보다 작으면 결과로 0이 나올 확률이 높음

  • 손실함수(loss funtion), W, b

Linear Regression (y)과 sigmoid (1 or 0)에 의한 최종 출력 값이 다르기 때문에 다른 손실함수가 필요합니다.

  • cross-entropy 유도
  1. 입력 x에 대해 출력이 1일 확률을 y로 정의합니다.

https://blog.kakaocdn.net/dn/lhtTL/btqWsJnQIoz/VC7kfYH0G5ObFmy0cHmt71/img.png

  1. 입력 x에 대한 출력이 0일 확률은 1 - y입니다.

https://blog.kakaocdn.net/dn/CWvPo/btqWjqJaSgm/9MZixYRdPSgSdcgLkWDRQK/img.png

3. 출력(확률변수 C)이 1 혹은 0 이기 때문에 다음처럼 정의 가능합니다.

https://blog.kakaocdn.net/dn/xB4V1/btqV2VKjwjV/NlHkcFu7gdgZi0kYie4LwK/img.png

  1. 각 입력 데이터의 발생 확률을 모두 곱하여 우도 함수를 정의합니다.

https://blog.kakaocdn.net/dn/bLPq52/btqWxe17cu8/oXVcd3blKK11DWHycbKCZ1/img.png

  1. 함수의 최대값을 알기위해서 편미분 하는 과정을 간략화하기 위해 log를 취하며, 파라미터 최적화를 위해 최소값을 구하는게 일반적이므로 부호를 바꾼 형태로 손실함수를 정의합니다.

https://blog.kakaocdn.net/dn/cHpZ63/btqV2V4ANTH/80tad52aRyy5macF1TkoQK/img.png

  • Classification에서 [W, b] 계산 과정

https://blog.kakaocdn.net/dn/beAwlZ/btqV8FAbasm/20pcS0cvuH3Xhfikiq7x7K/img.png

Classification 프로세스를 리뷰해보자면 임의의 직선 Wx +b를 가정한 후에, Training Data를 이용하여 Linear Regression을 수행하고 그 결과값을 sigmoid 함수에 입력하여 0과 1사이의 값 y를 출력합니다.

출력된 y를 이용하여  손실함수(cross-entropy) 값을 계산하고 최소값인지 확인합니다.

최소값이 아니라면 수치 미분을 이용하여 W와 b를 업데이트하는 과정을 반복하여 다시 손실함수 값이 최소값을 찾는 과정이 반복됩니다.

출처 : 유튜브 NeoWizard 채널 머신러닝/딥러닝 강의

profile
iOS Developer

0개의 댓글