STUDY/선형대수와 통계학으로 배우는 머신러닝

CHAP3. 머신러닝을 위한 선형대수

라밍쏭 2025. 2. 1. 16:47
728x90

해당 포스팅은 책 '선형대수와 통계학으로 배우는 머신러닝 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 (주성분 분석) : 데이터의 주요 특징 파악

 

고유값 분해 vs 특이값 분해

 

728x90