본문 바로가기
matrix

Matrix - 8주차 스터디

by 민지기il 2024. 5. 24.

영상: https://www.youtube.com/watch?v=EXHR2-hECRM

차원의 저주

: 고차원에서 max_dist/min_dist = 1로 수렴한다 (dist는 차원에 여러 점이 있을 때 2점 사이의 거리)

(키,몸무게)  ->  (키,몸무게,혈압,허리둘레,나이)로 차원이 높아짐 == 빅데이터 

나와 비슷한 사람이 어떤 성향을 갖는가? -> 두 점의 거리가 중요 ; 차원이 커질 수록 거리가 중요하지 않게 됨

해결) 데이터 확보(지수적 증가 필요) or 차원 감소(현실적 방안)

 

PCA

차원을 2차원에서 1차원으로 낮추다고 생각했을 때 2차원 데이터의 특징을 모두 살리면서 1차원의 데이터로 바꿔줄 수 없다.

따라서 최대한 특징을 살리면서 차원을 낮추는 방법이다.

공분산 행렬을 사용하여 고유벡터에 정사영하는 방법이다.

공분산 행렬

[a,b

c,d] 일때 a는 x축 방향으로 퍼진 정도, d는 y축 방향으로 퍼진정도, b와c는 x,y축 방향으로 퍼진 정도이다.

고유벡터: 선형 변환 시 크기와 방향이 변하지 않는 벡터 / 벡터의 변화에 작용하는 주축의 방향을 나타냄

즉, 데이터가 어떤 방향으로 분산되어 있는지를 찾아줌

고유값: 고유벡터 방향으로 얼마만큼의 크리고 벡터 공간이 늘려지는지를 의미

공분산 행렬의 수식적 의미

X^t * X (X와 X transpose 내적) - 각 feature의 변동이 얼마나 닮았는지 (Xn과 Xm의 변동)

cov(X) = X^t * X / n 으로 구한다.

3차원이면?

3차원 데이터의 경우 3개의 eigenvector(고유벡터)가 나온다. 이중 고유값이 큰 2개의 고유벡터가 이루는 평면에 데이터를 정사영한다.

이를 N차원으로 확장하면 N개의 고유벡터가 있다. k개의 고유벡터가 이루는 평면에 데이터를 정사영하여 k차원으로 감소시킨다.

 

SVM

hyperplane(초평면): P차원 공간에서 P-1 차원의 부분공간이다. 식: w^t* x + b=0

초평면을 찾기 위해 svm에서는 training set의 margin을 최대화 한다.(testing error 최소화)

여기서 margin은 w^t + b=0(초평면)과 가장 가까운 관측치(점) 사이의 거리이다.

이때 다른 관측치들의 범위는 w^t*xi + b >= +1 또는  w^t*xi + b<=-1이 된다.

w는 찾고자 하는 초형면의 기울기이다.

 

margin을 최대화 하려고 한다. 따라서 1/2||w||2를 최소화한다. L2 norm(||w||2)은 제곱근이 있으므로 편하게 제곱해서 본다

찾으려는 것: w, b

Lagrangian Primal에서 min(w,b)L(w,b,a) 부분만 먼저보고 우변을 각각 w와 b에 대해 미분한 결과는 아래와 같다

 

margin을 구할 때 사용하는 관측치들은 support vector에 해당하는 것들임

즉 support vector 만을 이용하여 optimal hyperplane (decision boundary)을 구할 수 있다.

이렇게 w 구하기
b 구하기

 

'matrix' 카테고리의 다른 글

음악 장르 분류  (0) 2024.07.29
Matrix-4주차 스터디  (0) 2024.04.12
Matrix-2주차 스터디  (1) 2024.03.29
Matrix-1주차 스터디  (0) 2024.03.21