RobustNMF.jl
Welcome to RobustNMF.jl - Robust Non-negative Matrix Factorization in Julia for data with noise and outliers.
Overview
This package provides two complementary algorithms for non-negative matrix factorization:
- Standard NMF - Optimized for clean data using L2 (Frobenius) loss
- Robust NMF (Huber) - Robust to outliers using Huber loss with IRLS updates
The Huber loss combines the best of both worlds:
- Small errors: quadratic (precise, like L2)
- Large errors: linear (robust, like L1)
Key Features
- Two NMF algorithms - Standard and Robust (Huber loss) options
- Data utilities - Synthetic data generation, noise/outlier injection, normalization, image loading
- Visualization - Basis vectors, reconstructions, convergence tracking, and comprehensive summaries
- Easy comparison - Evaluate both algorithms on the same data
Quick Navigation
- Getting Started - Installation and first example
- API Reference - Complete function documentation
- Examples - Practical use cases and workflows
Installation
Install directly from GitHub:
using Pkg
Pkg.add(url="https://github.com/TU-Julia-RobustNMF/RobustNMF.jl")
using RobustNMFRequirements: Julia 1.11+ (see Project.toml)
For more information, see the GitHub repository.
Acknowledgments
This project was created with AI-assisted development using Claude (Anthropic) and ChatGPT (OpenAI). While AI tools were sometimes used for code generation and documentation, all code and documentation have been manually reviewed, tested, and validated by the authors to ensure quality and correctness.