해당 포스팅은 책 '선형대수와 통계학으로 배우는 머신러닝 with 파이썬'으로 공부하여 정리한 포스팅입니다.
1. 선형대수와 머신러닝의 관계
선형대수를 이해하고 학습하면 머신러닝 알고리즘의 원리와 작동 방식을 이해하고 데이터를 효과적으로 다루고 모델을 설계 및 개선하는데에 도움이 됨
1) 데이터 표현 : 행렬과 벡터
- 데이터는 행렬이나 벡터 형대로 표현됨
- ex. 이미지 데이터 : 픽셀 값을 요소로 하는 행렬로 표현됨
2) 선형변환과 행렬 연산
- 선형대수는 행렬과 벡터의 연산에 대한 이론과 기법을 제공
- 연산은 머신러닝 모델의 학습과 예측에 사용됨 (ex. 행렬 곱셈)
- 입력 데이터에 선형 변환을 적용하는데, 선형 변환은 행렬 곱셈으로 나타내며 이를 통해 데이터는 새로운 형태로 변환되거나 다른 공간으로 매핑됨
3) 최적화와 선형 시스템
- 머신러닝은 최적화 문제를 푸는 것이 중요한 과정 중 하나
- 선형대수는 최적화와 선형 시스템에 대한 이론과 기법 제공
( ex. 선형회귀 : 최적화 문제로 표현, 선형 방정식을 풀기 위해 선형대수 기법들이 활용됨)
4) 차원 축소
- 고차원 데이터를 낮은 차원으로 변환하기 위해 사용되는 주성분 분석 (PCA)은 선형대수의 고유값 분해를 활용함
2. 스칼라, 벡터, 행렬, 텐서
1) 스칼라 (Scalar)
- 하나의 값을 가지는 데이터 타입
- 크기만을 가지며, 방향의 개념이 없음
2) 벡터 (Vector)
- 크기와 방향을 모두 가지는 양을 나타내는 개념
- 행 벡터, 열 벡터로 나타냄
3) 행렬 (Matrix)
- 숫자의 집합을 2차원 배열로 구성
- 여러 개의 벡터를 하나로 묶어서 표현 가능
- 행과 열로 구성
4) 텐서 (Tensor)
- 다차원 배열로 구성된 데이터를 나타내는 개념
- 높은 차원의 배열도 모두 텐서로 표현 가능
3. 내적
두 벡터 사이의 유사도를 측정하는 방법 (연산)
→ 두 벡터가 얼마나 비슷한 방향을 향하고 있는지, 크기는 얼마나 되는지를 나타내는 값을 계산해줌
- 내적 계산식 : 두 벡터의 각 성분을 곱한 후 모두 더하여 계산함
→ A·B = a1*b1 + a2*b2 + ... + an*bn
■ 내적을 통한 벡터 관계 파악
1) 내적 > 0 : 두 벡터 사이의 각도 < 90 (두 벡터는 같은 방향을 향하고 있음)
2) 내적 < 0 : 두 벡터 사이의 각도 > 90 (두 벡터는 반대 방향을 향하고 있음)
3) 내적 = 0 : 두 벡터 사이의 각도 = 90
→ 내적의 절대값이 클수록 두 벡터가 더 유사함
■ 내적의 활용성
1) 유사도 측정 : 문서의 유사도 측정, 이미지 검색에서 유사한 이미지 찾기 등 여러 분야에서 활용
2) 선형 모델의 핵심 연산 : 선형 회귀, 로지스틱 회귀 같은 선형 모델의 예측 단계에서 활용
→ 입력 데이터와 모델의 가중치를 곱해 예측값을 계산
3) 특징 선택과 중요도 평가 : 모델 예측에 얼마나 기여했는지 평가할 때 활용
→ 특징과 가중치 벡터의 내적 크기는 그 특성의 중요도를 나타냄
■ 정사영 (projection)
- 한 벡터를 다른 벡터에 수직으로 투영시켜 얻는 새로운 벡터
→ 벡터 A를 벡터 B에 대해 투영을 하면, B의 방향에 따라 A가 얼마나 영향을 받는지 계산하는 것
- 내적은 정사영의 길이와 관련이 있음
→ ex. 벡터 A와 B의 내적은 A를 B에 정사영시킨 벡터의 길이와 B의 길이를 곱한 값과 같음
- 벡터 A와 B가 평행하면, 정사영은 A자체의 크기를 가지며 B 방향으로 정렬됨
- 벡터 A와 B가 수직이면, 내적이 0이 되므로 A의 정사영도 0이 됨
- 정사영 활용 예시
- 선형 회귀 : 입력 데이터를 특정 벡터로 변환하고, 벡터를 목표 변수에 대한 회귀 직선에 정사영시켜 예측값을 구함
- 자연어 처리 : 단어 벡터를 문서 벡터 공간에 정사영하여 문서의 의미 파악
4. 선형 변환
- 벡터 공간의 구조를 유지하며 벡터를 변환하는 함수
- 어떤 공간 위의 점들을 다른 공간으로 이동시키거나 변형시키는 과정
확대/축소 | 회전 | 반사 | 전단 |
![]() |
![]() |
![]() |
![]() |
■ 선형 변환 활용 예시
- 차원 축소, 특징 추출
- 선형 회귀 : 입력 데이터에 가중치 행렬을 곱하여 예측값을 계산하는 과정에서 선형 변환이 활용
- SVM (Support Vector Machine)에서 활용됨
5. 고유값, 고유벡터
- 고유벡터 : 어떤 행렬에 곱해졌을 때, 길이만 변하고 방향은 변하지 않는 벡터 (이 때, 변하는 비율을 고유값이라고 함)
- PCA (주성분 분석) : 데이터의 분산이 가장 큰 방향(주성분)을 찾기 위해 고유값 분해를 사용
6. 특이값 분해
임의의 행렬을 세 개의 행렬의 곱으로 분해하는 방법
■ 특징
- 해석하기 용이함
- 특이값이 작은 성분들을 버림으로써 데이터의 차원을 줄일 수 있음
- 노이즈가 많은 데이터에서 주요 정보를 추출하는데 활용
■ 활용 예시
- 추천 시스템 : 사용자와 아이템 간의 상호 작용을 나타내는 행렬을 특이값 분해하여 사용자의 선호도를 파악하고 아이템을 추천
- 이미지 압축 : 이미지 데이터를 특이값 분해하여 중요한 정보만 남기면서 압축
- 자연어 처리 : 문서-단어 행렬을 특이값 분해하여 문서의 잠재적인 의미 파악, 문서 분류, 주제 모델링 등 활용
- PCA (주성분 분석) : 데이터의 주요 특징 파악