'머신러닝을 위한 수학: 선형대수' 시리즈는 Mathematics for Machine Learning과 Gilbert Strang 교수님의 Linear algebra를 참고했습니다.
인공지능을 공부하다 보면 '선형'이라는 단어를 자주 접하게 됩니다. 이번 글에서는 선형대수, 그리고 머신러닝에서 '선형'이 가지는 의미가 무엇인지 알아보겠습니다.
Linearity
이름에서부터 알 수 있는 가장 직관적인 의미입니다. 직선을 나타내는 방정식과 같이, 기하학적 모양이나 형태가 직선인 것을 표현한 함수를 선형 함수라고 부릅니다.
선형성을 가질 수 있는 조건을 수식으로 살펴보면 다음과 같습니다. 가산성($f(x+y) = f(x) + f(y)$)과 동치성($f(kx) = kf(x)$)입니다. 가산성을 통해 알 수 있는 성질은, 입력 값을 나눠서 넣어줘도 된다는 것입니다. 어떤 복잡한 입력 $x+y$의 결과를 모를 때 x와 y로 나눠서 더 쉽게 결과를 얻을 수 있다는 것이죠. 동치성은 입력과 결과의 상관관계(1차 비례관계)를 설명해 줍니다.
위의 두 가지 성질로 인해, 선형성의 주요 원리인 '중첩의 원리'를 설명할 수 있게 됩니다. 만약 어떤 함수가 선형 함수라면, 해당 함수를 다른 여러 개의 선형 함수로 표현 가능하며, 결과와 입력 값 간의 상관관계를 유추할 수 있다는 것입니다.
선형성이 중요한 이유는, 우리가 주로 다루는 공간(벡터 공간)이 선형성을 띠기 때문입니다. 벡터 공간은 가산성과 동치성을 만족하므로, 선형 공간이라고 할 수 있습니다.
선형 공간은 직선의 방정식과 같은, 선형 함수로 다룰 수 있는 공간을 의미합니다. 위의 예시는 빨간 점과 파란 점을 분류하는 문제인데요. 선형 공간은 직선으로 분류가 되는 반면, 비선형 함수는 선형으로 완벽히 분리하지 못하는 것을 볼 수 있습니다.
Linear combination & Span
어떤 벡터 공간 V의 벡터들이 다음과 같은 형태이면, 이를 벡터들의 '선형 조합(Linear combination)'이라고 부릅니다.
$$a_1v_1 + a_2v_2 + ... + a_kv_k $$
이때, a는 combination의 가중치라고 불립니다.
임의의 벡터 $u_1, ..., u_k$가 임의의 벡터 공간 U를 span 한다는 것은, U가 $$a_1u_1 + a_2u_2 + ... + a_ku_k $$로 표현된다는 걸 의미합니다. 벡터 공간 U는 벡터 $u_1, ..., u_k$의 span set이라고 불리며, 해당 공간 안에 있는 모든 벡터들은 기본 벡터들인 $u_1, ..., u_k$로 모두 표현 가능합니다.
Linear indepence
$a_1v_1 + a_2v_2 + ... + a_kv_k = 0$을 만족하기 위한 조건이, 모든 가중치가 0인 경우밖에 없다면, combination을 이루는 벡터들이 서로 linearly independent 하다고 말합니다. 이렇게 보면 약간 이해가 안 갈 수도 있으니, 벡터의 관점에서 설명하면 다음과 같습니다. 만약, 해당 공간 내에 있는 벡터를 그 벡터를 제외한 나머지 벡터들로 표현할 수 없다면 벡터들은 서로 linearly independent 합니다.
일련의 벡터들이 임의의 공간을 span 하고, 그 벡터들이 서로 linearly independent 하다면 그 벡터들을 basis라고 부릅니다. 그리고, basis의 개수를 그 공간의 dimension이라고 부릅니다.
Linear maps
Linear map은 선형 벡터 공간 V를 다른 선형 벡터 공간 W로 사상(mapping)해주는 함수입니다. Mapping은 집합이 가지는 수학적 체계를 보존하며 대응하는 관계를 의미하는데요. 수학적으로 엄밀하진 않지만, 집합에 적용할 수 있는 함수 정도로 이해하면 더 쉬울 것 같습니다. 선형적이므로 아래의 조건을 만족합니다.
선형대수에서는 벡터 공간을 주롤 다루기에 isomorphism이라는 개념이 매우 간단하고 강력한 도구로 사용됩니다. 간단히 말하면, 대수적 관점에서 공간이 완전히 똑같다는 것인데요. 겉보기에는 두 벡터 공간의 원소들이 달라 보여도, 완전히 같은 연산 구조를 가진 것을 예시로 들 수 있습니다. isomorphism이 중요한 이유는, 어떤 벡터 공간을 분석하기 어려울 때, 그 벡터 공간과 isomorphic 한 벡터 공간을 활용해도 결국 같은 결과를 얻을 수 있기 때문입니다.
선형대수의 대표적인 Linear mapper로는 행렬(Matrix)이 있습니다. V와 W가 각각 벡터 공간이라고 가정했을 때, T : V -> W는 다음과 같이 표현할 수 있습니다.
임의의 행렬 A의 구성 원소들을 combination weights로 본다면, 모든 행렬을 linear mapper로 간주할 수 있습니다.
행렬의 행과 열을 바꾸는 작업을 Transpose라고 부르는데, Transpose의 성질은 다음과 같습니다.
Nullspace, range
위에서 살펴본 Linear mapper를 활용하면 다양한 subspace들을 정의할 수 있습니다.
이외에도, 대표적인 subspace들로는 column, row space가 있는데요. 행렬 A의 column space는 A의 column 벡터들의 span이며, row space는 A의 row 벡터들의 span입니다. 행렬 A의 column space의 dimension, 즉 basis의 개수는 rank라고도 불리는데, 이는 rowspace의 dimension과도 같습니다.
'머신러닝 수학 > 선형대수' 카테고리의 다른 글
Mathematics for Machine Learning: Metric & Normed spaces (0) | 2023.03.07 |
---|---|
Mathematics for Machine Learning: Vector spaces (1) | 2023.03.06 |