안녕하세요?

선형회귀를 공부하고 있는 이유

우리는 지금 선형회귀를 공부하고 있습니다. 그런데 왜 선형회귀를 공부해야 할까요?

공부하면서 중간중간에 "내가 왜 이걸 공부하고 있지?"라는 질문을 스스로에게 던지는 것이 중요합니다. 이는 공부에 대한 동기 부여와 내용을 깊이 이해하는 데 도움이 됩니다. 제가 자주 사용하는 공부 방법이기도 합니다.

 

Syllabus가 있는 강의나 책으로 공부할 경우, 반드시 처음에 목차와 세부 목차를 보면서 전체 내용을 예측하고 세부 내용을 공부하는 것이 좋습니다. 세부 내용을 공부할 때는 앞뒤 연결 관계와 이 내용이 전체에서 어떤 위치에 있는지를 이해하는 것이 중요합니다. 그리고 한 단원이 끝날 때마다 그 내용을 머릿속으로 정리해 보세요.

 

시험 전날 벼락치기를 할 때도 이런 식으로 공부하는 것이 유익하며, 시간이 허락한다면 각 단원의 내용을 노트로 정리하는 것도 좋은 방법입니다. 중요한 것은 노트를 잘 필기하는 것이 아니라, 머릿속에서 내용이 잘 정리되도록 하는 것입니다. 단원이 끝난 후에 노트를 보지 않고 내용을 재구성해보는 것이 중요합니다. 가능하다면, 여러분도 직접 강의를 만들어보세요. 자신이 이해한 내용을 다른 사람에게 설명할 수 있을 때, 진정으로 그 내용을 이해한 것입니다.

 

기술사 시험이나 대학원 입시와 같이 방대한 양을 준비할 때는 반복 학습이 중요합니다. 반복 학습을 통해 점차 노트의 내용을 줄여가면서, 제목만 봐도 내용이 머릿속에서 자연스럽게 떠오를 수 있도록 훈련하는 것이 이상적입니다.

선형회귀와 머신러닝

선형회귀는 머신러닝에서 예측에 사용하는 가장 기본적인 알고리즘 중 하나입니다. 우리는 면적, 방의 수 등의 특성이 집값에 선형적으로 영향을 미치는 예를 통해 이 알고리즘을 학습했습니다. 이 과정에서 우리의 데이터에 대해 빨간 선을 그렸고(즉, 모델을 수립했고), 이 모델을 통해 새로운 데이터를 예측할 수 있었습니다.

 

이 빨간선을 그리기 위해 사용한 것은 평균 제곱 오차(MSE, Mean Squared Error)입니다.

 

MSE는 다음과 같이 정의됩니다:

$$ L(w) = \frac {1}{N}\sum_{i=1}^N (w^Tx_{i} - y_{i})^{2} $$

 

이때 우리가 고민해 볼 수 있는 질문은, "과연 MSE를 최소화하는 방식으로 빨간 선을 그리는 것이 합리적인가?" 하는 것입니다. 만약 다른 방법으로도 MSE를 통해 우리의 빨간선을 찾는 것이 옳다는 것을 확인할 수 있다면, 우리는 더욱 확신을 가지고 이 방법을 사용할 수 있을 것입니다.

 

따라서 이번 시간에는 확률적 가정을 통해 MSE로부터 빨간선을 찾는 것이 맞다는 것을 증명하고자 합니다. 이를 위해 먼저 확률 이론을 공부하겠습니다.

 

제가 설명하는 부분은 제가 이해한 내용이므로, 완벽하지 않을 수 있습니다. 하지만 제 설명이 여러분의 이해에 도움이 되기를 바랍니다. 또한, 여러분이 더 잘 알고 있는 내용이 있다면 저에게도 가르쳐주세요.

강의보고오기: https://www.youtube.com/watch?v=pzf4nqN_yCI

강의 동영상

확률 이론의 철학적 배경: 존재론 vs 인식론

 

갑자기 존재론과 인식론이 나옵니다. 저도 처음에 MA Book을 보는데 당황스러웠습니다.

출처: MA book 4th edition, page 255

 

위 표에서 보면 확률이론을 두 가지 관점에서 보고 있습니다. 존재론적 커밋먼트와 인식론적 커밋먼트. 그래서 우리는 먼저 존재론과 인식론에 대해서 이해할 필요가 있습니다.

 

