BASHA TECH
CH6. 머신러닝 복습 : 차원 축소 본문
- 차원 축소 개요
차원 축소는 매우 많은 피처로 구성된 다차원 데이터 세트의 차원을 축소해 새로운 차원의 데이터 세트를 생성하는 것이다. 일반적으로 차원이 증가할 수록 데이터 포인트 간의 거리가 기하급수적으로 멀이게 되고, 희소한 구조를 가지게 된다. 수백 개 이상의 피처로 구성된 데이터 세트의 경우 상대적으로 적은 차원에서 학습된 모델보다 예측 신뢰도가 떨어진다. 도한 피처가 많을 경우 개별 피처간에 상관관계가 높을 가능성이 크다. 선형 회귀와 같은 선형 모델에서는 입력 변수 간의 상관관계가 높을 경우 이로 인한 다중 공선성 문제로 모델의 예측 성능이 저하된다.
이렇게 매우 많은 다차원의 피처를 차원 축소해 피처 수를 줄이면 더 직관적으로 데이터를 해석할 수 있다. 또한 차원 축소를 할 경우 학습 데이터의 크기가 줄어들어서 학습에 필요한 처리 능력도 줄일 수 있다.
일반적으로 차원 축소는 피처 선택과, 피처 추출로 나눌 수 있다.
피처 선택은 특정 피처에 종속성이 강한 불필요한 피처는 아예 압축하고 데이터의 특징을 잘 설명하는 주요 피처만 선택하는 것이다. 피처 추출은 기존 피처를 저차원의 중요 피처로 압축해서 추출하는 것이다. 이렇게 새롭게 추출된 중요 특성은 기존의 피처가 압축된 것이므로 기존의 피처와는 완전히 다른 값이 된다.
피처 추출은 기존 피처를 단순 압축이 아닌 피처 함축적으로 더 잘 설명할 수 있는 또 다른 공간으로 매핑해 추출하는 것이다. 함축적 특성 추출은 기존 피처가 전혀 인지하기 어려웠던 잠재적인 요소를 추출하는 것을 의미한다.
이처럼 차원 축소는 단순히 데이터 압축을 의미하는 것 아닌 차원 축소를 통해 좀 더 데이터를 잘 설명할 수 있는 잠재적인 요소(Latent Factor)를 추출하는데 의미가 있다. 매우 많은 차원을 가지고 있는 이미지나 텍스트에서 차원 축소를 통해 잠재적인 의미를 찾아주는데 PCA, SVD, NMF등의 알고리즘이 잘 활용되고 있다.
- PCA (Principal Component Analysis)
PCA 개요
여러 변수 간에 존재하는 상관관계를 이용해 이를 대표하는 주성분을 추출해 차원을 축솧마는 기법이다. PCA로 차원을 축소할 때는 기존 데이터의 정보 유실이 최소화 된다. 이를 위해 PCA는 가장 높은 분산을 가지는 데이터의 축을 찾아 이 축으로 차원을 축소하는데 이것이 PCA의 주성분이 된다. (분산이 데이터의 특성을 가장 나타내는 것으로 간주)
PCA는 가장 큰 데이터 변동성을 기반으로 첫 번째 축을 생성하고, 두 번째ㅔ 축은 이 벡터 축에 직각이 되는 직교 벡터를 축으로 한다. 세 번째 축은 다시 두 번째 축과 직각이 되는 벡터를 설정하는 방식으로 축을 생성한다. 이렇게 생성된 벡터 축에 원본 데이터를 투영하면 벡처 축의 개수 만큼의 차원으로 원본 데이터가 차원 축소된다.
PCA는 원본 데이터의 피처 개수에 비해 매우 작은 주성분으로 원본 데이터의 총 변동성을 대부분 설명할 수 있는 분석법이다.
선형대수 관점에서 해석해보면 입력 데이터의 공분산 행렬을 고유값 분해하고 이렇게 구한 고유벡터에 입력 데이터를 선형 변환하는 것이다. 이 고유벡터가 PCA의 주성분 벡터로서 입력 데이터의 분산이 큰 뱡향을 나타낸다. 고윳값은 바로 이 고유 벡터의 크기를 나타내며, 동시에 입력 데이터의 분산을 나타낸다.
일반적으로 선형 변환은 특정 벡터 에 행렬 A를 곱해 새로운 벡터로 변환하는 것을 의미한다. 이를 특정 벡터를 하나의 공간에서 다른 공간으로 투영하는 개념으로도 볼 수 있으며, 이 경우 이 행렬을 바로 공간으로 가정하는 것이다. 보통 분산은 한 개의 특정한 변수의 데이터 변동을 의미하나, 공분산은 두 변수 간의 변동을 읜미한다.
고유벡터는 행렬 A를 곱하더라도 방향이 변하지 않고 그 크기만 변하는 벡터를 지칭한다. 이 고유벡터는 여러개가 존재하며, 정방 행렬은 최대 그 차원 수 만큼의 고유 벡터를 가질 수 있다. 고유벡터는 행렬이 작용하는 힘의 방향과 관계가 있어서 행렬을 분해하는 데 사용된다.
공분산 행렬은 정방행렬이며 대칭행렬이다. 정방행렬은 열과 행이 같은 행렬을 지칭하는데 정방행렬 중 대각 원소를 중심으로 원소 값이 대칭되는 행렬을 대칭행렬이라 부른다., 공분산 행렬은 개별 분산값을 대각 원소로 하는 대칭행렬이다. 대칭 행렬은 항상 고유벡터를 직교행렬로 고유값을 정방 행렬로 대각화할 수 있다는 장점이 있다.
입력 데이터의 공분산 행렬이 고유벡터와 고유값으로 분해될 수 있으며, 이렇게 분해된 고유 벡터를 이용해 입력 데이터를 선형 변환하는 방식이 PCA이다.
- LDA (Linear Discriminant Analysis) 선형 판별 분석법
지도학습의 분류에서 사용하기 쉽도록 개별 클래스를(답) 분별할 수 있는 기준을 최대한 유지하면서 입력 데이터 세트를 저차원 공간에 투영해 차원을 축소한다.
PCA 는 입력 데이터의 변동성의 가장 큰 축(분산)을 찾았지만 LDA는 입력 데이터의 결정 값 클래스를 최대한 분리할 수 있는 축을 찾는다.
LDA는 특정 공간상에서 클래스 분리를 최대화하는 축을 찾기 위해 클래스 간 분산과 크래스 내부 분산의 비율을 최대화 하는 방식으로 차원을 촉소한다. 즉 클래스 간 분산은 최대한 크게 가져가고, 클래스 내부의 분산은 ㅗ치대한 적게 가져가는 방식이다.
- SVD (Singular Value Decomposition )
PCA는 정방행렬(행과, 열의 크기가 같은 행렬) 만을 고유 벡터로 분해 할 수 있 수 ㅣㅇㅆ지만, 일밙ㄱ으로 SMD는 m x n 크기의 행렬 A를 다음과 같이 분해 하는 것을 의미한다.
SVD는 특이값 분해로 불리며, 행렬 U와 V에 속한 벡터는 특이벡터이다. 모든 특이벡터는 저솔 직교하는 성질를 가진다.
- NMF (Non-Negative Matrix Factorization)
Truncated SVD와 같이 낮은 랭크를 통한 행렬 근사(Low-Rank Appoximation) 방식의 변형이다. 원본 행렬 내의 모든 원소 값이 모두 양수라는 것이 보장되면 다음과 같이 좀 더 간단하게 2개의 기반 양수 행렬로 분해될 수 있는 기법을 지칭한다.
- 차원 축소 개요
차원 축소는 매우 많은 피처로 구성된 다차원 데이터 세트의 차원을 축소해 새로운 차원의 데이터 세트를 생성하는 것이다. 일반적으로 차원이 증가할 수록 데이터 포인트 간의 거리가 기하급수적으로 멀이게 되고, 희소한 구조를 가지게 된다. 수백 개 이상의 피처로 구성된 데이터 세트의 경우 상대적으로 적은 차원에서 학습된 모델보다 예측 신뢰도가 떨어진다. 도한 피처가 많을 경우 개별 피처간에 상관관계가 높을 가능성이 크다. 선형 회귀와 같은 선형 모델에서는 입력 변수 간의 상관관계가 높을 경우 이로 인한 다중 공선성 문제로 모델의 예측 성능이 저하된다.
이렇게 매우 많은 다차원의 피처를 차원 축소해 피처 수를 줄이면 더 직관적으로 데이터를 해석할 수 있다. 또한 차원 축소를 할 경우 학습 데이터의 크기가 줄어들어서 학습에 필요한 처리 능력도 줄일 수 있다.
일반적으로 차원 축소는 피처 선택과, 피처 추출로 나눌 수 있다.
피처 선택은 특정 피처에 종속성이 강한 불필요한 피처는 아예 압축하고 데이터의 특징을 잘 설명하는 주요 피처만 선택하는 것이다. 피처 추출은 기존 피처를 저차원의 중요 피처로 압축해서 추출하는 것이다. 이렇게 새롭게 추출된 중요 특성은 기존의 피처가 압축된 것이므로 기존의 피처와는 완전히 다른 값이 된다.
피처 추출은 기존 피처를 단순 압축이 아닌 피처 함축적으로 더 잘 설명할 수 있는 또 다른 공간으로 매핑해 추출하는 것이다. 함축적 특성 추출은 기존 피처가 전혀 인지하기 어려웠던 잠재적인 요소를 추출하는 것을 의미한다.
이처럼 차원 축소는 단순히 데이터 압축을 의미하는 것 아닌 차원 축소를 통해 좀 더 데이터를 잘 설명할 수 있는 잠재적인 요소(Latent Factor)를 추출하는데 의미가 있다. 매우 많은 차원을 가지고 있는 이미지나 텍스트에서 차원 축소를 통해 잠재적인 의미를 찾아주는데 PCA, SVD, NMF등의 알고리즘이 잘 활용되고 있다.
- PCA (Principal Component Analysis)
PCA 개요
여러 변수 간에 존재하는 상관관계를 이용해 이를 대표하는 주성분을 추출해 차원을 축솧마는 기법이다. PCA로 차원을 축소할 때는 기존 데이터의 정보 유실이 최소화 된다. 이를 위해 PCA는 가장 높은 분산을 가지는 데이터의 축을 찾아 이 축으로 차원을 축소하는데 이것이 PCA의 주성분이 된다. (분산이 데이터의 특성을 가장 나타내는 것으로 간주)
PCA는 가장 큰 데이터 변동성을 기반으로 첫 번째 축을 생성하고, 두 번째ㅔ 축은 이 벡터 축에 직각이 되는 직교 벡터를 축으로 한다. 세 번째 축은 다시 두 번째 축과 직각이 되는 벡터를 설정하는 방식으로 축을 생성한다. 이렇게 생성된 벡터 축에 원본 데이터를 투영하면 벡처 축의 개수 만큼의 차원으로 원본 데이터가 차원 축소된다.
PCA는 원본 데이터의 피처 개수에 비해 매우 작은 주성분으로 원본 데이터의 총 변동성을 대부분 설명할 수 있는 분석법이다.
선형대수 관점에서 해석해보면 입력 데이터의 공분산 행렬을 고유값 분해하고 이렇게 구한 고유벡터에 입력 데이터를 선형 변환하는 것이다. 이 고유벡터가 PCA의 주성분 벡터로서 입력 데이터의 분산이 큰 뱡향을 나타낸다. 고윳값은 바로 이 고유 벡터의 크기를 나타내며, 동시에 입력 데이터의 분산을 나타낸다.
일반적으로 선형 변환은 특정 벡터 에 행렬 A를 곱해 새로운 벡터로 변환하는 것을 의미한다. 이를 특정 벡터를 하나의 공간에서 다른 공간으로 투영하는 개념으로도 볼 수 있으며, 이 경우 이 행렬을 바로 공간으로 가정하는 것이다. 보통 분산은 한 개의 특정한 변수의 데이터 변동을 의미하나, 공분산은 두 변수 간의 변동을 읜미한다.
고유벡터는 행렬 A를 곱하더라도 방향이 변하지 않고 그 크기만 변하는 벡터를 지칭한다. 이 고유벡터는 여러개가 존재하며, 정방 행렬은 최대 그 차원 수 만큼의 고유 벡터를 가질 수 있다. 고유벡터는 행렬이 작용하는 힘의 방향과 관계가 있어서 행렬을 분해하는 데 사용된다.
공분산 행렬은 정방행렬이며 대칭행렬이다. 정방행렬은 열과 행이 같은 행렬을 지칭하는데 정방행렬 중 대각 원소를 중심으로 원소 값이 대칭되는 행렬을 대칭행렬이라 부른다., 공분산 행렬은 개별 분산값을 대각 원소로 하는 대칭행렬이다. 대칭 행렬은 항상 고유벡터를 직교행렬로 고유값을 정방 행렬로 대각화할 수 있다는 장점이 있다.
입력 데이터의 공분산 행렬이 고유벡터와 고유값으로 분해될 수 있으며, 이렇게 분해된 고유 벡터를 이용해 입력 데이터를 선형 변환하는 방식이 PCA이다.
- LDA (Linear Discriminant Analysis) 선형 판별 분석법
지도학습의 분류에서 사용하기 쉽도록 개별 클래스를(답) 분별할 수 있는 기준을 최대한 유지하면서 입력 데이터 세트를 저차원 공간에 투영해 차원을 축소한다.
PCA 는 입력 데이터의 변동성의 가장 큰 축(분산)을 찾았지만 LDA는 입력 데이터의 결정 값 클래스를 최대한 분리할 수 있는 축을 찾는다.
LDA는 특정 공간상에서 클래스 분리를 최대화하는 축을 찾기 위해 클래스 간 분산과 크래스 내부 분산의 비율을 최대화 하는 방식으로 차원을 촉소한다. 즉 클래스 간 분산은 최대한 크게 가져가고, 클래스 내부의 분산은 ㅗ치대한 적게 가져가는 방식이다.
- SVD (Singular Value Decomposition )
PCA는 정방행렬(행과, 열의 크기가 같은 행렬) 만을 고유 벡터로 분해 할 수 있 수 ㅣㅇㅆ지만, 일밙ㄱ으로 SMD는 m x n 크기의 행렬 A를 다음과 같이 분해 하는 것을 의미한다.
SVD는 특이값 분해로 불리며, 행렬 U와 V에 속한 벡터는 특이벡터이다. 모든 특이벡터는 저솔 직교하는 성질를 가진다.
- NMF (Non-Negative Matrix Factorization)
Truncated SVD와 같이 낮은 랭크를 통한 행렬 근사(Low-Rank Appoximation) 방식의 변형이다. 원본 행렬 내의 모든 원소 값이 모두 양수라는 것이 보장되면 다음과 같이 좀 더 간단하게 2개의 기반 양수 행렬로 분해될 수 있는 기법을 지칭한다.
'Computer > Machine Learning' 카테고리의 다른 글
CH5. 머신러닝 복습 : 회귀 (0) | 2023.05.18 |
---|---|
CH 4. 머신러닝 복습 : 분류 (0) | 2023.05.11 |
Ch 3. 머신러닝 복습 : 평가 (0) | 2023.04.24 |
Ch 2. 머신러닝 복습 : 사이킷런으로 시작하는 머신러닝 (0) | 2023.04.20 |
Ch09. 추천 시스템 (0) | 2022.11.15 |