Notice
Recent Posts
Recent Comments
Link
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Archives
Today
Total
관리 메뉴

코딩하는 바나나

Linear Regression 본문

Machine Learning

Linear Regression

유기농바나나칩 2023. 1. 17. 17:38

Linear Regression (선형 회귀법)은 머신러닝의 가장 기초가 되는 알고리즘이다. Linear Regression이란 무엇일까?

 

예를 들어 보자. 아래에 학생들의 퀴즈 점수와 final test 점수가 있다.  이 데이터를 기반으로 어떤 새로운 학생의 퀴즈 점수를 보고 final test의 점수를 예측하는 모델을 만들고 싶다.

학생 퀴즈 final test
A 90 80
B 70 70
C 40 50

어떻게 해야 할까?

이럴 때 사용 할 수 있는 것이 바로 Linear Regression (선형 회귀) 이다.

 

위의 데이터를 그래프로 표현해 보자

x축은 학생들의 퀴즈 점수, y축은 학생들의 final test 점수를 의미한다. 초록색 점들이 각 학생을 의미한다. 

x 값을 기반으로 y값을 예측하기 위해서 우리는 어떤 함수를 사용 할 수 있다.

위의 이미지 처럼 빨간 함수를 사용 할 수도 있고 파란 함수를 사용 할 수도 있을 것이다. 이렇게 여러 데이터를 하나의 선형 방정식으로 표현하여 나타내는 것을 Linear Regression 선형 회귀법이라고 한다. 

이때, 이 데이터를 가장 잘 나타내는 함수를 구하는 것이 Machin Learning의 핵심이다. 그래야 우리가 정확하게 학생들의 점수를 예측 할 수 있다. 그렇다면 어떻게 해야 학생들의 점수를 잘 예측 할 수 있을까?

 

Hypothesis (가설)


우선 Machine Learning에서는 우리가 구해야할 저 선을 Hypothesis (가설)이라고 한다. 

위의 예의 경우 변수가 퀴즈 점수 하나 밖에 존재하지 않는다. 따라서 가설을 다음과 같이 나타 낼 수있다.

H(x) = w * x + b

 

cost function


여기서 우리는 우리의 데이터를 가장 잘 반영하는 w와 b 값을 찾으면 우리의 모델이 학생들의 점수를 잘 예측 할 것이다.

w,b값을 찾는 방법은 간단하다. 모든 데이터의 실제 y값과 선형 방정식을 사용하여 예측되는 y값(y')의 차이가 작으면 작을 수록 우리의 모델의 정확성이 올라 갈 것이다. 따라서  y와 y'의 차이를 나타내는 cost function이라는 녀석을 사용해 줄 것이다. cost function은 다음과 같다. 

실제 의 y값과 가설으로 부터 나온 y값을 뺸값에 제곱을 해준 것을 다 더해주고 전체 데이터의 개수로 나눠준다. 이 cost function을 가장 작게 하는 w와 b 값을 찾으면 된다. 

 

Gradient Descent


이제 cost function을 최소화 시키는 w와 b값을 찾아보자. 이때 사용하는 것이 Gradient Descent 알고리즘이다.

만약 h(x) = w * x 라고 우리가 가설을 정했다고 하자 그렇다면  cost function은 w에 대한 이차함수의 형태로 나올 것이다.

그러면 먼저 w값을 랜덤한 값으로 초기화 한다. 그리고 w에 대해 cost function을 미분하면 해당 점에서의 기울기를 구 할 수 있다. 해당 점에서의 기울기를 알면 우리는 cost function이 최소값을 가지기 위해 w값을 어느 방향으로 조정해야하는지 알 수 있게된다. 위의 그림에서 만약 w를 초기값 0.75로 설정했다면 해당 점에서의 기울기는 음수가 된다. 이 말을 해당 점에서 오른쪽으로 움직여야한다는 말이 된다. 그렇게 오른쪽으로 움직이고 기울기를 구하고 움직이고 기울기를 구하고를 반복한다. 그러다보면 결국 최적의 w값을 찾을 수 있게 된다. 

 

learning rate


 Gradient descent를 사용 할 때 w값을 계속해서 조정해주는데 얼마 만큼 조정할지를 정해주는 것이 learning rate이다. learning rate을 크게하면 한번에 크게 크게 wr가 움직일 것이고, learning rate를 작게하면 조금씩 움직일 것이다. 

이 떄 적절한 값의 w를 정하는 것이 중요하다. learning rate을 너무 크게하면  

위의 그림 처럼 최솟값을 찾지 못하고 반복을 할 수록 cost가 커진다. 반대로 learning rate가 너무 작으면 너무 느려서 최적의 cost를 찾지 못하게 된다.

'Machine Learning' 카테고리의 다른 글

Softmax  (0) 2023.02.01
Logistic Regression  (1) 2023.01.18
Machine Learning  (0) 2023.01.15