From f7e31bd7aa39a79d4a4a61af91341c42fcf48e86 Mon Sep 17 00:00:00 2001 From: Logan Bhamidipaty Date: Mon, 9 Sep 2024 13:51:47 -0700 Subject: [PATCH] update url rot --- README.md | 10 +++++----- paper.md | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 74c8211..8b05f59 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ # ExpFamilyPCA.jl -[![Build Status](https://github.com/FlyingWorkshop/ExpFamilyPCA.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/FlyingWorkshop/ExpFamilyPCA.jl/actions/workflows/CI.yml?query=branch%3Amain) -[![Dev-Docs](https://img.shields.io/badge/docs-latest-blue.svg)](https://flyingworkshop.github.io/ExpFamilyPCA.jl/dev/) +[![Build Status](https://github.com/sisl/ExpFamilyPCA.jl/actions/workflows/CI.yml/badge.svg?branch=main)](https://github.com/sisl/ExpFamilyPCA.jl/actions/workflows/CI.yml?query=branch%3Amain) +[![Dev-Docs](https://img.shields.io/badge/docs-latest-blue.svg)](https://sisl.github.io/ExpFamilyPCA.jl/dev/) **ExpFamilyPCA.jl** is a Julia package for performing [exponential principal component analysis (EPCA)](https://papers.nips.cc/paper_files/paper/2001/hash/f410588e48dc83f2822a880a68f78923-Abstract.html). ExpFamilyPCA.jl supports custom objectives and includes fast implementations for several common distributions. ## Documentation -For detailed documentation on each function and additional examples, please refer to the [documentation](https://github.com/FlyingWorkshop/ExpFamilyPCA.jl). +For detailed documentation on each function and additional examples, please refer to the [documentation](https://github.com/sisl/ExpFamilyPCA.jl). ## Installation @@ -67,7 +67,7 @@ $$ \frac{1}{2\pi} \int_{-\pi}^{\pi} \Bigg[ \frac{P(\omega)}{\hat{P}(\omega)} - \log \frac{P(\omega)}{\hat{P}{\omega}} - 1\Bigg] d\omega $$ -effeciently in Julia even though the two are [equivalent](https://flyingworkshop.github.io/ExpFamilyPCA.jl/dev/math/). +effeciently in Julia even though the two are [equivalent](https://sisl.github.io/ExpFamilyPCA.jl/dev/math/). @@ -79,7 +79,7 @@ ExpFamilyPCA.jl includes 10 constructors for custom distributions. All constrcut 2. $g$ is the **link function**. It is the derivative of the log-partition $\nabla_\theta G(\theta) = g(\theta)$ and the inverse of the derivative of the convex conjugate of the log-parition $g = f^{-1}$. 3. $F$ is the **convex conjugate** (under the [Legendre transform](https://en.wikipedia.org/wiki/Legendre_transformation)) of the log-partition $F = G^*$. 4. $f$ is the **derivative of the convex conjugate** $\nabla_x F(x) = f(x)$ and the inverse of the link function $f = g^{-1}$. -5. $B_F(p \| q)$ is the [**Bregman divergence**](https://flyingworkshop.github.io/ExpFamilyPCA.jl/dev/bregman/) induced from $F$. +5. $B_F(p \| q)$ is the [**Bregman divergence**](https://sisl.github.io/ExpFamilyPCA.jl/dev/bregman/) induced from $F$. For the Poisson distribution, these terms take the following values. diff --git a/paper.md b/paper.md index 83f1574..e836fbb 100644 --- a/paper.md +++ b/paper.md @@ -45,16 +45,16 @@ Exponential family PCA was introduced by @EPCA and several papers have extended ## Exponential Family PCA -PCA can be interpreted as a Gaussian denoising procedure (see discussion in the [documentation](https://flyingworkshop.github.io/ExpFamilyPCA.jl/dev/math/epca/#The-Probabilistic-View)). EPCA extends this concept by generalizing PCA to handle noise drawn from *any* exponential family distribution.[^1] +PCA can be interpreted as a Gaussian denoising procedure (see discussion in the [documentation](https://sisl.github.io/ExpFamilyPCA.jl/dev/math/epca/#The-Probabilistic-View)). EPCA extends this concept by generalizing PCA to handle noise drawn from *any* exponential family distribution.[^1] Before describing the EPCA objective, we introduce the necessary notation: 1. $G$ is the **log-partition function** of some exponential family distribution. 2. $g$ is the **link function** and the derivative of $G$. Since $G$ is strictly convex and continuously differentiable, $g$ is invertible. -3. $F$ is the **convex conjugate** or dual of $G$. A deeper discussion of duality and the Legendre transform is provided in the [documentation](https://flyingworkshop.github.io/ExpFamilyPCA.jl/dev/math/bregman/#The-Legendre-Transform-and-Parameter-Duality). +3. $F$ is the **convex conjugate** or dual of $G$. A deeper discussion of duality and the Legendre transform is provided in the [documentation](https://sisl.github.io/ExpFamilyPCA.jl/dev/math/bregman/#The-Legendre-Transform-and-Parameter-Duality). 4. $f$ is the derivative of $F$. Since $F$ is the convex conjugate of $G$, its derivative is the inverse link function $f = g^{-1}$. -5. $B_F(p \| q)$ is the [**Bregman divergence**](https://flyingworkshop.github.io/ExpFamilyPCA.jl/dev/bregman/) induced from $F$. +5. $B_F(p \| q)$ is the [**Bregman divergence**](https://sisl.github.io/ExpFamilyPCA.jl/dev/bregman/) induced from $F$. The EPCA objective is then written @@ -66,7 +66,7 @@ $$\begin{aligned} & & \mathrm{Rank}\left(\Theta\right) \leq \ell \end{aligned}$$ -where $\Theta$ is the natural parameter matrix and both $\epsilon > 0$ and $\mu \in \mathrm{Range}(g)$ are regularization hyperparameters that ensure the optimum is finite. See the [documentation](https://flyingworkshop.github.io/ExpFamilyPCA.jl/dev/math/epca/) for a deeper discussion of the EPCA objective. +where $\Theta$ is the natural parameter matrix and both $\epsilon > 0$ and $\mu \in \mathrm{Range}(g)$ are regularization hyperparameters that ensure the optimum is finite. See the [documentation](https://sisl.github.io/ExpFamilyPCA.jl/dev/math/epca/) for a deeper discussion of the EPCA objective. [^1]: More generally, the EPCA objective can be induced from any contiuously-differentiable, strictly convex function. @@ -92,7 +92,7 @@ X_reconstructed = decompress(poisson_epca, X_compressed) Y_reconstructed = decompress(poisson_epca, Y_compressed) ``` -More details can be found in the [documentation](https://flyingworkshop.github.io/ExpFamilyPCA.jl/dev/api/). +More details can be found in the [documentation](https://sisl.github.io/ExpFamilyPCA.jl/dev/api/). ## Features @@ -120,7 +120,7 @@ $$ \frac{1}{2\pi} \int_{-\pi}^{\pi} \Bigg[ \frac{P(\omega)}{\hat{P}(\omega)} - \log \frac{P(\omega)}{\hat{P}{\omega}} - 1\Bigg] d\omega $$ -effeciently in Julia even though the two are equivalent (see [documentation](https://flyingworkshop.github.io/ExpFamilyPCA.jl/dev/math/gamma/)). +effeciently in Julia even though the two are equivalent (see [documentation](https://sisl.github.io/ExpFamilyPCA.jl/dev/math/gamma/)). There are many equivalent formulations of the EPCA objective and ExpFamilyPCA.jl supports many of them. Some constructors create objects that fit, decompress, and compress faster than others. To provide an example, we show how users can create `PoissonEPCA` using custom constructors. Each custom constructor requires some information about the desired distribution. The table below shows an example of that information for the Poisson distribution.