🏃‍♂️ Machine Learning

Machine Learning - [ 선형 회귀 ]

date
Jul 8, 2023
slug
machine-learning-01
author
status
Public
tags
Python
Machine Learning
Deep Learning
summary
선형 회귀, 최소 제곱 법, 경사 하강 법
type
Post
thumbnail
category
🏃‍♂️ Machine Learning
updatedAt
Jul 28, 2023 07:32 AM

선형 회귀

머신러닝, 딥러닝의 기초가 되는 선형 회귀에 대해 알아보자.
다음과 같이 데이터 가 주어진다.
이때 입력으로 가 주어진다면, 값은 어떻게 될까?
사람은 의 데이터를 보고 이라는 선형 회귀 식을 유추하여 를 예측해낼 수 있다.
그렇다면 컴퓨터는 어떤 과정을 거쳐 선형 회귀 식을 유추하는지 알아보도록 하자.
 

최소 제곱 법

목표는 입력 값 가 주어졌을 때 함수 를 거쳐 를 만족 시키는 을 찾아내는 것이다.
먼저 컴퓨터는 임의의 값으로 를 가설 설정한다. 예를 들어 으로 가설을 초기화 한다고 가정하자. 함수 가 되고, 이를 그래프에 나타내면 다음과 같다.
notion image
 
이때 실제 값과 예측 값의 차이를 나타내는 함수를 라고 하며, 컴퓨터가 찾아야 하는 것이 바로 가 최소가 되게 하는 인 것이다.
로 가장 많이 사용하는 것은 최소 제곱 법이며, 의 평균이다. 식으로 표현하면 다음과 같다.
 
 
이 식은 변수 각각에 대하여 2차 함수로 나타낼 수 있다.
notion image
notion image
 
엄밀히는 변수가 3개이기 때문에 평면에 나타낼 수 없지만, 처음에 유추한 값을 활용하여 그래프로 표현했다.
 
그래프를 보면 알 수 있듯이, 가 최소가 되게 하는 값은 각각 이다.
그렇다면 컴퓨터가 초기 값 에서 을 어떻게 찾아나가는지 알아보자.
 

경사 하강 법

둘 다 같은 방식이니 에 대해서만 보자.
식을 에 대해 미분하면 다음과 같다.
따라서 에서의 기울기는 이다.
# w=1, b=0 일 때 cost(w, b) 의 기울기 구하기 X = [1, 2, 3] Y = [3, 5, 7] answer = 0 for i in range(3): answer += 2 * X[i] * (X[i] * 1 + 0 - Y[i]) print(answer / 3)
이제 기울기 값을 어떻게 활용하는지 알아보자.
 
에서 로 가기 위해는 가 점차 커져야 한다. 그래서 에서 기울기만큼 빼주겠다는 아이디어이다. ( 이므로)
그런데 지금처럼 이동해야 하는 값의 크기()보다 기울기 값의 크기()가 더 커서, 를 지나칠 수도 있으니 계수 (ex: 0.001)를 곱해서 빼준다. 이를 식으로 나타내면 다음과 같다.
 
 
그럼 값은 이 되고, 이 과정을 반복해 나가면서 를 찾아내는 것이다.