본문 바로가기

AI Theory/key concept of AI

선형 회귀와 로지스틱 회귀

선형 회귀와 로지스틱 회귀

 

회귀분석

  • 전통적으로 많이 사용되던 분석 방법
  • 관찰된 여러 데이터를 기반으로 각 연속형 변수 간의 관계를 모델링하고 이에 대한 적합도를 측정하는 분석 방법
  • 독립변수(independent variable, 설명변수)와 종속변수(dependent variable, 반응변수) 사이의 상호 관련성을 규명
  • 선형회귀, 로지스틱 회귀 등

 

선형 회귀

https://jinseob2kim.github.io/lecture-smc-psychiatry/regression/#14

  • 종속변수 Y와 한 개 이상의 독립변수 X와의 선형 상관관계를 모델링하는 회귀분석 기법 
    • 선형 회귀 분석에서는 독립 변수와 종속 변수 사이의 상관 관계를 분석하는 것이 목적이다.
    • 그렇다면 두 변수 사이에 상관 관계가 있다면 인과 관계 또한 있다고 볼 수 있을까?
    • 정답은 X로,  상관 관계가 높다고 해서 반드시 인과관계가 있는 것은 아니다.
    • 사례 ) 아이스크림 판매량과 물놀이 사고건수
  • H = Wx + b ( 가정(Hypothesis), 가중치(Weight),  편향(bias))
  • 잔차를 최소화하는 W, b를 구하는 것이 목적
  • 최소제곱법(Least Squares Method)으로 잔차를 최소화하는 W,b 구함
  • 학습한 모델은 결정계수(R-squared, 또는 R2 score 등으로 표기)로 평가함
  • 독립변수가 1개이면 단순 선형회귀, 2개 이상이면 다중 선형회귀라고 불린다.

 

선형 회귀분석의 기본 가정

  • 회귀분석 대상 데이터들이 가져야 할 특징
    • 선형성: 예측하고자 하는 종속변수 y와 독립변수 x 간에 선형성을 만족한다.
    • 독립성독립변수 x들 간에 상관관계가 없이 독립성을 만족한다. 다중 회귀분석에서 중요한 기본가정.
    • 등분산성: 잔차의 분산이 같다. 여기서는 데이터의 잔차가 특정한 패턴 없이 고르게 분포한 것
    • 정규성 : 잔차가 정규성을 만족한다, 즉 정규분포를 따른다.

https://kkokkilkon.tistory.com/175

 

선형 회귀분석의 4가지 기본가정

선형 회귀분석의 4가지 기본가정 How to make good linear regression model? 선형 회귀분석을 통해 좋은 모델을 만들기 위해서는 분석 데이터가 아래 4가지 기본가정을 만족해야 한다.아래 4가지 기본가정

kkokkilkon.tistory.com

 

최소제곱법 vs 경사하강법

최소제곱법(Least Squares Method)

  • 잔차를 이용하여 주어진 점 데이터들을 가장 잘 설명하는 회귀모델을 찾는 가장 대표적인 방법 중 하나
  • n 개의 점 데이터에 대하여 잔차의 제곱의 합을 최소로 하는 W, b를 구하는 방법

 

경사하강법(Gradient Descent)

  • 오차를 최소화하기 위해 반복적인 최적화 알고리즘을 사용하는 방법
  • 손실함수의 형태가 주어진 데이터의 분포를 잘 반영하는 것이 중요하지만, 데이터의 분포를 항상 알 수없기에 머신러닝에서는 손실함수의 그래디언트(미분값)가 최소가 되는 지점이 손실함수를 최소로 하는 지점일 것이라고 가정함
  • 주어진 비용 함수(손실 함수)를 최소화하기 위해 모델의 가중치와 절편을 조금씩 업데이트해가면서 전역 최솟값을 찾고 손실함수를 최소화하는 W, b를 구함

