Image clustering is a crucial but challenging task in machine learning and computer vision. Existing methods often ignore the combination between feature learning and clustering. To tackle this problem, we propose Deep Adaptive Clustering (DAC) that recasts the clustering problem into a binary pairwise-classification framework to judge whether pairs of images belong to the same clusters. In DAC, the similarities are calculated as the cosine distance between label features of images which are generated by a deep convolutional network (ConvNet). By introducing a constraint into DAC, the learned label features tend to be one-hot vectors that can be utilized for clustering images. The main challenge is that the ground-truth similarities are unknown in image clustering. We handle this issue by presenting an alternating iterative Adaptive Learning algorithm where each iteration alternately selects labeled samples and trains the ConvNet. Conclusively, images are automatically clustered based on the label features. Experimental results show that DAC achieves state-of-the-art performance on five popular datasets, e.g., yielding 97.75% clustering accuracy on MNIST, 52.18% on CIFAR-10 and 46.99% on STL-10.
- Multi-stage는 학습이 번거롭다.
- Representation은 unsupervised feature learning 이후 고정된다.
- Clustering 과정에서 representation을 더 이상 개선할 수 없다.
- 각 interation 동안, 쌍을 이룬 image간의 추정된 유사도가 고정된 ConvNet 기반으로 먼저 선택된다.
- DAC는 선택된 labeled sample을 사용하여 ConvNet을 supervised 방식으로 학습한다.
- 모든 sample이 학습에 사용되고, binary pairwise 분류 성능이 더 이상 개선되지 않을 때 수렴된다.
- 마지막으로, 이미지는 label feature의 가장 큰 response로 clustering 된다.
- Distance-based
- Density-based
- Connectivity-based
- Deep embedded clustering (DEC)는 cluster의 centroid를 학습한다.
=> Pre-training이 필요하다는 불편한 점이 있다.- Joint unsupervised learning (JULE)는 KNN에서 초기화한 clustering을 기반으로 agglometrative clustering과 feature learning을 공동으로 수행한다.
=> 서로 다른 이미지 사이의 거리를 정의하는 것은 어렵기 때문에, 복잡한 이미지 데이터에 대해 성능이 저하된다.
머신러닝에서 더욱 효율적인 모델 학습을 위해 학습 샘플을 선택하는 방법이 연구되고 있다.
- Boosting algorithm은 다양한 모델에서 학습한 데이터셋에서 임의로 부분 샘플을 선택하고, 이들을 통합하여 가장 성능이 좋은 분류기를 만든다.
- Curriculum learning은 비교적 쉬운 샘플을 우선 사용하고, 점진적으로 복잡한 샘플을 학습에 사용한다.
=> 위의 두가지 방법은 labeled data에 동작되는 제약이 있다.
Clustering을 이미지 쌍이 같은 cluster에 속하는지에 대한 여부를 학습하는 binary 문제로 재정의 한다.
- input: (unlabed images)
- output: (unkown binary variable)
Objective function:
은 와 는 추정된 유사도 의 loss, 는 학습 파라미터
위의 식에서 두가지 이슈가 있다.
- ConvNets이 학습되지 않았다면, initialized ConvNets의 filter는 edge detectors 역할을 하기 때문에, low-level feature를 포착할 수 있다.
- ConvNets가 이미 학습되었다면, high-level feature를 생성할 수 있다.
- 와 이 정해지면 (),
- supervised 문제가 된다.
- 와 는 의 메모리 문제가 발생하기 때문에, batch 단위 학습이 요구된다.
- 가 고정되면,
- 경사하강법에 따라 가 update 된다.
- 학습에 sample이 점차 추가되면서 는 증가하게 된다.
DAC 알고리즘을 요약하자면,
- Adaptive learning 알고리즘을 통해 최적화 된다.
- Fixed ConvNet에서 sample을 선택하는 것과, 선택된 sample 기반으로 학습하는 것을 반복한다.
- 모든 sample이 학습에 사용되었을 때, 알고리즘은 수렴된다.
- 이미지는 label feature에서 가장 큰 response로 clustering 된다.
🙆🏻♂️ 논문을 읽고 나서..
- Unsupervised clustering 방식을 end-to-end로 풀어낸것이 인상깊었다.
- DEC 는 multi-stage 방식인 것에 비해 DAC는 single-stage 방식으로 더 나은 성능을 보였다.
- 유사도를 binary문제가 아닌 regression 문제로 변형시켜서 보다 유연한 모델을 만들 수 있을까? 🤷🏻♂️
- MNIST 데이터셋을 제외한 실험에서의 성능이 충분하지 않은데 이를 해결하기 위해서는 어떻게 해야 할까? 🙋🏻♂️