본문 바로가기
  • Seizure But Okay Developer
머신러닝/Coursera 강의 정리

1주차 강의 내용 정리 - 3

by Sky_Developer 2023. 3. 13.

개요

1주차 내용을 이어서 작성합니다.

Cost function

앞서 배운 linear regression 을 실행하기 위해선 "cost function" 을 정의해야 한다.

cost function은 Model이 현재 얼마나 잘 동작하고 있는지를 알려준다. 그래서 Model이 더 나은 성능을 낼수 있게끔 해준다. 그림으로 cost function 에 대해 배워보자.

linear regression Model을 나타내는 표현식은 아래와 같다.

f(x) = wx + b

w, b는 parameter 라고 하며 머신러닝 모델이 학습하는 중에 성능을 개선하기 위해 적용할 수 있는 값이다.

w, b는 coefficients 또는 weights 라고도 표현한다.

위 그림에서 보듯 w, b 값에 따라서 그래프의 선이 다르게 그려진다.

첫 번째 그래프에서 b는 y축을 교차하기 때문에 y-intercept 라고도 표현한다.

뒤 이어 나오는 그림들에서 확인할 수 있듯이 w는 선의 기울기 값을 나타낸다. 기울기는 y 증가량 / x 증가량 으로 구할 수 있다.

 

training set 이 주어져서 아래와 같은 그래프에 점으로 찍혀 있고 여기에 linear function (linear regression model)을 나타낸다고 하자. 이제 cost function 값을 도출하는 방법을 배울 것이다.

w, b를 잘 선택하여 데이터들과 잘 밀착된 선을 그렸다고 해보자.

  • x^(i) (i번째 feature 값)을 통해 y^(i) (i번째 target 값) 를 구할 수 있다. 또한 예측값인 y-hat^(i)를 구할 수 있다.
  • y-hat^(i) 은 linear function으로 그려진 선에 수렴되는 값이며 y^(i) 와 가까운 위치에 있는 값이다.
  • 모델을 정의하고 예측값인 y-hat^(i)를 구하려면 w, b 값을 먼저 구해야 한다.
    • 이를 위해 학습 데이터와 선이 얼마나 잘 밀착되어 있는지 구하는 방법에 대해서 알아보자.
    • 이를 위해 Cost function 값 ( J(w,b) )을 구해야 한다.
      • 공식은 위 그림과 같으며 아래에 공식에 대한 설명을 했다.
        • 모든 학습 데이터을 가져다 적용하면서 동시에 더하기 위해 시그마로 표현한다 (모든 오차를 더하는 이유는 평균적인 크기를 구하기 위한 것으로 판단됨)
        • y-hat 빼기 y -hat == error (오차) : y-hat 과 y 값의 차이는 prediction과 target 간의 간격을 의미하며 이 값을 제곱시킨다 (수학적으로 제곱을 한다는 건 어떤 의미가 있는건데,,왜 굳이 제곱을 하는건지는 개인적으로 찾아봐야 겠다)
        • 모든 데이터의 갯수인 m으로 나누기를 한다, 이를 통해 학습 데이터가 계속 늘어나더라도 값이 자동으로 더 커지지 않게하는 동시에 평균값을 구할 수 있다.
          • 2를 더 나누는 이유는..값을 좀 더 그럴싸하게 구하기 위해서다. 꼭 2로 나누지 않아도 된다.
      • 이렇게 구한 cost function을 squared error cost function 이라고 부른다. 이렇게 오차를 제곱한 cost function방식은 linear regression을 사용하는 현재의 많은 애플리케이션에서 사용되는 방법 중 하나이다.
    • 결과적으로, 최소한의 규모의 cost function을 형성해내는 w, b 값을 찾아야 한다.

댓글