존재론(Ontology): 존재론은 우리가 무언가가 실제로 존재하는지에 대한 질문을 던집니다. 확률 이론에서 존재론적 관점은 특정 사건이 객관적으로 존재하고, 그 사건의 사실 여부에 관심을 둡니다.

 

인식론(Epistemology): 인식론은 우리가 무엇을 어떻게 아는지에 대한 질문을 다룹니다. 확률 이론에서 인식론적 관점은 어떤 사실에 대한 믿음의 정도를 다루며, 이 믿음을 0과 1 사이의 숫자(0, 1 포함)로 표현합니다.

 

사실 철학적 내용은 저도 정말 잘 모르는 내용이니 아래 유튜브를 참고해 주시기 바랍니다.

 

Ontology/Epistemology: https://study.com/academy/lesson/ontology-vs-epistemology-differences-examples.html
(유료입니다. 여유되시는 분들은 결제해서 보세요)

 

영문 유튜브:

https://www.youtube.com/watch?v=F2mHeudPGNI

 

https://www.youtube.com/watch?v=hkcqGU7l_zU

 

 

한글 유튜브:
https://www.youtube.com/watch?v=YmO_6Fskt_w

 

https://www.youtube.com/watch?v=qxHvg6y9sZM

 

 

확률의 이해

확률 이론은 존재론적 관점에서는 사실에 초점을 맞추고, 인식론적 관점에서는 그 사실에 대한 믿음의 정도를 0과 1 사이의 숫자로 표현합니다. 예를 들어, 어떤 사건이 일어날 가능성을 70%로 표현한다면, 이는 그 사건에 대한 믿음의 정도를 나타내는 것입니다..

 

퍼지 논리는 존재론적 관점에서 사실을 받아들일 때 0과 1 사이의 값으로 표현합니다. 그러나 퍼지 논리는 더 유연하게 사실을 다룹니다. 더 자세한 내용은 아래의 유튜브 링크를 참고해 주시기 바랍니다.

 

Fuzzy의 이해: https://www.youtube.com/watch?v=CBTEVFphv-E

 

Fuzzy vs Probability: https://www.youtube.com/watch?v=RXThpkgba7w&list=PLO-6jspot8AL5wrkCNUXAJ8_0qHli6Zat&index=1

 

 

제 강의에서는 명제논리, 술어논리 등에서도 간략하게 설명합니다. 그리고 확률과 Fuzzy의 차이점을 설명하기 위해, 켄타우로스의 예를 들었습니다.

 

각 Language에서 차이점을 보면, 아래와 같이 표현할 수 있습니다.

 

확률: 켄타우로스는 사람이야. 사람일 확률은 60%야
Fuzzy: 켄타우로스는 60% 사람이고, 40%는 말이야. 켄타우로스는 사람에 가까워.

빈도주의(Frequentist) vs 베이지안(Bayesian)

이제 확률에 대한 두 가지 관점을 보겠습니다. 빈도주의와 베이지안입니다.

 

빈도주의(Frequentist):

빈도주의자는 확률을 객관적인 사실로 봅니다. 예를 들어, 동전의 앞면이 나올 확률을 계산할 때, 수많은 동전 던지기 실험을 통해 이 확률을 계산합니다. 즉, 실험 결과에 기반한 객관적 확률을 중요시합니다. 한 번 동전을 던진 결과에 대해서는 확률을 말할 수 없다고 보는 것이 빈도주의자의 입장입니다.
(빈도주의자는 존재론적 관점과 많이 닮아있습니다. 빈도주의자는 사실 자체에 관심이 있습니다. 빈도주의는 동전의 확률을 말할 때 수없이 많은 횟수를 던졌을 때 나온 결과에 따라 확률을 말합니다. 주관적 믿음이 아니라 사실 자체로 받아들인다고 할 수 있습니다. 강의에서 예시처럼 동전을 던진 다음에 확률을 말하라고 하면, 이미 던진 결과에 대한 확률은 없다고 합니다.)

 

베이지안(Bayesian):

