Releases: Optimization-AI/LibAUC
LibAUC 1.4.0
Introducing LibAUC 1.4.0
We are releasing a new version of LibAUC at long last!
New Features
- Added support for optimizing mAP at top-k positions by setting
mAPLoss(top_k=k)
. - Integrated 8 commonly used graph neural networks into the library, i.e.,
GCN
,DeeperGCN
,GIN
,GINE
,GAT
,MPNN
,GraphSAGE
andPNA
. - Introduced cosine gamma schedule in self-supervised contrastive learning, which has been demonstrated in our recent work. To use cosine gamma schedule, we can set
GCLoss('unimodal', gamma_schedule = 'cosine')
andGCLoss('bimodal', gamma_schedule = 'cosine')
. - Added
datasets.webdataset
, which supports loading image-text dataset stored in WebDataset format.
Tutorial Update
- Provided a tutorial to show how to train a GNN model by optimizing AUPRC with our novel APLoss and SOAP optimizer on a binary molecule classification task from ogbg-molpcba dataset.
- Provided a tutorial on optimizing global contrastive loss with SogCLR and cosine gamma schedule.
- Updated previous tutorials by adding a recommended pretraining part to significantly boost models’ performance.
What's Changed
- A new page was added on LibAUC website to show our active users.
- Added
return_index
argument to the classdatasets.ImageFolder
and added the explanation ofreturn_index
to our documentation. - Changed the default
eta
value to0.1
inpAUC_CVaR_Loss
. Previously, the value is inconsistent with the documentation. - Fixed the learning rate setting in SogCLR tutorial. Previously, the learning rate is incorrectly passed into the function.
- Fixed the circular import error when importing from
metrics
#57.
Acknowledgment
Team: Gang Li, Xiyuan Wei, Siqi Guo, Zihao Qiu, Tianbao Yang (Advisor)
LibAUC 1.3.0
Introducing LibAUC 1.3.0
We are thrilled to release LibAUC 1.3.0! In this version, we have made improvements and brought new features to our library. We have released a new documentation website at https://docs.libauc.org/, where you can access our code and comments. We are also happy to announce that our LibAUC paper has been accepted by KDD2023!
Major Improvements
- Improved the implementations for
DualSampler
andTriSampler
for better efficiency. - Merged
DataSampler
forNDCGLoss
withTriSampler
and added a new string argumentmode
to switch between classification mode for multi-label classification and ranking mode for movie recommendations. - Improved
AUCMLoss
and included a new version v2 (required DualSampler) that removes the class prior p required in the previous version v1. To use different version, you can setversion='v1'
orversion='v2'
inAUCMLoss
. - Improved
CompositionalAUCLoss
, which now allows multiple updates for optimizing inner loss by settingk
in the loss. Similar toAUCMLoss
, we introduced v2 version in this loss without using the class priorp
. By default, k is 1 and version is v1. - Improved code quality for
APLoss
andpAUCLoss
includingpAUC_CVaR_Loss
,pAUC_DRO_Loss
,tpAUC_KL_Loss
for better efficiency and readability. - API change for all
optimizer
methods. Please passmodel.parameters()
to the optimizer instead ofmodel
, e.g.,PESG(model.parameters())
.
New Features
- Launched an official documentation site at http://docs.libauc.org/ to access source code and parameter information.
- Introduced a new library logo for X-Risk designed by Zhuoning Yuan, Tianbao Yang .
- Introduced MIDAM for multi-instance learning. It supports two pooling functions,
MIDAMLoss('softmax')
for using softmax pooling andMIDAMLoss('attention')
for attention-based pooling. - Introduced a new
GCLoss
wrapper for contrastive self-supervised learning, which can be optimized by two algorithms in the backend: SogCLR and iSogCLR. - Introduced iSogCLR for automatic temperature individualization in self-supervised contrastive learning. To use
iSogCLR
, you can setGCLoss('unimodal', enable_isogclr=True)
andGCLoss('bimodal', enable_isogclr=True)
. - Introduced three new multi-label losses:
mAPLoss
for optimizing mean AP,MultiLabelAUCMLoss
for optimizing multi-label AUC loss, andMultiLabelpAUCLoss
for multi-label partial AUC loss. - Introduced
PairwiseAUCLoss
to support optimization of traditional pairwise AUC losses. - Added more evaluation metrics:
ndcg_at_k
,map_at_k
,precision_at_k
, andrecall_at_k
.
Acknowledgment
Team: Zhuoning Yuan, Dixian Zhu, Zi-Hao Qiu, Gang Li, Tianbao Yang (Advisor)
Feedback
We value your thoughts and feedback! Please fill out this brief survey to guide our future developments. Thank you for your time! For other questions, please contact us @ Zhuoning Yuan [yzhuoning@gmail.com] and Tianbao Yang [tianbao-yang@tamu.edu].
v1.2.0
What's New
We continuously update our library by making improvements and adding new features. If you use or like our library, please star⭐ this repo. Thank you!
Major Improvements
- In this version,
AUCMLoss
can automatically computeimratio
without requiring this input from users. - Renamed
gamma
toepoch_decay
forPESG
andPDSCA
optimizers, i.e.,epoch_decay
=1/gamma
- Reimplemented
ImbalancedDataGenerator
for constructing imbalanced dataset for benchmarking. Tutorial is available here. - Improved implementations of
APLoss
by removing some redundant computations. - Merged
SOAP_ADAM
andSOAP_SGD
optimizers into one optimizerSOAP
. Tutorial is provided here. - Removed dependency of
TensorFlow
and now LibAUC only requiresPyTorch
installed . - Updated existing tutorials to match the new version of LibAUC. Tutorials are available here.
New Features
- Introduced
DualSampler
,TriSampler
for sampling data that best fit the x-risk optimization to balance inner and outer estimation error. - Introduced
CompositionAUCLoss
andPDSCA
optimizer. Tutorial is provided here. - Introduced
SogCLR
withDynamic Contrastive Loss
for training Self-Supervised Learning models using small batch size. Tutorial and code are provided here. - Introduced
NDCG_Loss
andSONG
optimizer for optimizing NDCG. Tutorials are provided here. - Introduced
pAUCLoss
with three optimizers:SOPA
,SOPAs
,SOTAs
for optimizing Partial AUROC. Tutorials are provided here. - Added three evaluation functions:
auc_roc_score
(binary/multi-task),auc_prc_score
(binary/multi-task) andpauc_roc_score
(binary).
Feedback
- If you have any feedback/suggestions, please contact us @ Zhuoning Yuan [yzhuoning@gmail.com] and Tianbao Yang [tianbao-yang@uiowa.edu].
LibAUC v1.1.8
What's New
- Fixed some bugs and improved the training stability
LibAUC v1.1.6
What's New
- Added Support for Multi-Label Training. Tutorial for training CheXpert is available here!
- Fixed some bugs and improved the training stability