ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Linear Algebra] 2. Systems of Linear Equations
    Mathematics for Machine Learning(1)/1. Linear Algebra 2026. 4. 3. 13:22

    머신러닝에서 다루는 '데이터'는 대부분 숫자의 묶음인 벡터(Vector)로 표현된다.

    그리고 이 벡터들이 서로 어떤 관계를 맺고 있는지, 혹은 우리가 원하는 결과를 얻기 위해 데이터들을 어떻게 조합해야 하는지를 설명하는 "언어"를 "Systems of Linear Equations"라고 할 수 있다.

    간단히 말해, 여러 개의 선형 방정식(직선 혹은 평면의 방정식)이 동시에 만족되어야 하는 상황을 말한다.

    예를 들어, 두 종류의 빵($N_1, N_2$)을 만드는데, 밀가루와 설탕(자원 $R_1, R_2$)이 한정되어 있다고 가정해보자.

    • 빵 $_1$을 만드는 데 밀가루 2컵, 설탕 1컵이 필요하다.
    • 빵 $N_2$을 만드는데 밀가루 1컵, 설탕 1컵이 필요하다.
    • 현재 가진 재료는 밀가루 10컵, 설탕 6컵이다.

    이때 "재료를 남김없이 다 써서 몇 개의 빵을 만들 수 있을까?"라는 질문이 바로 연립 방정식의 문제가 될 것이다.
    $$
    2x_1 + x_2 = 10
    $$
    $$
    x_1 + x_2 = 6
    $$

    여기서 우리가 구하려는 $x_1, x_2$가 정답(해, Solution)이다.

    이 예제에서, 레시피 즉, 수식적으로 표현한 '연립 방정식' 자체가 Systems of Linear Equations(연립 선형 방정식)인 것이다.(연립에서 선형만 붙었다.) 하지만 여기서 주의할 점은 연립 '1차1 방정식이라는 점이다. 2차 이상의 식이 포함되면 그것은 더 이상 '선형(Linear)'라고 부르지 않는다.

    그렇다면 더 자세히 들어가 보기 전에 "선형(Linear)"라는 것이 무엇일까?


    Linearity (선형성)

    수학적으로 어떤 체계가 '선형적'이라고 할 때, 그것은 다음의 두 가지 성질(연산)을 보존한다는 의미이다. (이전 포스팅에서 다룬, 선형대수학의 기본 2가지 규칙을 생각하면 된다.)

    • Additivity, 벡터의 덧셈"입력을 더해서 넣으나, 각각 넣어서 나온 결과를 더하나 그 값이 같다"라는 의미이다. 기하학적으로는 두 화살표를 이어 붙여 평행사변형을 그렸을 때 나타나는 대각선 방향으로 나아가는 것을 생각하면 된다.
    • $f(x+y) = f(x) + f(y)$
    • Homogeneity, 스칼라 곱"입력을 c배 늘리면, 결과도 정확히 c배 늘어난다."는 비례 관계를 의미한다. 기하학적으로는 화살표의 방향은 그대로 둔 채 "길이만 조절(Scaling)하는 작업이다.
    • $f(cx) = c\cdot f(x)$

    이 두가지 규칙을 합치면 선형 결합(Linear Combination)이 탄생한다.
    $$v = \lambda_1 x_1 + \lambda_2 x_2 + \dots + \lambda_k x_k$$

    머신 러닝에서 우리가 다루는 거의 모든 모델의 기본은 이 선형 결합이다. 신경망을 예시로 들면, 각 뉴런이 하는 일의 대부분은 가중치를 곱하고 더하는 '선형 결합'이다(Activation Function 제외...).

    정말 간단하게 말해서는, 그냥 "직선"이라 생각하면 될 것 같다.


    다시 돌아와서 아까 빵만들기 예제를 좀 더 수학적인 표현으로 나타내보다.
    레시피가 2개가 아니라, 수십, 수백 개가 된다면 이 수식을 다 쓰기는 매우 버거울 것이다. 그래서 이를 간편하게 표현하기 위해 행렬(Matrix)를 사용한다.

    예를 들어 아래와 같은 일반식이 존재한다고 해보자.

    $$\begin{matrix} a_{11}x_1 + \cdots + a_{1n}x_n = b_1 \\ \vdots \\ a_{m1}x_1 + \cdots + a_{mn}x_n = b_m \end{matrix}$$

    이것을 행렬 곱셈의 규칙을 이용해 표현하면 다음과 같이 $Ax = b$ 꼴로 요약이 된다.

    $$\begin{bmatrix} a_{11} & \cdots & a_{1n} \\ \vdots & \ddots & \vdots \\ a_{m1} & \cdots & a_{mn} \end{bmatrix} \begin{bmatrix} x_1 \\ \vdots \\ x_n \end{bmatrix} = \begin{bmatrix} b_1 \\ \vdots \\ b_m \end{bmatrix}$$

    여기서 $A$는 "계수 행렬" 즉, 시스템의 구조(레시피)를 나타낸다. $x$는 미지수 벡터로 우리가 찾고자 하는 정답일 것이다. $b$는 결과 벡터로 우리가 도달해야하는 목표값으로 생각하면 된다.

    기하학적으로 해석해 보면, 다음과 같다.

    2차원 평면에서를 생각해 보면, 각 방정식 들은 평면 위의 직선이 될 것이다. 예를 들어 직선이 2개라면, 두 직선이 한 점에서 만나면, 해가 딱 하나 존재할 것이고, 두 직선이 나란히 평행하다면, 만나는 점이 없으므로 해가 없을 것이다. 두 직선이 완전히 겹친다면, 직선 위의 모든 점이 해가 되므로 해가 무수히 많을 것이다(Free Variable이 존재한다고 한다.).

    3차원 이상이라면, 평면과 평면의 만남이 될 것이다. 변수가 3개라면 각 방정식은 평면(Plane)이 된다. 머신러닝에서는 수천 개의 변수를 다루는데, 이때는 전혀 상상할 수 없는 고차원 공간에서의 초평면(Hyperplane)들이 어디서 만나는지를 찾는 과정이 될 것이다.


    Summary

    즉, Linear Systems라는 것은 "여러 개의 선형 방정식이 모여, 모든 식을 동시에 참으로 만드는 미지수($x_1, x_2, ...$)의 값들을 찾는 것이다.

    이러한 Systems of Linear Equations에는 해는 딱 3가지 뿐이다.

    • Unique : 모든 직선/평면이 한 점에서 만나는 상태이며, 모든 정보가 독립적이며 완벽하다.
    • No Solution : 직선/평면들이 평행하거나 엇갈리는 상태(꼬인 위치)이다. 식들 사이에 모순이 발생하게 된다.
    • Infinite : 직선/평면들이 겹쳐서 선이나 면을 이룬다. 중복된 정보가 존재해 자유 변수(Free Variable)이 존재한다.\

    하지만 실제로 머신러닝 데이터는 대부분 No Solution인 경우가 많다. 데이터에 노이즈가 섞여 있어 모든 조건을 완벽하게 만족하는 $x$를 찾을 수 없기 때문이다.

    그래서 완벽한 해 대신 가장 정답에 가까운 해를 찾게 된다. 이것이 선형 회귀(Linear Regression)최적화(Optimization)의 시작점이라고 볼 수 있다(뒤에서 다루도록 하겠담).

Designed by Tistory.