L2C
1.0.0
具有深度神经网络的聚类策略。这篇博客文章提供了一般概述。
该存储库提供了迁移学习方案 (L2C) 的 PyTorch 实现以及对深度聚类有用的两个学习标准:
*由CCL更名而来
该存储库涵盖以下参考文献:
@inproceedings{Hsu19_MCL,
title = {Multi-class classification without multi-class labels},
author = {Yen-Chang Hsu, Zhaoyang Lv, Joel Schlosser, Phillip Odom, Zsolt Kira},
booktitle = {International Conference on Learning Representations (ICLR)},
year = {2019},
url = {https://openreview.net/forum?id=SJzR2iRcK7}
}
@inproceedings{Hsu18_L2C,
title = {Learning to cluster in order to transfer across domains and tasks},
author = {Yen-Chang Hsu and Zhaoyang Lv and Zsolt Kira},
booktitle = {International Conference on Learning Representations (ICLR)},
year = {2018},
url = {https://openreview.net/forum?id=ByRWCqvT-}
}
@inproceedings{Hsu16_KCL,
title = {Neural network-based clustering using pairwise constraints},
author = {Yen-Chang Hsu and Zsolt Kira},
booktitle = {ICLR workshop},
year = {2016},
url = {https://arxiv.org/abs/1511.06321}
}
该存储库支持 PyTorch 1.0、python 2.7、3.6 和 3.7。
pip install -r requirements.txt
# A quick trial:
python demo.py # Default Dataset:MNIST, Network:LeNet, Loss:MCL
python demo.py --loss KCL
# Lookup available options:
python demo.py -h
# For more examples:
./scripts/exp_supervised_MCL_vs_KCL.sh
# Learn the Similarity Prediction Network (SPN) with Omniglot_background and then transfer to the 20 alphabets in Omniglot_evaluation.
# Default loss is MCL with an unknown number of clusters (Set a large cluster number, i.e., k=100)
# It takes about half an hour to finish.
python demo_omniglot_transfer.py
# An example of using KCL and set k=gt_#cluster
python demo_omniglot_transfer.py --loss KCL --num_cluster -1
# Lookup available options:
python demo_omniglot_transfer.py -h
# Other examples:
./scripts/exp_unsupervised_transfer_Omniglot.sh
数据集 | gt #class | KCL (k=100) | MCL (k=100) | KCL (k=gt) | MCL (k=gt) |
---|---|---|---|---|---|
天使般的 | 20 | 73.2% | 82.2% | 89.0% | 91.7% |
Atemayar_Qelisayer | 26 | 73.3% | 89.2% | 82.5% | 86.0% |
亚特兰蒂斯 | 26 | 65.5% | 83.3% | 89.4% | 93.5% |
奥雷克·贝什 | 26 | 88.4% | 92.8% | 91.5% | 92.4% |
阿维斯塔 | 26 | 79.0% | 85.8% | 85.4% | 86.1% |
Ge_ez | 26 | 77.1% | 84.0% | 85.4% | 86.6% |
格拉哥里系 | 45 | 83.9% | 85.3% | 84.9% | 87.4% |
古尔穆基 | 45 | 78.8% | 78.7% | 77.0% | 78.0% |
卡纳达语 | 41 | 64.6% | 81.1% | 73.3% | 81.2% |
基布尔 | 26 | 91.4% | 95.1% | 94.7% | 94.3% |
马拉雅拉姆语 | 47 | 73.5% | 75.0% | 72.7% | 73.0% |
曼尼普里 | 40 | 82.8% | 81.2% | 85.8% | 81.5% |
蒙 | 30 | 84.7% | 89.0% | 88.3% | 90.2% |
旧教堂斯拉夫西里尔文 | 45 | 89.9% | 90.7% | 88.7% | 89.8% |
奥里亚语 | 46 | 56.5% | 73.4% | 63.2% | 75.3% |
锡尔赫蒂 | 28 | 61.8% | 68.2% | 69.8% | 80.6% |
叙利亚语_Serto | 23 | 72.1% | 82.0% | 85.8% | 89.8% |
腾瓦 | 25 | 67.7% | 76.4% | 82.5% | 85.5% |
藏 | 42 | 81.8% | 80.2% | 84.3% | 81.9% |
乌洛格 | 26 | 53.3% | 77.1% | 73.0% | 89.1% |
- 平均的 - | 75.0% | 82.5% | 82.4% | 85.7% |
MCL 的损失表面比 KCL 更类似于交叉熵(CE)。根据经验,MCL 比 KCL 收敛得更快。详细内容请参考 ICLR 论文。
@article{Hsu18_InsSeg,
title = {Learning to Cluster for Proposal-Free Instance Segmentation},
author = {Yen-Chang Hsu, Zheng Xu, Zsolt Kira, Jiawei Huang},
booktitle = {accepted to the International Joint Conference on Neural Networks (IJCNN)},
year = {2018},
url = {https://arxiv.org/abs/1803.06459}
}
这项工作得到了国家科学基金会和国家机器人计划(拨款号 IIS-1426998)和 DARPA 的终身学习机器(L2M)计划的支持,根据合作协议 HR0011-18-2-001。