베이지안 관점에서는 확률을 주관적인 믿음으로 봅니다. 동전을 던지기 전에도, 던진 후에도 확률을 말할 수 있습니다. 또한, 새로운 증거를 얻을 때마다 기존의 믿음(사전 확률)을 업데이트하여 확률을 재계산합니다.
(베이지안은 인식론적 관점처럼 확률을 믿음으로 봅니다. 따라서 동전을 던지기 전과 던진 후에도 확률을 말할 수 있습니다. 그리고 결과를 본 후에 사전믿음을 업데이트합니다.)

베이즈 정리

 

베이지안관점

베이즈 정리는 베이지안 확률론에서 중요한 역할을 하는 수학적 정리로, 관측된 데이터를 바탕으로 초기 가정이나 믿음을 업데이트하는 방법을 설명합니다. 이 정리는 새로운 증거나 데이터를 반영하여 사전 확률(사전 믿음)을 사후 확률(사후 믿음)로 갱신하는 과정에서 사용됩니다.

 

베이즈 정리 수식의 의미

그림 왼쪽의 식 $P(A|B) = \frac {P(B|A) P(A)}{P(B)}$는 조건부 확률의 기본 성질을 나타내며, 사건 $A$가 주어졌을 때 사건 $B$가 발생할 확률을 계산합니다. 하지만 이것만으로는 베이지안 관점에서의 베이즈 정리를 완전히 설명하지는 않습니다.

 

베이즈 정리와 베이지안 접근

베이즈 정리가 진정으로 의미를 갖기 위해서는 베이지안 관점이 필요합니다. 베이지안 접근법에서는 우리의 사전 믿음 $\theta$를 설정한 후, 데이터를 관찰하고 이를 바탕으로 우리의 믿음을 업데이트합니다.

오른 쪽 아래식으로 설명하면, 어떤 가설 $H$를 세우고 증거 $E$를 관찰한 후, 우리는 베이즈 정리를 통해 이 가설이 맞을 확률을 갱신할 수 있습니다. 위 그림에서 오른쪽의 식이죠.

 

여기서:
$P(H|E)$: 증거 $E$가 주어졌을 때 가설 $H$가 참일 확률 (사후 확률)
$P(E|H)$: 가설 $H$가 참일 때 증거 $E$가 나타날 확률
$P(H)$: 가설 $H$가 참일 사전 확률 (사전 믿음)
$P(E)$: 증거 $E$가 나타날 전체 확률

 

이렇게 베이즈 정리는 기존의 믿음($P(H)$)을 새로운 증거($E$)에 따라 어떻게 업데이트해야 하는지를 수학적으로 설명합니다.

최대우도추정법(MLE, Maximum Likelihood Estimation)

위의 모든 내용은 앞으로 설명할 MLE를 좀 더 확실히 이해하기 위한 내용들입니다. MLE를 왜 하냐고요? MSE가 과연 합리적인지 알아보기 위해 확률적 가정으로도 MSE를 통해 빨간 선을 구하는 것이 맞나 본다고 했습니다. 다음 시간부터 MLE를 공부하도록 하겠습니다.

 

강의보고오기: https://youtu.be/GUKp4LZiovQ?si=FdianS1OlGKp6_dn

 

이번 강의 내용은 Direct Solution입니다.

 

핵심내용

 

복잡한 수학을 알려드릴건데 다 아실 필요는 없습니다. 기억해야 할 거 먼저 말씀드리겠습니다.

 

Direct Solution은 컴퓨팅 비용이 높아서 빨간선을 구하기 위한 알고리즘으로 Gradient Descet를 쓴다는 것입니다.

 

독립변수가 d개여도 선형관계이다. 

 

위 밑줄 친 내용을 알기위해 다소 어려운 수학 얘기를 할 것입니다. 읽고 싶은 분만 읽어주세요 ^^.

 

우리가 선형회귀를 모델을 배우기 전에 익숙했던 $ y = ax + b $ 에서 우리의 관심은 $x, y$ 값 자체였습니다. 하지만 머신러닝에서 $x, y$는 데이터로서 주어지는 값이고 우리는 데이터의 의미를 찾아내기 위하여 선형회귀를 활용하여 $a, b$를 찾는것 입니다.

 

