ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [딥러닝] 선형회귀와 로지스틱회귀
    ✨ AI 2019. 12. 22. 21:28

    ● 회귀(Regression)란?

     

    먼저 '회귀'라는 말은 '한바퀴 돌아 제자리로 돌아가다'라는 뜻입니다. 먼저 회귀(Regression)이라는 용어 때문에 회귀모델을 이해하는데 약간의 혼란이 있을 수 있습니다. 사실 회귀모델에서 회귀의 정확한 의미는 '평균으로의 회귀'라는 뜻이라고 봐도 무방합니다. 데이터의 실측치와 모델의 실측치 사이의 차이, 즉 회귀식에서 오차항에 대한 관측치(잔차)가 평균으로 회귀하는 것이 바로 '회귀' 입니다. 정확한 모델에서는 잔차가 평균 0으로 회귀하게 됩니다.

    어째서 '회귀'라고 불리는가?

     

     

     

    - 회귀 모델과 회귀 분석이란?

    회귀모델이란, 어떤 연속성 데이터 x, y의 원인이라고 추정되는 관계를 추정하기 위해 만든 모델을 말합니다. ( y = f(x) )

    그렇게 추정한 관계를 입력 변수값과 매칭하여 '출력' 변수를 예측하는 것을 우리는 통계분석이라고 합니다.

    하지만 현실에서 실제 데이터를 측정할때는 여러가지의 원인으로 수학식처럼 정확한 관계식을 만들 수 없습니다. 그래서 확률 변수인 오차항을 고려하여 회귀 모델을 구성해야 합니다. ( y = f(x) + e )

     

    예를 들어 어떤 학생 모집단이 있다고 가정합니다. 만약 그 중 한명을 뽑아 키를 예측하기 위해서는 나머지 학생들의 키의 평균을 구해 예측하는 것이 그나마 정확할 것입니다. 만약 키 외에 나이, 몸무게, 성별 등의 정보로는 키를 예측하는 것에는 무리가 있기 때문입니다. 만약 몸무게와 키를 모델링하여 연관관계를 뽑아 예측한다고 하면 그것도 어느정도 정확할 수 있겠지만 정확도가 그리 높지는 않다고 합니다. 이렇게 변수들 간 관계를 파악하여 어떤 현상을 예측하고 설명하는데 사용되는 가장 대표적인 분석 방법이 '회귀 분석' 방법 인 것입니다. 즉, 어떤 기준을 통해 분류가 되는지 찾아가는 방법을 회귀라고 합니다.

     

    예시
    : 성적(종속변수)는 공부시간(독립변수)에 따라 어떻게 변하는가?
    매출액(종속변수)는 광고횟수(독립변수)에 따라 어떻게 변하는가?

     

    딥러닝에서 회귀모델은 레이블을 이용한 지도학습이 필요합니다. 어떻게 분류가 되는지 알아야하고 잘 분류되는지 성능을 파악하여야 하기 때문입니다. 학습에 이용할 데이터로 모델을 돌린 후 만들어진 회귀식으로 새로운 데이터 값을 예측합니다.

     

     

    ○ 선형회귀

     

    선형 회귀

     

    선형 회귀란 독립 변수 x를 사용해 종속 변수 y의 움직임을 예측하고 설명하는 작업을 말합니다.

    독립 변수가 x 하나뿐이어서 이것만으로는 정확히 설명할 수 없을 때는 x1, x2, x3등 x 값을 여러 개 준비해 놓을 수도 있습니다. 하나의 x 값만으로도 y 값을 설명할 수 있을 때 이를 단순 선형 회귀(simple linear regression)라고 합니다. 또한, x 값이 여러 개 필요할 때는 다중 선형 회귀(multiple linear regression)라고 합니다.

     

    선형회귀라고 하면 그림에서 처럼 쉽게 1차원 방정식의 기울기(함수식)을 구하는 것이라고 생각하면 됩니다.

     

    선형회귀 예시
    : 선형 회귀 분석을 사용하면 Rain (R)과 Umbrella Sales (U)의 관계는-U = 2R + 5000입니다.
    이 방정식에 따르면 1mm의 Rain마다 5002 개의 우산이 필요합니다. 따라서 단순 회귀를 사용하면 변수 값을 추정 할 수 있습니다.

     

    - 선형회귀 종류

    • 최소 제곱법

    최소 제곱법을 통해 일차 함수의 기울기 a와 y 절편 b를 바로 구할 수 있습니다.

    최소 제곱법이란 회귀 분석에서 사용되는 표준 방식입니다. 실험이나 관찰을 통해 얻은 데이터를 분석하여 미지의 상수를 구할 때 사용되는 공식입니다.

    최소 제곱법을 통해 기울기 a와 y 절편 b의 값을 구하면서 가장 잘 그어진 예측 직선을 먼저 만나 보도록 하겠습니다.

    지금 가진 정보가 x 값(입력 값, 여기서는 ‘공부한 시간’)과 y 값(출력 값, 여기서는 ‘성적’)일 때 이를 이용해 기울기 a를 구하는 방법은 다음과 같습니다. (출처)

     

    즉, x의 편차(각 값과 평균과의 차이)를 제곱해서 합한 값을 분모로 놓고, x와 y의 편차를 곱해서 합한 값을 분자로 놓으면 기울기가 나온다는 뜻입니다. 실제로 우리가 가진 y(성적) 값과 x(공부한 시간) 값을 이 식에 대입해 보겠습니다.

     

    • 경사하강법

    경사 하강법

    해당 함수의 최소값 위치를 찾기 위해 비용(손실)함수기울기 반대 방향으로 정의한 step size를 가지고 조금씩 움직여 가면서 최적의 파라미터를 찾으려는 방법이다.

    여기서 기울기(gradient) 파라미터에 대해 편미분한 벡터를 의미하며 이 파라미터를 반복적으로 조금씩 움직이는 것이 관건이 됩니다.

     

     

     

     

    ○ 로지스틱회귀

    로지스틱 회귀

    실생활에서 모든 원인과 결과는 직선 형태로 표현할 수 없습니다. 그로 인해 정확도가 떨어지고 이부분을 보완하기 위해 나온 개념이 '로지스틱 회귀'입니다. 로지스틱 회귀는 선형회귀에서 구하는 직선 대신 S자 곡선을 이용하여 분류의 정확도를 향상한 방법입니다.

     

    선형과 로지스틱

    선형회귀는 종속변수와 독립변수 사이의 관계를 설정하는데 사용되며, 이는 독립변수가 변경되는 경우 결과 종속변수를 추정하는데 유용합니다. 로지스틱 회귀 분석에서도 마찬가지이나, 종속변수가 이진일 뿐이며 주로 분류에 이용합니다. 로지스틱 회귀가 좀 더 정확한 이유는 선형회귀는 직선양의 그래프를 이용하여 분류하는 반면, 시그모이드(sigmoid)함수를 사용하여 S자 형태를 띄고 있기 때문입니다.

     

     

    바이너리 로지스틱 회귀에 주로 사용. 시그모이드 함수는 결과 값을 0,1로 반환한다. 때문에 두 가지로 분류할 때 유용하다.

    softmax 함수 또한 시그모이드처럼 활성화 함수이고, 여러개를 분류하는데 특화되어 있다. 시그모이드를 여러개 사용하여 분류할 수도 있지만 그렇게 하면 정규화가 되어있지 않기 때문에 효율성이 떨어진다. 반면 softmax는 출력값들이 정규화가 되어있기 때문에 결과값들의 합은 1을 나타낸다. ex) A 0.2 / B 0.2 / C 0.6 -> C가 될 확률이 60%

    시그모이드 함수를 최적화 할 수 있다. 어떤 확률변수에서 표집한 값들을 토대로 그 확률변수의 모수를 구하는 방법이다. 어떤 모수가 주어졌을 때, 원하는 값들이 나올 가능도를 최대로 만드는 모수를 선택하는 방법이다.

     

     

    로지스틱회귀 예시
    고객이 내 제품을 구매할지 여부를 확인하고 싶습니다. 이를 위해 (관련) 데이터에 대해 로지스틱 회귀 분석을 실행하고 종속 변수는 이진 변수 (1 = 예; 0 ​​= 아니오)입니다.

     

     

     

    댓글

Designed by Tistory.