오늘의 인기 글
최근 글
최근 댓글
Today
Total
11-29 02:49
관리 메뉴

우노

[ML] 회귀 분석 (Regression Analysis) 의 개념과 학습 흐름 본문

AI/Machine Learning

[ML] 회귀 분석 (Regression Analysis) 의 개념과 학습 흐름

운호(Noah) 2020. 7. 29. 14:32

회귀 분석 (Regression Analysis)

  • 데이터의 연속적인 흐름을 파악해 입력이 들어왔을 때 float 형태의 값을 예측하는 것이다.

    • 예 : 공부 시간을 바탕으로 한 최종 시험 점수 예측
  • 즉, 데이터의 분포하나의 선 또는 면 안에 표현될 수 있는 최적의 모델을 찾는 것이다.

  • 모델(가설)을 정의 후 비용함수(Cost Function)실제 값예측값오차를 구한 뒤 이를 최적화하며 학습을 진행한다.

모델(가설)

  • 선형 회귀 (Linear Regression)

    • H(x) = Wx + b
    • 특성(입력값)이 하나이다.
  • 다중 선형 회귀 (Multiple Linear Regression)

    • H(x) = W1x1 + W2x2 + W3x3 + b
    • 여러 특성(입력값)을 사용하여 좀 더 정교한 모델을 제시
  • H(x)는 우리가 가정한 가설(Hypothesis) 을 의미하고

  • W(Weight)는 가중치, b(bias)를 편향값을 의미한다.

    • W(Weight)와 b(bias)의 값에 따라 선 또는 면의 모양이 달라지게 된다.

