LieBN
(ICLR24) A Lie Group Approach to Riemannian Batch Normalization.
Install / Use
/learn @GitZH-Chen/LieBNREADME
<img src="https://img.shields.io/badge/arXiv-2403.11261-b31b1b"></img> <img src="https://img.shields.io/badge/OpenReview|forum-okYdj8Ysru-8c1b13"></img> <img src="https://img.shields.io/badge/OpenReview|pdf-okYdj8Ysru-8c1b13"></img>
A Lie Group Approach to Riemannian Batch Normalization
Updates (02/2025): We have integrated the LieBN implementations into a toolbox, now supporting nine invariant metrics across different matrix manifolds:
- Symmetric Positive Definite (SPD) Manifold: Four distinct metrics, including a newly introduced right-invariant metric.
- Rotation Group: One bi-invariant metric.
- Full-Rank Correlation Manifold: Four recently developed correlation geometries.
The complete implementations can be found in the LieBN folder. This toolbox is designed to be plug-and-play, making it easy to apply LieBN as a drop-in normalization module across different neural architectures.
Introduction
This is the official code for our ICLR 2024 publication: A Lie Group Approach to Riemannian Batch Normalization. [OpenReview].
If you find this project helpful, please consider citing us as follows:
@inproceedings{chen2024liebn,
title={A Lie Group Approach to Riemannian Batch Normalization},
author={Ziheng Chen and Yue Song and Yunmei Liu and Nicu Sebe},
booktitle={The Twelfth International Conference on Learning Representations},
year={2024},
url={https://openreview.net/forum?id=okYdj8Ysru}
}
In case you have any problem, do not hesitate to contact me ziheng_ch@163.com.
Requirements
Install necessary dependencies by conda:
conda env create --file environment.yaml
Note that the hydra package is used to manage configuration files.
Experiments on the SPDNet
The code of experiments on SPDNet, SPDNetBN, and SPDNetLieBN is enclosed in the folder ./LieBN_SPDNet
The implementation is based on the official code of Riemannian batch normalization for SPD neural networks [Neurips 2019] [code].
Dataset
The synthetic Radar dataset is released by SPDNetBN. We further release our preprocessed HDM05 dataset.
Please download the datasets and put them in your personal folder and change the path accordingly in ./LieBN_SPDNet/conf/dataset/RADAR.yaml and ./LieBN_SPDNet/conf/dataset/HDM05.yaml
Running experiments
To run all the experiments on the Radar and HDM05 datasets, go to the folder LieBN_SPDNet and run this command:
bash run_experiments.sh
This script contains the experiments on the Radar and HDM05 datasets shown in Tab. 4
Experiments on the TSMNet
The code of experiments on TSMNet, TSMNet + SPDDSMBN, and TSMNet + DSMLieBN is enclosed in the folder ./LieBN_TSMNet
The implementation is based on the official code of SPD domain-specific batch normalization to crack interpretable unsupervised domain adaptation in EEG [Neurips 2022] [code].
Dataset
The Hinss2021 dataset is publicly available. The moabb and mne packages are used to download and preprocess these datasets. There is no need to manually download and preprocess the datasets. This is done automatically. If necessary, change the data_dir in ./LieBN_TSMNet/conf/LieBN.yaml to your personal folder.
Running experiments
To run all the experiments on the Radar and HDM05 datasets, go to the folder LieBN_TSMNet and run this command:
bash run_experiments.sh
This script contains the experiments on the Hinss2021 datasets shown in Tab. 5
Note: You also can change the data_dir in run_experiments.sh, which will override the hydra config.
Related Skills
node-connect
342.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
84.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
342.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
84.7kCommit, push, and open a PR
