Logistic regression & pre-processing

be1le·2022년 1월 6일
9

ML

목록 보기
2/22

지난번에는 머신러닝에 대한 개념과 선형회귀에 대한 개념을 포스팅 해 보았다. 앞서 말 했듯이, 선형회귀란 이세상의 거의 모든문제를 선형으로 나타낼수 있다는 가정에서 시작했다고 했다. 하지만 선형적으로 표현하기에 어려움이 있는 사회현상 들을 표현하기 위해서는 새로운 함수가 필요했는데 그걸 우리는 Logistic function(=Sigmoid function) 이라고 부르기로 하였다! 오늘은 논리 회귀에대해 알아보자!

Logistic regression이 뭘까?

논리 회귀는 실질적인 계산은 선형회귀와 같지만, 출력에 시그모이드 함수를 붙여 0~1사이의 값을 가지도록 만든다. 시그모이드 함수는 아래처럼 생겼다.

x(input)가 음수방향으로 갈 수록 y(output)가 0에 가까워지고,
x(input)가 양수방향으로 갈 수록 y(output)가 1에 가까워진다는걸 알 수 있다.
즉 0~1사이의 값이 나온다고 생각하면 된다.

Crossentropy


사람이 보통 극적인상황에 놓이면 단순한행동 양상을 띈다고 한다. 지금내 심정이 그러하여서 정말 간단하게 생각하기로 하였다! 빨간선이 되기위해 파란선이 노력을 하는구나! 그리고 그게 crossentropy구나!! 그러면 저친구는 선형회귀의 직선거리를 최소화하려고 노력하던 함수와 같은친구구나 생각할 수 있다.

다항 논리 회귀 Multinomial logistic regression

다항 논리 회귀는 보통 One-hot encoding과 같이다닌다 생각 할 수있다. A~F까지 5개의 클래스가 있으면 우리는 이들의 클래스가 0~4였다면, 아래와같은 식으로 표현 할 수있다.

Multinomial logistic regression에서는컴퓨터가 이해하기 쉬운방법으로 입력을해줘서 여러개의항을 0과1 즉이진클래스로 만들어줄수있게된다. 역시 입력은 컴퓨터를 위해, 출력은 사람을 위한 방향을 향하는 진리는 오늘도 크게 벗어나지 않는다.

Binary logist regression


Softmax는 선형 모델에서 나온 결과를 모두가 더하면 1이 되도록 만들어주는 함수입니다. 다 더하면 1이 되도록 만드는 이유는 예측의 결과를 확률로 표현하기 위함이고, 우리가 One-hot encoding을 할때에도 라벨의 값을 전부 더하면 1(100%)이 되기 때문이다.

다항 논리 회귀에서 softmax 함수를 통과한 결과 값의 확률분포 그래프를 그려서 이와같은 모양이 나온다면, 단항 논리 회귀에서와 마찬가지로 가로축은 클래스가되고, 세로축은 확률이된다. 마찬가지로 확률 분포의 차이를 계산할 때는 Crossentropy 함수를 쓴다. 항이 여러개가 되었을 뿐 차이는 이진 논리 회귀와 없다! 데이터셋의 정답라벨과 확률분포 그래프를 구해서 차이를 최소화 하는 방향으로 학습을 시키면 되는것!!

전처리 Preprocessing이란?

정수기 필터라고 생각하면 간단하다! 화장실(처리전)에서도 물(데이터)은 잘만 나오지만 마실 수 있는 물(필요한데이터)이 아니듯, 필터가 있어야 컴퓨터가 안심하고 마실 수 있는물(필요한데이터)가 된다 생각하면 된다! 이제 전처리의 두가지 방법 정규화와 표준화를 알아보자!

정규화 Normalization

수능 100점과 토익100점은 같은 100점인데도 왜 우리가 하늘과 땅처럼 받아들일까? 당연히 만점이되는 기준점수가 다르기 때문이다. 그래서 우리는 수능 100점과 토익100점을 이렇게 나타낼수있다.
수능100점= 1.0
토익100점= 0.1(물론 990점 만점이지만 편의를 위해)
이렇게 표현하는 과정을 정규화라고 한다.

표준화 Standardization

표준화는 데이터의 분포를 정규분포로 바꿔준다. 데이터의 평균이 0이 되도록하고 표준편차가 1이되도록 만들어준다. 표준화를 하는이유는 학습속도,로컬 미니멈을 피하기 위함이라 생각하면 된다.

블로깅을 마치며

한국어로 해도 어려운 말들을 이해하려고 끙끙대는 내가 조금은 안쓰러워 보여도 한편으로는 기특하기도 하다. 논리회귀의 그래프의 굴곡처럼 유연한 사고를통해 더좋은 개발자가 되기를 소망하며 글을 마친다.

profile
그저 그런 개발자가 되지 않겠습니다.

0개의 댓글