비용함수(Cost Function)

  • 모델의 예측값과 실제값의 오차H(x') - y 로 구한다면 H(x') 값 보다 y 값이 클 경우 오차를 표현 할 수 없게 된다.

  • 따라서 비용 함수(Cost function)를 통해 예측값과 실제값의 오차를 계산한다.

    • 목적함수, 비용함수, 손실함수는 혼용해서 사용된다.
  • 비용함수(Cost Function)평균 제곱 오차(Mean Squared Error, M.S.E)를 사용해 구할 수 있다.

    • m데이터의 개수이다.
    • 각각의 예측 값 H(x')실제 데이터 값 Y차이를 제곱한 뒤
    • 전체 데이터 개수만큼결과 값을 더하고
    • 전체 데이터의 개수만큼 나누어 평균을 구하는 방식이다.

옵티마이저 : 경사하강법 (Gradient Descent)

  • 비용 함수최소화하는 매개 변수W와 b를 찾기 위해 사용되는 알고리즘을 옵티마이저(Optimizer) 또는 최적화 알고리즘이라고 부릅니다.

  • 그리고 이 옵티마이저를 통해 적절한 W와 b를 찾아내는 과정을 머신 러닝에서 학습(training)이라고 부릅니다.

  • 여기서는 가장 기본적인 옵티마이저 알고리즘경사 하강법(Gradient Descent)에 대해서 설명하겠습니다.

  • 경사 하강법을 이해하기 위해서 cost기울기 W와의 관계를 이해해보겠습니다.

    • W는 머신 러닝 용어로는 가중치라고 불리지만, 직선의 방정식 관점에서 보면 직선의 기울기를 의미하고 있습니다.

    • 설명의 편의를 위해 bias없이 단순히 가중치 W만을 사용한 y=Wx라는 가설 H(x)를 가지고, 경사 하강법을 수행한다고 해보겠습니다.

    • 비용 함수의 값 cost(W)cost라고 줄여서 표현해보겠습니다.

    • 이에 따라 Wcost관계그래프로 표현하면 다음과 같습니다.

    • 기울기 W가 무한대로 커지면 커질 수록 cost의 값 또한 무한대로 커지고, 반대기울기 W가 무한대로 작아져cost의 값은 무한대로 커집니다.

    • 위의 그래프에서 cost가 가장 작을 때볼록한 부분의 맨 아래 부분입니다.

    • 기계가 해야할 일은 cost가 가장 최소값을 가지게 하는 W를 찾는 일이므로, 볼록한 부분의 맨 아래 부분의 W의 값을 찾아야 합니다.

    • 기계는 임의의 랜덤값 W값을 정한 뒤에, 맨 아래의 볼록한 부분을 향해 점차 W의 값을 수정해나갑니다.

    • 위의 그림은 W값이 점차 수정되는 과정을 보여줍니다.

    • 그리고 이를 가능하게 하는 것이 경사 하강법(Gradient Descent)입니다.

    • 이를 이해하기 위해서는 고등학교 수학 과정인 미분을 이해해야 합니다. 경사 하강법은 미분을 배우게 되면 가장 처음 배우게 되는 개념인 한 점에서의 순간 변화율 또는 다른 표현으로는 접선에서의 기울기의 개념을 사용합니다.

    • 그림에서 초록색 선W가 임의의 값을 가지게 되는 네 가지의 경우에 대해서, 그래프 상으로 접선의 기울기를 보여줍니다.

    • 주목할 것은 맨 아래의 볼록한 부분으로 갈수록 접선의 기울기가 점차 작아진다는 점입니다. 그리고 맨 아래의 볼록한 부분에서는 결국 접선의 기울기가 0이 됩니다.

    • 그래프 상으로는 초록색 화살표가 수평이 되는 지점입니다.

    • 즉, cost가 최소화가 되는 지점은 접선의 기울기가 0이 되는 지점이며, 또한 미분값이 0이 되는 지점입니다.

    • 경사 하강법의 아이디어는 비용 함수(Cost function)를 미분하여 현재 W에서의 접선의 기울기를 구하고, 접선의 기울기가 낮은 방향으로 W의 값을 변경하고 다시 미분하고 이 과정을 접선의 기울기가 0인 곳을 향해 W의 값을 변경하는 작업을 반복하는 것에 있습니다.

  • 이제 비용(cost)최소화하는 W를 구하기 위해 W를 업데이트하는 식은 다음과 같습니다.

  • 이를 접선의 기울기가 0이 될 때까지 반복합니다.

    • 위의 식은 현재 W에서의 α 와 접선의 기울기 곱한 값을 빼서 새로운 W의 값으로 한다는 것을 의미합니다.

    • α는 여기서 학습률(learning rate)이라고 하는데, 우선 α는 생각하지 않고 현재 W에서 현재 W에서의 접선의 기울기를 빼는 행위가 어떤 의미가 있는지 알아보겠습니다.

    • 위의 그림은 접선의 기울기음수일 때, 0일때, 양수일 때의 경우를 보여줍니다.

    • 접선의 기울기음수일 때는 위의 수식이 아래와 같이 표현할 수 있습니다.

    • 즉, 기울기음수W의 값이 증가하게 되는데 이는 결과적으로 접선의 기울기가 0인 방향으로 W의 값이 조정됩니다.

    • 만약, 접선의 기울기양수라면 위의 수식은 아래와 같이 표현할 수 있습니다.

    • 기울기양수W의 값이 감소하게 되는데 이는 결과적으로 기울기가 0인 방향으로 W의 값이 조정됩니다.

    • 결국, 아래의 수식은 접선의 기울기가 음수거나, 양수일 때 모두 접선의 기울기가 0인 방향으로 W의 값을 조정합니다.

    • 그렇다면 여기서 학습률(learning rate)이라고 말하는 α는 어떤 의미를 가질까요?

    • 학습률 α은 W의 값을 변경할 때, 얼마나 크게 변경할지를 결정합니다.

    • 또는 W그래프의 한 점으로보고 접선의 기울기가 0일 때까지 경사를 따라 내려간다는 관점에서는 얼마나 큰 폭으로 이동할지를 결정합니다.

    • 직관적으로 생각하기에 학습률 α의 값을 무작정 크게 하면 접선의 기울기가 최소값이 되는 W를 빠르게 찾을 수 있을 것같지만 그렇지 않습니다.

    • 위의 그림은 학습률 α가 지나치게 높은 값을 가질 때, 접선의 기울기가 0이 되는 WW를 찾아가는 것이 아니라 W의 값이 발산하는 상황을 보여줍니다.

    • 반대로 학습률 α가 지나치게 낮은 값을 가지면 학습 속도가 느려지므로 적당한 αα의 값을 찾아내는 것도 중요합니다.

    • 지금까지는 b는 배제시키고 최적의 W를 찾아내는 것에만 초점을 맞추어 경사 하강법의 원리에 대해서 배웠는데, 실제 경사 하강법은 W와 b에 대해서 동시에 경사 하강법을 수행하면서 최적의 W와 b의 값을 찾아갑니다.

    • 정리하자면 가설, 비용 함수, 옵티마이저는 머신 러닝 분야에서 사용되는 포괄적 개념입니다. 풀고자하는 각 문제에 따라 가설, 비용 함수, 옵티마이저는 전부 다를 수 있으며 선형 회귀가장 적합한 비용 함수옵티마이저가 알려져있는데 이번 챕터에서 언급된 MSE경사 하강법이 각각 이에 해당됩니다.

Comments