선형 회귀란?

Min Jae Cho·2024년 9월 9일
0

AI정보

목록 보기
12/12

선형 회귀는 머신러닝 알고리즘 중 하나로, 주어진 입력 데이터에 대해 숫자 값(예: 집값, 주식 가격 등)을 예측하는 데 사용된다. 이 알고리즘은 선형 함수를 사용하여 입력과 출력 사이의 관계를 모델링한다.

쉽게 말해, 선형 회귀는 "입력값에 따라 결과값이 선형적으로 변한다"는 가정을 기반으로 한다. 예를 들어, 집 크기가 클수록 가격도 비례해서 올라간다고 가정할 수 있겠죠? 그 관계를 수학적으로 표현해 예측을 하게 되는 것이다.

선형 회귀의 주요 개념
모델: 선형 회귀에서 우리는 아래와 같은 수식을 사용함:
y=w1x1+w2x2++wDxD+by = w_1x_1 + w_2x_2 + \cdots + w_Dx_D + b 여기서 yy는 우리가 예측하고 싶은 결과값(예: 주식 가격),𝑥1,𝑥2,,𝑥𝐷𝑥_1,𝑥_2,⋯ ,𝑥_𝐷는 입력값(예: 연령, 키 등),
𝑤1,𝑤2,,𝑤𝐷𝑤_1,𝑤_2,⋯ ,𝑤_𝐷는 각 입력에 곱해지는 가중치, 그리고 bb는 바이어스(또는 상수)라고 한다. 이때 이 가중치와 바이어스를 통해 데이터를 기반으로 예측하는 것이 목표다.

손실 함수: 예측값과 실제값이 얼마나 차이나는지 측정하는 함수다. 일반적으로 제곱 오차를 사용한다:

𝐿(𝑦,𝑡)=12(𝑦𝑡)2𝐿(𝑦,𝑡)=\frac{1}{2}(𝑦−𝑡)^2

여기서 𝑦𝑦는 예측값, 𝑡𝑡는 실제값이다. 이 손실 함수는 예측이 실제와 얼마나 차이나는지 보여준다. 이 값이 작을수록 모델의 예측이 더 정확하다는 의미이다.

벡터화: 선형 회귀 모델은 주로 많은 데이터를 처리하기 때문에, 효율적으로 계산할 수 있는 방법이 필요하다. 벡터화는 수학적 계산을 벡터나 행렬 형태로 변환하여 빠르게 처리하는 방법을 말한다. 예를 들어, 파이썬에서 for문으로 처리하는 대신 numpy를 이용해 벡터화된 연산을 사용하는 게 더 빠르다.

최소화 문제 해결: 우리는 손실 함수가 가장 작은 가중치와 바이어스를 찾아야 한다. 이를 위해 두 가지 접근 방식이 있다:

직접 해법: 수식을 풀어 가중치와 바이어스를 구하는 방식이다.
최적화 알고리즘: 반복적으로 계산을 통해 점진적으로 최적값을 찾는 방식이다. 경사 하강법(Gradient Descent)이 대표적.

정규화와 과적합
모델이 너무 복잡하면 훈련 데이터에는 잘 맞지만, 새로운 데이터에는 성능이 떨어질 수 있다. 이를 과적합(Overfitting)이라고 한다. 이를 방지하기 위해 우리는 정규화(Regularization)를 사용한다. 그중 대표적인 방법은 L2 정규화로, 너무 큰 가중치를 벌하는 방식이다.

결론
선형 회귀는 간단하지만 매우 강력한 머신러닝 알고리즘이다. 주어진 데이터로부터 선형적인 관계를 학습하고, 이를 통해 새로운 데이터를 예측하는 데 적합하다.

profile
A.I. Engineer

0개의 댓글