일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- docker
- C#
- BOJ
- TypeScript
- security
- C++
- nginx
- 보안
- condition
- vuetify
- scss
- type
- loop
- vue.js
- property
- 앙상블
- webpack
- npm
- dotenv
- leetcode
- Python
- VUE
- Clone
- machine learning
- generic
- JavaScript
- bash
- var
- AI
- git
Archives
- Today
- Total
ice rabbit programming
[AI] 차원 축소(Dimensionality Reduction) 본문
차원 축소(Dimensionality Reduction)는 변수가 매우 많을 때 데이터를 압축하는 컨셉이다. 즉, 데이터를 압축하고 학습 속도를 개선하기 위함이다.
차원이 높을 때 발생하는 현상 중 하나로는 차원의 저주가 있다. 차원이 높을수록 학습에 요구되는 데이터의 개수가 증가되는데, 만일 고차원일 때 적은 개수의 데이터로 표현하게 되면 과적합(Overfitting)이 발생할 수 있다.
이러한 차원의 저주 발생을 방지하고, 학습 속도 및 성능 향상을 위해 차원 축소가 사용된다. 아래 두 가지 방법이 있다.
- 주성분 분석(Principle Component Analysis)
PCA는 고차원 데이터를 가장 잘 설명할 수 있는 주성분을 찾는 방식이다. 즉, 차원을 축소하면서도 원본 데이터의 특징을 가지고 있도록 하는 것이 핵심이다.
원본 데이터의 특징은 곧 원본 데이터와의 차이가 최소인 것이고, 이는 다시 말해 원본 데이터와의 차이를 최소화하는 축을 찾는 일이 된다.
예를 들어 간단하게 2차원에서 1차원으로 축소하는 경우를 본다면, 여러 축들 중 각 점들과의 오차가 가장 작은 축을 중심으로 데이터를 모은다.
PCA는 고차원 데이터를 함축적으로 표현하므로 직관적 해석이 어려울 수 있으나, 대용량의 고차원 데이터 압축 시 유용하다는 장점이 있다. - t-SNE(t-Stochastic Neighborhood Embedding)
t-SNE는 고차원 데이터 군집을 구별하여 시각화하는 컨셉으로, 시각화를 중점으로 두고 그에 많이 이용된다.
각 데이터마다 자기 이외의 데이터와의 유사도 확률을 계산하고, 저차원으로 축소한 후에 초기 확률에 따라 거리를 주어 이동한다.
예를 들어 2차원에서 1차원으로 축소하는 경우에는 한 직선으로 모두 끌어온 후에 데이터 간 거리를 이용해 X축 간 거리를 부여하는 방식이다.
데이터 간 거리 유지를 통해 차원 축소 이후에도 구별이 가능하므로 상술했듯이 시각화에서 많이 이용된다. 다만 계산할 때마다 값이 지속적으로 변경되므로 학습 데이터로는 활용이 어렵다.
'Development > Machine Learning' 카테고리의 다른 글
[AI] 의사 결정 트리(2) - 앙상블 (0) | 2021.03.16 |
---|---|
[AI] 의사 결정 트리(1) - 회귀, 분류, 앙상블 (0) | 2021.03.12 |
[AI] 군집(Clustering) - K-means, GMM, 평가 지표 (0) | 2021.02.03 |
[AI] 분류 - KNN, 평가 지표 (0) | 2021.01.18 |
[AI] 분류 - SVM, 나이브 베이즈 분류 (0) | 2021.01.13 |