[ML lec 02] Linear Regression

2017. 7. 6. 17:56·AI/Lecture notes

이론


우리가 Supervised Learning을 할 때에, 학생이 몇시간 정도 공부를 했더니 얼마정도의 성적을 받았다는 데이터를 학습을 하게됩니다.


여기서 우리가 예측을 하고자하는 최종적인 목표가 0~100의 범위를 가지는 값입니다.


이런 종류의 학습을 Supervised Learning 중에서도 regression이라고 합니다.




설명을 간단히 하기 위해서, 데이터셋을 다음과 같이 간단하게 두어 보겠습니다.





이 데이터를 그래프로 그려보면 오른쪽 그래프와 같이 표현됩니다.


그래서 우리가 이 regression 모델을 학습한다는 것은 어떠한 하나의 가설을 세울 필요가 있습니다.


"어떤 Linear한 모델이 우리 데이터에 맞을 것이다" 라는 가설 하에 생성된 모델이 바로 Linear regression입니다.



 

이 Linear regression이 효과가 좋은 이유가 세상에 있는 많은 데이터들이 또는 세상에 있는 많은 현상들이 이 Linear한 것으로 설명될 수 있는 경우가 많이 있기 때문입니다.


맨 위에서 설명했듯이, 어떤 학생이 공부를 많이할수록 성적을 잘 받는다던지, 연습을 많이할수록 실력이 좋아진다던지, 집의 크기가 크면 클 수록 집의 가격이 올라간다는 것들이 이 Linear로 설명을 할 수 있고, Linear하게 모델을 세울 수 있습니다.



Linear로 설명을 할 수 있는 또는 Linear하게 모델을 세울 수 있다는 것은 어떤 데이터들에 잘 맞는 Linear한 선을 찾는다라고 말할 수 있습니다.


이에 맞는 어떤 선을 찾는 것이 바로 학습을 하는 것입니다.





이 선을 수학적으로 나타내면 다음 형태의 수식이 나옵니다.





이 선의 모양은 W와 b에 따라 결정이 되겠죠.


우리는 이 Hypothesis를 이런 1차 방정식으로 될 것이라고 세우는 것이 Linear regression입니다.


이런 가설에 따라 우리는 많은 선들을 만들어낼 수 있습니다.



이 선들 중 어떤 선이 데이터와 가장 맞는 선인지에 대해서 결정할 수 있습니다.


위의 데이터에 따라서는 H(x) = 1* x + 0 의 가설이 가장 잘 들어맞는다고 할 수 있습니다.





가장 기본적으로는 어떤 선이, 어떤 모델이, 어떤 가설이 좋은 가를 판단할 때는 실제 데이터와 이 선들이 이루는 거리로 판단합니다.


즉 선과 데이터들의 거리가 멀면 잘 맞지않은 모델이고, 거리가 가까우면 잘 맞는 모델이라고 할 수 있습니다.



이것을 Linear regression에서는 Cost function이라고 합니다. 다른 말로 하면 Loss function입니다.


가장 기본적으로 계산하는 방법은 이 차이를 계산하는 것입니다.


즉 H(x) - y 라는 식을 보게됩니다.


그러나 이 식은 양수일 수 있고, 음수일 수도 있기 때문에, 거리를 계산하는 아래와 같은 방법을 채택하게 됩니다.




이 식은 차이가 양수와 음수인 것에 상관없이 일정하게 차이를 양수로 표현합니다.


또 제곱을 하기 때문에, 차이가 커질수록 더욱 큰 페널티를 주게됩니다.



모든 데이터에 대해서 위의 거리를 계산하여, 산술평균을 구합니다.






이 구해진 식을 Linear regression에서는 Cost function이라고 합니다.



그럼 이 Cost function은 실제적으로



다음과 같이 표현할 수 있습니다.





그럼 이 Cost function은 결국 W와 b에 대한 function입니다.



여기서 Linear regression의 과제는 이 Cost function을 가장 작게 만드는 W와 b를 구하는 것입니다.


즉 Linear regression의 학습은 Cost function이 가장 작은 값 W와 b를 구하는 것입니다.






저작자표시 (새창열림)

'AI > Lecture notes' 카테고리의 다른 글

[ML lec 06] Softmax Regression  (0) 2017.07.21
[ML lec 05] Logistic Classification  (0) 2017.07.19
[ML lec 04] multi-variable linear regression (*new)  (0) 2017.07.17
[ML lec 03] Linear Regression의 cost 최소화 알고리즘의 원리 설명  (0) 2017.07.15
[ML lec 01] 기본적인 머신러닝의 용어와 개념 설명  (0) 2017.07.04
'AI/Lecture notes' 카테고리의 다른 글
  • [ML lec 05] Logistic Classification
  • [ML lec 04] multi-variable linear regression (*new)
  • [ML lec 03] Linear Regression의 cost 최소화 알고리즘의 원리 설명
  • [ML lec 01] 기본적인 머신러닝의 용어와 개념 설명
pfldy2850
pfldy2850
인공지능의 서비스화와 현실화에 관심이 많은 엔지니어입니다.
  • pfldy2850
    DEV.DY
    Github LinkedIn
  • 전체
    오늘
    어제
    • All (105)
      • AI (68)
        • 어플리케이션 개발 (11)
        • 모델 인퍼런스 (9)
        • 검색 시스템 (11)
        • MLOps (8)
        • 기술,논문 리뷰 (7)
        • Lecture notes (10)
        • 오픈소스 릴리즈 노트 (12)
      • Infra (4)
        • Kubernetes (1)
        • Service Mesh (1)
        • Service Proxy (1)
        • Storage (1)
      • Data Engineering (4)
        • Spark (3)
        • Kafka (1)
        • Delta Lake (0)
      • 컴퓨터 공학 (2)
        • 소프트웨어 공학 (2)
      • 개발 (16)
        • ReactJS (8)
        • NodeJS (2)
        • Python (4)
        • Pytorch (1)
        • git (1)
      • 영어공부 (2)
        • GPT로 영어 회화 공부 (2)
      • 활동 (2)
        • 2017 NDC (2)
      • 기타 (1)
      • 레거시 (6)
        • OS (6)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
pfldy2850
[ML lec 02] Linear Regression
상단으로

티스토리툴바