행렬 분해와 차원 축소 - 주성분 분석
주제
행렬 분해와 차원 축소-주성분 분석
주제 선정 이유
행렬 분해는 다양한 데이터 처리 및 분석에서 중요하다. 이에 그 대표적인 방법인 주성분 분석에 대해서 알아보고자 했기 때문이다. 또한 이와 관련이 있는 인공지능에서 행렬 분해와 차원 축소를 어떻게 활용하여 예측하는지 알아보고자 했기 때문에 이에 대해서 알아보고자 한다.
내용
행렬이란 무엇일까? 행렬이란 직사각형 모양의 숫자의 배열이다. 행렬은 많은 양의 데이터를 한 번에 표현할 수 있는 좋은 수단이다. 표도 데이터를 한 번에 표현하기 좋은데 표와 행렬은 차이가 있다. 표는 많은 데이터를 효과적으로 시각화하기 위해 사용된다. 행렬은 이와 다르게 많은 양의 데이터에 대한 계산을 편리하게 하려고 사용된다. 그렇다면 행렬을 사용하는 이유는 무엇일까? 매개변수가 많아진다면 대수적으로 표현하기 어렵기 때문에 행렬로 바꿔서 표현해야 한다. 행렬 분해와 차원 축소는 선형대수의 행렬 분해 기법을 활용하여 데이터의 차원을 축소하고 의미 있는 특징을 추출하는 방법을 연구한다. 행렬 분해는 데이터를 처리하고 분석하는데 중요하다. 이를 통해 데이터의 복잡성을 줄이고, 정보를 손실하지 않으면서 데이터를 더 간결하고 해석하기 쉬운 형태로 변환할 수 있다. 가장 대표적으로는 특이값분해와 주성분 분석이 있다. 주성분 분석에 관해 이야기하고자 한다. 주성분 분석은 데이터의 주성분을 추출하고 데이터를 새로운 저차원 공간으로 변환하는 방법이다. 주성분은 데이터의 분산을 가장 많이 설명하는 방향 벡터로 데이터를 가장 잘 표현하는 축이다. 즉, 전체 데이터의 분산을 가장 잘 설명하는 성분이다. 이를 통해 데이터를 주성분 축에 사상시킴으로써 데이터 차원을 줄이거나 데이터를 시각화하거나 데이터에 내재한 패턴을 파악한다.
2차원 데이터를 1차원으로 축소할 때 정사영한다. 정사영 할 때 x, y축으로 할 수 있지 않을까? 하는 의문을 가질 수 있다. x, y축으로 하게 된다면 점들이 겹치게 되어 기존 정보가 없어지게 된다. 이에 분산이 최대로 보존될 수 있는 축을 찾게 된다. 데이터를 정사영해서 차원을 낮춘다면 어떤 벡터에 데이터들을 정사영 시켜야 원래 데이터 구조를 제일 잘 유지할 수 있는지를 고려하여 축을 찾는 것이다. 찾은 축을 주성분이라고 하는 것이다. 주성분을 찾음으로써 정보를 가장 적게 손실할 수 있다. 첫 번째 주성분을 찾은 다음, 이 벡터에 수직이고 분산이 가장 큰 다음 방향을 찾는다. 이 벡터가 두 번째 주성분이 된다. 이를 찾기 위해 공분산 행렬에서 고유벡터와 고윳값을 찾아야 한다. 공분산 행렬은 데이터의 구조를 설명해 주며 특성 쌍들이 얼마만큼 함께 변하는가를 행렬에 나타낸다. 기하학적 의미를 살펴보면
이다. 데이터의 공분산 행렬을 이용하여 주성분을 추출한다. 특성을 파악하고 차원을 축소하는 주성분에 활용한다. 데이터가 3차원일 때는 3개의 고유벡터가 나타난다. 원본 특성의 개수만큼 주성분을 찾을 수 있다. 고윳값이 큰 순서대로 고유 벡터를 정렬하면 중요한 순서대로 주성분을 구성한다. 고윳값이 큰 2개의 고유벡터가 이루는 평면에 데이터를 정사영할 수 있다. 2차원으로 감소한 데이터를 얻을 수 있다. 비지도 학습에서 특성이 많으면 선형 모델의 성능이 높아지고 훈련 데이터에 쉽게 과대 적합이 됩니다. PCA는 데이터를 가장 잘 설명하는 일부 특성을 선택해 데이터 크기를 줄이고 지도 학습 모델의 학습 모델의 성능을 향상할 수 있다. 또한 낮춘 차원에서 다시 차원을 높여 원본 차원으로 손실을 최소화하면서 복원할 수 있다. PCA는 데이터세트의 크기를 줄일 수 있고 비교적 시각화하기 쉽다. 차원 축소된 데이터를 지도학습 알고리즘, 다른 비지도 학습 알고리즘에 재사용하여 성능을 높이거나 훈련 속도를 빠르게 만들 수 있다.
정리
주어진 데이터의 상관관계를 분석하여 데이터의 주성분을 찾아내고 이를 기반으로 데이터를 새로운 축으로 변환한다. 주성분으로 변환된 데이터의 변동성을 최대한 보존한다. 주성분은 원래 데이터의 주성분을 찾아내고 이를 기반으로 데이터를 새로운 축으로 변환한다. 주성분으로 변환된 데이터는 원래 데이터보다 차원이 낮아지고 정보의 손실을 최소화하면서 데이터의 변동성을 최대한 보존한다. 주성분은 원래 데이터의 분산을 가장 잘 설명하는 방향 벡터이다.
참고자료
- 혼자 공부하는 머신러닝+딥러닝
- https://angeloyeo.github.io/2019/07/27/PCA.html
- https://box-world.tistory.com/8