$x$ 독립변수는 여러 개일 수 있습니다. 지난 강의에도 말씀드렸듯이,  집값($y$)에 영향을 미치는 요소는 여러가지가 있을 수 있겠죠? 그 식을 일반화 하면 아래와 같이 나타낼 수 있는 거죠.

 

$$ \hat{y}(x;w) = w_0 + w_1x_1 + ... + w_dx_d = w^Tx, \quad \text{where} \\
x = \begin{bmatrix}
1 \ x_1 \ x_2 \ ... \ x_d
\end{bmatrix}^T, \quad w = \begin{bmatrix}
w_0 \ w_1 \ w_2 \ ... \ w_d
\end{bmatrix}^T$$

 

강의예제: 독립변수 2개 

강의에서 사용한 예제는 다음과 같습니다.

 

이 예제에 대한 회귀식을 나타내면 $ \hat{y}(x;w) = w_0 + w_1x_1 + w_2x_2 = w^Tx $ 입니다. 우리는 $w$를 구해야 합니다. 어떻게 구할까요?

 

네 맞습니다. 지난 강의에서 $w$를 구하기 위해 MSE, SSE를 쓴다고 말씀드렸습니다. 

 

1. SSE: $$ L(w) = \sum_{i=1}^N (w^Tx_i - y_i)^2 $$

2. MSE: $$ L(w) = \frac{1}{N}\sum_{i=1}^N (w^Tx_{i} - y_{i})^{2} $$

 

그런데 예제를 자세히 보시면 데이터 한줄이 $ \hat{y}(x;w) = w_0 + w_1x_1 + w_2x_2 = w^Tx $ 이 식에 대응되는 거라는 것을 알 수 있습니다. 그래서 데이터 전체를 한번에 계산하기 위해서 벡터 곱셈이 아니라 데이터에 대한 행렬식을 사용할 수 있습니다. 행렬식으로 나타내면,

$$ L(w) = \frac{1}{N} \lVert Xw - Y \rVert^2 $$ 이 됩니다.

(행렬, 벡터식에서 대문자이면 행렬, 소문자이면 벡터를 의미합니다.)

 

위 행렬로 표현한 식을 예제와 연결해보겠습니다. 사실 별거 아닙니다. 

$$ \begin{bmatrix}
1 & 10 & 1 \\
1 & 20 & 2 \\
1 & 30 & 3 \\
1 & 40 & 4 \\
1 & 50 & 5
\end{bmatrix}
\begin{bmatrix}
w_0 \\
w_1 \\
w_2
\end{bmatrix} -
\begin{bmatrix}
101 \\
202 \\
209 \\
402 \\
501
\end{bmatrix} $$

 

첫번째가 $X$ 행렬입니다. 첫번째 열은 $w_0$와 곱해지기 위해 1로 통일합니다. bias에 대한 값이죠. 두 번째 열은 집의 면적, 3번째 열은 방의 수에 대한 데이터 입니다. 두 번째는 $w$ 벡터이고 세 번째는 당연히 실제 $y$ 값, 즉 데이터 상에서 실제 집값을 의미합니다.

 

강의에서 이 식을 통해 $w$ 벡터를 구하는 과정을 설명했습니다. 과정에서 $w$벡터에 대한 미분을 합니다. 벡터를 미분하는게 처음이신 분들도 있을겁니다. 이번 강에서는 벡터를 미분하는 방법만 설명합니다. 벡터미분에 대한 자세한 내용은 다음강에서 다룰 예정입니다. 꼭 알아야 하는 내용은 아니지만, 아신다면 앞으로 많은 부분에서 이해가 편하실 겁니다. Gradient도 스칼라 값을 벡터로 미분한 결과거든요. 또한, 딥러닝의 깊은 이해를 위해서는 필수적으로 아셔야 합니다. 

 

Direct Solution

마지막으로, 미분식이 '0'이 될때 최소값이니까 미분식에 0을 대입해서 값을 구하면, 아래와 같은 값이 나옵니다.

$$ w = (X^TX)^{-1}X^TY $$

 

위와 같이 구하는 방법을 Direct Solution이라고 합니다. Direct Solution은 최소 제곱법(OLS)을 사용하여 선형 회귀 모델의 파라미터를 직접 계산하는 알고리즘입니다.

 

