공부/AIFFEL

FUNDAMENTAL 12. 비지도 학습

dong_dong_2 2021. 1. 25. 19:43

1. 비지도학습(Unsupervised learning)에 대하여
    - 비지도학습 : 지도학습과 달리 training data로 정답(label)이 없는 데이터가 주어지는 학습방법
    - 달리 표현하자면, 주어진 데이터가 어떻게 구성되어 있는지 스스로 알아내는 방법이다.
    - 대표적인 예시로 군집화(clustering), 차원 축소(dimensionality reduction)이 있고, 

      모델로는 K-means, DBSCAN, PCA, T-SNE가 있다.
2. 클러스터링 (1) K-means
    - 군집화란 명확한 분류 기준이 없는 상황에서도 데이터들을 분석하여 가까운(유사한) 것들끼리 묶어주는 작업이다.
    - K-means 알고리즘은 k값이 주어져 있을 때, 주어진 데이터들을 k개의 클러스터로 묶는 알고리즘이다. (대표적인 군집화 기법 중 하나임)
    - 데이터들끼리 거리를 계산하는데 이 때 거리는 유클리드 거리(L2 거리)를 이용한다.
    - K-mean 알고리즘의 순서
       1) 원하는 클러스터의 수(K)를 결정한다.
       2) 무작위로 클러스터의 수와 같은 K개의 중심점을 선정한다. 이들은 각 클러스터를 대표한다.
       3) 나머지 점들과 모든 중심점 간의 유클리드 거리를 계산한 후, 가장 가까운 거리를 가지는 중심점의 클러스터에 속하도록 한다.
       4) 각 K개의 클러스터의 중심점을 재조정한다. 특정 클러스터에 속하는 모든 점들의 평균값이 해당 클러스터 다음 iteration의 중심이 된다. (중심점은 실제로 존재하는 데이터가 아니여도 된다)
       5) 재조정된 중심점을 바탕으로 모든 점들과 새로 조정된 중심점 간의 유클리드 거리를 다시 계산한 후, 가장 가까운 거리를 가지는 클러스터에 해당 점을 재배정한다.
       6) 4)~5)를 반복 수행한다. 반복횟수는 사용자가 조절하면 되고, 특정 iteration 이상이 되면 수렴하게 된다. (중심점이 더이상 바뀌지 않는다)
    - K-means 알고리즘이 잘 동작하지 않는 예 : 데이터가 원형 모양일 경우, 초승달 모양일 경우, 대각선 방향으로 나열되 있는 경우 등
3. 클러스터링 (2) DBSCAN(Density Based Spatial Clustering of Applications with Noise)
    - 가장 널리 알려진 밀도 기반의 군집화 알고리즘이다. K-means로 해결이 어려운 문제들을 해결할 수 있다.
    - 군집의 개수를 미리 지정할 필요가 없다는 특징을 가지고, 조밀하게 몰려 있는 클러스터를 군집화하는 방식을 사용하기 때문에 불특정한 형태의 군집도 찾을 수 있다.
    - DBSCAN 알고리즘의 용어
       1) epsilon : 클러스터의 반경
       2) minPts : 클러스터를 이루는 개체의 최솟값
       3) core point : 반경 epsilon 내에 minPts개 이상의 점이 존재하는 중심점
       4) border point : 군집의 중심이 되지는 못하지만, 군집에 속하는 점
       5) noise point : 군집에 포함되지 못하는 점
    - DBSCAN 알고리즘 순서
       1) 임의의 점 p를 설정하고, p를 포함하여 주어진 클러스터의 반경(epsilon)안에 포함되어 있는 점들의 갯수를 센다.
       2) 만일 해당 원에 minPts개 이상의 점이 포함되어 있으면, 해당 점 p를 core point로 간주하고 원에 포함된 점들을 하나의 클러스터로 묶는다.
       3) 해당 원에 minPts개 미만의 점이 포함되어 있으면 일단 pass 한다.
       4) 모든 점에 대하여 돌아가면서 1 ~ 3번의 과정을 반복하는데, 만일 새로운 p가 core point가 되고 이 점이 기존의 클러스터에 속한다면, 두 개의 클러스터는 연결되어 있다고 하며 하나의 클러스터로 묶어준다.
       5) 모든 점에 대하여 클러스터링 과정을 끝냈는데, 어떤 점을 중심으로 하더라도 클러스터에 속하지 못하는 점이 있으면 이를 noise point로 간주한다. 또한, 특정 군집에는 속하지만 core point가 아닌 점들을 border point라 한다.
    - epsilon과 minPts만 잘 조절하면 K-means에 비해 훨씬 유연하게 사용이 가능한데 그럼 K-means보다 상위호환일까? -> 그렇지 않다.
    - DBSCAN은 K-means에 비해서 데이터 수가 적을 때는 수행시간이 빠르나, 데이터 수가 많이질수록 수행시간이 급격하게 늘어난다. 또한 데이터 분포에 맞는 epsilon과 minPts의 값을 지정해 줘야 한다는 등의 단점이 존재한다.
4. 차원 축소 (1) PCA
    - 차원 축소 : 수많은 정보 속에서 우리에게 더 중요한 요소가 무엇인지를 알게 해주는 방법
    - PCA
       1) 데이터 분포의 주성분을 찾는 방법 중 하나. 여기서 주성분이라는 의미는 데이터의 분산이 가장 큰 방향벡터를 의미한다. 
       2) PCA는 데이터들의 분산을 최대로 보존하면서, 서로 직교하는 기저(basis, 분산이 큰 방향벡터의 축)들을 찾아 고차원 공간을 저차원 공간으로 사영한다.
       3) 기존 feature 중 중요한 것을 선택하는 방식이 아닌 기존의 feature를 선형결합 하는 방식을 사용한다.
    - PCA는 각 feature 간 상관관계가 있고 이를 추릴 필요가 있을 때 유용하게 사용되는 비지도학습 방법 중 하나이다.
5. 차원 축소 (2) T-SNE(T-Stochastic Neighbor Embedding)
    - 시각화에 많이 쓰이는 알고리즘이다.
    - 기존 차원의 공간에서 가까운 점들은, 차원축소된 공간에서도 여전히 가깝게 유지 되는 것을 목표로 한다.
    - 즉, PCA는 데이터가 가진 고유한 물리적 정보량을 보존하는데 주력하지만, T-SME는 데이터들간의 상대적 거리를 보존하는데 주력한다.
    - 여기서도 마찬가지로 T-SNE가 PCA보다 우월한 차원축소 기법이라고 말할 수 없다.