차원 축소5 행렬 분해와 차원 축소의 기법들 - [1] 본 포스팅은 차원 축소 기법에 대해 조금 더 자세히 정리하는 차원의 글이다. 기존에도 SVD(링크), t-SNE(링크)에 대해 언급한 적은 있지만 intuitive한 정도로만 이해하고 넘어갔었다. 차원 축소는 가장 기본적인 방법인 행렬 분해를 이용하는 방법, 그리고 확률적 차이를 이용하는 방법, Neural Network를 활용하는 방법 등이 있다. 이번에는 행렬을 이용하는 방법과 확률적 차이를 이용하는 방법에 대해서 간단하게 정리하고자 한다. 1. 선행 개념 1) Eigen-decomposition PCA와 SVD를 이해하기 전에 선행 지식이 되는 개념이다. 고유 분해는 정방 행렬 A가 있을 때, 다음과 같은 성질을 만족하는 영벡터가 아닌 벡터 v와 실수 𝜆를 찾아내는 것이다. v는 eigen vect.. 2020. 6. 3. MNIST로 알아보는 비지도 학습 - [클러스터링과 차원 축소의 적용] 최근 클러스터링을 사용할 작업이 여기저기 많았다. 그래서 생각난김에 맨땅에 헤딩했던 관련 내용을 정리하고자 한다. 클러스터링 문제를 풀 때 마주치는 보통의 애로사항은 다음과 같다. 첫 번째, real-world 에서의 데이터 대부분은 극단적으로 skewed 하다는 것이다. 이는 모델이 군집을 잘 구분해내는 피처를 사용할 수 없다는 것을 의미한다. 이처럼 skewed한 분포의 데이터에서 군집을 발라내봤자, 기형적인 군집이 형성될 것이 뻔하기 때문이다. 만약 유클리드 거리로 데이터 포인트간의 거리를 계산하기라도 한다면, 사실상 군집 분석의 의미가 없어진다. 두 번째, 모델의 분류가 잘 되었는지를 평가할 방법이 불분명하다. 군집 분석을 하는 상황은 대부분 비지도 학습을 해야 하는 상황이다. 이 경우, 모델의 .. 2019. 8. 6. 커널 주성분 분석(KPCA)로 차원 축소하기 비선형 매핑을 위한 커널 주성분 분석의 사용회귀분석과 대부분의 분류 알고리즘에서는 데이터를 선형분리 가능하다는 가정이 필요했다. 심지어 인공신경망의 기초격인 퍼셉트론에서조차 선형분리 가능을 전제로 알고리즘이 동작했다. 이러한 문제점들을 PCA, LDA같은 차원 축소 기법으로 해결했으나 데이터의 모양이 정말로, 완전히, 앱솔루틀리 하게 비선형인 경우는 문제가 달라진다. PCA, LDA 같은 알고리즘은 차원축소를 위한 선형 변환 기법을 이용하기 때문에, 선형으로 분리 불가능한 데이터에 대해서는 적당하지 않다. 이런 문제를 극복하기 위해 커널 PCA를 사용할 수 있다. SVM에서의 커널 기법을 떠올려보자. 원래의 d차원 데이터를 k차원으로 (더 큰 차원으로) 매핑하는 하나의 함수를 생각할 수 있다. 이 때, .. 2017. 8. 10. 선형판별분석(LDA)로 차원 축소하기 선형 판별 분석(LDA)을 활용한 지도적 데이터 압축선형 판별 분석(Linear Discriminant Analysis, LDA)은 PCA와 마찬가지의 피처 압축 기법 중 하나이다. 전체적인 개념은 상당히 유사하지만, LDA는 PCA와 달리 최대분산의 수직을 찾는 것이 아니라 지도적 방식으로 데이터의 분포를 학습하여 분리를 최적화하는 피처 부분공간을 찾은 뒤, 학습된 결정 경계에 따라 데이터를 분류하는 것이 목표이다. 즉, PCA가 데이터의 전체적인 분포를 참고하여 새로운 basis를 설정하고, 그 축에 맞게 데이터를 새롭게 projection 하는 것이 목표라면, LDA는 지도적인 방법으로 basis를 찾아서 그 축을 분리에 이용한 뒤, 최적의 분리를 완성한 뒤 projection을 하는 것이 목표이다.. 2017. 8. 10. 차원 축소, 차원의 저주에 관하여 최근에 차원 축소에 대한 스터디를 진행하다가 문득 든 질문, 도대체 차원 축소를 왜 해야하는거지? 라는 간단한 질문에 대답하기 어려웠다. 당연히 피처 수가 적으면 모델이 더 잘 돌아가겠지.. 하는 생각 외에는 신박한 답변이 생각나지 않았다. 잠시 페이드 아웃의 시간을 거치고, 문득 떠오른 단어가 "차원의 저주"였다. 유레카, "차원의 저주"를 해결하기 위해서 우리는 차원 축소를 하는거지! 라고 당당히 대답해 버렸다. 그럼 차원의 저주는 뭐지..? 두서없이 드는 생각들을 옮겨적어 봐야겠다. 차원축소 차원 축소를 해야 하는 이유에 대해, 실생활적인 예를 들어 생각해보자. 어떤 사람이 커피를 마시는 상황에 대해 머신 러닝 기법을 적용하여 예측하고자 한다. 커피를 마시는 이유. 피처를 한번 선정해보자. 졸려서,.. 2017. 8. 10. 이전 1 다음