컴퓨터로 $w$를 위 계산으로 구할 수 있을까요? 네 당연히 구할 수 있습니다. 하지만, 우리는 python 코딩을 할때 저 계산을 사용하지 않습니다. Tensorflow 등 머신러닝관련 패키지 내에 알고리즘도 당연히 Direct Solution을 사용하지 않습니다.

 

Direct Solution을 쓰지 않는 이유

Direct Solution으로 구할 수 있고, 코딩에서 Direct Solution을 바로 쓰는 것도 꽤 간편하고 괜찮아 보이는데 왜 사용하지 않을까요?

 

컴퓨팅 비용이 매우 높기 때문입니다. 저기 보이는 역행렬 연산이 끝내주게 힘듭니다. 우리 예제는 겨우 데이터 5줄짜리 였지만 실제 데이터는 독립변수가 더 많고 데이터도 5개 보다 훨씬 많을 겁니다. 

 

혹시 3차원 행렬에 대한 역행렬 계산 직접 해보셨나요? 3차원만 해봐도 상당히 힘듭니다. 노가다가 상당하죠. 컴퓨터도 마찬가지입니다. 역행렬 연산은 $O(d^3)$의 복잡도입니다. 그래서 이 Direct Solution을 사용하지 않는 겁니다.

물론 지금 좋은 GPU를 가진 컴퓨터가 있다면 사실 Direct solution을 써도 상관없이 빨리 될겁니다.

 

GPU면 왜 빠르냐고요? 

 

위 그림은 CPU와 GPU의 차이입니다. GPU가 계산할 수 유닛인 ALU가 훨씬 많죠? 행렬연산 잘 생각해보면 아주 단순한 연산의 반복이죠? 첫번째 행렬의 행과 두번째 행렬의 열을 차례로 곱해가면서 연산하는거죠. GPU는 이 연산을 병렬로 수행합니다. 병렬로 수행해서 금방 다 더해버립니다. CPU 및 저와 다르게 Multi Taking 능력이 최상급입니다. 

 

근데 선형회귀를 처음 발견할 시기에 이렇게 병렬연산을 할 수 있는 GPU가 있었을까요? 없었겠죠? 그리고 다른 방법이 있는데 굳이 비싼 GPU를 쓰는 연산을 할 필요도 없죠.

 

다른 방법이 뭐냐고요?

 

앞에서 말씀드린 Gradient Descent입니다. 사실 이 강의에서 기억해야 하는 것 중 가장 중요한 겁니다. Direct Solution은 컴퓨팅 비용이 높아서 빨간선을 구하기 위한 알고리즘으로 Gradient Descet를 쓴다는 것입니다.

 

다음 강에서는 이번 강에서 사용한 벡터미분에 대해서 다루도록 하겠습니다.

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

11강 그래디언트(그라디언트의 뜻, 방향, 크기)  (0) 2024.07.25
10강 벡터미분(Feat. Jacobian & Hessian)  (1) 2024.07.22
8강 선형회귀 - Loss Function  (0) 2024.07.20
7강 벡터  (0) 2024.07.20
6강 선형회귀  (0) 2024.07.18

 

안녕하세요. 우리 빨간선을 어떻게 구하는지에 대해 알아보기로 합시다. 단순한 코드 안에 있는 복잡한 로직에 대한 공부 시작입니다.

 

강의보고오기

https://www.youtube.com/watch?v=vJ-DaRgfsZk

 

 

벡터식 표현

우선 두개의 벡터를 정의하겠습니다. 가중치를 뜻하는 w 벡터와 선형회귀 독립변수인 $ x $ 벡터를 정의하겠습니다.  종속변수 $ y $ 도 있습니다. .

 

$$  w = \begin{bmatrix}
w_{0} \\
w_{1}
\end{bmatrix}, \qquad   x = \begin{bmatrix}
1 \\
x_{1}
\end{bmatrix}$$

 

두 벡터를 사용하여 아래와 같이 나타낼 수 있습니다. 

 

$$ \hat{y} = w^{T} x $$

 

$$ \hat{y} = \begin{bmatrix}
w_{0} & w_{1}
\end{bmatrix}\begin{bmatrix}
1 \\
x_{1}
\end{bmatrix}$$

 

 

