From 19b6167d8119d27237799976afd6bccf8853140b Mon Sep 17 00:00:00 2001 From: Siddharth Mishra-Sharma Date: Sat, 13 Jan 2024 19:58:48 -0500 Subject: [PATCH] Normalizing flow example (#133) * Implement normalizing flow Real NVP example * Add requirements and basic usage to normalizing flow example * Minor changes to README in normalizing flow example * Remove trailing commas in function arguments for unified formatting in flows example * Fix minor typos, add some annotations * format + nits in README * readme fix * mov, minor changes in main, copywright * remove debug * fix * Simplified class structure in distributions; better code re-use in bijectors * Remove rogue space * change name again * nits --------- Co-authored-by: Awni Hannun --- normalizing_flow/README.md | 52 ++++++++++++++ normalizing_flow/bijectors.py | 60 ++++++++++++++++ normalizing_flow/distributions.py | 31 ++++++++ normalizing_flow/flows.py | 76 ++++++++++++++++++++ normalizing_flow/main.py | 115 ++++++++++++++++++++++++++++++ normalizing_flow/requirements.txt | 5 ++ normalizing_flow/samples.png | Bin 0 -> 72789 bytes 7 files changed, 339 insertions(+) create mode 100644 normalizing_flow/README.md create mode 100644 normalizing_flow/bijectors.py create mode 100644 normalizing_flow/distributions.py create mode 100644 normalizing_flow/flows.py create mode 100644 normalizing_flow/main.py create mode 100644 normalizing_flow/requirements.txt create mode 100644 normalizing_flow/samples.png diff --git a/normalizing_flow/README.md b/normalizing_flow/README.md new file mode 100644 index 00000000..5d951d6e --- /dev/null +++ b/normalizing_flow/README.md @@ -0,0 +1,52 @@ +# Normalizing Flow + +An example of a normalizing flow for density estimation and sampling +implemented in MLX. This example implements the real NVP (non-volume +preserving) model.[^1] + +## Basic usage + +```python +import mlx.core as mx +from flows import RealNVP + +model = RealNVP(n_transforms=8, d_params=4, d_hidden=256, n_layers=4) + +x = mx.random.normal(shape=(32, 4)) + +# Evaluate log-density +log_prob = model.log_prob(x=x) + +# Draw samples +x_samples = model.sample(sample_shape=(32, 4)) +``` + +## Running the example + +Install the dependencies: + +``` +pip install -r requirements.txt +``` + +The example can be run with: +``` +python main.py [--cpu] +``` + +This trains the normalizing flow on the two moons dataset and plots the result +in `samples.png`. The optional `--cpu` flag can be used to run the example on +the CPU, otherwise it will use the GPU by default. + +For all available options, run: + +``` +python main.py --help +``` + +## Results + +![Samples](./samples.png) + +[^1]: This example is from [Density estimation using Real NVP]( + https://arxiv.org/abs/1605.08803), Dinh et al. (2016) diff --git a/normalizing_flow/bijectors.py b/normalizing_flow/bijectors.py new file mode 100644 index 00000000..d3c4f8f0 --- /dev/null +++ b/normalizing_flow/bijectors.py @@ -0,0 +1,60 @@ +# Copyright © 2023-2024 Apple Inc. + +from typing import Tuple + +import mlx.core as mx +import mlx.nn as nn + + +class Bijector: + def forward_and_log_det(self, x: mx.array) -> Tuple[mx.array, mx.array]: + raise NotImplementedError + + def inverse_and_log_det(self, y: mx.array) -> Tuple[mx.array, mx.array]: + raise NotImplementedError + + +class AffineBijector(Bijector): + def __init__(self, shift_and_log_scale: mx.array): + self.shift_and_log_scale = shift_and_log_scale + + def forward_and_log_det(self, x: mx.array): + shift, log_scale = mx.split(self.shift_and_log_scale, 2, axis=-1) + y = x * mx.exp(log_scale) + shift + log_det = log_scale + return y, log_det + + def inverse_and_log_det(self, y: mx.array): + shift, log_scale = mx.split(self.shift_and_log_scale, 2, axis=-1) + x = (y - shift) * mx.exp(-log_scale) + log_det = -log_scale + return x, log_det + + +class MaskedCoupling(Bijector): + def __init__(self, mask: mx.array, conditioner: nn.Module, bijector: Bijector): + """Coupling layer with masking and conditioner.""" + self.mask = mask + self.conditioner = conditioner + self.bijector = bijector + + def apply_mask(self, x: mx.array, func: callable): + """Transforms masked indices of `x` conditioned on unmasked indices using `func`.""" + x_masked = mx.where(self.mask, 0.0, x) + bijector_params = self.conditioner(x_masked) + y, log_det = func(bijector_params) + log_det = mx.where(self.mask, log_det, 0.0) + y = mx.where(self.mask, y, x) + return y, mx.sum(log_det, axis=-1) + + def forward_and_log_det(self, x: mx.array): + """Transforms masked indices of `x` conditioned on unmasked indices using bijector.""" + return self.apply_mask( + x, lambda params: self.bijector(params).forward_and_log_det(x) + ) + + def inverse_and_log_det(self, y: mx.array): + """Transforms masked indices of `y` conditioned on unmasked indices using bijector.""" + return self.apply_mask( + y, lambda params: self.bijector(params).inverse_and_log_det(y) + ) diff --git a/normalizing_flow/distributions.py b/normalizing_flow/distributions.py new file mode 100644 index 00000000..2199a4a8 --- /dev/null +++ b/normalizing_flow/distributions.py @@ -0,0 +1,31 @@ +# Copyright © 2023-2024 Apple Inc. + +from typing import Tuple, Optional, Union +import math + +import mlx.core as mx + + +class Normal: + def __init__(self, mu: mx.array, sigma: mx.array): + super().__init__() + self.mu = mu + self.sigma = sigma + + def sample( + self, sample_shape: Union[int, Tuple[int, ...]], key: Optional[mx.array] = None + ): + return mx.random.normal(sample_shape, key=key) * self.sigma + self.mu + + def log_prob(self, x: mx.array): + return ( + -0.5 * math.log(2 * math.pi) + - mx.log(self.sigma) + - 0.5 * ((x - self.mu) / self.sigma) ** 2 + ) + + def sample_and_log_prob( + self, sample_shape: Union[int, Tuple[int, ...]], key: Optional[mx.array] = None + ): + x = self.sample(sample_shape, key=key) + return x, self.log_prob(x) diff --git a/normalizing_flow/flows.py b/normalizing_flow/flows.py new file mode 100644 index 00000000..0fbd550b --- /dev/null +++ b/normalizing_flow/flows.py @@ -0,0 +1,76 @@ +# Copyright © 2023-2024 Apple Inc. + +from typing import Tuple, Optional, Union + +import mlx.core as mx +import mlx.nn as nn + +from bijectors import MaskedCoupling, AffineBijector +from distributions import Normal + + +class MLP(nn.Module): + def __init__(self, n_layers: int, d_in: int, d_hidden: int, d_out: int): + super().__init__() + layer_sizes = [d_in] + [d_hidden] * n_layers + [d_out] + self.layers = [ + nn.Linear(idim, odim) + for idim, odim in zip(layer_sizes[:-1], layer_sizes[1:]) + ] + + def __call__(self, x): + for l in self.layers[:-1]: + x = nn.gelu(l(x)) + return self.layers[-1](x) + + +class RealNVP(nn.Module): + def __init__(self, n_transforms: int, d_params: int, d_hidden: int, n_layers: int): + super().__init__() + + # Alternating masks + self.mask_list = [mx.arange(d_params) % 2 == i % 2 for i in range(n_transforms)] + self.mask_list = [mask.astype(mx.bool_) for mask in self.mask_list] + + self.freeze(keys=["mask_list"]) + + # Conditioning MLP + self.conditioner_list = [ + MLP(n_layers, d_params, d_hidden, 2 * d_params) for _ in range(n_transforms) + ] + + self.base_dist = Normal(mx.zeros(d_params), mx.ones(d_params)) + + def log_prob(self, x: mx.array): + """ + Flow back to the primal Gaussian and compute log-density, + adding the transformation log-determinant along the way. + """ + log_prob = mx.zeros(x.shape[0]) + for mask, conditioner in zip(self.mask_list[::-1], self.conditioner_list[::-1]): + x, ldj = MaskedCoupling( + mask, conditioner, AffineBijector + ).inverse_and_log_det(x) + log_prob += ldj + return log_prob + self.base_dist.log_prob(x).sum(-1) + + def sample( + self, + sample_shape: Union[int, Tuple[int, ...]], + key: Optional[mx.array] = None, + n_transforms: Optional[int] = None, + ): + """ + Sample from the primal Gaussian and flow towards the target distribution. + """ + x = self.base_dist.sample(sample_shape, key=key) + for mask, conditioner in zip( + self.mask_list[:n_transforms], self.conditioner_list[:n_transforms] + ): + x, _ = MaskedCoupling( + mask, conditioner, AffineBijector + ).forward_and_log_det(x) + return x + + def __call__(self, x: mx.array): + return self.log_prob(x) diff --git a/normalizing_flow/main.py b/normalizing_flow/main.py new file mode 100644 index 00000000..0d3cfe56 --- /dev/null +++ b/normalizing_flow/main.py @@ -0,0 +1,115 @@ +# Copyright © 2023-2024 Apple Inc. + +from tqdm import trange +import numpy as np +from sklearn import datasets, preprocessing +import matplotlib.pyplot as plt + +import mlx.core as mx +import mlx.nn as nn +import mlx.optimizers as optim + +from flows import RealNVP + + +def get_moons_dataset(n_samples=100_000, noise=0.06): + """Get two moons dataset with given noise level.""" + x, _ = datasets.make_moons(n_samples=n_samples, noise=noise) + scaler = preprocessing.StandardScaler() + x = scaler.fit_transform(x) + return x + + +def main(args): + x = get_moons_dataset(n_samples=100_000, noise=args.noise) + + model = RealNVP(args.n_transforms, args.d_params, args.d_hidden, args.n_layers) + mx.eval(model.parameters()) + + def loss_fn(model, x): + return -mx.mean(model(x)) + + loss_and_grad_fn = nn.value_and_grad(model, loss_fn) + optimizer = optim.Adam(learning_rate=args.learning_rate) + + with trange(args.n_steps) as steps: + for step in steps: + idx = np.random.choice(x.shape[0], replace=False, size=args.n_batch) + loss, grads = loss_and_grad_fn(model, mx.array(x[idx])) + + optimizer.update(model, grads) + mx.eval(model.parameters()) + + steps.set_postfix(val=loss) + + # Plot samples from trained flow + + fig, axs = plt.subplots(1, args.n_transforms + 2, figsize=(26, 4)) + cmap = plt.get_cmap("Blues") + bins = 100 + + # Sample from intermediate flow-transformed distributions + for n_transforms in range(args.n_transforms + 1): + x_samples = model.sample((100_000, 2), n_transforms=n_transforms) + + axs[n_transforms].hist2d(x_samples[:, 0], x_samples[:, 1], bins=bins, cmap=cmap) + axs[n_transforms].set_xlim(-2, 2) + axs[n_transforms].set_ylim(-2, 2) + axs[n_transforms].set_title( + f"{n_transforms} transforms" if n_transforms > 0 else "Base distribution" + ) + axs[n_transforms].set_xticklabels([]) + axs[n_transforms].set_yticklabels([]) + + # Plot original data + axs[-1].hist2d(x[:, 0], x[:, 1], bins=bins, cmap=cmap) + axs[-1].set_xlim(-2, 2) + axs[-1].set_ylim(-2, 2) + axs[-1].set_title("Original data") + axs[-1].set_xticklabels([]) + axs[-1].set_yticklabels([]) + + plt.tight_layout() + plt.savefig("samples.png") + + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument( + "--n_steps", type=int, default=5_000, help="Number of steps to train" + ) + parser.add_argument("--n_batch", type=int, default=64, help="Batch size") + parser.add_argument( + "--n_transforms", type=int, default=6, help="Number of flow transforms" + ) + parser.add_argument( + "--d_params", type=int, default=2, help="Dimensionality of modeled distribution" + ) + parser.add_argument( + "--d_hidden", + type=int, + default=128, + help="Hidden dimensionality of coupling conditioner", + ) + parser.add_argument( + "--n_layers", + type=int, + default=4, + help="Number of layers in coupling conditioner", + ) + parser.add_argument( + "--learning_rate", type=float, default=3e-4, help="Learning rate" + ) + parser.add_argument( + "--noise", type=float, default=0.06, help="Noise level in two moons dataset" + ) + parser.add_argument("--cpu", action="store_true") + + args = parser.parse_args() + + if args.cpu: + mx.set_default_device(mx.cpu) + + main(args) diff --git a/normalizing_flow/requirements.txt b/normalizing_flow/requirements.txt new file mode 100644 index 00000000..5b335764 --- /dev/null +++ b/normalizing_flow/requirements.txt @@ -0,0 +1,5 @@ +mlx +numpy +tqdm +scikit-learn +matplotlib \ No newline at end of file diff --git a/normalizing_flow/samples.png b/normalizing_flow/samples.png new file mode 100644 index 0000000000000000000000000000000000000000..9a26891b3da9f8502892715636523d92519016a8 GIT binary patch literal 72789 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 literal 0 HcmV?d00001