카테고리 없음

DBSCAN / 3DGS / VAE

cheonniii 2024. 6. 3. 23:23

DBSCAN 개념 정리 → 3DGS에 어떻게 적용할지 → 예상되는 문제점, 해결 방안 + 궁금증 정리 → VAE 


Density Based Clustering

Clusters: regions of high density that are separated from one another by regions on low density 

 

DBSCAN

: Density-based algorithm

     - Density: # of points within a specified radius (Eps)

 

Point 

- core point: if it has at least a specified # of points (MinPts) within Eps

- border point: X core point, core point의 neighborhood

- noise point: X core point, X border point

 

Process 

1. Label all points as core, border, noise points

2. noise points 제거

3. Put an edge between all core points within a distance Eps of each other

4. Make each group of connected core points into a separate cluster

5. Assign each borer point to one of the clusters of its associated core points

 

K-means clustering vs. DBSCAN

- K-means는 간단하고 강력한 clustering  방법이지만, cluster가 non-circular 모양일 때 문제가 되고, cluster의 개수를 먼저 구체화해야한다는 단점이 있다. 

- DBSCAN은 사전에 cluster의 개수를 요구하지 않는다. 

+ 다양한 cluster의 모양이나 크기 handle 가능. (density based로 클러스터링하기 때문에) 

 

 

- Distance metric

- Epsilon (ε)

    - The radius of the neighborhood around a point

    - It determines the distance within which points are considered neighbors

- Minimum points (MinPts)

    - The minimum # of neighbors a point must have within its epsilon radius to be considered a core point, defining a dense area. 


주제에 대한 고민 💭 

Mini splatting & Clustering으로 3DGS memory 최적화

DBSCAN → 미분 가능해야하는데 어떻게 하면 미분 가능하게 할지 고민 🤔

DBSCAN은 backpropagation 안함 !

DBSCAN은 밀도 기반 unsupervised learning의 클러스터링 방법으로, supervised learning과 달리 backpropagation이나 gradient descent 같은 학습 과정을 사용하지 않는다. 학습 시킨다는 개념 자체가 존재하지 않고, 파라미터 최적화도 ML 모델처럼 자동으로 이루어지지 않아서 실험 통해 직접 찾아야 함. (eps, min_samples 같은) 

 

어떻게 미분 가능하게 연결하지? 🤔

→ Variational Autoencoder (VAE)와 같은 미분 가능한 알고리즘 사용

VAE: 입력 데이터를 저차원 잠재 공간으로 인코딩한 다음, 이를 다시 원래의 데이터로 디코딩하는 과정을 거침. (이 과정은 전체적으로 미분 가능해서 gradient descent와 같은 최적화 알고리즘을 사용할 수 있음)

 

DBSCAN의 클러스터링 결과를 VAE에 통합하는 방법 ? 내 생각..

 

1. 클러스터 소속 정보를 추가적인 입력 또는 조건부 정보로 활용

: VAE의 입력에 클러스터 소속 정보를 추가하여, 네트워크가 이 정보를 고려하여 재구성하도록 (?)

 

VAE 모델에 입력 데이터 외에 추가적인 정보를 제공.

DBSCAN을 사용하여 데이터를 클러스터링한 후, 각 데이터 포인트가 속한 클러스터의 레이블을 추가적인 입력 정보로 VAE 모델에 제공.

이렇게 하면, VAE의 인코더는 원본 데이터와 클러스터 레이블을 함께 고려하여 잠재 공간에 매핑하게 됨. 

디코더는 이 잠재 공간의 벡터를 받아 원래의 데이터를 재구성하려 할 때, 클러스터 레이블 정보를 이용함 

 

2. 클러스터 결과를 잠재 공간의 규제로 사용

: 잠재 공간에서 비슷한 데이터 포인트들이 DBSCAN 결과와 유사한 클러스터를 형성하도록 규제를 적용 (?) 

 

DBSCAN 결과로 얻어진 클러스터들이 비슷한 특성을 가진 데이터 포인트들로 구성되어 있음을 고려하여, VAE의 잠재 공간에서도 같은 클러스터에 속하는 데이터 포인트들이 서로 가깝게 위치하도록 함.

이를 위해 손실 함수에 클러스터 기반의 규제 항을 추가. 

예를 들어, 같은 클러스터에 속하는 데이터 포인트들의 잠재 벡터 사이의 거리가 작도록 하고, 다른 클러스터에 속하는 데이터 포인트들의 잠재 벡터 사이의 거리는 크도록 손실 함수 설계. 


VAE (Auto-Encoding Variational Bayes)

https://arxiv.org/pdf/1312.6114