집값의 예시를 보겠습니다. 독립변수는 여러개가 될 수 있지만, 집의 면적 하나만 있다고 가정했습니다.  그리고 $y$ 는 집값입니다. 그럼 집의 면적에 대응하는 $ y $ 값(집값)이 있을겁니다. 우리는 이 데이터를 학습하여 예측값 $y$ 즉, $\hat{y}$에 대응하는 빨간선을 그리는게 목표입니다. . 

 

강의에서는 우선 독립변수가 하나인 예제를 설명하고, 독립변수를 늘려가며 설명합니다. 면적, 방의수, 주차공간... 계속해서 독립변수를 늘릴 수 있습니다. 

 

중요한 점은 독립변수가 아무리 늘어나도 선형회기라는 것입니다. 모든 인풋변수(독립변수)가 집값과 선형관계이기 때문입니다. 

 

Shallow Learning에서는 대부분 선형관계만 한다고 말씀드렸습니다. 그렇다고 진짜 선형만 하는 건 아닙니다. 선형같은 비선형도 합니다. 선형회귀 끝나면 바로 Logistic Regression을 할 예정인데, 얘는 비선형입니다.

 

왜 선형같은 비선형이냐고요? 거의 선형 모델인데 결과를 비선형적으로 분류하기 때문입니다. 선형회귀 끝내고 자세히 설명하겠습니다.(엄격히 말하면 비선형인데, 딥러닝은 아닙니다. 딥러닝에서만 비선형 문제를 풀 수 있는 건 아니니까요. 하지만 딥러닝은 훨씬 더 복잡한 비선형도 잘 풉니다.)

선을 구하기 위해 사용하는 방법: MSE, SSE

SSE(Sum Squared Error)  또는 MSE(Mean Squared Error) 를 사용하고 이를 Loss Function, Cost Function으로 부릅니다. Opimization 관점으로 목적함수라고 하고요. 같은 식에 이름이 여러 개여서 참 혼란스럽스니다. 

(Loss Function과 Cost Function은 작은 차이가 있습니다. $ \sum $이 없는게 Loss Function, $ \sum $이 있으면 Cost Function이라는데 이는 책마다 차이가 있는 거 같습니다. 굳이 구분한다면 이와 같이 구분하시고 그냥 아무거나 써도 무방할 듯 합니다.)

 

1. SSE: $$ L(w) = \sum_{i=1}^N (w^Tx_i - y_i)^2 $$

 

2. MSE: $$ L(w) = \frac{1}{N}\sum_{i=1}^N (w^Tx_{i} - y_{i})^{2} $$

 

수학식으로 보면 복잡해 보이지만, 사실 별 거 아닙니다.

 

SSE는 (예측 집값 - 실제 집값)의 제곱을 모두 더한 값입니다. MSE는 이 값을 데이터 수로 나눠준 것이죠. 이 값을 최소화하는 선이 우리가 찾고자 하는 빨간 선입니다.
 
모든 데이터와 그에 대한 예측값의 차이가 가장 작은 선을 구한다는 것입니다. 직관적으로 합리적인 방법이라고 느껴지시나요? 나중에 확률적 가정으로 이 방법이 합리적이라는 것도 보여드릴 예정입니다.
 
강의에서는 벡터로 바꾸는 과정과 데이터가 어떻게 식으로 표현되는지 더 자세하게 설명했으니 참고하세요. 그리고 omega라고 불리는 것도 그냥 $ w $(더블유)라고 생각하시면 됩니다. 감사합니다.
 
 
 
 
 

안녕하세요? 6강 선형회귀입니다.

강의보고오기: https://youtu.be/bPKHIGEh6gU?si=t9fQRQSQwFZd2ZX7

 