손실 함수의 최소가 되는 지점으로 가기 위해서 w를 아래 식으로 업데이트 한다.

 

  • 경사하강법은 기울기(경사)를 이용하여 현재 위치에서 가장 가파른 경사의 방향으로 이동하며, 오차를 최소화하는 최적의 가중치와 절편을 찾음
  • 대용량의 데이터나 변수의 개수가 많은 경우에 적합하고, 이상치(outlier)에 대한 영향을 상대적으로 적게 받음
  • 따라서 경사하강법은 대규모 데이터셋이나 이상치가 있는 경우에 효과적으로 사용할 수 있음

 

즉, 

최소제곱법은 단순히 오차의 제곱을 최소화하는 가중치의 절편을 찾는 반면, 경사하강법은 비용 함수를 최소화하기 위해 경사를 이용하여 모델을 업데이트하는 반복적 과정 수행

 

 

결정계수(R-squared, R2 score)

  • 회귀 모델이 데이터를 잘 표현하고 있는지에 대해서 평가하는 지표
  • 0~1사이의 값을 가짐
  • 1에 가까울 수록 해당 회귀모델이 데이터를 잘 표현함

 

로지스틱 회귀(Logistic Regression) 

https://jinseob2kim.github.io/lecture-smc-psychiatry/regression/#14

  • 데이터가 어떤 범주에 속할 확률을 0에서 1 사이의 값으로 예측하고 그 확률에 따라 가능성이 더 높은 범주에 속하는 것으로 분류해 주는 지도 학습 알고리즘
  •  특정 threshold 값을 기준으로 삼아서 예측된 확률 값이 threshold 이상인 것과 미만인 것으로 분류함
  • threshold는 기본적으로 0.5 이지만 원하는대로 변경 가능
  • 특히 이진 분류 문제를 풀 때 많이 사용

 

Odds

(사건이 발생할 확률) / (발생하지 않을 확률로 나눈 값)

 

LogOdds(로짓)

odds 값에 log를 취한 값

주어진 데이터를 입력하면, 데이터를 잘 설명하는 회귀계수 β를 구할 수 있다.

 

결국 위의 식은 logOdds에 대한 선형 회귀모델이라고 볼 수 있다.

 

그러나 우리는 종속변수가 0일 확률, 1일 확률 자체를 원하는 것이지 log-odds 자체 값(범위:[−∞,∞] )은 필요없다.

따라서 log-odds로부터 특정 범주에 속할 확률을 얻기 위해 log-odds의 식을 에 대해서 다시 정리한다.

 

정리하면 결국 시그모이드 형태의 함수를 띄게 된다.

시그모이드 함수는 [0, 1] 범위를 가지므로 확률을 계산하는데 적합하다.

또한 시그모이드 함수는 z=0인 지점을 중심으로 두 범주 1,0 간 경계가 불명확해 지는 x의 구간(0.3<p<0.7)을 최소화하여 분류 모델의 분류성능을 향상시킨다.

 

  1. 실제 데이터를 대입하여 Odds 및 회귀계수를 구한다.
  2. Log-odds를 계산한 후, 이를 sigmoid function의 입력으로 넣어서 특정 범주에 속할 확률 값을 계산한다.
  3. 설정한 threshold에 맞추어 설정값 이상이면 1, 이하면 0으로 이진 분류를 수행한다.

 

로지스틱 회귀는 이진 분류 뿐만 아니라 여러 범주로 분류하는 다중 로지스틱 회귀로 확장할 수 있다.

이때는 시그모이드 함수가 아닌 소프트맥스 함수를 활용해야 한다.

 

Softmax 함수

  • 시그모이드와 다르게 여러 범주로 분류하는 함수로 multi classification에 적합
  •  각 범주의 확률 값이 0에서 1 사이의 값
  • 모든 범주에 해당하는 softmax의 값을 전부 더했을 때 그 합이 1
  • 큰 log-odds와 작은 log-odds의 차이를 극대화시켜서 데이터가 어떤 class로 분류되는지 확실히 파악 가능
  • 가장 큰 값을 1, 그 외 나머지 값들을 0으로 인코딩하는 one-hot encoding을 통해 결과 표현

 

