U E D R , A S I H C RSS

MachineLearning스터디/LinearRegressionWithOneVariable (rev. 1.45)

Machine Learning스터디/Linear Regression With One Variable


  • 수식 정리를 어떻게 해야할지 모르겠음.. 첫 장부터 포기해야하는가..
  • 이 문서에 있는 사진이나 예제의 상당수는 Coursera/ML강의에 남겨져 있음. PPT도 제공하므로 꼭 확인하세요.

1. Linear Regression

  • 우리나라 말로 선형 회귀
  • 변수 하나만 쓰이면 단순 선형 회귀, 둘 이상의 변수가 쓰이면 다중 선형 회귀라고 함.
  • 만약 목표가 예측일 경우, 선형 회귀를 통해 y와 x로 이루어진 집합을 만들기 위한 예측 모델을 개발한다. 개발된 모델은 차후 y가 없는 x값이 입력되었을 때, 해당 x에 대한 y를 예측하기 위해 사용한다.
  • 여러 x가 존재할 경우, y와 x 간의 관계를 수량화하여 어느 x가 y와 별로 관계가 없는지 알아낸다.
  • LinearRegressionExp.png
    [PNG image (1.12 KB)]

  • 출처

2. Model Representation

HousePriceExample.PNG
[PNG image (12.07 KB)]

  • 예: 집 평수에 따른 가격
    Model_Representation.PNG
    [PNG image (6.2 KB)]

  • Training Set : 위의 기본 데이터 셋과 같음. 머신은 이런 데이터 셋을 기반으로 판단을 하게 됨.
  • Learning Algorithm : Hypothesis(추정)를 만들어 냄.
  • Hypothesis : 주어진 입력에 대한 출력을 추정해내는 함수를 말한다. h라고 많이 씀. 데이터 모델이 h와 같다고 추정하게 되면, 우리는 Training Set에 존재하지 않는 데이터에 대해서도 h를 통해서 값을 추정해낼 수 있다.
  • 위의 예제는 변수가 하나만 쓰인 단순 선형 회귀임.
    hypothesis_house_price.png
    [PNG image (1.71 KB)]

  • θ를 Hypothesis의 Parameter라고 함.
  • 중요한 것 : θ를 어떻게 결정할 것인가? -> Cost Function을 통해서 결정함.

3. Cost Function

  • 구해낸 Hypothesis가 데이터 모델을 잘 표현하고 있는지 평가하는 함수.
    Cost_Function.PNG
    [PNG image (4.63 KB)]

  • Cost Function에 의해서 가장 데이터 모델을 잘 표현하고 있다고 평가받는 Hypothesis를 구하는게 목표.
    Goal_.PNG
    [PNG image (3.77 KB)]

  • Cost Function을 시각화 했을 경우.
    CostFunctionGraph1.PNG
    [PNG image (76.92 KB)]

  • 가장 아래에 있는 지점이 데이터 모델을 잘 표현하는 Parameter임.(Cost가 가장 작음)
    ContourPlot.PNG
    [PNG image (34.53 KB)]

  • 같은 색으로 연결된 선은 같은 Cost를 가지고 있다는 의미임.

4. Gradient descent

  • 경사 하강법(gradient descent)은 최초 근사값(first-order) 발견용 최적화알고리즘이다. 기본 아이디어는 함수의 기울기(경사)를 구하여 기울기가 낮은 쪽으로 계속 이동시켜서 극값에 이를 때까지 반복시키는 것이다.

  • 최적화할 함수
    gd1.png
    [PNG image (390 Bytes)]
    에 대하여, 먼저 시작점
    gd2.png
    [PNG image (240 Bytes)]
    를 정한다. 현재
    gd3.png
    [PNG image (220 Bytes)]
    가 주어졌을 때, 그 다음으로 이동할 점인
    gd4.png
    [PNG image (262 Bytes)]
    은 다음과 같이 계산된다.

gd5.png
[PNG image (703 Bytes)]

  • 이때
    gd7.png
    [PNG image (222 Bytes)]
    는 이동할 거리를 조절하는 매개변수이다.
    gd7.png
    [PNG image (222 Bytes)]
    가 너무 작으면 수렴 속도가 느리다.
    gd7.png
    [PNG image (222 Bytes)]
    가 크면 수렴 값을 넘어가버려서 수렴에 실패할 수 있다. 따라서 적절하게 잡아주는 것이 중요.

  • 이 알고리즘의 수렴 여부는 f의 성질과
    gd7.png
    [PNG image (222 Bytes)]
    의 선택에 따라 달라진다.
    또한, 이 알고리즘은 지역 최적해로 수렴한다. 따라서 구한 값이 전역적인 최적해라는 것을 보장하지 않으며 시작점
    gd8.png
    [PNG image (240 Bytes)]
    의 선택
    에 따라서 달라진다. 이에 따라 다양한 시작점에 대해 여러 번 경사 하강법을 적용하여 그 중 가장 좋은 결과를 선택할 수도 있다.

  • 출처

    GradientDescentGraph1.PNG
    [PNG image (123.66 KB)]

    GradientDescentGraph2.PNG
    [PNG image (123.88 KB)]


  • Gradient Descent를 이용해서 Parameter를 구해낼 경우, 다음과 같은 모습을 보여준다.

    GradientDescentAlgorithm.PNG
    [PNG image (11.62 KB)]

  • 각 Parameter는 동시에 갱신해야 한다.
  • gd7.png
    [PNG image (222 Bytes)]
    는 매 Parameter 갱신 때마다 수정할 필요가 없다. 기울기에 의해서 수렴하는 정도가 조절되기 때문이다.

5. Octave로 Linear Regression With One Variable 구현

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:42
Processing time 0.0415 sec