(1) 선형대수학 기초 & 총 정리본 첫번째 목차-선형대수학 기초개념
안녕하세요~ 쯔미입니다. 오늘은 머신러닝을 위한 선형대수학에 대해서 저도 정리할 겸, 혹시나 요약 및 개념 내용이 필요하신 분들을 위해 브런치에 공유해봅니다.
머신러닝은 컴퓨터 시스템에 데이터를 분석하고 학습하는 기술이기 때문에, 데이터를 분석하고 학습하기 위해서는 수학적인 개념과 도구들을 이해해야 합니다. 선형대수학은 그 중에서도 머신러닝에서 핵심적인 개념과 기법을 제공하는 수학 분야 중 하나이므로 반드시 배워야 하는 과목입니다. (통계, 미적분학은 별도입니다.)
선형대수학은 벡터, 행렬, 선형변환 등을 다루는 수학의 한 분야를 일컫는 말입니다. 이러한 선형대수학의 개념과 기법들은 머신러닝에서 다양한 측면에서 중추적인 역할을 하는데요, 아래를 확인해주세요.
데이터 표현: 머신러닝에서 데이터는 일반적으로 행렬 또는 벡터의 형태로 표현됩니다! 예를 들어, 이미지 데이터는 픽셀 값들의 행렬로 표현되고, 문서 데이터는 단어들의 벡터로 표현됩니다. 이러한 데이터 표현은 선형대수학의 개념과 크게 연관되어 있습니다.
선형변환과 행렬 연산: 선형대수학은 행렬과 벡터의 연산에 대한 이론과 기법을 제공합니다. 이러한 연산은 머신러닝에서 모델의 학습과 예측에 사용됩니다. 예를 들어, 행렬의 곱셈 같은 경우입니다.
차원 축소와 특이값 분해: 선형대수학은 데이터의 차원 축소와 관련된 기법들을 제공합니다. 차원 축소는 머신러닝에서 고차원 데이터의 특징을 추출하고 중요한 정보를 유지하는 데 사용됩니다. 특이값 분해(Singular Value Decomposition, SVD)는 차원 축소와 행렬 분해에 널리 사용되는 기법 중 하나입니다.
최적화 문제와 선형 시스템: 머신러닝은 최적화 문제를 푸는 것이 중요한 과정 중 하나입니다. 선형대수학은 최적화 문제와 선형 시스템에 대한 이론과 기법을 제공합니다. 예를 들어, 선형회귀(Linear Regression)는 최적화 문제로 표현되고, 선형방정식을 풀기 위해 선형대수학적인 기법들이 활용됩니다.
이러한 이유로 선형대수학은 머신러닝에서 필수적인 수학적인 도구로 여겨집니다. 선형대수학을 이해하고 학습하면 머신러닝 알고리즘의 원리와 작동 방식을 이해하고, 데이터를 효과적으로 다루고 모델을 설계하고 개선하는 데 도움이 됩니다. (물론 통계와 미적분학도 잊지마세요! :))
l 벡터 (Vectors)
l 벡터 덧셈 (Vector addition)
l 벡터 스칼라 곱 (Scalar multiplication of vectors)
l 벡터 내적 (Dot product)
l 벡터 외적 (Cross product)
l 행렬 (Matrices)
l 행렬 덧셈 (Matrix addition)
l 행렬 스칼라 곱 (Scalar multiplication of matrices)
l 행렬 곱셈 (Matrix multiplication)
l 역행렬 (Inverse matrix)
l 전치 행렬 (Transpose matrix)
l 대각 행렬 (Diagonal matrix)
l 행렬식 (Determinant)
l 역행렬 (Inverse matrix)
l 특이값 분해 (SVD)
벡터와 행렬은 가장 기초적인 부분이기도 하고, 내용도 꽤나 많기 때문에 두 파트로 나눠서 진행하고자 합니다. 이번 포스팅에서는 벡터와 행렬 파트를 들어가기 위해 이를 더욱 쉽게 이해할 수 있는 아주 기초적인 사전 지식을 설명해드리고자 합니다. 물론 이과출신이신 분들은 너무 쉬운 개념일 수 있지만, 아에 수학적 기초가 없으신 분들에게는 도움이 될 것 같아요 ^^ 기본적인 백터와 행렬에 대한 기초 개념을 꽉 잡는 목차이므로 반드시! 기초를 탄탄히 쌓고 충분히 이해해야 다음 개념들과 잘 어우러질 수 있습니다.
벡터의 노름(norm)은 벡터의 크기를 나타내는 값으로, 일반적으로 L1 노름, L2 노름 등이 있습니다.
L1 노름은 벡터의 원소의 절댓값을 모두 더한 값입니다. 예를 들어, 2차원 벡터 [1, 2]의 L1 노름은 |1| + |2| = 3이 됩니다.
L2 노름은 벡터의 원소들의 제곱을 모두 더한 후, 그 값의 제곱근을 취한 것입니다. 예를 들어, 2차원 벡터 [1, 2]의 L2 노름은 √(1^2 + 2^2) = √5가 됩니다.
노름은 벡터의 길이를 나타내는 중요한 개념입니다. 머신러닝에서는 주로 L2 노름을 사용하여 벡터의 길이를 측정합니다.
예를 들어, L2 노름을 사용하여 벡터를 정규화(normalize)할 수 있습니다. 벡터를 정규화하면 벡터의 방향은 그대로 유지되면서 크기가 1인 단위 벡터로 변환됩니다. 이를 통해 머신러닝 모델에서 벡터의 크기에 민감하지 않게 만들 수 있습니다. 또한, L2 노름을 사용하여 벡터 간 거리를 측정하는 유클리드 거리(Euclidean distance)를 계산할 수 있습니다.
일차독립 또는 선형독립이란, 벡터들이 선형적으로 독립적인 상태를 말합니다. 즉, 하나의 벡터를 다른 벡터의 선형조합으로 나타낼 수 없는 상태를 의미합니다. 예를 들어, 벡터 a, b, c가 있다면 a, b, c가 일차독립인 경우는 다음과 같습니다.
a + 2b + 3c = 0 일 때, a = b = c = 0 입니다.
위 식을 만족시키기 위해서는 a, b, c 중 하나 이상의 벡터를 다른 벡터들의 선형조합으로 나타낼 수 없기 때문입니다.
즉, 저 식에서 =0이 되는 값은 스칼라인 c1,c2,c3가 0이 되어야만 가능하기(0이 아닌 다른 해는 존재하지 않음) 때문에 이는 일차 독립입니다.
일차종속 또는 선형종속이란, 벡터들이 선형적으로 종속적인 상태를 말합니다. 즉, 하나의 벡터를 다른 벡터들의 선형조합으로 나타낼 수 있는 상태를 의미합니다. 예를 들어, 벡터 a, b, c가 있다면 a, b, c가 일차종속인 경우는 다음과 같습니다.
a + 2b + 3c = 0 일 때, a = -2b - 3c 입니다.
위 식을 만족시키는 a, b, c의 조합이 존재하기 때문에 a, b, c는 일차종속입니다.
두 벡터는 실제 좌표상에서 보면 평행관계입니다. 이때 스칼라를 -2, 1을 주면 0이 가능합니다. 또 스칼라를 각각 0,0을 주어도 0이 나오기도 하지요, 즉 0이 아닌 다른해 (-2,1)를 가질 수도 있기 때문에 일차 종속입니다.
직교란, 두 벡터가 이루는 각도가 90도인 상태를 말합니다. 즉, 두 벡터의 내적이 0인 상태를 의미합니다. 예를 들어, 벡터 a, b가 있다면 a와 b가 직교인 경우는 다음과 같습니다.
a = [1, 0, 0], b = [0, 1, 0] 일 때, a ∙ b = 0 입니다.
위 식을 만족시키는 a와 b는 각각 x축과 y축과 평행하며, 두 벡터가 이루는 각도가 90도입니다.
자, 이제 벡터와 행렬에 대해 본격적으로 들어 갈 수 있겠습니다.
이해가 안되셔도 괜찮습니다. 일단은 이해가 안되는 부분은 별표를 해두거나 따로 메모를 해두고 다음 챕터를 일단은 시작하는 것이 좋습니다. 다음 주제는 벡터와 벡터 연산, 행렬과 행렬 연산입니다.