2. Cross Entropy

  •  softmax 함수의 손실함수로 사용
  •  가중치가 최적화될수록 H(p,q)의 값이 감소하게 되는 방향으로 가중치 학습 수행
  • p(x)는 실제 데이터의 범주 값, q(x)는 softmax의 결과값
  • 로지스틱 회귀는 선형회귀와 다르게 종속변수 값이 확률 변수 형태이므로, 손실함수를 선형회귀 때처럼 잔차 제곱으로 표현하는 것보다는  정보이론(Information Theory)을 반영한 cross entropy를 사용하는 것이 더 적절
  • Cross Entropy는 로지스틱 회귀모델이 추론한 확률 분포 와 실제 데이터의 분포 의 차이를 계산한 것
  • 이 차이가 적을수록 Cross entropy가 작아짐

https://theeluwin.postype.com/post/6080524

 

왜 크로스 엔트로피를 쓸까?

(본 글은 유투브 영상을 글로 재구성 한 것입니다.) 머신러닝/딥러닝을 하다보면 크로스 엔트로피(cross entropy)가 자주 등장합니다. 정확히는, 분류(classification) 문제를 풀 때 크로스 엔트로피를 이

theeluwin.postype.com

 

다중분류에서 크로스엔트로피를 손실함수로 사용하는 이유

1. 다중 분류 모델에서 출력값은 여러 개의 클래스 중 하나를 선택해야 하기 때문에, 출력값은 0 또는 1과 같은 이진 형태가 아닌 확률값의 형태를 가진다. 이때, 크로스 엔트로피 손실 함수는 다중 분류 모델의 출력값을 확률값으로 나타내는 데 유용하다.

2. 크로스 엔트로피는 로그 함수를 포함하고 있어서, 입력값의 변화에 따라 변화량이 크게 반응하는 특성을 가진 로그 함수의 특성상, 예측값과 실제값의 차이가 크면 더 높은 값을 가지게 된다. 이는 다중 분류 모델에서 모든 클래스에 대한 확률값이 균등하게 분포되도록 만들어 주는 역할을 한다. 이는 다중 분류 모델에서 클래스들 간의 공정한 경쟁을 유도하고, 예측의 일반화 성능을 향상시킬 수 있도록 돕는다.

3. 크로스 엔트로피는 최적화 과정에서 로그 함수를 사용하기 때문에 기울기 소실(vanishing gradient) 문제를 해결해줍니다.

 

 

손실함수

  • 손실함수(loss function)는 머신 러닝에서 모델의 성능을 평가하는 지표 중 하나
  • 손실함수는 모델이 예측한 값과 실제 값 사이의 차이(오차)를 측정하며, 이를 최소화하는 방향으로 모델의 파라미터를 조정
  • 회귀 모델: 평균 제곱 오차(MSE, Mean Squared Error)나 평균 절대 오차(MAE, Mean Absolute Error)
  • 분류 모델: 크로스 엔트로피(Cross Entropy)나 로그 손실(Log Loss)
  • 손실함수는 모델의 성능을 평가하는 지표로서만 사용하는 것이 아니라, 모델의 파라미터를 업데이트하는 과정에서도 사용모델은 손실함수를 최소화하는 방향으로 파라미터를 조정하게 되며, 이 과정을 경사 하강법(GD, Gradient Descent)이라고 함.
  • 따라서, 손실함수는 모델의 성능을 평가하는 데 중요한 역할을 하고, 모델 학습 과정에서도 사용됨

'AI Theory > key concept of AI' 카테고리의 다른 글

사이킷런을 활용한 추천 시스템  (0) 2023.07.07
비지도학습(Unsupervised Learning)  (0) 2023.07.07
Regularization(정칙화)  (0) 2023.07.05
활성화 함수의 이해  (0) 2023.07.03
딥네트워크  (0) 2023.07.03