6강은 간단한 선형회귀 모델의 예시와 우리가 그린 빨간선이 데이터를 잘 설명하는가에 대한 지표 2개 MSE(Mean Squared Error와 R2 스코어를 다루고 넘어갑니다.

 

우리가 중고등학교때 가장 익숙한 식 중 하나가 $y = ax + b$ 였을 겁니다. a를 기울기, b를 절편이라고 배웠죠. 보통 $a, b$가 주어진 상태에서는 $x, y$의 관계를 그래프로 그려보며 의미를 이해했습니다.

 

선형회귀 예시 - 머신러닝에의 관심사는 a, b

머신러닝에서는 $x, y$가 데이터로서 주어지고 우리는 $a, b$를 구해야 합니다. 그리고 이 때 $a, b$를 다르게 표기 합니다. $a$는 weight(가중치), b를 bias(편항)로 표현하며, 식은 아래와 같습니다.

$$ y = wx + b $$

$x, y$ 값은 데이터로 주어질 것입니다. 가장 많이 사용하는 집값의 예를 보겠습니다. 

면적과 집값과의 관계

 

그림에서 첫 번째 열이 면적 $x$의 값입니다. 두 번째열은 집의 가격 $y$입니다. 두개 열의 데이터를 학습하여 집값을 빨간선으로 예측합니다.

 

저 빨간선을 그리기 위해서 우리가 알아야 할 값은 뭘까요? 1차 방정식에서 기울기( $ w $ )와 절편( $ b $ )를 알면 우리가 원하는 빨간선을 그릴 수 있습니다. 데이터를 바탕으로 데이터를 가장 잘 설명하는 빨간선을 찾는 것이라고 표현할 수 있습니다. 

 

학습하는 코드를 보겠습니다.

 

선형회귀 코드

 

코드 진짜 간단하죠? 생성형 AI를 활용해서 만들었습니다. 만약 코딩을 공부하고 싶으시면 이론을 공부하신 후에 생성형 AI에 만들어 달라고 하면 코드를 만들어 줄겁니다. 그리고 한줄 한줄 설명도 해줍니다. 쉽죠?

 

하지만 우리는 저 코드안에 들어있는 알고리즘에 대한 공부를 할 예정입니다. 결코 쉽지 않습니다. 

 

평가 지표 - MSE, R2 Score

우리가 그린 빨간선이 얼마나 데이터를 잘 설명해주는가를 평가하기 위한 지표 2개를 설정했습니다.  MSE와 R2 스코어입니다. 이 중에서 MSE는 앞으로 앞으로 자주 등장하니 눈여겨 보시기 바랍니다.

 

강의에서 두개의 지표에 대한 자세한 설명을 했습니다. 잘못된 내용은 피드백 바랍니다. 



의견

저는 원래 실용주의적인 성향이 강해서 이론보다는 코드 구현을 중요하게 여겼지만, 최근에는 생각이 바뀌었습니다. 이론을 이해하고 생성형 AI와 소통하며 코딩하고 결과를 분석하는 과정이 더 중요하다고 생각합니다. 대학원에서 대부분의 과제를 생성형 AI의 도움을 받아 수행해보니, 이론을 알아야 생성형 AI에게 좋은 명령과 질문을 할 수 있음을 알게 되었습니다. 또한, 코드와 실행 결과를 해석하고, 생성형 AI가 잘못된 정보를 제공할 때 이를 수정할 수 있습니다.

 

언젠가는 이론을 몰라도 모든 것을 쉽게 구현할 수 있는 날이 올지도 모릅니다. 과거에 수학 계산원이 중요한 역할을 했지만 컴퓨터의 등장으로 사라진 것처럼, 언젠가는 컴퓨터 관련 개발자도 사라지고 연구자만 남을 수도 있습니다. 마치 수학 분야에서 연구자는 여전히 남아 있는 것처럼요.

 

하지만, 아직까지는 AI 개발자에게 이론 지식은 중요합니다. 새로운 기술이 나왔을때 관련 문헌을 읽고 적용하기 위해서는 이해가 필요합니다. 현재 급속도로 새로운 기술이 나오고 있는 상태죠. 그리고 생성형 AI 특성 상 잘 알려지지 않은 도메인에 대해서는 깊은 이해가 없어 오류도 높을 수 있습니다. 아직 사람의 수정과 선택이 필요한 상태이니 열심히 공부하시기 바랍니다.~

 

 

감사합니다.

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

8강 선형회귀 - Loss Function  (0) 2024.07.20
7강 벡터  (0) 2024.07.20
5강 머신러닝의 개요 subNote - for 기술사  (0) 2024.07.17
4강 머신러닝 뜻 / 머신러닝 개요  (0) 2024.07.17
3강 인공신경망의 역사  (1) 2024.07.16

+ Recent posts