From 1bb964d8054135a7731592455704d600d6e9daf8 Mon Sep 17 00:00:00 2001 From: James Melville Date: Sat, 16 Mar 2024 22:11:31 -0700 Subject: [PATCH 01/20] initial rnndescent support --- DESCRIPTION | 1 + R/neighbors.R | 11 ++++++++ R/nn_nndescent.R | 72 ++++++++++++++++++++++++++++++++++++++++++++++++ R/transform.R | 18 ++++++++++++ R/uwot.R | 63 +++++++++++++++++++++++++++++++++--------- 5 files changed, 152 insertions(+), 13 deletions(-) create mode 100644 R/nn_nndescent.R diff --git a/DESCRIPTION b/DESCRIPTION index 4e42624f..fe278753 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -36,6 +36,7 @@ Suggests: knitr, RcppHNSW, rmarkdown, + rnndescent, RSpectra, testthat LinkingTo: diff --git a/R/neighbors.R b/R/neighbors.R index 2c03a637..eb693ca5 100644 --- a/R/neighbors.R +++ b/R/neighbors.R @@ -85,6 +85,17 @@ find_nn <- function(X, k, include_self = TRUE, method = "fnn", verbose = verbose ) }, + "nndescent" = { + res <- nndescent_nn( + X, + k = k, + metric = metric, + nn_args = nn_args, + n_threads = n_threads, + ret_index = ret_index, + verbose = verbose + ) + }, stop("Unknown method: ", method) ) } diff --git a/R/nn_nndescent.R b/R/nn_nndescent.R new file mode 100644 index 00000000..d6191d0b --- /dev/null +++ b/R/nn_nndescent.R @@ -0,0 +1,72 @@ +nndescent_nn <- function(X, + k = 10, + metric = "euclidean", + nn_args = list(), + n_threads = NULL, + ret_index = FALSE, + verbose = FALSE) { + if (is.null(n_threads)) { + n_threads <- default_num_threads() + } + + if (!ret_index) { + nn_args$data <- X + nn_args$k <- k + nn_args$metric <- metric + nn_args$n_threads <- n_threads + nn_args$verbose <- verbose + return(do.call(rnndescent::rnnd_knn, nn_args)) + } + + ann <- nndescent_build( + X, + k, + metric, + nn_args = nn_args, + n_threads = n_threads, + verbose = verbose + ) + res <- + list( + idx = ann$ann$graph$idx, + dist = ann$ann$graph$dist, + index = ann + ) + res$index$ann$ann$graph <- NULL + res +} + +nndescent_build <- function(X, + k, + metric, + nn_args = list(), + n_threads = NULL, + verbose = FALSE) { + nn_args$data <- X + nn_args$k <- k + nn_args$metric <- metric + nn_args$n_threads <- n_threads + nn_args$verbose <- verbose + index <- do.call(rnndescent::rnnd_build, nn_args) + list( + ann = index, + type = "nndescentv1", + metric = metric, + ndim = ncol(X) + ) +} + + +nndescent_search <- function(X, + k, + ann, + nn_args = list(), + n_threads = NULL, + verbose = FALSE) { + nn_args$index <- ann$ann + nn_args$query <- X + nn_args$k <- k + nn_args$n_threads <- n_threads + nn_args$verbose <- verbose + do.call(rnndescent::rnnd_query, nn_args) +} diff --git a/R/transform.R b/R/transform.R index 25f461ac..8199161b 100644 --- a/R/transform.R +++ b/R/transform.R @@ -244,6 +244,13 @@ umap_transform <- function(X = NULL, model = NULL, ) } + if (is.character(model$nn_method) && + model$nn_method == "nndescent" && !is_installed("rnndescent")) { + stop( + "This model requires the rnndescent package to be installed." + ) + } + if (is.null(n_epochs)) { n_epochs <- model$n_epochs if (is.null(n_epochs)) { @@ -562,6 +569,17 @@ umap_transform <- function(X = NULL, model = NULL, nn$dist <- sqrt(nn$dist) } } + else if (startsWith(ann$type, "nndescent")) { + # FIXME: nn_args for query only + nn <- + nndescent_search( + X, + k = n_neighbors, + ann = ann, + n_threads = n_threads, + verbose = verbose + ) + } else { stop("Unknown nn method: ", ann$type) } diff --git a/R/uwot.R b/R/uwot.R index fab17834..4441bf7d 100644 --- a/R/uwot.R +++ b/R/uwot.R @@ -2656,6 +2656,13 @@ uwot <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", } } + if (is.character(nn_method) && nn_method == "nndescent") { + if (!is_installed("rnndescent")) { + stop("rnndescent is required for nn_method = 'nndescent',", + "please install it") + } + } + ret_extra <- ret_model || ret_nn || ret_fgraph || ret_sigma || ret_localr # Store categorical columns to be used to generate the graph @@ -3230,7 +3237,7 @@ uwot <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", # of them, but for loading the NN index we need the number of # columns explicitly (we don't have access to the column dimension of # the input data at load time) - if (res$nn_index$type %in% c("annoyv2", "hnswv1")) { + if (res$nn_index$type %in% c("annoyv2", "hnswv1", "nndescentv1")) { res$metric[[1]] <- list(ndim = res$nn_index$ndim) } else { @@ -3391,12 +3398,33 @@ save_uwot <- function(model, file, unload = FALSE, verbose = FALSE) { # save each nn index inside tempdir/uwot/model metrics <- names(model$metric) n_metrics <- length(metrics) + for (i in 1:n_metrics) { - nn_tmpfname <- file.path(uwot_dir, paste0("nn", i)) if (n_metrics == 1) { - model$nn_index$ann$save(nn_tmpfname) - } else { - model$nn_index[[i]]$ann$save(nn_tmpfname) + nn_index <- model$nn_index + } + else { + nn_index <- model$nn_index[[i]] + } + + if (startsWith(nn_index$type, "annoy") || + startsWith(nn_index$type, "hnsw")) { + + nn_tmpfname <- file.path(uwot_dir, paste0("nn", i)) + nn_meta_tmpfname <- file.path(uwot_dir, paste0("nn-meta", i)) + nn_index$ann$save(nn_tmpfname) + + # save metadata wrapper around the index separately + meta_data <- nn_index + meta_data$ann <- NULL + saveRDS(meta_data, file = nn_meta_tmpfname) + } + else if (startsWith(nn_index$type, "nndescent")) { + nn_tmpfname <- file.path(uwot_dir, paste0("nn", i)) + saveRDS(nn_index, file = nn_tmpfname) + } + else { + stop("unsupported nn index type: ", model$nn_index$type) } } @@ -3552,13 +3580,18 @@ load_uwot <- function(file, verbose = FALSE) { } else if (nn_method == "hnsw") { ann <- hnsw_load(metric, ndim = ndim, filename = nn_fname) - idx <- - list( - ann = ann, - type = "hnswv1", - metric = metric, - ndim = ndim - ) + nn_meta_tmpfname <- file.path(mod_dir, paste0("uwot/nn-meta", i)) + idx <- readRDS(nn_meta_tmpfname) + idx$ann <- ann + + if (n_metrics == 1) { + model$nn_index <- idx + } else { + model$nn_index[[i]] <- idx + } + } + else if (nn_method == "nndescent") { + idx <- readRDS(nn_fname) if (n_metrics == 1) { model$nn_index <- idx } else { @@ -3682,6 +3715,9 @@ all_nn_indices_are_loaded <- function(model) { else if (model$nn_index$type == "hnswv1") { return(TRUE) } + else if (model$nn_index$type == "nndescentv1") { + return(TRUE) + } else { stop("Invalid model: has unknown 'nn_index' type ", model$nn_index$type) } @@ -3936,7 +3972,8 @@ x2nn <- function(X, n_neighbors, metric, nn_method, nn <- nn_method } else { nn_method <- - match.arg(tolower(nn_method), c("annoy", "fnn", "matrix", "hnsw")) + match.arg(tolower(nn_method), + c("annoy", "fnn", "matrix", "hnsw", "nndescent")) if (nn_method == "fnn" && metric != "euclidean") { stop( "nn_method = 'FNN' is only compatible with distance metric ", From 51c25ac9669352ecd08a5c8f67c5d95b36f1e60d Mon Sep 17 00:00:00 2001 From: James Melville Date: Sun, 17 Mar 2024 15:42:46 -0700 Subject: [PATCH 02/20] nndescent tests --- tests/testthat/test_neighbors.R | 258 ++++++++++++++++++++++++++++++++ tests/testthat/test_saveload.R | 60 ++++++++ 2 files changed, 318 insertions(+) diff --git a/tests/testthat/test_neighbors.R b/tests/testthat/test_neighbors.R index b1c32e33..1059784c 100644 --- a/tests/testthat/test_neighbors.R +++ b/tests/testthat/test_neighbors.R @@ -475,3 +475,261 @@ test_that("hnsw gives correct correlation neighbor results and multiple threads" tol = 1e-6 ) }) + +# rnndescent + +test_that("nndescent gives correct euclidean neighbor results", { + testthat::skip_if_not_installed("rnndescent") + iris10_annoy <- + umap( + iris10, + n_neighbors = 4, + nn_method = "annoy", + ret_extra = c("nn"), + ret_model = TRUE, + n_epochs = 0 + ) + iris10_nnd <- + umap( + iris10, + n_neighbors = 4, + nn_method = "nndescent", + ret_extra = c("nn"), + ret_model = TRUE, + n_epochs = 0 + ) + expect_equal(iris10_annoy$nn$euclidean$idx, + iris10_nnd$nn$euclidean$idx, + check.attributes = FALSE) + expect_equal(iris10_annoy$nn$euclidean$dist, + iris10_nnd$nn$euclidean$dist, + check.attributes = FALSE, + tol = 1e-7) + + iris10_transform_nnd <- + umap_transform(iris10, + iris10_nnd, + n_epochs = 0, + ret_extra = c("nn")) + expect_equal( + iris10_nnd$nn$euclidean$idx, + iris10_transform_nnd$nn$euclidean$idx, + check.attributes = FALSE + ) + expect_equal( + iris10_nnd$nn$euclidean$dist, + iris10_transform_nnd$nn$euclidean$dist, + check.attributes = FALSE + ) + + iris10_transform_annoy <- + umap_transform(iris10, + iris10_annoy, + n_epochs = 0, + ret_extra = c("nn")) + expect_equal( + iris10_transform_annoy$nn$euclidean$idx, + iris10_transform_nnd$nn$euclidean$idx, + check.attributes = FALSE + ) + expect_equal( + iris10_transform_annoy$nn$euclidean$dist, + iris10_transform_nnd$nn$euclidean$dist, + check.attributes = FALSE, + tol = 1e-6 + ) +}) + +test_that("nndescent gives correct cosine neighbor results", { + testthat::skip_if_not_installed("rnndescent") + iris10_annoy <- + umap( + iris10, + n_neighbors = 4, + nn_method = "annoy", + ret_extra = c("nn"), + ret_model = TRUE, + n_epochs = 0, + metric = "cosine" + ) + iris10_nnd <- + umap( + iris10, + n_neighbors = 4, + nn_method = "nndescent", + ret_extra = c("nn"), + ret_model = TRUE, + n_epochs = 0, + metric = "cosine" + ) + expect_equal(iris10_annoy$nn$cosine$idx, + iris10_nnd$nn$cosine$idx, + check.attributes = FALSE) + expect_equal(iris10_annoy$nn$cosine$dist, + iris10_nnd$nn$cosine$dist, + check.attributes = FALSE, + tol = 1e-6) + + iris10_transform_nnd <- + umap_transform(iris10, + iris10_nnd, + n_epochs = 0, + ret_extra = c("nn")) + expect_equal( + iris10_nnd$nn$cosine$idx, + iris10_transform_nnd$nn$cosine$idx, + check.attributes = FALSE + ) + expect_equal( + iris10_nnd$nn$cosine$dist, + iris10_transform_nnd$nn$cosine$dist, + check.attributes = FALSE + ) + + iris10_transform_annoy <- + umap_transform(iris10, + iris10_annoy, + n_epochs = 0, + ret_extra = c("nn")) + expect_equal( + iris10_transform_annoy$nn$cosine$idx, + iris10_transform_nnd$nn$cosine$idx, + check.attributes = FALSE + ) + expect_equal( + iris10_transform_annoy$nn$cosine$dist, + iris10_transform_nnd$nn$cosine$dist, + check.attributes = FALSE, + tol = 1e-6 + ) +}) + +test_that("nndescent gives correct correlation neighbor results", { + testthat::skip_if_not_installed("rnndescent") + iris10_annoy <- + umap( + iris10, + n_neighbors = 4, + nn_method = "annoy", + ret_extra = c("nn"), + ret_model = TRUE, + n_epochs = 0, + metric = "correlation" + ) + iris10_nnd <- + umap( + iris10, + n_neighbors = 4, + nn_method = "nndescent", + ret_extra = c("nn"), + ret_model = TRUE, + n_epochs = 0, + metric = "correlation" + ) + expect_equal(iris10_annoy$nn$correlation$idx, + iris10_nnd$nn$correlation$idx, + check.attributes = FALSE) + expect_equal(iris10_annoy$nn$correlation$dist, + iris10_nnd$nn$correlation$dist, + check.attributes = FALSE, + tol = 1e-6) + + iris10_transform_nnd <- + umap_transform(iris10, + iris10_nnd, + n_epochs = 0, + ret_extra = c("nn")) + expect_equal( + iris10_nnd$nn$correlation$idx, + iris10_transform_nnd$nn$correlation$idx, + check.attributes = FALSE + ) + expect_equal( + iris10_nnd$nn$correlation$dist, + iris10_transform_nnd$nn$correlation$dist, + check.attributes = FALSE + ) + + iris10_transform_annoy <- + umap_transform(iris10, + iris10_annoy, + n_epochs = 0, + ret_extra = c("nn")) + expect_equal( + iris10_transform_annoy$nn$correlation$idx, + iris10_transform_nnd$nn$correlation$idx, + check.attributes = FALSE + ) + expect_equal( + iris10_transform_annoy$nn$correlation$dist, + iris10_transform_nnd$nn$correlation$dist, + check.attributes = FALSE, + tol = 1e-6 + ) +}) + +test_that("nndescent gives correct correlation neighbor results and multiple threads", { + testthat::skip_if_not_installed("rnndescent") + iris10_annoy <- + umap( + iris10, + n_neighbors = 4, + nn_method = "annoy", + ret_extra = c("nn"), + ret_model = TRUE, + n_epochs = 0, + metric = "correlation" + ) + iris10_nnd <- + umap( + iris10, + n_neighbors = 4, + nn_method = "nndescent", + ret_extra = c("nn"), + ret_model = TRUE, + n_epochs = 0, + metric = "correlation", + n_threads = 2 + ) + expect_equal(iris10_annoy$nn$correlation$idx, + iris10_nnd$nn$correlation$idx, + check.attributes = FALSE) + expect_equal(iris10_annoy$nn$correlation$dist, + iris10_nnd$nn$correlation$dist, + check.attributes = FALSE, + tol = 1e-6) + + iris10_transform_nnd <- + umap_transform(iris10, + iris10_nnd, + n_epochs = 0, + ret_extra = c("nn"), + n_threads = 2) + expect_equal( + iris10_nnd$nn$correlation$idx, + iris10_transform_nnd$nn$correlation$idx, + check.attributes = FALSE + ) + expect_equal( + iris10_nnd$nn$correlation$dist, + iris10_transform_nnd$nn$correlation$dist, + check.attributes = FALSE + ) + + iris10_transform_annoy <- + umap_transform(iris10, + iris10_annoy, + n_epochs = 0, + ret_extra = c("nn")) + expect_equal( + iris10_transform_annoy$nn$correlation$idx, + iris10_transform_nnd$nn$correlation$idx, + check.attributes = FALSE + ) + expect_equal( + iris10_transform_annoy$nn$correlation$dist, + iris10_transform_nnd$nn$correlation$dist, + check.attributes = FALSE, + tol = 1e-6 + ) +}) diff --git a/tests/testthat/test_saveload.R b/tests/testthat/test_saveload.R index 7445222e..46d74b52 100644 --- a/tests/testthat/test_saveload.R +++ b/tests/testthat/test_saveload.R @@ -249,3 +249,63 @@ test_that("save-load hnsw", { transformed_after_reload$embedding ) }) + +test_that("save-load nndescent", { + testthat::skip_if_not_installed("rnndescent") + set.seed(1337) + model <- umap(iris10, + n_neighbors = 4, n_epochs = 2, init = "spca", + metric = "euclidean", verbose = FALSE, n_threads = 0, + ret_model = TRUE, ret_extra = c("nn"), nn_method = "nndescent" + ) + expect_equal(model$nn_method, "nndescent") + + set.seed(1337) + transformed_before_reload <- + umap_transform(iris10, + model, + n_epochs = 2, + ret_extra = c("nn") + ) + + mod_fname <- tempfile(tmpdir = tempdir()) + model <- save_uwot(model, file = mod_fname, unload = TRUE) + + modelload <- load_uwot(file = mod_fname) + + expect_equal(modelload$nn_method, "nndescent") + + set.seed(1337) + transformed_after_reload <- + umap_transform(iris10, + modelload, + n_epochs = 2, + ret_extra = c("nn") + ) + + if (file.exists(mod_fname)) { + unlink(mod_fname) + } + expect_true(file.exists(modelload$mod_dir)) + unload_uwot(modelload) + expect_false(file.exists(modelload$mod_dir)) + + expect_equal(model$nn$euclidean$idx, modelload$nn$euclidean$idx) + expect_equal(model$nn$euclidean$dist, modelload$nn$euclidean$dist) + + expect_equal( + transformed_before_reload$nn$euclidean$idx, + transformed_after_reload$nn$euclidean$idx, + ) + expect_equal( + transformed_before_reload$nn$euclidean$dist, + transformed_after_reload$nn$euclidean$dist, + check.attributes = FALSE, + tol = 1e-7 + ) + + expect_equal( + transformed_before_reload$embedding, + transformed_after_reload$embedding + ) +}) From d38fccba7747e9f13e9c9724a201c2c92d44249e Mon Sep 17 00:00:00 2001 From: James Melville Date: Sun, 17 Mar 2024 16:32:17 -0700 Subject: [PATCH 03/20] Pass args to knn/build/query --- R/neighbors.R | 42 +++--------- R/nn_nndescent.R | 114 +++++++++++++++++++++++++++----- R/transform.R | 2 +- tests/testthat/test_neighbors.R | 43 ++++++++++++ tests/testthat/test_saveload.R | 29 ++++++++ 5 files changed, 177 insertions(+), 53 deletions(-) diff --git a/R/neighbors.R b/R/neighbors.R index eb693ca5..ba84e164 100644 --- a/R/neighbors.R +++ b/R/neighbors.R @@ -50,40 +50,14 @@ find_nn <- function(X, k, include_self = TRUE, method = "fnn", ) }, "hnsw" = { - nn_args_names <- names(nn_args) - - if ("M" %in% nn_args_names) { - M <- nn_args$M - } - else { - M <- 16 - } - - if ("ef_construction" %in% nn_args_names) { - ef_construction <- nn_args$ef_construction - } - else { - ef_construction <- 200 - } - - if ("ef" %in% nn_args_names) { - ef <- nn_args$ef - } - else { - ef <- 10 - } - - res <- hnsw_nn( - X, - k = k, - metric = metric, - M = M, - ef_construction = ef_construction, - ef = ef, - n_threads = n_threads, - ret_index = ret_index, - verbose = verbose - ) + nn_args$X <- X + nn_args$k <- k + nn_args$metric <- metric + nn_args$n_threads <- n_threads + nn_args$verbose <- verbose + nn_args$ret_index <- ret_index + + res <- do.call(hnsw_nn, nn_args) }, "nndescent" = { res <- nndescent_nn( diff --git a/R/nn_nndescent.R b/R/nn_nndescent.R index d6191d0b..2e5a0cea 100644 --- a/R/nn_nndescent.R +++ b/R/nn_nndescent.R @@ -10,12 +10,16 @@ nndescent_nn <- function(X, } if (!ret_index) { - nn_args$data <- X - nn_args$k <- k - nn_args$metric <- metric - nn_args$n_threads <- n_threads - nn_args$verbose <- verbose - return(do.call(rnndescent::rnnd_knn, nn_args)) + nn_knn_args <- get_nndescent_knn_args(nn_args) + nn_knn_args <- lreplace( + nn_knn_args, + data = X, + k = k, + metric = metric, + n_threads = n_threads, + verbose = verbose + ) + return(do.call(rnndescent::rnnd_knn, nn_knn_args)) } ann <- nndescent_build( @@ -42,12 +46,17 @@ nndescent_build <- function(X, nn_args = list(), n_threads = NULL, verbose = FALSE) { - nn_args$data <- X - nn_args$k <- k - nn_args$metric <- metric - nn_args$n_threads <- n_threads - nn_args$verbose <- verbose - index <- do.call(rnndescent::rnnd_build, nn_args) + nn_build_args <- get_nndescent_build_args(nn_args) + nn_build_args <- lreplace( + nn_build_args, + data = X, + k = k, + metric = metric, + n_threads = n_threads, + verbose = verbose + ) + + index <- do.call(rnndescent::rnnd_build, nn_build_args) list( ann = index, type = "nndescentv1", @@ -63,10 +72,79 @@ nndescent_search <- function(X, nn_args = list(), n_threads = NULL, verbose = FALSE) { - nn_args$index <- ann$ann - nn_args$query <- X - nn_args$k <- k - nn_args$n_threads <- n_threads - nn_args$verbose <- verbose - do.call(rnndescent::rnnd_query, nn_args) + nn_query_args <- get_nndescent_query_args(nn_args) + nn_query_args <- lreplace( + nn_query_args, + index = ann$ann, + query = X, + k = k, + n_threads = n_threads, + verbose = verbose + ) + + do.call(rnndescent::rnnd_query, nn_query_args) +} + +get_nndescent_knn_args <- function(nn_args) { + nn_knn_args <- list() + nnd_knn_names <- c( + "use_alt_metric", + "init", + "n_trees", + "leaf_size", + "max_tree_depth", + "margin", + "n_iters", + "delta", + "max_candidates", + "weight_by_degree", + "low_memory" + ) + for (name in nnd_knn_names) { + if (name %in% names(nn_args)) { + nn_knn_args[[name]] <- nn_args[[name]] + } + } + nn_knn_args +} + +get_nndescent_build_args <- function(nn_args) { + nn_build_args <- list() + nnd_build_names <- c( + "use_alt_metric", + "init", + "n_trees", + "leaf_size", + "max_tree_depth", + "margin", + "n_iters", + "delta", + "max_candidates", + "weight_by_degree", + "low_memory", + "n_search_trees", + "pruning_degree_multiplier", + "diversify_prob", + "prune_reverse" + ) + for (name in nnd_build_names) { + if (name %in% names(nn_args)) { + nn_build_args[[name]] <- nn_args[[name]] + } + } + nn_build_args +} + +get_nndescent_query_args <- function(nn_args) { + nn_query_args <- list() + nnd_query_names <- c( + "epsilon", + "max_search_fraction" + ) + for (name in nnd_query_names) { + if (name %in% names(nn_args)) { + nn_query_args[[name]] <- nn_args[[name]] + } + } + nn_query_args } diff --git a/R/transform.R b/R/transform.R index 8199161b..a7d69def 100644 --- a/R/transform.R +++ b/R/transform.R @@ -570,12 +570,12 @@ umap_transform <- function(X = NULL, model = NULL, } } else if (startsWith(ann$type, "nndescent")) { - # FIXME: nn_args for query only nn <- nndescent_search( X, k = n_neighbors, ann = ann, + nn_args = model$nn_args, n_threads = n_threads, verbose = verbose ) diff --git a/tests/testthat/test_neighbors.R b/tests/testthat/test_neighbors.R index 1059784c..3fb8b924 100644 --- a/tests/testthat/test_neighbors.R +++ b/tests/testthat/test_neighbors.R @@ -489,6 +489,23 @@ test_that("nndescent gives correct euclidean neighbor results", { ret_model = TRUE, n_epochs = 0 ) + iris10_nnd_no_model <- + umap( + iris10, + n_neighbors = 4, + nn_method = "nndescent", + ret_extra = c("nn"), + ret_model = FALSE, + n_epochs = 0 + ) + expect_equal(iris10_annoy$nn$euclidean$idx, + iris10_nnd_no_model$nn$euclidean$idx, + check.attributes = FALSE) + expect_equal(iris10_annoy$nn$euclidean$dist, + iris10_nnd_no_model$nn$euclidean$dist, + check.attributes = FALSE, + tol = 1e-7) + iris10_nnd <- umap( iris10, @@ -732,4 +749,30 @@ test_that("nndescent gives correct correlation neighbor results and multiple thr check.attributes = FALSE, tol = 1e-6 ) + + model_with_args <- umap( + iris10, + n_neighbors = 4, + n_epochs = 2, + init = "spca", + metric = "euclidean", + verbose = FALSE, + n_threads = 0, + ret_model = TRUE, + ret_extra = c("nn"), + nn_method = "nndescent", + nn_args = list( + init = "rand", + prune_reverse = TRUE, + epsilon = 0.0 + ) + ) + expect_equal( + model_with_args$nn_args, + list( + init = "rand", + prune_reverse = TRUE, + epsilon = 0 + ) + ) }) diff --git a/tests/testthat/test_saveload.R b/tests/testthat/test_saveload.R index 46d74b52..c7cff780 100644 --- a/tests/testthat/test_saveload.R +++ b/tests/testthat/test_saveload.R @@ -308,4 +308,33 @@ test_that("save-load nndescent", { transformed_before_reload$embedding, transformed_after_reload$embedding ) + + mod_fname2 <- tempfile(tmpdir = tempdir()) + saveRDS(modelload, mod_fname2) + modelload2 <- readRDS(mod_fname2) + expect_equal(modelload2$nn_method, "nndescent") + set.seed(1337) + transformed_after_reload2 <- + umap_transform(iris10, + modelload2, + n_epochs = 2, + ret_extra = c("nn") + ) + expect_equal( + transformed_after_reload$nn$euclidean$idx, + transformed_after_reload2$nn$euclidean$idx, + ) + expect_equal( + transformed_after_reload$nn$euclidean$dist, + transformed_after_reload2$nn$euclidean$dist, + check.attributes = FALSE, + tol = 1e-7 + ) + expect_equal( + transformed_after_reload$embedding, + transformed_after_reload2$embedding + ) + if (file.exists(mod_fname2)) { + unlink(mod_fname2) + } }) From d8ee1b4a38f2c3a918447c2fe1266d969e369b65 Mon Sep 17 00:00:00 2001 From: James Melville Date: Sun, 17 Mar 2024 17:21:59 -0700 Subject: [PATCH 04/20] doc clean up: add HNSW reference --- R/uwot.R | 192 +++++++++++++++++++++++++++++------ man/lvish.Rd | 66 ++++++++++-- man/optimize_graph_layout.Rd | 5 + man/similarity_graph.Rd | 13 ++- man/tumap.Rd | 74 ++++++++++++-- man/umap.Rd | 17 +++- 6 files changed, 309 insertions(+), 58 deletions(-) diff --git a/R/uwot.R b/R/uwot.R index 4441bf7d..d9f5fe18 100644 --- a/R/uwot.R +++ b/R/uwot.R @@ -1,7 +1,7 @@ #' Dimensionality Reduction with UMAP #' #' Carry out dimensionality reduction of a dataset using the Uniform Manifold -#' Approximation and Projection (UMAP) method (McInnes & Healy, 2018). Some of +#' Approximation and Projection (UMAP) method (McInnes et al., 2018). Some of #' the following help text is lifted verbatim from the Python reference #' implementation at \url{https://github.com/lmcinnes/umap}. #' @@ -178,11 +178,13 @@ #' \href{https://cran.r-project.org/package=FNN}{FNN} package. #' \item \code{"annoy"} Use approximate nearest neighbors via the #' \href{https://cran.r-project.org/package=RcppAnnoy}{RcppAnnoy} package. -#' \item \code{"hnsw"} Use approximate nearest neighbors via the +#' \item \code{"hnsw"} Use approximate nearest neighbors with the +#' Hierarchical Navigable Small World (HNSW) method (Malkov and Yashunin, +#' 2018) via the #' \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} package. #' \code{RcppHNSW} is not a dependency of this package: this option is -#' only available if you have installed \code{RcppHNSW} yourself. Only -#' Also, HNSW only supports the following arguments for \code{metric} and +#' only available if you have installed \code{RcppHNSW} yourself. Also, +#' HNSW only supports the following arguments for \code{metric} and #' \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and #' \code{"correlation"}. #' } @@ -544,7 +546,12 @@ #' \emph{arXiv preprint} \emph{arXiv}:1412.6980. #' \url{https://arxiv.org/abs/1412.6980} #' -#' McInnes, L., & Healy, J. (2018). +#' Malkov, Y. A., & Yashunin, D. A. (2018). +#' Efficient and robust approximate nearest neighbor search using hierarchical +#' navigable small world graphs. +#' \emph{IEEE transactions on pattern analysis and machine intelligence}, \emph{42}(4), 824-836. +#' +#' McInnes, L., Healy, J., & Melville, J. (2018). #' UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction #' \emph{arXiv preprint} \emph{arXiv}:1802.03426. #' \url{https://arxiv.org/abs/1802.03426} @@ -642,13 +649,14 @@ umap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", #' Dimensionality Reduction Using t-Distributed UMAP (t-UMAP) #' -#' A faster (but less flexible) version of the UMAP gradient. For more detail on -#' UMAP, see the \code{\link{umap}} function. +#' A faster (but less flexible) version of the UMAP (McInnes et al, 2018) +#' gradient. For more detail on UMAP, see the \code{\link{umap}} function. #' #' By setting the UMAP curve parameters \code{a} and \code{b} to \code{1}, you -#' get back the Cauchy distribution as used in t-SNE and LargeVis. It also -#' results in a substantially simplified gradient expression. This can give -#' a speed improvement of around 50\%. +#' get back the Cauchy distribution as used in t-SNE (van der Maaten and Hinton, +#' 2008) and LargeVis (Tang et al., 2016). It also results in a substantially +#' simplified gradient expression. This can give a speed improvement of around +#' 50\%. #' #' @param X Input data. Can be a \code{\link{data.frame}}, \code{\link{matrix}}, #' \code{\link[stats]{dist}} object or \code{\link[Matrix]{sparseMatrix}}. @@ -808,11 +816,13 @@ umap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", #' \href{https://cran.r-project.org/package=FNN}{FNN} package. #' \item \code{"annoy"} Use approximate nearest neighbors via the #' \href{https://cran.r-project.org/package=RcppAnnoy}{RcppAnnoy} package. -#' \item \code{"hnsw"} Use approximate nearest neighbors via the +#' \item \code{"hnsw"} Use approximate nearest neighbors with the +#' Hierarchical Navigable Small World (HNSW) method (Malkov and Yashunin, +#' 2018) via the #' \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} package. #' \code{RcppHNSW} is not a dependency of this package: this option is -#' only available if you have installed \code{RcppHNSW} yourself. -#' Also, HNSW only supports the following arguments for \code{metric} and +#' only available if you have installed \code{RcppHNSW} yourself. Also, +#' HNSW only supports the following arguments for \code{metric} and #' \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and #' \code{"correlation"}. #' } @@ -1115,6 +1125,61 @@ umap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", #' specifying \code{ret_model}, \code{ret_nn} and \code{ret_extra}. #' @examples #' iris_tumap <- tumap(iris, n_neighbors = 50, learning_rate = 0.5) +#' +#' @references +#' Belkin, M., & Niyogi, P. (2002). +#' Laplacian eigenmaps and spectral techniques for embedding and clustering. +#' In \emph{Advances in neural information processing systems} +#' (pp. 585-591). +#' \url{http://papers.nips.cc/paper/1961-laplacian-eigenmaps-and-spectral-techniques-for-embedding-and-clustering.pdf} +#' +#' Böhm, J. N., Berens, P., & Kobak, D. (2020). +#' A unifying perspective on neighbor embeddings along the attraction-repulsion spectrum. +#' \emph{arXiv preprint} \emph{arXiv:2007.08902}. +#' \url{https://arxiv.org/abs/2007.08902} +#' +#' Damrich, S., & Hamprecht, F. A. (2021). +#' On UMAP's true loss function. +#' \emph{Advances in Neural Information Processing Systems}, \emph{34}. +#' \url{https://proceedings.neurips.cc/paper/2021/hash/2de5d16682c3c35007e4e92982f1a2ba-Abstract.html} +#' +#' Kingma, D. P., & Ba, J. (2014). +#' Adam: A method for stochastic optimization. +#' \emph{arXiv preprint} \emph{arXiv}:1412.6980. +#' \url{https://arxiv.org/abs/1412.6980} +#' +#' Malkov, Y. A., & Yashunin, D. A. (2018). +#' Efficient and robust approximate nearest neighbor search using hierarchical +#' navigable small world graphs. +#' \emph{IEEE transactions on pattern analysis and machine intelligence}, \emph{42}(4), 824-836. +#' +#' McInnes, L., Healy, J., & Melville, J. (2018). +#' UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction +#' \emph{arXiv preprint} \emph{arXiv}:1802.03426. +#' \url{https://arxiv.org/abs/1802.03426} +#' +#' O’Neill, M. E. (2014). +#' \emph{PCG: A family of simple fast space-efficient statistically good +#' algorithms for random number generation} +#' (Report No. HMC-CS-2014-0905). Harvey Mudd College. +#' +#' Tang, J., Liu, J., Zhang, M., & Mei, Q. (2016, April). +#' Visualizing large-scale and high-dimensional data. +#' In \emph{Proceedings of the 25th International Conference on World Wide Web} +#' (pp. 287-297). +#' International World Wide Web Conferences Steering Committee. +#' \url{https://arxiv.org/abs/1602.00370} +#' +#' Van der Maaten, L., & Hinton, G. (2008). +#' Visualizing data using t-SNE. +#' \emph{Journal of Machine Learning Research}, \emph{9} (2579-2605). +#' \url{https://www.jmlr.org/papers/v9/vandermaaten08a.html} +#' +#' Wang, Y., Huang, H., Rudin, C., & Shaposhnik, Y. (2021). +#' Understanding How Dimension Reduction Tools Work: An Empirical Approach to Deciphering t-SNE, UMAP, TriMap, and PaCMAP for Data Visualization. +#' \emph{Journal of Machine Learning Research}, \emph{22}(201), 1-73. +#' \url{https://www.jmlr.org/papers/v22/20-1061.html} +#' #' @export tumap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", n_epochs = NULL, @@ -1347,13 +1412,14 @@ tumap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", #' \href{https://cran.r-project.org/package=FNN}{FNN} package. #' \item \code{"annoy"} Use approximate nearest neighbors via the #' \href{https://cran.r-project.org/package=RcppAnnoy}{RcppAnnoy} package. -#' \item \code{"hnsw"} Use approximate nearest neighbors via the +#' \item \code{"hnsw"} Use approximate nearest neighbors with the +#' Hierarchical Navigable Small World (HNSW) method (Malkov and Yashunin, +#' 2018) via the #' \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} package. #' \code{RcppHNSW} is not a dependency of this package: this option is -#' only available if you have installed \code{RcppHNSW} yourself. -#' Also, HNSW only supports the following arguments for \code{metric} and -#' \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and -#' \code{"correlation"}. +#' only available if you have installed \code{RcppHNSW} yourself. Also, +#' HNSW only supports the following arguments for \code{metric}: +#' \code{"euclidean"}, \code{"cosine"} and \code{"correlation"}. #' } #' By default, if \code{X} has less than 4,096 vertices, the exact nearest #' neighbors are found. Otherwise, approximate nearest neighbors are used. @@ -1573,18 +1639,6 @@ tumap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", #' } #' The returned list contains the combined data from any combination of #' specifying \code{ret_nn} and \code{ret_extra}. -#' @references -#' Tang, J., Liu, J., Zhang, M., & Mei, Q. (2016, April). -#' Visualizing large-scale and high-dimensional data. -#' In \emph{Proceedings of the 25th International Conference on World Wide Web} -#' (pp. 287-297). -#' International World Wide Web Conferences Steering Committee. -#' \url{https://arxiv.org/abs/1602.00370} -#' -#' Lee, J. A., Peluffo-Ordóñez, D. H., & Verleysen, M. (2015). -#' Multi-scale similarities in stochastic neighbour embedding: Reducing -#' dimensionality while preserving both local and global structure. -#' \emph{Neurocomputing}, \emph{169}, 246-261. #' #' @examples #' # Default number of epochs is much larger than for UMAP, assumes random @@ -1595,6 +1649,66 @@ tumap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", #' perplexity = 50, learning_rate = 0.5, #' init = "random", n_epochs = 20 #' ) +#' +#' @references +#' Belkin, M., & Niyogi, P. (2002). +#' Laplacian eigenmaps and spectral techniques for embedding and clustering. +#' In \emph{Advances in neural information processing systems} +#' (pp. 585-591). +#' \url{http://papers.nips.cc/paper/1961-laplacian-eigenmaps-and-spectral-techniques-for-embedding-and-clustering.pdf} +#' +#' Böhm, J. N., Berens, P., & Kobak, D. (2020). +#' A unifying perspective on neighbor embeddings along the attraction-repulsion spectrum. +#' \emph{arXiv preprint} \emph{arXiv:2007.08902}. +#' \url{https://arxiv.org/abs/2007.08902} +#' +#' Damrich, S., & Hamprecht, F. A. (2021). +#' On UMAP's true loss function. +#' \emph{Advances in Neural Information Processing Systems}, \emph{34}. +#' \url{https://proceedings.neurips.cc/paper/2021/hash/2de5d16682c3c35007e4e92982f1a2ba-Abstract.html} +#' +#' Kingma, D. P., & Ba, J. (2014). +#' Adam: A method for stochastic optimization. +#' \emph{arXiv preprint} \emph{arXiv}:1412.6980. +#' \url{https://arxiv.org/abs/1412.6980} +#' +#' Lee, J. A., Peluffo-Ordóñez, D. H., & Verleysen, M. (2015). +#' Multi-scale similarities in stochastic neighbour embedding: Reducing +#' dimensionality while preserving both local and global structure. +#' \emph{Neurocomputing}, \emph{169}, 246-261. +#' +#' Malkov, Y. A., & Yashunin, D. A. (2018). +#' Efficient and robust approximate nearest neighbor search using hierarchical +#' navigable small world graphs. +#' \emph{IEEE transactions on pattern analysis and machine intelligence}, \emph{42}(4), 824-836. +#' +#' McInnes, L., Healy, J., & Melville, J. (2018). +#' UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction +#' \emph{arXiv preprint} \emph{arXiv}:1802.03426. +#' \url{https://arxiv.org/abs/1802.03426} +#' +#' O’Neill, M. E. (2014). +#' \emph{PCG: A family of simple fast space-efficient statistically good +#' algorithms for random number generation} +#' (Report No. HMC-CS-2014-0905). Harvey Mudd College. +#' +#' Tang, J., Liu, J., Zhang, M., & Mei, Q. (2016, April). +#' Visualizing large-scale and high-dimensional data. +#' In \emph{Proceedings of the 25th International Conference on World Wide Web} +#' (pp. 287-297). +#' International World Wide Web Conferences Steering Committee. +#' \url{https://arxiv.org/abs/1602.00370} +#' +#' Van der Maaten, L., & Hinton, G. (2008). +#' Visualizing data using t-SNE. +#' \emph{Journal of Machine Learning Research}, \emph{9} (2579-2605). +#' \url{https://www.jmlr.org/papers/v9/vandermaaten08a.html} +#' +#' Wang, Y., Huang, H., Rudin, C., & Shaposhnik, Y. (2021). +#' Understanding How Dimension Reduction Tools Work: An Empirical Approach to Deciphering t-SNE, UMAP, TriMap, and PaCMAP for Data Visualization. +#' \emph{Journal of Machine Learning Research}, \emph{22}(201), 1-73. +#' \url{https://www.jmlr.org/papers/v22/20-1061.html} +#' #' @export lvish <- function(X, perplexity = 50, n_neighbors = perplexity * 3, n_components = 2, metric = "euclidean", n_epochs = -1, @@ -1747,11 +1861,13 @@ lvish <- function(X, perplexity = 50, n_neighbors = perplexity * 3, #' \href{https://cran.r-project.org/package=FNN}{FNN} package. #' \item \code{"annoy"} Use approximate nearest neighbors via the #' \href{https://cran.r-project.org/package=RcppAnnoy}{RcppAnnoy} package. -#' \item \code{"hnsw"} Use approximate nearest neighbors via the +#' \item \code{"hnsw"} Use approximate nearest neighbors with the +#' Hierarchical Navigable Small World (HNSW) method (Malkov and Yashunin, +#' 2018) via the #' \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} package. #' \code{RcppHNSW} is not a dependency of this package: this option is -#' only available if you have installed \code{RcppHNSW} yourself. -#' Also, HNSW only supports the following arguments for \code{metric} and +#' only available if you have installed \code{RcppHNSW} yourself. Also, +#' HNSW only supports the following arguments for \code{metric} and #' \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and #' \code{"correlation"}. #' } @@ -1985,6 +2101,11 @@ lvish <- function(X, perplexity = 50, n_neighbors = perplexity * 3, #' all(iris30_lv_graph_nn == iris30_lv_graph$similarity_graph) #' #' @references +#' Malkov, Y. A., & Yashunin, D. A. (2018). +#' Efficient and robust approximate nearest neighbor search using hierarchical +#' navigable small world graphs. +#' \emph{IEEE transactions on pattern analysis and machine intelligence}, \emph{42}(4), 824-836. +#' #' McInnes, L., Healy, J., & Melville, J. (2018). #' UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction #' \emph{arXiv preprint} \emph{arXiv}:1802.03426. @@ -2306,6 +2427,11 @@ similarity_graph <- function(X = NULL, n_neighbors = NULL, metric = "euclidean", #' \emph{arXiv preprint} \emph{arXiv}:1802.03426. #' \url{https://arxiv.org/abs/1802.03426} #' +#' O’Neill, M. E. (2014). +#' \emph{PCG: A family of simple fast space-efficient statistically good +#' algorithms for random number generation} +#' (Report No. HMC-CS-2014-0905). Harvey Mudd College. +#' #' Tang, J., Liu, J., Zhang, M., & Mei, Q. (2016, April). #' Visualizing large-scale and high-dimensional data. #' In \emph{Proceedings of the 25th International Conference on World Wide Web} diff --git a/man/lvish.Rd b/man/lvish.Rd index 02de54a9..49d7c0f5 100644 --- a/man/lvish.Rd +++ b/man/lvish.Rd @@ -198,13 +198,14 @@ embedding.} \href{https://cran.r-project.org/package=FNN}{FNN} package. \item \code{"annoy"} Use approximate nearest neighbors via the \href{https://cran.r-project.org/package=RcppAnnoy}{RcppAnnoy} package. - \item \code{"hnsw"} Use approximate nearest neighbors via the + \item \code{"hnsw"} Use approximate nearest neighbors with the + Hierarchical Navigable Small World (HNSW) method (Malkov and Yashunin, + 2018) via the \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} package. \code{RcppHNSW} is not a dependency of this package: this option is - only available if you have installed \code{RcppHNSW} yourself. - Also, HNSW only supports the following arguments for \code{metric} and - \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and - \code{"correlation"}. + only available if you have installed \code{RcppHNSW} yourself. Also, + HNSW only supports the following arguments for \code{metric}: + \code{"euclidean"}, \code{"cosine"} and \code{"correlation"}. } By default, if \code{X} has less than 4,096 vertices, the exact nearest neighbors are found. Otherwise, approximate nearest neighbors are used. @@ -481,8 +482,50 @@ iris_lvish <- lvish(iris, perplexity = 50, learning_rate = 0.5, init = "random", n_epochs = 20 ) + } \references{ +Belkin, M., & Niyogi, P. (2002). +Laplacian eigenmaps and spectral techniques for embedding and clustering. +In \emph{Advances in neural information processing systems} +(pp. 585-591). +\url{http://papers.nips.cc/paper/1961-laplacian-eigenmaps-and-spectral-techniques-for-embedding-and-clustering.pdf} + +Böhm, J. N., Berens, P., & Kobak, D. (2020). +A unifying perspective on neighbor embeddings along the attraction-repulsion spectrum. +\emph{arXiv preprint} \emph{arXiv:2007.08902}. +\url{https://arxiv.org/abs/2007.08902} + +Damrich, S., & Hamprecht, F. A. (2021). +On UMAP's true loss function. +\emph{Advances in Neural Information Processing Systems}, \emph{34}. +\url{https://proceedings.neurips.cc/paper/2021/hash/2de5d16682c3c35007e4e92982f1a2ba-Abstract.html} + +Kingma, D. P., & Ba, J. (2014). +Adam: A method for stochastic optimization. +\emph{arXiv preprint} \emph{arXiv}:1412.6980. +\url{https://arxiv.org/abs/1412.6980} + +Lee, J. A., Peluffo-Ordóñez, D. H., & Verleysen, M. (2015). +Multi-scale similarities in stochastic neighbour embedding: Reducing +dimensionality while preserving both local and global structure. +\emph{Neurocomputing}, \emph{169}, 246-261. + +Malkov, Y. A., & Yashunin, D. A. (2018). +Efficient and robust approximate nearest neighbor search using hierarchical +navigable small world graphs. +\emph{IEEE transactions on pattern analysis and machine intelligence}, \emph{42}(4), 824-836. + +McInnes, L., Healy, J., & Melville, J. (2018). +UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction +\emph{arXiv preprint} \emph{arXiv}:1802.03426. +\url{https://arxiv.org/abs/1802.03426} + +O’Neill, M. E. (2014). +\emph{PCG: A family of simple fast space-efficient statistically good +algorithms for random number generation} +(Report No. HMC-CS-2014-0905). Harvey Mudd College. + Tang, J., Liu, J., Zhang, M., & Mei, Q. (2016, April). Visualizing large-scale and high-dimensional data. In \emph{Proceedings of the 25th International Conference on World Wide Web} @@ -490,8 +533,13 @@ In \emph{Proceedings of the 25th International Conference on World Wide Web} International World Wide Web Conferences Steering Committee. \url{https://arxiv.org/abs/1602.00370} -Lee, J. A., Peluffo-Ordóñez, D. H., & Verleysen, M. (2015). -Multi-scale similarities in stochastic neighbour embedding: Reducing -dimensionality while preserving both local and global structure. -\emph{Neurocomputing}, \emph{169}, 246-261. +Van der Maaten, L., & Hinton, G. (2008). +Visualizing data using t-SNE. +\emph{Journal of Machine Learning Research}, \emph{9} (2579-2605). +\url{https://www.jmlr.org/papers/v9/vandermaaten08a.html} + +Wang, Y., Huang, H., Rudin, C., & Shaposhnik, Y. (2021). +Understanding How Dimension Reduction Tools Work: An Empirical Approach to Deciphering t-SNE, UMAP, TriMap, and PaCMAP for Data Visualization. +\emph{Journal of Machine Learning Research}, \emph{22}(201), 1-73. +\url{https://www.jmlr.org/papers/v22/20-1061.html} } diff --git a/man/optimize_graph_layout.Rd b/man/optimize_graph_layout.Rd index 40eda55d..2278cb3b 100644 --- a/man/optimize_graph_layout.Rd +++ b/man/optimize_graph_layout.Rd @@ -292,6 +292,11 @@ UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction \emph{arXiv preprint} \emph{arXiv}:1802.03426. \url{https://arxiv.org/abs/1802.03426} +O’Neill, M. E. (2014). +\emph{PCG: A family of simple fast space-efficient statistically good +algorithms for random number generation} +(Report No. HMC-CS-2014-0905). Harvey Mudd College. + Tang, J., Liu, J., Zhang, M., & Mei, Q. (2016, April). Visualizing large-scale and high-dimensional data. In \emph{Proceedings of the 25th International Conference on World Wide Web} diff --git a/man/similarity_graph.Rd b/man/similarity_graph.Rd index e257c8aa..38421ec5 100644 --- a/man/similarity_graph.Rd +++ b/man/similarity_graph.Rd @@ -127,11 +127,13 @@ dimension of the manifold. Ignored if \code{method = "largevis"}.} \href{https://cran.r-project.org/package=FNN}{FNN} package. \item \code{"annoy"} Use approximate nearest neighbors via the \href{https://cran.r-project.org/package=RcppAnnoy}{RcppAnnoy} package. - \item \code{"hnsw"} Use approximate nearest neighbors via the + \item \code{"hnsw"} Use approximate nearest neighbors with the + Hierarchical Navigable Small World (HNSW) method (Malkov and Yashunin, + 2018) via the \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} package. \code{RcppHNSW} is not a dependency of this package: this option is - only available if you have installed \code{RcppHNSW} yourself. - Also, HNSW only supports the following arguments for \code{metric} and + only available if you have installed \code{RcppHNSW} yourself. Also, + HNSW only supports the following arguments for \code{metric} and \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and \code{"correlation"}. } @@ -401,6 +403,11 @@ all(iris30_lv_graph_nn == iris30_lv_graph$similarity_graph) } \references{ +Malkov, Y. A., & Yashunin, D. A. (2018). +Efficient and robust approximate nearest neighbor search using hierarchical +navigable small world graphs. +\emph{IEEE transactions on pattern analysis and machine intelligence}, \emph{42}(4), 824-836. + McInnes, L., Healy, J., & Melville, J. (2018). UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction \emph{arXiv preprint} \emph{arXiv}:1802.03426. diff --git a/man/tumap.Rd b/man/tumap.Rd index 42af28bf..04b182b4 100644 --- a/man/tumap.Rd +++ b/man/tumap.Rd @@ -220,11 +220,13 @@ embedding.} \href{https://cran.r-project.org/package=FNN}{FNN} package. \item \code{"annoy"} Use approximate nearest neighbors via the \href{https://cran.r-project.org/package=RcppAnnoy}{RcppAnnoy} package. - \item \code{"hnsw"} Use approximate nearest neighbors via the + \item \code{"hnsw"} Use approximate nearest neighbors with the + Hierarchical Navigable Small World (HNSW) method (Malkov and Yashunin, + 2018) via the \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} package. \code{RcppHNSW} is not a dependency of this package: this option is - only available if you have installed \code{RcppHNSW} yourself. - Also, HNSW only supports the following arguments for \code{metric} and + only available if you have installed \code{RcppHNSW} yourself. Also, + HNSW only supports the following arguments for \code{metric} and \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and \code{"correlation"}. } @@ -554,15 +556,71 @@ A matrix of optimized coordinates, or: specifying \code{ret_model}, \code{ret_nn} and \code{ret_extra}. } \description{ -A faster (but less flexible) version of the UMAP gradient. For more detail on -UMAP, see the \code{\link{umap}} function. +A faster (but less flexible) version of the UMAP (McInnes et al, 2018) +gradient. For more detail on UMAP, see the \code{\link{umap}} function. } \details{ By setting the UMAP curve parameters \code{a} and \code{b} to \code{1}, you -get back the Cauchy distribution as used in t-SNE and LargeVis. It also -results in a substantially simplified gradient expression. This can give -a speed improvement of around 50\%. +get back the Cauchy distribution as used in t-SNE (van der Maaten and Hinton, +2008) and LargeVis (Tang et al., 2016). It also results in a substantially +simplified gradient expression. This can give a speed improvement of around +50\%. } \examples{ iris_tumap <- tumap(iris, n_neighbors = 50, learning_rate = 0.5) + +} +\references{ +Belkin, M., & Niyogi, P. (2002). +Laplacian eigenmaps and spectral techniques for embedding and clustering. +In \emph{Advances in neural information processing systems} +(pp. 585-591). +\url{http://papers.nips.cc/paper/1961-laplacian-eigenmaps-and-spectral-techniques-for-embedding-and-clustering.pdf} + +Böhm, J. N., Berens, P., & Kobak, D. (2020). +A unifying perspective on neighbor embeddings along the attraction-repulsion spectrum. +\emph{arXiv preprint} \emph{arXiv:2007.08902}. +\url{https://arxiv.org/abs/2007.08902} + +Damrich, S., & Hamprecht, F. A. (2021). +On UMAP's true loss function. +\emph{Advances in Neural Information Processing Systems}, \emph{34}. +\url{https://proceedings.neurips.cc/paper/2021/hash/2de5d16682c3c35007e4e92982f1a2ba-Abstract.html} + +Kingma, D. P., & Ba, J. (2014). +Adam: A method for stochastic optimization. +\emph{arXiv preprint} \emph{arXiv}:1412.6980. +\url{https://arxiv.org/abs/1412.6980} + +Malkov, Y. A., & Yashunin, D. A. (2018). +Efficient and robust approximate nearest neighbor search using hierarchical +navigable small world graphs. +\emph{IEEE transactions on pattern analysis and machine intelligence}, \emph{42}(4), 824-836. + +McInnes, L., Healy, J., & Melville, J. (2018). +UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction +\emph{arXiv preprint} \emph{arXiv}:1802.03426. +\url{https://arxiv.org/abs/1802.03426} + +O’Neill, M. E. (2014). +\emph{PCG: A family of simple fast space-efficient statistically good +algorithms for random number generation} +(Report No. HMC-CS-2014-0905). Harvey Mudd College. + +Tang, J., Liu, J., Zhang, M., & Mei, Q. (2016, April). +Visualizing large-scale and high-dimensional data. +In \emph{Proceedings of the 25th International Conference on World Wide Web} +(pp. 287-297). +International World Wide Web Conferences Steering Committee. +\url{https://arxiv.org/abs/1602.00370} + +Van der Maaten, L., & Hinton, G. (2008). +Visualizing data using t-SNE. +\emph{Journal of Machine Learning Research}, \emph{9} (2579-2605). +\url{https://www.jmlr.org/papers/v9/vandermaaten08a.html} + +Wang, Y., Huang, H., Rudin, C., & Shaposhnik, Y. (2021). +Understanding How Dimension Reduction Tools Work: An Empirical Approach to Deciphering t-SNE, UMAP, TriMap, and PaCMAP for Data Visualization. +\emph{Journal of Machine Learning Research}, \emph{22}(201), 1-73. +\url{https://www.jmlr.org/papers/v22/20-1061.html} } diff --git a/man/umap.Rd b/man/umap.Rd index d8f6e124..2a19bf68 100644 --- a/man/umap.Rd +++ b/man/umap.Rd @@ -245,11 +245,13 @@ these values are set automatically as determined by \code{min_dist} and \href{https://cran.r-project.org/package=FNN}{FNN} package. \item \code{"annoy"} Use approximate nearest neighbors via the \href{https://cran.r-project.org/package=RcppAnnoy}{RcppAnnoy} package. - \item \code{"hnsw"} Use approximate nearest neighbors via the + \item \code{"hnsw"} Use approximate nearest neighbors with the + Hierarchical Navigable Small World (HNSW) method (Malkov and Yashunin, + 2018) via the \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} package. \code{RcppHNSW} is not a dependency of this package: this option is - only available if you have installed \code{RcppHNSW} yourself. Only - Also, HNSW only supports the following arguments for \code{metric} and + only available if you have installed \code{RcppHNSW} yourself. Also, + HNSW only supports the following arguments for \code{metric} and \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and \code{"correlation"}. } @@ -593,7 +595,7 @@ A matrix of optimized coordinates, or: } \description{ Carry out dimensionality reduction of a dataset using the Uniform Manifold -Approximation and Projection (UMAP) method (McInnes & Healy, 2018). Some of +Approximation and Projection (UMAP) method (McInnes et al., 2018). Some of the following help text is lifted verbatim from the Python reference implementation at \url{https://github.com/lmcinnes/umap}. } @@ -648,7 +650,12 @@ Adam: A method for stochastic optimization. \emph{arXiv preprint} \emph{arXiv}:1412.6980. \url{https://arxiv.org/abs/1412.6980} -McInnes, L., & Healy, J. (2018). +Malkov, Y. A., & Yashunin, D. A. (2018). +Efficient and robust approximate nearest neighbor search using hierarchical +navigable small world graphs. +\emph{IEEE transactions on pattern analysis and machine intelligence}, \emph{42}(4), 824-836. + +McInnes, L., Healy, J., & Melville, J. (2018). UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction \emph{arXiv preprint} \emph{arXiv}:1802.03426. \url{https://arxiv.org/abs/1802.03426} From 9b7db9bd1a16dbce0525ffd8762266ecaad099e7 Mon Sep 17 00:00:00 2001 From: James Melville Date: Sun, 17 Mar 2024 17:27:48 -0700 Subject: [PATCH 05/20] Reference for nn_method = "nndescent" --- R/uwot.R | 52 +++++++++++++++++++++++++++++++++++++++++ man/lvish.Rd | 13 +++++++++++ man/similarity_graph.Rd | 13 +++++++++++ man/tumap.Rd | 13 +++++++++++ man/umap.Rd | 13 +++++++++++ 5 files changed, 104 insertions(+) diff --git a/R/uwot.R b/R/uwot.R index d9f5fe18..04dbac93 100644 --- a/R/uwot.R +++ b/R/uwot.R @@ -187,6 +187,12 @@ #' HNSW only supports the following arguments for \code{metric} and #' \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and #' \code{"correlation"}. +#' \item \code{"nndescent"} Use approximate nearest neighbors with the +#' Nearest Neighbor Descent method (Dong et al., 2011) via the +#' \href{https://cran.r-project.org/package=rnndescent}{rnndescent} +#' package. \code{rnndescent} is not a dependency of this package: this +#' option is only available if you have installed \code{rnndescent} +#' yourself. #' } #' By default, if \code{X} has less than 4,096 vertices, the exact nearest #' neighbors are found. Otherwise, approximate nearest neighbors are used. @@ -541,6 +547,13 @@ #' \emph{Advances in Neural Information Processing Systems}, \emph{34}. #' \url{https://proceedings.neurips.cc/paper/2021/hash/2de5d16682c3c35007e4e92982f1a2ba-Abstract.html} #' +#' Dong, W., Moses, C., & Li, K. (2011, March). +#' Efficient k-nearest neighbor graph construction for generic similarity measures. +#' In \emph{Proceedings of the 20th international conference on World Wide Web} +#' (pp. 577-586). +#' ACM. +#' \doi{10.1145/1963405.1963487}. +#' #' Kingma, D. P., & Ba, J. (2014). #' Adam: A method for stochastic optimization. #' \emph{arXiv preprint} \emph{arXiv}:1412.6980. @@ -825,6 +838,12 @@ umap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", #' HNSW only supports the following arguments for \code{metric} and #' \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and #' \code{"correlation"}. +#' \item \code{"nndescent"} Use approximate nearest neighbors with the +#' Nearest Neighbor Descent method (Dong et al., 2011) via the +#' \href{https://cran.r-project.org/package=rnndescent}{rnndescent} +#' package. \code{rnndescent} is not a dependency of this package: this +#' option is only available if you have installed \code{rnndescent} +#' yourself. #' } #' By default, if \code{X} has less than 4,096 vertices, the exact nearest #' neighbors are found. Otherwise, approximate nearest neighbors are used. @@ -1143,6 +1162,13 @@ umap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", #' \emph{Advances in Neural Information Processing Systems}, \emph{34}. #' \url{https://proceedings.neurips.cc/paper/2021/hash/2de5d16682c3c35007e4e92982f1a2ba-Abstract.html} #' +#' Dong, W., Moses, C., & Li, K. (2011, March). +#' Efficient k-nearest neighbor graph construction for generic similarity measures. +#' In \emph{Proceedings of the 20th international conference on World Wide Web} +#' (pp. 577-586). +#' ACM. +#' \doi{10.1145/1963405.1963487}. +#' #' Kingma, D. P., & Ba, J. (2014). #' Adam: A method for stochastic optimization. #' \emph{arXiv preprint} \emph{arXiv}:1412.6980. @@ -1420,6 +1446,12 @@ tumap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", #' only available if you have installed \code{RcppHNSW} yourself. Also, #' HNSW only supports the following arguments for \code{metric}: #' \code{"euclidean"}, \code{"cosine"} and \code{"correlation"}. +#' \item \code{"nndescent"} Use approximate nearest neighbors with the +#' Nearest Neighbor Descent method (Dong et al., 2011) via the +#' \href{https://cran.r-project.org/package=rnndescent}{rnndescent} +#' package. \code{rnndescent} is not a dependency of this package: this +#' option is only available if you have installed \code{rnndescent} +#' yourself. #' } #' By default, if \code{X} has less than 4,096 vertices, the exact nearest #' neighbors are found. Otherwise, approximate nearest neighbors are used. @@ -1667,6 +1699,13 @@ tumap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", #' \emph{Advances in Neural Information Processing Systems}, \emph{34}. #' \url{https://proceedings.neurips.cc/paper/2021/hash/2de5d16682c3c35007e4e92982f1a2ba-Abstract.html} #' +#' Dong, W., Moses, C., & Li, K. (2011, March). +#' Efficient k-nearest neighbor graph construction for generic similarity measures. +#' In \emph{Proceedings of the 20th international conference on World Wide Web} +#' (pp. 577-586). +#' ACM. +#' \doi{10.1145/1963405.1963487}. +#' #' Kingma, D. P., & Ba, J. (2014). #' Adam: A method for stochastic optimization. #' \emph{arXiv preprint} \emph{arXiv}:1412.6980. @@ -1870,6 +1909,12 @@ lvish <- function(X, perplexity = 50, n_neighbors = perplexity * 3, #' HNSW only supports the following arguments for \code{metric} and #' \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and #' \code{"correlation"}. +#' \item \code{"nndescent"} Use approximate nearest neighbors with the +#' Nearest Neighbor Descent method (Dong et al., 2011) via the +#' \href{https://cran.r-project.org/package=rnndescent}{rnndescent} +#' package. \code{rnndescent} is not a dependency of this package: this +#' option is only available if you have installed \code{rnndescent} +#' yourself. #' } #' By default, if \code{X} has less than 4,096 vertices, the exact nearest #' neighbors are found. Otherwise, approximate nearest neighbors are used. @@ -2101,6 +2146,13 @@ lvish <- function(X, perplexity = 50, n_neighbors = perplexity * 3, #' all(iris30_lv_graph_nn == iris30_lv_graph$similarity_graph) #' #' @references +#' Dong, W., Moses, C., & Li, K. (2011, March). +#' Efficient k-nearest neighbor graph construction for generic similarity measures. +#' In \emph{Proceedings of the 20th international conference on World Wide Web} +#' (pp. 577-586). +#' ACM. +#' \doi{10.1145/1963405.1963487}. +#' #' Malkov, Y. A., & Yashunin, D. A. (2018). #' Efficient and robust approximate nearest neighbor search using hierarchical #' navigable small world graphs. diff --git a/man/lvish.Rd b/man/lvish.Rd index 49d7c0f5..68f6b886 100644 --- a/man/lvish.Rd +++ b/man/lvish.Rd @@ -206,6 +206,12 @@ embedding.} only available if you have installed \code{RcppHNSW} yourself. Also, HNSW only supports the following arguments for \code{metric}: \code{"euclidean"}, \code{"cosine"} and \code{"correlation"}. + \item \code{"nndescent"} Use approximate nearest neighbors with the + Nearest Neighbor Descent method (Dong et al., 2011) via the + \href{https://cran.r-project.org/package=rnndescent}{rnndescent} + package. \code{rnndescent} is not a dependency of this package: this + option is only available if you have installed \code{rnndescent} + yourself. } By default, if \code{X} has less than 4,096 vertices, the exact nearest neighbors are found. Otherwise, approximate nearest neighbors are used. @@ -501,6 +507,13 @@ On UMAP's true loss function. \emph{Advances in Neural Information Processing Systems}, \emph{34}. \url{https://proceedings.neurips.cc/paper/2021/hash/2de5d16682c3c35007e4e92982f1a2ba-Abstract.html} +Dong, W., Moses, C., & Li, K. (2011, March). +Efficient k-nearest neighbor graph construction for generic similarity measures. +In \emph{Proceedings of the 20th international conference on World Wide Web} +(pp. 577-586). +ACM. +\doi{10.1145/1963405.1963487}. + Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. \emph{arXiv preprint} \emph{arXiv}:1412.6980. diff --git a/man/similarity_graph.Rd b/man/similarity_graph.Rd index 38421ec5..779980dc 100644 --- a/man/similarity_graph.Rd +++ b/man/similarity_graph.Rd @@ -136,6 +136,12 @@ dimension of the manifold. Ignored if \code{method = "largevis"}.} HNSW only supports the following arguments for \code{metric} and \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and \code{"correlation"}. + \item \code{"nndescent"} Use approximate nearest neighbors with the + Nearest Neighbor Descent method (Dong et al., 2011) via the + \href{https://cran.r-project.org/package=rnndescent}{rnndescent} + package. \code{rnndescent} is not a dependency of this package: this + option is only available if you have installed \code{rnndescent} + yourself. } By default, if \code{X} has less than 4,096 vertices, the exact nearest neighbors are found. Otherwise, approximate nearest neighbors are used. @@ -403,6 +409,13 @@ all(iris30_lv_graph_nn == iris30_lv_graph$similarity_graph) } \references{ +Dong, W., Moses, C., & Li, K. (2011, March). +Efficient k-nearest neighbor graph construction for generic similarity measures. +In \emph{Proceedings of the 20th international conference on World Wide Web} +(pp. 577-586). +ACM. +\doi{10.1145/1963405.1963487}. + Malkov, Y. A., & Yashunin, D. A. (2018). Efficient and robust approximate nearest neighbor search using hierarchical navigable small world graphs. diff --git a/man/tumap.Rd b/man/tumap.Rd index 04b182b4..cc4bf1ac 100644 --- a/man/tumap.Rd +++ b/man/tumap.Rd @@ -229,6 +229,12 @@ embedding.} HNSW only supports the following arguments for \code{metric} and \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and \code{"correlation"}. + \item \code{"nndescent"} Use approximate nearest neighbors with the + Nearest Neighbor Descent method (Dong et al., 2011) via the + \href{https://cran.r-project.org/package=rnndescent}{rnndescent} + package. \code{rnndescent} is not a dependency of this package: this + option is only available if you have installed \code{rnndescent} + yourself. } By default, if \code{X} has less than 4,096 vertices, the exact nearest neighbors are found. Otherwise, approximate nearest neighbors are used. @@ -587,6 +593,13 @@ On UMAP's true loss function. \emph{Advances in Neural Information Processing Systems}, \emph{34}. \url{https://proceedings.neurips.cc/paper/2021/hash/2de5d16682c3c35007e4e92982f1a2ba-Abstract.html} +Dong, W., Moses, C., & Li, K. (2011, March). +Efficient k-nearest neighbor graph construction for generic similarity measures. +In \emph{Proceedings of the 20th international conference on World Wide Web} +(pp. 577-586). +ACM. +\doi{10.1145/1963405.1963487}. + Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. \emph{arXiv preprint} \emph{arXiv}:1412.6980. diff --git a/man/umap.Rd b/man/umap.Rd index 2a19bf68..ce09eeeb 100644 --- a/man/umap.Rd +++ b/man/umap.Rd @@ -254,6 +254,12 @@ these values are set automatically as determined by \code{min_dist} and HNSW only supports the following arguments for \code{metric} and \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and \code{"correlation"}. + \item \code{"nndescent"} Use approximate nearest neighbors with the + Nearest Neighbor Descent method (Dong et al., 2011) via the + \href{https://cran.r-project.org/package=rnndescent}{rnndescent} + package. \code{rnndescent} is not a dependency of this package: this + option is only available if you have installed \code{rnndescent} + yourself. } By default, if \code{X} has less than 4,096 vertices, the exact nearest neighbors are found. Otherwise, approximate nearest neighbors are used. @@ -645,6 +651,13 @@ On UMAP's true loss function. \emph{Advances in Neural Information Processing Systems}, \emph{34}. \url{https://proceedings.neurips.cc/paper/2021/hash/2de5d16682c3c35007e4e92982f1a2ba-Abstract.html} +Dong, W., Moses, C., & Li, K. (2011, March). +Efficient k-nearest neighbor graph construction for generic similarity measures. +In \emph{Proceedings of the 20th international conference on World Wide Web} +(pp. 577-586). +ACM. +\doi{10.1145/1963405.1963487}. + Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. \emph{arXiv preprint} \emph{arXiv}:1412.6980. From 3afadb2c35a07ceb04fd658d399c59dcd68a3990 Mon Sep 17 00:00:00 2001 From: James Melville Date: Sun, 17 Mar 2024 19:06:11 -0700 Subject: [PATCH 06/20] document nn_args for nn_method = nndescent --- NEWS.md | 15 ++- R/nn_nndescent.R | 3 +- R/uwot.R | 222 ++++++++++++++++++++++++++++++++++++++++ man/lvish.Rd | 30 ++++++ man/similarity_graph.Rd | 48 +++++++++ man/tumap.Rd | 96 +++++++++++++++++ man/umap.Rd | 48 +++++++++ 7 files changed, 460 insertions(+), 2 deletions(-) diff --git a/NEWS.md b/NEWS.md index f2f20a2e..786a580d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -13,7 +13,20 @@ for details on these parameters. Although typically faster than Annoy (for a given accuracy), be aware that the only supported `metric` values are `"euclidean"`, `"cosine"` and `"correlation"`. Finally, RcppHNSW is only a suggested package, not a requirement, so you need to install it yourself (e.g. -via `install.packages("RcppHNSW")`). +via `install.packages("RcppHNSW")`). Also see the +[article on HNSW in uwot](https://jlmelville.github.io/uwot/articles/hnsw-umap.html) +in the documentation. +* The nearest neighbor descent approximate nearest neighbor search algorithm is +now supported via the +[rnndescent](https://cran.r-project.org/package=rnndescent) package. Set +`nn_method = "nndescent"` to use it. The behavior of the method can be +controlled by the new `nn_args` parameter. There are many supported metrics and +possible parameters that can be set in `nn_args`, so please see the +[article on nearest neighbor descent in uwot](https://jlmelville.github.io/uwot/articles/rnndescent-umap.html) +in the documentation, and also the rnndescent package's +[documentation](https://jlmelville.github.io/rnndescent/index.html) for details. +`rnndescent` is only a suggested package, not a requirement, so you need to +install it yourself (e.g. via `install.packages("rnndescent")`). ## Bug fixes and minor improvements diff --git a/R/nn_nndescent.R b/R/nn_nndescent.R index 2e5a0cea..940a8092 100644 --- a/R/nn_nndescent.R +++ b/R/nn_nndescent.R @@ -109,7 +109,8 @@ get_nndescent_knn_args <- function(nn_args) { } get_nndescent_build_args <- function(nn_args) { - nn_build_args <- list() + # prune_reverse should probably always be TRUE + nn_build_args <- list(prune_reverse = TRUE) nnd_build_names <- c( "use_alt_metric", "init", diff --git a/R/uwot.R b/R/uwot.R index 04dbac93..6da64976 100644 --- a/R/uwot.R +++ b/R/uwot.R @@ -242,6 +242,54 @@ #' and cannot be higher than the number of items in the index. Default is #' \code{10}. #' } +#' For \code{nn_method = "nndescent"}, you may specify the following +#' arguments: +#' \itemize{ +#' \item \code{n_trees} The number of trees to use in a random projection +#' forest to initialize the search. A larger number will give more accurate +#' results at the cost of a longer computation time. The default of +#' \code{NULL} means that the number is chosen based on the number of +#' observations in \code{X}. +#' \item \code{max_candidates} The number of potential neighbors to explore +#' per iteration. By default, this is set to \code{n_neighbors} or \code{60}, +#' whichever is smaller. A larger number will give more accurate results at +#' the cost of a longer computation time. +#' \item \code{n_iters} The number of iterations to run the search. A larger +#' number will give more accurate results at the cost of a longer computation +#' time. By default, this will be chosen based on the number of observations +#' in \code{X}. You may also need to modify the convergence criterion +#' \code{delta}. +#' \item \code{delta} The minimum relative change in the neighbor graph +#' allowed before early stopping. Should be a value between 0 and 1. The +#' smaller the value, the smaller the amount of progress between iterations is +#' allowed. Default value of \code{0.001} means that at least 0.1% of the +#' neighbor graph must be updated at each iteration. +#' \item \code{init} How to initialize the nearest neighbor descent. By +#' default this is set to \code{"tree"} and uses a random project forest. +#' If you set this to \code{"rand"}, then a random selection is used. Usually +#' this is less accurate than using RP trees, but for high-dimensional cases, +#' there may be little difference in the quality of the initialization and +#' random initialization will be a lot faster. If you set this to +#' \code{"rand"}, then the \code{n_trees} parameter is ignored. +#' \item \code{pruning_degree_multiplier} The maximum number of edges per node +#' to retain in the search graph, relative to \code{n_neighbors}. A larger +#' value will give more accurate results at the cost of a longer computation +#' time. Default is \code{1.5}. This parameter only affects neighbor search +#' when transforming new data with \code{\link{umap_transform}}. +#' \item \code{epsilon} Controls the degree of the back-tracking when +#' traversing the search graph. Setting this to \code{0.0} will do a greedy +#' search with no back-tracking. A larger value will give more accurate +#' results at the cost of a longer computation time. Default is \code{0.1}. +#' This parameter only affects neighbor search when transforming new data with +#' \code{\link{umap_transform}}. +#' \item \code{max_search_fraction} Specifies the maximum fraction of the +#' search graph to traverse. By default, this is set to \code{1.0}, so the +#' entire graph (i.e. all items in \code{X}) may be visited. You may want to +#' set this to a smaller value if you have a very large dataset (in +#' conjunction with \code{epsilon}) to avoid an inefficient exhaustive search +#' of the data in \code{X}. This parameter only affects neighbor search when +#' transforming new data with \code{\link{umap_transform}}. +#' } #' @param approx_pow If \code{TRUE}, use an approximation to the power function #' in the UMAP gradient, from #' \url{https://martin.ankerl.com/2012/01/25/optimized-approximative-pow-in-c-and-cpp/}. @@ -893,6 +941,102 @@ umap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", #' and cannot be higher than the number of items in the index. Default is #' \code{10}. #' } +#' For \code{nn_method = "nndescent"}, you may specify the following +#' arguments: +#' \itemize{ +#' \item \code{n_trees} The number of trees to use in a random projection +#' forest to initialize the search. A larger number will give more accurate +#' results at the cost of a longer computation time. The default of +#' \code{NULL} means that the number is chosen based on the number of +#' observations in \code{X}. +#' \item \code{max_candidates} The number of potential neighbors to explore +#' per iteration. By default, this is set to \code{n_neighbors} or \code{60}, +#' whichever is smaller. A larger number will give more accurate results at +#' the cost of a longer computation time. +#' \item \code{n_iters} The number of iterations to run the search. A larger +#' number will give more accurate results at the cost of a longer computation +#' time. By default, this will be chosen based on the number of observations +#' in \code{X}. You may also need to modify the convergence criterion +#' \code{delta}. +#' \item \code{delta} The minimum relative change in the neighbor graph +#' allowed before early stopping. Should be a value between 0 and 1. The +#' smaller the value, the smaller the amount of progress between iterations is +#' allowed. Default value of \code{0.001} means that at least 0.1% of the +#' neighbor graph must be updated at each iteration. +#' \item \code{init} How to initialize the nearest neighbor descent. By +#' default this is set to \code{"tree"} and uses a random project forest. +#' If you set this to \code{"rand"}, then a random selection is used. Usually +#' this is less accurate than using RP trees, but for high-dimensional cases, +#' there may be little difference in the quality of the initialization and +#' random initialization will be a lot faster. If you set this to +#' \code{"rand"}, then the \code{n_trees} parameter is ignored. +#' \item \code{pruning_degree_multiplier} The maximum number of edges per node +#' to retain in the search graph, relative to \code{n_neighbors}. A larger +#' value will give more accurate results at the cost of a longer computation +#' time. Default is \code{1.5}. This parameter only affects neighbor search +#' when transforming new data with \code{\link{umap_transform}}. +#' \item \code{epsilon} Controls the degree of the back-tracking when +#' traversing the search graph. Setting this to \code{0.0} will do a greedy +#' search with no back-tracking. A larger value will give more accurate +#' results at the cost of a longer computation time. Default is \code{0.1}. +#' This parameter only affects neighbor search when transforming new data with +#' \code{\link{umap_transform}}. +#' \item \code{max_search_fraction} Specifies the maximum fraction of the +#' search graph to traverse. By default, this is set to \code{1.0}, so the +#' entire graph (i.e. all items in \code{X}) may be visited. You may want to +#' set this to a smaller value if you have a very large dataset (in +#' conjunction with \code{epsilon}) to avoid an inefficient exhaustive search +#' of the data in \code{X}. This parameter only affects neighbor search when +#' transforming new data with \code{\link{umap_transform}}. +#' } +#' For \code{nn_method = "nndescent"}, you may specify the following +#' arguments: +#' \itemize{ +#' \item \code{n_trees} The number of trees to use in a random projection +#' forest to initialize the search. A larger number will give more accurate +#' results at the cost of a longer computation time. The default of +#' \code{NULL} means that the number is chosen based on the number of +#' observations in \code{X}. +#' \item \code{max_candidates} The number of potential neighbors to explore +#' per iteration. By default, this is set to \code{n_neighbors} or \code{60}, +#' whichever is smaller. A larger number will give more accurate results at +#' the cost of a longer computation time. +#' \item \code{n_iters} The number of iterations to run the search. A larger +#' number will give more accurate results at the cost of a longer computation +#' time. By default, this will be chosen based on the number of observations +#' in \code{X}. You may also need to modify the convergence criterion +#' \code{delta}. +#' \item \code{delta} The minimum relative change in the neighbor graph +#' allowed before early stopping. Should be a value between 0 and 1. The +#' smaller the value, the smaller the amount of progress between iterations is +#' allowed. Default value of \code{0.001} means that at least 0.1% of the +#' neighbor graph must be updated at each iteration. +#' \item \code{init} How to initialize the nearest neighbor descent. By +#' default this is set to \code{"tree"} and uses a random project forest. If +#' you set this to \code{"rand"}, then a random selection is used. Usually +#' this is less accurate than using RP trees, but for high-dimensional cases, +#' there may be little difference in the quality of the initialization and +#' random initialization will be a lot faster. If you set this to +#' \code{"rand"}, then the \code{n_trees} parameter is ignored. +#' \item \code{pruning_degree_multiplier} The maximum number of edges per node +#' to retain in the search graph, relative to \code{n_neighbors}. A larger +#' value will give more accurate results at the cost of a longer computation +#' time. Default is \code{1.5}. This parameter only affects neighbor search +#' when transforming new data with \code{\link{umap_transform}}. +#' \item \code{epsilon} Controls the degree of the back-tracking when +#' traversing the search graph. Setting this to \code{0.0} will do a greedy +#' search with no back-tracking. A larger value will give more accurate +#' results at the cost of a longer computation time. Default is \code{0.1}. +#' This parameter only affects neighbor search when transforming new data with +#' \code{\link{umap_transform}}. +#' \item \code{max_search_fraction} Specifies the maximum fraction of the +#' search graph to traverse. By default, this is set to \code{1.0}, so the +#' entire graph (i.e. all items in \code{X}) may be visited. You may want to +#' set this to a smaller value if you have a very large dataset (in +#' conjunction with \code{epsilon}) to avoid an inefficient exhaustive search +#' of the data in \code{X}. This parameter only affects neighbor search when +#' transforming new data with \code{\link{umap_transform}}. +#' } #' @param y Optional target data for supervised dimension reduction. Can be a #' vector, matrix or data frame. Use the \code{target_metric} parameter to #' specify the metrics to use, using the same syntax as \code{metric}. Usually @@ -1497,6 +1641,36 @@ tumap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", #' and cannot be higher than the number of items in the index. Default is #' \code{10}. #' } +#' For \code{nn_method = "nndescent"}, you may specify the following +#' arguments: +#' \itemize{ +#' \item \code{n_trees} The number of trees to use in a random projection +#' forest to initialize the search. A larger number will give more accurate +#' results at the cost of a longer computation time. The default of +#' \code{NULL} means that the number is chosen based on the number of +#' observations in \code{X}. +#' \item \code{max_candidates} The number of potential neighbors to explore +#' per iteration. By default, this is set to \code{n_neighbors} or \code{60}, +#' whichever is smaller. A larger number will give more accurate results at +#' the cost of a longer computation time. +#' \item \code{n_iters} The number of iterations to run the search. A larger +#' number will give more accurate results at the cost of a longer computation +#' time. By default, this will be chosen based on the number of observations +#' in \code{X}. You may also need to modify the convergence criterion +#' \code{delta}. +#' \item \code{delta} The minimum relative change in the neighbor graph +#' allowed before early stopping. Should be a value between 0 and 1. The +#' smaller the value, the smaller the amount of progress between iterations is +#' allowed. Default value of \code{0.001} means that at least 0.1% of the +#' neighbor graph must be updated at each iteration. +#' \item \code{init} How to initialize the nearest neighbor descent. By +#' default this is set to \code{"tree"} and uses a random project forest. +#' If you set this to \code{"rand"}, then a random selection is used. Usually +#' this is less accurate than using RP trees, but for high-dimensional cases, +#' there may be little difference in the quality of the initialization and +#' random initialization will be a lot faster. If you set this to +#' \code{"rand"}, then the \code{n_trees} parameter is ignored. +#' } #' @param n_threads Number of threads to use (except during stochastic gradient #' descent). Default is half the number of concurrent threads supported by the #' system. For nearest neighbor search, only applies if @@ -1964,6 +2138,54 @@ lvish <- function(X, perplexity = 50, n_neighbors = perplexity * 3, #' and cannot be higher than the number of items in the index. Default is #' \code{10}. #' } +#' For \code{nn_method = "nndescent"}, you may specify the following +#' arguments: +#' \itemize{ +#' \item \code{n_trees} The number of trees to use in a random projection +#' forest to initialize the search. A larger number will give more accurate +#' results at the cost of a longer computation time. The default of +#' \code{NULL} means that the number is chosen based on the number of +#' observations in \code{X}. +#' \item \code{max_candidates} The number of potential neighbors to explore +#' per iteration. By default, this is set to \code{n_neighbors} or \code{60}, +#' whichever is smaller. A larger number will give more accurate results at +#' the cost of a longer computation time. +#' \item \code{n_iters} The number of iterations to run the search. A larger +#' number will give more accurate results at the cost of a longer computation +#' time. By default, this will be chosen based on the number of observations +#' in \code{X}. You may also need to modify the convergence criterion +#' \code{delta}. +#' \item \code{delta} The minimum relative change in the neighbor graph +#' allowed before early stopping. Should be a value between 0 and 1. The +#' smaller the value, the smaller the amount of progress between iterations is +#' allowed. Default value of \code{0.001} means that at least 0.1% of the +#' neighbor graph must be updated at each iteration. +#' \item \code{init} How to initialize the nearest neighbor descent. By +#' default this is set to \code{"tree"} and uses a random project forest. +#' If you set this to \code{"rand"}, then a random selection is used. Usually +#' this is less accurate than using RP trees, but for high-dimensional cases, +#' there may be little difference in the quality of the initialization and +#' random initialization will be a lot faster. If you set this to +#' \code{"rand"}, then the \code{n_trees} parameter is ignored. +#' \item \code{pruning_degree_multiplier} The maximum number of edges per node +#' to retain in the search graph, relative to \code{n_neighbors}. A larger +#' value will give more accurate results at the cost of a longer computation +#' time. Default is \code{1.5}. This parameter only affects neighbor search +#' when transforming new data with \code{\link{umap_transform}}. +#' \item \code{epsilon} Controls the degree of the back-tracking when +#' traversing the search graph. Setting this to \code{0.0} will do a greedy +#' search with no back-tracking. A larger value will give more accurate +#' results at the cost of a longer computation time. Default is \code{0.1}. +#' This parameter only affects neighbor search when transforming new data with +#' \code{\link{umap_transform}}. +#' \item \code{max_search_fraction} Specifies the maximum fraction of the +#' search graph to traverse. By default, this is set to \code{1.0}, so the +#' entire graph (i.e. all items in \code{X}) may be visited. You may want to +#' set this to a smaller value if you have a very large dataset (in +#' conjunction with \code{epsilon}) to avoid an inefficient exhaustive search +#' of the data in \code{X}. This parameter only affects neighbor search when +#' transforming new data with \code{\link{umap_transform}}. +#' } #' @param perplexity Used only if \code{method = "largevis"}. Controls the size #' of the local neighborhood used for manifold approximation. Should be a #' value between 1 and one less than the number of items in \code{X}. If diff --git a/man/lvish.Rd b/man/lvish.Rd index 68f6b886..4261d06f 100644 --- a/man/lvish.Rd +++ b/man/lvish.Rd @@ -432,6 +432,36 @@ Default is \code{200}. list used during search. This cannot be smaller than \code{n_neighbors} and cannot be higher than the number of items in the index. Default is \code{10}. +} +For \code{nn_method = "nndescent"}, you may specify the following +arguments: +\itemize{ +\item \code{n_trees} The number of trees to use in a random projection +forest to initialize the search. A larger number will give more accurate +results at the cost of a longer computation time. The default of +\code{NULL} means that the number is chosen based on the number of +observations in \code{X}. +\item \code{max_candidates} The number of potential neighbors to explore +per iteration. By default, this is set to \code{n_neighbors} or \code{60}, +whichever is smaller. A larger number will give more accurate results at +the cost of a longer computation time. +\item \code{n_iters} The number of iterations to run the search. A larger +number will give more accurate results at the cost of a longer computation +time. By default, this will be chosen based on the number of observations +in \code{X}. You may also need to modify the convergence criterion +\code{delta}. +\item \code{delta} The minimum relative change in the neighbor graph +allowed before early stopping. Should be a value between 0 and 1. The +smaller the value, the smaller the amount of progress between iterations is +allowed. Default value of \code{0.001} means that at least 0.1% of the +neighbor graph must be updated at each iteration. +\item \code{init} How to initialize the nearest neighbor descent. By +default this is set to \code{"tree"} and uses a random project forest. +If you set this to \code{"rand"}, then a random selection is used. Usually +this is less accurate than using RP trees, but for high-dimensional cases, +there may be little difference in the quality of the initialization and +random initialization will be a lot faster. If you set this to +\code{"rand"}, then the \code{n_trees} parameter is ignored. }} } \value{ diff --git a/man/similarity_graph.Rd b/man/similarity_graph.Rd index 779980dc..ed073d5e 100644 --- a/man/similarity_graph.Rd +++ b/man/similarity_graph.Rd @@ -338,6 +338,54 @@ Default is \code{200}. list used during search. This cannot be smaller than \code{n_neighbors} and cannot be higher than the number of items in the index. Default is \code{10}. +} +For \code{nn_method = "nndescent"}, you may specify the following +arguments: +\itemize{ +\item \code{n_trees} The number of trees to use in a random projection +forest to initialize the search. A larger number will give more accurate +results at the cost of a longer computation time. The default of +\code{NULL} means that the number is chosen based on the number of +observations in \code{X}. +\item \code{max_candidates} The number of potential neighbors to explore +per iteration. By default, this is set to \code{n_neighbors} or \code{60}, +whichever is smaller. A larger number will give more accurate results at +the cost of a longer computation time. +\item \code{n_iters} The number of iterations to run the search. A larger +number will give more accurate results at the cost of a longer computation +time. By default, this will be chosen based on the number of observations +in \code{X}. You may also need to modify the convergence criterion +\code{delta}. +\item \code{delta} The minimum relative change in the neighbor graph +allowed before early stopping. Should be a value between 0 and 1. The +smaller the value, the smaller the amount of progress between iterations is +allowed. Default value of \code{0.001} means that at least 0.1% of the +neighbor graph must be updated at each iteration. +\item \code{init} How to initialize the nearest neighbor descent. By +default this is set to \code{"tree"} and uses a random project forest. +If you set this to \code{"rand"}, then a random selection is used. Usually +this is less accurate than using RP trees, but for high-dimensional cases, +there may be little difference in the quality of the initialization and +random initialization will be a lot faster. If you set this to +\code{"rand"}, then the \code{n_trees} parameter is ignored. +\item \code{pruning_degree_multiplier} The maximum number of edges per node +to retain in the search graph, relative to \code{n_neighbors}. A larger +value will give more accurate results at the cost of a longer computation +time. Default is \code{1.5}. This parameter only affects neighbor search +when transforming new data with \code{\link{umap_transform}}. +\item \code{epsilon} Controls the degree of the back-tracking when +traversing the search graph. Setting this to \code{0.0} will do a greedy +search with no back-tracking. A larger value will give more accurate +results at the cost of a longer computation time. Default is \code{0.1}. +This parameter only affects neighbor search when transforming new data with +\code{\link{umap_transform}}. +\item \code{max_search_fraction} Specifies the maximum fraction of the +search graph to traverse. By default, this is set to \code{1.0}, so the +entire graph (i.e. all items in \code{X}) may be visited. You may want to +set this to a smaller value if you have a very large dataset (in +conjunction with \code{epsilon}) to avoid an inefficient exhaustive search +of the data in \code{X}. This parameter only affects neighbor search when +transforming new data with \code{\link{umap_transform}}. }} } \value{ diff --git a/man/tumap.Rd b/man/tumap.Rd index cc4bf1ac..1ffe7b4c 100644 --- a/man/tumap.Rd +++ b/man/tumap.Rd @@ -530,6 +530,102 @@ Default is \code{200}. list used during search. This cannot be smaller than \code{n_neighbors} and cannot be higher than the number of items in the index. Default is \code{10}. +} +For \code{nn_method = "nndescent"}, you may specify the following +arguments: +\itemize{ +\item \code{n_trees} The number of trees to use in a random projection +forest to initialize the search. A larger number will give more accurate +results at the cost of a longer computation time. The default of +\code{NULL} means that the number is chosen based on the number of +observations in \code{X}. +\item \code{max_candidates} The number of potential neighbors to explore +per iteration. By default, this is set to \code{n_neighbors} or \code{60}, +whichever is smaller. A larger number will give more accurate results at +the cost of a longer computation time. +\item \code{n_iters} The number of iterations to run the search. A larger +number will give more accurate results at the cost of a longer computation +time. By default, this will be chosen based on the number of observations +in \code{X}. You may also need to modify the convergence criterion +\code{delta}. +\item \code{delta} The minimum relative change in the neighbor graph +allowed before early stopping. Should be a value between 0 and 1. The +smaller the value, the smaller the amount of progress between iterations is +allowed. Default value of \code{0.001} means that at least 0.1% of the +neighbor graph must be updated at each iteration. +\item \code{init} How to initialize the nearest neighbor descent. By +default this is set to \code{"tree"} and uses a random project forest. +If you set this to \code{"rand"}, then a random selection is used. Usually +this is less accurate than using RP trees, but for high-dimensional cases, +there may be little difference in the quality of the initialization and +random initialization will be a lot faster. If you set this to +\code{"rand"}, then the \code{n_trees} parameter is ignored. +\item \code{pruning_degree_multiplier} The maximum number of edges per node +to retain in the search graph, relative to \code{n_neighbors}. A larger +value will give more accurate results at the cost of a longer computation +time. Default is \code{1.5}. This parameter only affects neighbor search +when transforming new data with \code{\link{umap_transform}}. +\item \code{epsilon} Controls the degree of the back-tracking when +traversing the search graph. Setting this to \code{0.0} will do a greedy +search with no back-tracking. A larger value will give more accurate +results at the cost of a longer computation time. Default is \code{0.1}. +This parameter only affects neighbor search when transforming new data with +\code{\link{umap_transform}}. +\item \code{max_search_fraction} Specifies the maximum fraction of the +search graph to traverse. By default, this is set to \code{1.0}, so the +entire graph (i.e. all items in \code{X}) may be visited. You may want to +set this to a smaller value if you have a very large dataset (in +conjunction with \code{epsilon}) to avoid an inefficient exhaustive search +of the data in \code{X}. This parameter only affects neighbor search when +transforming new data with \code{\link{umap_transform}}. +} +For \code{nn_method = "nndescent"}, you may specify the following +arguments: +\itemize{ +\item \code{n_trees} The number of trees to use in a random projection +forest to initialize the search. A larger number will give more accurate +results at the cost of a longer computation time. The default of +\code{NULL} means that the number is chosen based on the number of +observations in \code{X}. +\item \code{max_candidates} The number of potential neighbors to explore +per iteration. By default, this is set to \code{n_neighbors} or \code{60}, +whichever is smaller. A larger number will give more accurate results at +the cost of a longer computation time. +\item \code{n_iters} The number of iterations to run the search. A larger +number will give more accurate results at the cost of a longer computation +time. By default, this will be chosen based on the number of observations +in \code{X}. You may also need to modify the convergence criterion +\code{delta}. +\item \code{delta} The minimum relative change in the neighbor graph +allowed before early stopping. Should be a value between 0 and 1. The +smaller the value, the smaller the amount of progress between iterations is +allowed. Default value of \code{0.001} means that at least 0.1% of the +neighbor graph must be updated at each iteration. +\item \code{init} How to initialize the nearest neighbor descent. By +default this is set to \code{"tree"} and uses a random project forest. If +you set this to \code{"rand"}, then a random selection is used. Usually +this is less accurate than using RP trees, but for high-dimensional cases, +there may be little difference in the quality of the initialization and +random initialization will be a lot faster. If you set this to +\code{"rand"}, then the \code{n_trees} parameter is ignored. +\item \code{pruning_degree_multiplier} The maximum number of edges per node +to retain in the search graph, relative to \code{n_neighbors}. A larger +value will give more accurate results at the cost of a longer computation +time. Default is \code{1.5}. This parameter only affects neighbor search +when transforming new data with \code{\link{umap_transform}}. +\item \code{epsilon} Controls the degree of the back-tracking when +traversing the search graph. Setting this to \code{0.0} will do a greedy +search with no back-tracking. A larger value will give more accurate +results at the cost of a longer computation time. Default is \code{0.1}. +This parameter only affects neighbor search when transforming new data with +\code{\link{umap_transform}}. +\item \code{max_search_fraction} Specifies the maximum fraction of the +search graph to traverse. By default, this is set to \code{1.0}, so the +entire graph (i.e. all items in \code{X}) may be visited. You may want to +set this to a smaller value if you have a very large dataset (in +conjunction with \code{epsilon}) to avoid an inefficient exhaustive search +of the data in \code{X}. This parameter only affects neighbor search when +transforming new data with \code{\link{umap_transform}}. }} } \value{ diff --git a/man/umap.Rd b/man/umap.Rd index ce09eeeb..ff85eb43 100644 --- a/man/umap.Rd +++ b/man/umap.Rd @@ -568,6 +568,54 @@ Default is \code{200}. list used during search. This cannot be smaller than \code{n_neighbors} and cannot be higher than the number of items in the index. Default is \code{10}. +} +For \code{nn_method = "nndescent"}, you may specify the following +arguments: +\itemize{ +\item \code{n_trees} The number of trees to use in a random projection +forest to initialize the search. A larger number will give more accurate +results at the cost of a longer computation time. The default of +\code{NULL} means that the number is chosen based on the number of +observations in \code{X}. +\item \code{max_candidates} The number of potential neighbors to explore +per iteration. By default, this is set to \code{n_neighbors} or \code{60}, +whichever is smaller. A larger number will give more accurate results at +the cost of a longer computation time. +\item \code{n_iters} The number of iterations to run the search. A larger +number will give more accurate results at the cost of a longer computation +time. By default, this will be chosen based on the number of observations +in \code{X}. You may also need to modify the convergence criterion +\code{delta}. +\item \code{delta} The minimum relative change in the neighbor graph +allowed before early stopping. Should be a value between 0 and 1. The +smaller the value, the smaller the amount of progress between iterations is +allowed. Default value of \code{0.001} means that at least 0.1% of the +neighbor graph must be updated at each iteration. +\item \code{init} How to initialize the nearest neighbor descent. By +default this is set to \code{"tree"} and uses a random project forest. +If you set this to \code{"rand"}, then a random selection is used. Usually +this is less accurate than using RP trees, but for high-dimensional cases, +there may be little difference in the quality of the initialization and +random initialization will be a lot faster. If you set this to +\code{"rand"}, then the \code{n_trees} parameter is ignored. +\item \code{pruning_degree_multiplier} The maximum number of edges per node +to retain in the search graph, relative to \code{n_neighbors}. A larger +value will give more accurate results at the cost of a longer computation +time. Default is \code{1.5}. This parameter only affects neighbor search +when transforming new data with \code{\link{umap_transform}}. +\item \code{epsilon} Controls the degree of the back-tracking when +traversing the search graph. Setting this to \code{0.0} will do a greedy +search with no back-tracking. A larger value will give more accurate +results at the cost of a longer computation time. Default is \code{0.1}. +This parameter only affects neighbor search when transforming new data with +\code{\link{umap_transform}}. +\item \code{max_search_fraction} Specifies the maximum fraction of the +search graph to traverse. By default, this is set to \code{1.0}, so the +entire graph (i.e. all items in \code{X}) may be visited. You may want to +set this to a smaller value if you have a very large dataset (in +conjunction with \code{epsilon}) to avoid an inefficient exhaustive search +of the data in \code{X}. This parameter only affects neighbor search when +transforming new data with \code{\link{umap_transform}}. }} } \value{ From d408143fabb536a3a4f017ac6f6809495b23b58a Mon Sep 17 00:00:00 2001 From: James Melville Date: Mon, 18 Mar 2024 12:00:50 -0700 Subject: [PATCH 07/20] fix missing function --- R/nn_nndescent.R | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/R/nn_nndescent.R b/R/nn_nndescent.R index 940a8092..ccafb5a1 100644 --- a/R/nn_nndescent.R +++ b/R/nn_nndescent.R @@ -11,13 +11,15 @@ nndescent_nn <- function(X, if (!ret_index) { nn_knn_args <- get_nndescent_knn_args(nn_args) - nn_knn_args <- lreplace( + nn_knn_args <- lmerge( nn_knn_args, - data = X, - k = k, - metric = metric, - n_threads = n_threads, - verbose = verbose + list( + data = X, + k = k, + metric = metric, + n_threads = n_threads, + verbose = verbose + ) ) return(do.call(rnndescent::rnnd_knn, nn_knn_args)) } @@ -47,13 +49,15 @@ nndescent_build <- function(X, n_threads = NULL, verbose = FALSE) { nn_build_args <- get_nndescent_build_args(nn_args) - nn_build_args <- lreplace( + nn_build_args <- lmerge( nn_build_args, - data = X, - k = k, - metric = metric, - n_threads = n_threads, - verbose = verbose + list( + data = X, + k = k, + metric = metric, + n_threads = n_threads, + verbose = verbose + ) ) index <- do.call(rnndescent::rnnd_build, nn_build_args) @@ -73,13 +77,15 @@ nndescent_search <- function(X, n_threads = NULL, verbose = FALSE) { nn_query_args <- get_nndescent_query_args(nn_args) - nn_query_args <- lreplace( + nn_query_args <- lmerge( nn_query_args, - index = ann$ann, - query = X, - k = k, - n_threads = n_threads, - verbose = verbose + list( + index = ann$ann, + query = X, + k = k, + n_threads = n_threads, + verbose = verbose + ) ) do.call(rnndescent::rnnd_query, nn_query_args) From 84bbbb9c050717d6ed5c626efd2d83cd135088d5 Mon Sep 17 00:00:00 2001 From: James Melville Date: Mon, 18 Mar 2024 12:01:07 -0700 Subject: [PATCH 08/20] clean up hnsw metric check --- R/nn_hnsw.R | 5 +++++ R/uwot.R | 5 ++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/R/nn_hnsw.R b/R/nn_hnsw.R index b648d0e5..214c31c3 100644 --- a/R/nn_hnsw.R +++ b/R/nn_hnsw.R @@ -102,3 +102,8 @@ hnsw_load <- function(name, ndim, filename) { ) methods::new(class_name, ndim, filename) } + +is_ok_hnsw_metric <- function(metric) { + hnsw_metrics <- c("euclidean", "cosine", "correlation") + metric %in% hnsw_metrics +} diff --git a/R/uwot.R b/R/uwot.R index 6da64976..70721a00 100644 --- a/R/uwot.R +++ b/R/uwot.R @@ -3041,14 +3041,13 @@ uwot <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", if (!is_installed("RcppHNSW")) { stop("RcppHNSW is required for nn_method = 'hnsw', please install it") } - hnsw_metrics <- c("euclidean", "cosine", "correlation") - if (!metric %in% hnsw_metrics) { + if (!is_ok_hnsw_metric(metric)) { stop( "bad metric: hnsw only supports 'euclidean', 'cosine' or ", "'correlation' metrics" ) } - if (!target_metric %in% hnsw_metrics) { + if (!is_ok_hnsw_metric(target_metric)) { stop( "bad target_metric: hnsw only supports 'euclidean', 'cosine' or ", "'correlation' metrics" From ce32b4ec17ca8de15709ccfb6af137d4a5638671 Mon Sep 17 00:00:00 2001 From: James Melville Date: Thu, 21 Mar 2024 22:01:11 -0700 Subject: [PATCH 09/20] mention other nn_methods in metric doc --- R/uwot.R | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 5 deletions(-) diff --git a/R/uwot.R b/R/uwot.R index 70721a00..51424f53 100644 --- a/R/uwot.R +++ b/R/uwot.R @@ -38,8 +38,19 @@ #' \item \code{"categorical"} (see below) #' } #' Only applies if \code{nn_method = "annoy"} (for \code{nn_method = "fnn"}, the -#' distance metric is always "euclidean"). -#' +#' distance metric is always "euclidean"). If +#' \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} is installed +#' and \code{nn_method = "hnsw"} is specified then only the following metrics +#' are available: +#' \itemize{ +#' \item \code{"euclidean"} +#' \item \code{"cosine"} +#' \item \code{"correlation"} +#' } +#' If \href{https://cran.r-project.org/package=rnndescent}{rnndescent} is +#' installed and \code{nn_method = "nndescent"} is specified then many more +#' metrics are avaiable. For more details see the package documentation of +#' \code{rnndescent}. #' If \code{X} is a data frame or matrix, then multiple metrics can be #' specified, by passing a list to this argument, where the name of each item in #' the list is one of the metric names above. The value of each list item should @@ -752,7 +763,19 @@ umap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", #' \item \code{"categorical"} (see below) #' } #' Only applies if \code{nn_method = "annoy"} (for \code{nn_method = "fnn"}, the -#' distance metric is always "euclidean"). +#' distance metric is always "euclidean"). If +#' \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} is installed +#' and \code{nn_method = "hnsw"} is specified then only the following metrics +#' are available: +#' \itemize{ +#' \item \code{"euclidean"} +#' \item \code{"cosine"} +#' \item \code{"correlation"} +#' } +#' If \href{https://cran.r-project.org/package=rnndescent}{rnndescent} is +#' installed and \code{nn_method = "nndescent"} is specified then many more +#' metrics are avaiable. For more details see the package documentation of +#' \code{rnndescent}. #' #' If \code{X} is a data frame or matrix, then multiple metrics can be #' specified, by passing a list to this argument, where the name of each item in @@ -1471,7 +1494,19 @@ tumap <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", #' \item \code{"categorical"} (see below) #' } #' Only applies if \code{nn_method = "annoy"} (for \code{nn_method = "fnn"}, the -#' distance metric is always "euclidean"). +#' distance metric is always "euclidean"). If +#' \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} is installed +#' and \code{nn_method = "hnsw"} is specified then only the following metrics +#' are available: +#' \itemize{ +#' \item \code{"euclidean"} +#' \item \code{"cosine"} +#' \item \code{"correlation"} +#' } +#' If \href{https://cran.r-project.org/package=rnndescent}{rnndescent} is +#' installed and \code{nn_method = "nndescent"} is specified then many more +#' metrics are avaiable. For more details see the package documentation of +#' \code{rnndescent}. #' #' If \code{X} is a data frame or matrix, then multiple metrics can be #' specified, by passing a list to this argument, where the name of each item in @@ -2016,7 +2051,19 @@ lvish <- function(X, perplexity = 50, n_neighbors = perplexity * 3, #' \item \code{"categorical"} (see below) #' } #' Only applies if \code{nn_method = "annoy"} (for \code{nn_method = "fnn"}, the -#' distance metric is always "euclidean"). +#' distance metric is always "euclidean"). If +#' \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} is installed +#' and \code{nn_method = "hnsw"} is specified then only the following metrics +#' are available: +#' \itemize{ +#' \item \code{"euclidean"} +#' \item \code{"cosine"} +#' \item \code{"correlation"} +#' } +#' If \href{https://cran.r-project.org/package=rnndescent}{rnndescent} is +#' installed and \code{nn_method = "nndescent"} is specified then many more +#' metrics are avaiable. For more details see the package documentation of +#' \code{rnndescent}. #' #' If \code{X} is a data frame or matrix, then multiple metrics can be #' specified, by passing a list to this argument, where the name of each item in From af32775b59b29b3775e65f630892d70ac797c6e3 Mon Sep 17 00:00:00 2001 From: James Melville Date: Thu, 21 Mar 2024 22:03:26 -0700 Subject: [PATCH 10/20] umap2 function --- R/neighbors.R | 6 +- R/transform.R | 3 +- R/umap2.R | 757 ++++++++++++++++++++++++++++++++++++++++++++++++++ R/uwot.R | 150 +++++++--- 4 files changed, 874 insertions(+), 42 deletions(-) create mode 100644 R/umap2.R diff --git a/R/neighbors.R b/R/neighbors.R index ba84e164..871e302c 100644 --- a/R/neighbors.R +++ b/R/neighbors.R @@ -6,6 +6,7 @@ find_nn <- function(X, k, include_self = TRUE, method = "fnn", n_threads = NULL, grain_size = 1, ret_index = FALSE, + sparse_is_distance = TRUE, verbose = FALSE) { if (is.null(n_threads)) { n_threads <- default_num_threads() @@ -13,7 +14,7 @@ find_nn <- function(X, k, include_self = TRUE, method = "fnn", if (methods::is(X, "dist")) { res <- dist_nn(X, k, include_self = include_self, verbose = verbose) - } else if (is_sparse_matrix(X)) { + } else if (sparse_is_distance && is_sparse_matrix(X)) { # sparse distance matrix if (Matrix::isTriangular(X)) { res <- sparse_tri_nn(X, k, include_self = include_self, verbose = verbose) @@ -21,6 +22,9 @@ find_nn <- function(X, k, include_self = TRUE, method = "fnn", res <- sparse_nn(X, k, include_self = include_self, verbose = verbose) } } else { + if (is_sparse_matrix(X) && method != "nndescent") { + stop("Sparse matrix input only supported for nndescent method.") + } # normal matrix switch(method, "fnn" = { diff --git a/R/transform.R b/R/transform.R index a7d69def..74b5a90b 100644 --- a/R/transform.R +++ b/R/transform.R @@ -370,7 +370,8 @@ umap_transform <- function(X = NULL, model = NULL, n_vertices <- NULL Xnames <- NULL if (!is.null(X)) { - if (!(methods::is(X, "data.frame") || methods::is(X, "matrix"))) { + if (!(methods::is(X, "data.frame") || + methods::is(X, "matrix") || is_sparse_matrix(X))) { stop("Unknown input data format") } if (!is.null(norig_col) && ncol(X) != norig_col) { diff --git a/R/umap2.R b/R/umap2.R new file mode 100644 index 00000000..a78c7dd5 --- /dev/null +++ b/R/umap2.R @@ -0,0 +1,757 @@ +#' Dimensionality Reduction with UMAP +#' +#' Carry out dimensionality reduction of a dataset using the Uniform Manifold +#' Approximation and Projection (UMAP) method (McInnes et al., 2018). +#' +#' This function behaves like \code{\link{umap}} except with some updated +#' defaults that make it behave more like the Python implementation and which +#' cannot be added to \code{\link{umap}} without breaking backwards +#' compatibility. In addition: +#' +#' \itemize{ +#' \item if \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} is +#' installed, it will be used in preference to Annoy if a compatible metric +#' is requested. +#' \item if RcppHNSW is not present, but +#' \href{https://cran.r-project.org/package=rnndescent}{rnndescent} is +#' installed, it will be used in preference to Annoy if a compatible metric +#' is requested. +#' \item if \code{batch = TRUE} then the default \code{n_sgd_threads} is set +#' to the same value as \code{n_threads}. +#' \item if the input data \code{X} is a sparse matrix, it is interpreted +#' similarly to a dense matrix or dataframe, and not as a distance matrix. +#' This requires \code{rnndescent} package to be installed. +#' } +#' +#' @param X Input data. Can be a \code{\link{data.frame}}, \code{\link{matrix}}, +#' \code{\link[stats]{dist}} object or \code{\link[Matrix]{sparseMatrix}}. +#' Matrix and data frames should contain one observation per row. Data frames +#' will have any non-numeric columns removed, although factor columns will be +#' used if explicitly included via \code{metric} (see the help for +#' \code{metric} for details). A sparse matrix is interpreted as a distance +#' matrix, and is assumed to be symmetric, so you can also pass in an +#' explicitly upper or lower triangular sparse matrix to save storage. There +#' must be at least \code{n_neighbors} non-zero distances for each row. Both +#' implicit and explicit zero entries are ignored. Set zero distances you want +#' to keep to an arbitrarily small non-zero value (e.g. \code{1e-10}). +#' \code{X} can also be \code{NULL} if pre-computed nearest neighbor data is +#' passed to \code{nn_method}, and \code{init} is not \code{"spca"} or +#' \code{"pca"}. +#' @param n_neighbors The size of local neighborhood (in terms of number of +#' neighboring sample points) used for manifold approximation. Larger values +#' result in more global views of the manifold, while smaller values result in +#' more local data being preserved. In general values should be in the range +#' \code{2} to \code{100}. +#' @param n_components The dimension of the space to embed into. This defaults +#' to \code{2} to provide easy visualization, but can reasonably be set to any +#' integer value in the range \code{2} to \code{100}. +#' @param metric Type of distance metric to use to find nearest neighbors. One +#' of: +#' \itemize{ +#' \item \code{"euclidean"} (the default) +#' \item \code{"cosine"} +#' \item \code{"manhattan"} +#' \item \code{"hamming"} +#' \item \code{"correlation"} (a distance based on the Pearson correlation) +#' \item \code{"categorical"} (see below) +#' } +#' Only applies if \code{nn_method = "annoy"} (for \code{nn_method = "fnn"}, the +#' distance metric is always "euclidean"). +#' +#' If \code{X} is a data frame or matrix, then multiple metrics can be +#' specified, by passing a list to this argument, where the name of each item in +#' the list is one of the metric names above. The value of each list item should +#' be a vector giving the names or integer ids of the columns to be included in +#' a calculation, e.g. \code{metric = list(euclidean = 1:4, manhattan = 5:10)}. +#' +#' Each metric calculation results in a separate fuzzy simplicial set, which are +#' intersected together to produce the final set. Metric names can be repeated. +#' Because non-numeric columns are removed from the data frame, it is safer to +#' use column names than integer ids. +#' +#' Factor columns can also be used by specifying the metric name +#' \code{"categorical"}. Factor columns are treated different from numeric +#' columns and although multiple factor columns can be specified in a vector, +#' each factor column specified is processed individually. If you specify +#' a non-factor column, it will be coerced to a factor. +#' +#' For a given data block, you may override the \code{pca} and \code{pca_center} +#' arguments for that block, by providing a list with one unnamed item +#' containing the column names or ids, and then any of the \code{pca} or +#' \code{pca_center} overrides as named items, e.g. \code{metric = +#' list(euclidean = 1:4, manhattan = list(5:10, pca_center = FALSE))}. This +#' exists to allow mixed binary and real-valued data to be included and to have +#' PCA applied to both, but with centering applied only to the real-valued data +#' (it is typical not to apply centering to binary data before PCA is applied). +#' @param n_epochs Number of epochs to use during the optimization of the +#' embedded coordinates. By default, this value is set to \code{500} for +#' datasets containing 10,000 vertices or less, and \code{200} otherwise. +#' If \code{n_epochs = 0}, then coordinates determined by \code{"init"} will +#' be returned. +#' @param scale Scaling to apply to \code{X} if it is a data frame or matrix: +#' \itemize{ +#' \item{\code{"none"} or \code{FALSE} or \code{NULL}} No scaling. +#' \item{\code{"Z"} or \code{"scale"} or \code{TRUE}} Scale each column to +#' zero mean and variance 1. +#' \item{\code{"maxabs"}} Center each column to mean 0, then divide each +#' element by the maximum absolute value over the entire matrix. +#' \item{\code{"range"}} Range scale the entire matrix, so the smallest +#' element is 0 and the largest is 1. +#' \item{\code{"colrange"}} Scale each column in the range (0,1). +#' } +#' For UMAP, the default is \code{"none"}. +#' @param learning_rate Initial learning rate used in optimization of the +#' coordinates. +#' @param init Type of initialization for the coordinates. Options are: +#' \itemize{ +#' \item \code{"spectral"} Spectral embedding using the normalized Laplacian +#' of the fuzzy 1-skeleton, with Gaussian noise added. +#' \item \code{"normlaplacian"}. Spectral embedding using the normalized +#' Laplacian of the fuzzy 1-skeleton, without noise. +#' \item \code{"random"}. Coordinates assigned using a uniform random +#' distribution between -10 and 10. +#' \item \code{"lvrandom"}. Coordinates assigned using a Gaussian +#' distribution with standard deviation 1e-4, as used in LargeVis +#' (Tang et al., 2016) and t-SNE. +#' \item \code{"laplacian"}. Spectral embedding using the Laplacian Eigenmap +#' (Belkin and Niyogi, 2002). +#' \item \code{"pca"}. The first two principal components from PCA of +#' \code{X} if \code{X} is a data frame, and from a 2-dimensional classical +#' MDS if \code{X} is of class \code{"dist"}. +#' \item \code{"spca"}. Like \code{"pca"}, but each dimension is then scaled +#' so the standard deviation is 1e-4, to give a distribution similar to that +#' used in t-SNE. This is an alias for \code{init = "pca", init_sdev = +#' 1e-4}. +#' \item \code{"agspectral"} An "approximate global" modification of +#' \code{"spectral"} which all edges in the graph to a value of 1, and then +#' sets a random number of edges (\code{negative_sample_rate} edges per +#' vertex) to 0.1, to approximate the effect of non-local affinities. +#' \item A matrix of initial coordinates. +#' } +#' For spectral initializations, (\code{"spectral"}, \code{"normlaplacian"}, +#' \code{"laplacian"}, \code{"agspectral"}), if more than one connected +#' component is identified, no spectral initialization is attempted. Instead +#' a PCA-based initialization is attempted. If \code{verbose = TRUE} the +#' number of connected components are logged to the console. The existence of +#' multiple connected components implies that a global view of the data cannot +#' be attained with this initialization. Increasing the value of +#' \code{n_neighbors} may help. +#' @param init_sdev If non-\code{NULL}, scales each dimension of the initialized +#' coordinates (including any user-supplied matrix) to this standard +#' deviation. By default no scaling is carried out, except when \code{init = +#' "spca"}, in which case the value is \code{0.0001}. Scaling the input may +#' help if the unscaled versions result in initial coordinates with large +#' inter-point distances or outliers. This usually results in small gradients +#' during optimization and very little progress being made to the layout. +#' Shrinking the initial embedding by rescaling can help under these +#' circumstances. Scaling the result of \code{init = "pca"} is usually +#' recommended and \code{init = "spca"} as an alias for \code{init = "pca", +#' init_sdev = 1e-4} but for the spectral initializations the scaled versions +#' usually aren't necessary unless you are using a large value of +#' \code{n_neighbors} (e.g. \code{n_neighbors = 150} or higher). For +#' compatibility with recent versions of the Python UMAP package, if you are +#' using \code{init = "spectral"}, then you should also set +#' \code{init_sdev = "range"}, which will range scale each of the columns +#' containing the initial data between 0-10. This is not set by default to +#' maintain backwards compatibility with previous versions of uwot. +#' @param spread The effective scale of embedded points. In combination with +#' \code{min_dist}, this determines how clustered/clumped the embedded points +#' are. +#' @param min_dist The effective minimum distance between embedded points. +#' Smaller values will result in a more clustered/clumped embedding where +#' nearby points on the manifold are drawn closer together, while larger +#' values will result on a more even dispersal of points. The value should be +#' set relative to the \code{spread} value, which determines the scale at +#' which embedded points will be spread out. +#' @param set_op_mix_ratio Interpolate between (fuzzy) union and intersection as +#' the set operation used to combine local fuzzy simplicial sets to obtain a +#' global fuzzy simplicial sets. Both fuzzy set operations use the product +#' t-norm. The value of this parameter should be between \code{0.0} and +#' \code{1.0}; a value of \code{1.0} will use a pure fuzzy union, while +#' \code{0.0} will use a pure fuzzy intersection. +#' @param local_connectivity The local connectivity required -- i.e. the number +#' of nearest neighbors that should be assumed to be connected at a local +#' level. The higher this value the more connected the manifold becomes +#' locally. In practice this should be not more than the local intrinsic +#' dimension of the manifold. +#' @param bandwidth The effective bandwidth of the kernel if we view the +#' algorithm as similar to Laplacian Eigenmaps. Larger values induce more +#' connectivity and a more global view of the data, smaller values concentrate +#' more locally. +#' @param repulsion_strength Weighting applied to negative samples in low +#' dimensional embedding optimization. Values higher than one will result in +#' greater weight being given to negative samples. +#' @param negative_sample_rate The number of negative edge/1-simplex samples to +#' use per positive edge/1-simplex sample in optimizing the low dimensional +#' embedding. +#' @param a More specific parameters controlling the embedding. If \code{NULL} +#' these values are set automatically as determined by \code{min_dist} and +#' \code{spread}. +#' @param b More specific parameters controlling the embedding. If \code{NULL} +#' these values are set automatically as determined by \code{min_dist} and +#' \code{spread}. +#' @param nn_method Method for finding nearest neighbors. Options are: +#' \itemize{ +#' \item \code{"fnn"}. Use exact nearest neighbors via the +#' \href{https://cran.r-project.org/package=FNN}{FNN} package. +#' \item \code{"annoy"} Use approximate nearest neighbors via the +#' \href{https://cran.r-project.org/package=RcppAnnoy}{RcppAnnoy} package. +#' \item \code{"hnsw"} Use approximate nearest neighbors with the +#' Hierarchical Navigable Small World (HNSW) method (Malkov and Yashunin, +#' 2018) via the +#' \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} package. +#' \code{RcppHNSW} is not a dependency of this package: this option is +#' only available if you have installed \code{RcppHNSW} yourself. Also, +#' HNSW only supports the following arguments for \code{metric} and +#' \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and +#' \code{"correlation"}. +#' \item \code{"nndescent"} Use approximate nearest neighbors with the +#' Nearest Neighbor Descent method (Dong et al., 2011) via the +#' \href{https://cran.r-project.org/package=rnndescent}{rnndescent} +#' package. \code{rnndescent} is not a dependency of this package: this +#' option is only available if you have installed \code{rnndescent} +#' yourself. +#' } +#' By default, if \code{X} has less than 4,096 vertices, the exact nearest +#' neighbors are found. Otherwise, approximate nearest neighbors are used. +#' You may also pass pre-calculated nearest neighbor data to this argument. It +#' must be one of two formats, either a list consisting of two elements: +#' \itemize{ +#' \item \code{"idx"}. A \code{n_vertices x n_neighbors} matrix +#' containing the integer indexes of the nearest neighbors in \code{X}. Each +#' vertex is considered to be its own nearest neighbor, i.e. +#' \code{idx[, 1] == 1:n_vertices}. +#' \item \code{"dist"}. A \code{n_vertices x n_neighbors} matrix +#' containing the distances of the nearest neighbors. +#' } +#' or a sparse distance matrix of type \code{dgCMatrix}, with dimensions +#' \code{n_vertices x n_vertices}. Distances should be arranged by column, +#' i.e. a non-zero entry in row \code{j} of the \code{i}th column indicates +#' that the \code{j}th observation in \code{X} is a nearest neighbor of the +#' \code{i}th observation with the distance given by the value of that +#' element. +#' The \code{n_neighbors} parameter is ignored when using precomputed +#' nearest neighbor data. If using the sparse distance matrix input, each +#' column can contain a different number of neighbors. +#' @param n_trees Number of trees to build when constructing the nearest +#' neighbor index. The more trees specified, the larger the index, but the +#' better the results. With \code{search_k}, determines the accuracy of the +#' Annoy nearest neighbor search. Only used if the \code{nn_method} is +#' \code{"annoy"}. Sensible values are between \code{10} to \code{100}. +#' @param search_k Number of nodes to search during the neighbor retrieval. The +#' larger k, the more the accurate results, but the longer the search takes. +#' With \code{n_trees}, determines the accuracy of the Annoy nearest neighbor +#' search. Only used if the \code{nn_method} is \code{"annoy"}. +#' @param nn_args A list containing additional arguments to pass to the nearest +#' neighbor method. For \code{nn_method = "annoy"}, you can specify +#' \code{"n_trees"} and \code{"search_k"}, and these will override the +#' \code{n_trees} and \code{search_k} parameters. +#' For \code{nn_method = "hnsw"}, you may specify the following arguments: +#' \itemize{ +#' \item \code{M} The maximum number of neighbors to keep for each vertex. +#' Reasonable values are \code{2} to \code{100}. Higher values give better +#' recall at the cost of more memory. Default value is \code{16}. +#' \item \code{ef_construction} A positive integer specifying the size of +#' the dynamic list used during index construction. A higher value will +#' provide better results at the cost of a longer time to build the index. +#' Default is \code{200}. +#' \item \code{ef} A positive integer specifying the size of the dynamic +#' list used during search. This cannot be smaller than \code{n_neighbors} +#' and cannot be higher than the number of items in the index. Default is +#' \code{10}. +#' } +#' For \code{nn_method = "nndescent"}, you may specify the following +#' arguments: +#' \itemize{ +#' \item \code{n_trees} The number of trees to use in a random projection +#' forest to initialize the search. A larger number will give more accurate +#' results at the cost of a longer computation time. The default of +#' \code{NULL} means that the number is chosen based on the number of +#' observations in \code{X}. +#' \item \code{max_candidates} The number of potential neighbors to explore +#' per iteration. By default, this is set to \code{n_neighbors} or \code{60}, +#' whichever is smaller. A larger number will give more accurate results at +#' the cost of a longer computation time. +#' \item \code{n_iters} The number of iterations to run the search. A larger +#' number will give more accurate results at the cost of a longer computation +#' time. By default, this will be chosen based on the number of observations +#' in \code{X}. You may also need to modify the convergence criterion +#' \code{delta}. +#' \item \code{delta} The minimum relative change in the neighbor graph +#' allowed before early stopping. Should be a value between 0 and 1. The +#' smaller the value, the smaller the amount of progress between iterations is +#' allowed. Default value of \code{0.001} means that at least 0.1% of the +#' neighbor graph must be updated at each iteration. +#' \item \code{init} How to initialize the nearest neighbor descent. By +#' default this is set to \code{"tree"} and uses a random project forest. +#' If you set this to \code{"rand"}, then a random selection is used. Usually +#' this is less accurate than using RP trees, but for high-dimensional cases, +#' there may be little difference in the quality of the initialization and +#' random initialization will be a lot faster. If you set this to +#' \code{"rand"}, then the \code{n_trees} parameter is ignored. +#' \item \code{pruning_degree_multiplier} The maximum number of edges per node +#' to retain in the search graph, relative to \code{n_neighbors}. A larger +#' value will give more accurate results at the cost of a longer computation +#' time. Default is \code{1.5}. This parameter only affects neighbor search +#' when transforming new data with \code{\link{umap_transform}}. +#' \item \code{epsilon} Controls the degree of the back-tracking when +#' traversing the search graph. Setting this to \code{0.0} will do a greedy +#' search with no back-tracking. A larger value will give more accurate +#' results at the cost of a longer computation time. Default is \code{0.1}. +#' This parameter only affects neighbor search when transforming new data with +#' \code{\link{umap_transform}}. +#' \item \code{max_search_fraction} Specifies the maximum fraction of the +#' search graph to traverse. By default, this is set to \code{1.0}, so the +#' entire graph (i.e. all items in \code{X}) may be visited. You may want to +#' set this to a smaller value if you have a very large dataset (in +#' conjunction with \code{epsilon}) to avoid an inefficient exhaustive search +#' of the data in \code{X}. This parameter only affects neighbor search when +#' transforming new data with \code{\link{umap_transform}}. +#' } +#' @param approx_pow If \code{TRUE}, use an approximation to the power function +#' in the UMAP gradient, from +#' \url{https://martin.ankerl.com/2012/01/25/optimized-approximative-pow-in-c-and-cpp/}. +#' Ignored if \code{dens_scale} is non-\code{NULL}. +#' @param y Optional target data for supervised dimension reduction. Can be a +#' vector, matrix or data frame. Use the \code{target_metric} parameter to +#' specify the metrics to use, using the same syntax as \code{metric}. Usually +#' either a single numeric or factor column is used, but more complex formats +#' are possible. The following types are allowed: +#' \itemize{ +#' \item Factor columns with the same length as \code{X}. \code{NA} is +#' allowed for any observation with an unknown level, in which case +#' UMAP operates as a form of semi-supervised learning. Each column is +#' treated separately. +#' \item Numeric data. \code{NA} is \emph{not} allowed in this case. Use the +#' parameter \code{target_n_neighbors} to set the number of neighbors used +#' with \code{y}. If unset, \code{n_neighbors} is used. Unlike factors, +#' numeric columns are grouped into one block unless \code{target_metric} +#' specifies otherwise. For example, if you wish columns \code{a} and +#' \code{b} to be treated separately, specify +#' \code{target_metric = list(euclidean = "a", euclidean = "b")}. Otherwise, +#' the data will be effectively treated as a matrix with two columns. +#' \item Nearest neighbor data, consisting of a list of two matrices, +#' \code{idx} and \code{dist}. These represent the precalculated nearest +#' neighbor indices and distances, respectively. This +#' is the same format as that expected for precalculated data in +#' \code{nn_method}. This format assumes that the underlying data was a +#' numeric vector. Any user-supplied value of the \code{target_n_neighbors} +#' parameter is ignored in this case, because the the number of columns in +#' the matrices is used for the value. Multiple nearest neighbor data using +#' different metrics can be supplied by passing a list of these lists. +#' } +#' Unlike \code{X}, all factor columns included in \code{y} are automatically +#' used. +#' @param target_n_neighbors Number of nearest neighbors to use to construct the +#' target simplicial set. Default value is \code{n_neighbors}. Applies only if +#' \code{y} is non-\code{NULL} and \code{numeric}. +#' @param target_metric The metric used to measure distance for \code{y} if +#' using supervised dimension reduction. Used only if \code{y} is numeric. +#' @param target_weight Weighting factor between data topology and target +#' topology. A value of 0.0 weights entirely on data, a value of 1.0 weights +#' entirely on target. The default of 0.5 balances the weighting equally +#' between data and target. Only applies if \code{y} is non-\code{NULL}. +#' @param pca If set to a positive integer value, reduce data to this number of +#' columns using PCA. Doesn't applied if the distance \code{metric} is +#' \code{"hamming"}, or the dimensions of the data is larger than the +#' number specified (i.e. number of rows and columns must be larger than the +#' value of this parameter). If you have > 100 columns in a data frame or +#' matrix, reducing the number of columns in this way may substantially +#' increase the performance of the nearest neighbor search at the cost of a +#' potential decrease in accuracy. In many t-SNE applications, a value of 50 +#' is recommended, although there's no guarantee that this is appropriate for +#' all settings. +#' @param pca_center If \code{TRUE}, center the columns of \code{X} before +#' carrying out PCA. For binary data, it's recommended to set this to +#' \code{FALSE}. +#' @param pca_method Method to carry out any PCA dimensionality reduction when +#' the \code{pca} parameter is specified. Allowed values are: +#' \itemize{ +#' \item{\code{"irlba"}}. Uses \code{\link[irlba]{prcomp_irlba}} from the +#' \href{https://cran.r-project.org/package=irlba}{irlba} package. +#' \item{\code{"rsvd"}}. Uses 5 iterations of \code{\link[irlba]{svdr}} from +#' the \href{https://cran.r-project.org/package=irlba}{irlba} package. +#' This is likely to give much faster but potentially less accurate results +#' than using \code{"irlba"}. For the purposes of nearest neighbor +#' calculation and coordinates initialization, any loss of accuracy doesn't +#' seem to matter much. +#' \item{\code{"bigstatsr"}}. Uses \code{\link[bigstatsr]{big_randomSVD}} +#' from the \href{https://cran.r-project.org/package=bigstatsr}{bigstatsr} +#' package. The SVD methods used in \code{bigstatsr} may be faster on +#' systems without access to efficient linear algebra libraries (e.g. +#' Windows). \strong{Note}: \code{bigstatsr} is \emph{not} a dependency of +#' uwot: if you choose to use this package for PCA, you \emph{must} install +#' it yourself. +#' \item{\code{"svd"}}. Uses \code{\link[base]{svd}} for the SVD. This is +#' likely to be slow for all but the smallest datasets. +#' \item{\code{"auto"}} (the default). Uses \code{"irlba"}, unless more than +#' 50% of the full set of singular vectors would be calculated, in which +#' case \code{"svd"} is used. +#' } +#' @param pcg_rand If \code{TRUE}, use the PCG random number generator (O'Neill, +#' 2014) during optimization. Otherwise, use the faster (but probably less +#' statistically good) Tausworthe "taus88" generator. The default is +#' \code{TRUE}. +#' @param fast_sgd If \code{TRUE}, then the following combination of parameters +#' is set: \code{pcg_rand = TRUE}, \code{n_sgd_threads = "auto"} and +#' \code{approx_pow = TRUE}. The default is \code{FALSE}. Setting this to +#' \code{TRUE} will speed up the stochastic optimization phase, but give a +#' potentially less accurate embedding, and which will not be exactly +#' reproducible even with a fixed seed. For visualization, \code{fast_sgd = +#' TRUE} will give perfectly good results. For more generic dimensionality +#' reduction, it's safer to leave \code{fast_sgd = FALSE}. If \code{fast_sgd = +#' TRUE}, then user-supplied values of \code{pcg_rand}, \code{n_sgd_threads}, +#' and \code{approx_pow} are ignored. +#' @param batch If \code{TRUE}, then embedding coordinates are updated at the +#' end of each epoch rather than during the epoch. In batch mode, results are +#' reproducible with a fixed random seed even with \code{n_sgd_threads > 1}, +#' at the cost of a slightly higher memory use. You may also have to modify +#' \code{learning_rate} and increase \code{n_epochs}, so whether this provides +#' a speed increase over the single-threaded optimization is likely to be +#' dataset and hardware-dependent. +#' @param ret_model If \code{TRUE}, then return extra data that can be used to +#' add new data to an existing embedding via \code{\link{umap_transform}}. The +#' embedded coordinates are returned as the list item \code{embedding}. If +#' \code{FALSE}, just return the coordinates. This parameter can be used in +#' conjunction with \code{ret_nn} and \code{ret_extra}. Note that some +#' settings are incompatible with the production of a UMAP model: external +#' neighbor data (passed via a list to \code{nn_method}), and factor columns +#' that were included via the \code{metric} parameter. In the latter case, the +#' model produced is based only on the numeric data. A transformation using +#' new data is possible, but the factor columns in the new data are ignored. +#' Note that setting \code{ret_model = TRUE} forces the use of the approximate +#' nearest neighbors method. Because small datasets would otherwise use exact +#' nearest neighbor calculations, setting \code{ret_model = TRUE} means that +#' different results may be returned for small datasets in terms of both the +#' returned nearest neighbors (if requested) and the final embedded +#' coordinates, compared to \code{ret_model = FALSE}, even if the random +#' number seed is fixed. To avoid this, explicitly set +#' \code{nn_method = "annoy"} in the \code{ret_model = FALSE} case. +#' @param ret_nn If \code{TRUE}, then in addition to the embedding, also return +#' nearest neighbor data that can be used as input to \code{nn_method} to +#' avoid the overhead of repeatedly calculating the nearest neighbors when +#' manipulating unrelated parameters (e.g. \code{min_dist}, \code{n_epochs}, +#' \code{init}). See the "Value" section for the names of the list items. If +#' \code{FALSE}, just return the coordinates. Note that the nearest neighbors +#' could be sensitive to data scaling, so be wary of reusing nearest neighbor +#' data if modifying the \code{scale} parameter. This parameter can be used in +#' conjunction with \code{ret_model} and \code{ret_extra}. +#' @param ret_extra A vector indicating what extra data to return. May contain +#' any combination of the following strings: +#' \itemize{ +#' \item \code{"model"} Same as setting \code{ret_model = TRUE}. +#' \item \code{"nn"} Same as setting \code{ret_nn = TRUE}. +#' \item \code{"fgraph"} the high dimensional fuzzy graph (i.e. the fuzzy +#' simplicial set of the merged local views of the input data). The graph +#' is returned as a sparse symmetric N x N matrix of class +#' \link[Matrix]{dgCMatrix-class}, where a non-zero entry (i, j) gives the +#' membership strength of the edge connecting vertex i and vertex j. This +#' can be considered analogous to the input probability (or similarity or +#' affinity) used in t-SNE and LargeVis. Note that the graph is further +#' sparsified by removing edges with sufficiently low membership strength +#' that they would not be sampled by the probabilistic edge sampling +#' employed for optimization and therefore the number of non-zero elements +#' in the matrix is dependent on \code{n_epochs}. If you are only +#' interested in the fuzzy input graph (e.g. for clustering), setting +#' \code{n_epochs = 0} will avoid any further sparsifying. +#' Be aware that setting `binary_edge_weights = TRUE` will affect this +#' graph (all non-zero edge weights will be 1). +#' \item \code{"sigma"} the normalization value for each observation in the +#' dataset when constructing the smoothed distances to each of its +#' neighbors. This gives some sense of the local density of each +#' observation in the high dimensional space: higher values of +#' \code{sigma} indicate a higher dispersion or lower density. +#' } +#' @param n_threads Number of threads to use (except during stochastic gradient +#' descent). Default is half the number of concurrent threads supported by the +#' system. For nearest neighbor search, only applies if +#' \code{nn_method = "annoy"}. If \code{n_threads > 1}, then the Annoy index +#' will be temporarily written to disk in the location determined by +#' \code{\link[base]{tempfile}}. +#' @param n_sgd_threads Number of threads to use during stochastic gradient +#' descent. If set to > 1, then be aware that if \code{batch = FALSE}, results +#' will \emph{not} be reproducible, even if \code{set.seed} is called with a +#' fixed seed before running. Set to \code{"auto"} to use the same value as +#' \code{n_threads}. +#' @param grain_size The minimum amount of work to do on each thread. If this +#' value is set high enough, then less than \code{n_threads} or +#' \code{n_sgd_threads} will be used for processing, which might give a +#' performance improvement if the overhead of thread management and context +#' switching was outweighing the improvement due to concurrent processing. +#' This should be left at default (\code{1}) and work will be spread evenly +#' over all the threads specified. +#' @param tmpdir Temporary directory to store nearest neighbor indexes during +#' nearest neighbor search. Default is \code{\link{tempdir}}. The index is +#' only written to disk if \code{n_threads > 1} and +#' \code{nn_method = "annoy"}; otherwise, this parameter is ignored. +#' @param verbose If \code{TRUE}, log details to the console. +#' @param opt_args A list of optimizer parameters, used when +#' \code{batch = TRUE}. The default optimization method used is Adam (Kingma +#' and Ba, 2014). +#' \itemize{ +#' \item \code{method} The optimization method to use. Either \code{"adam"} +#' or \code{"sgd"} (stochastic gradient descent). Default: \code{"adam"}. +#' \item \code{beta1} (Adam only). The weighting parameter for the +#' exponential moving average of the first moment estimator. Effectively the +#' momentum parameter. Should be a floating point value between 0 and 1. +#' Higher values can smooth oscillatory updates in poorly-conditioned +#' situations and may allow for a larger \code{learning_rate} to be +#' specified, but too high can cause divergence. Default: \code{0.5}. +#' \item \code{beta2} (Adam only). The weighting parameter for the +#' exponential moving average of the uncentered second moment estimator. +#' Should be a floating point value between 0 and 1. Controls the degree of +#' adaptivity in the step-size. Higher values put more weight on previous +#' time steps. Default: \code{0.9}. +#' \item \code{eps} (Adam only). Intended to be a small value to prevent +#' division by zero, but in practice can also affect convergence due to its +#' interaction with \code{beta2}. Higher values reduce the effect of the +#' step-size adaptivity and bring the behavior closer to stochastic gradient +#' descent with momentum. Typical values are between 1e-8 and 1e-3. Default: +#' \code{1e-7}. +#' \item \code{alpha} The initial learning rate. Default: the value of the +#' \code{learning_rate} parameter. +#' } +#' @param epoch_callback A function which will be invoked at the end of every +#' epoch. Its signature should be: \code{(epoch, n_epochs, coords)}, where: +#' \itemize{ +#' \item \code{epoch} The current epoch number (between \code{1} and +#' \code{n_epochs}). +#' \item \code{n_epochs} Number of epochs to use during the optimization of +#' the embedded coordinates. +#' \item \code{coords} The embedded coordinates as of the end of the current +#' epoch, as a matrix with dimensions (N, \code{n_components}). +#' } +#' @param binary_edge_weights If \code{TRUE} then edge weights in the input +#' graph are treated as binary (0/1) rather than real valued. This affects the +#' sampling frequency of neighbors and is the strategy used by the PaCMAP +#' method (Wang and co-workers, 2020). Practical (Böhm and co-workers, 2020) +#' and theoretical (Damrich and Hamprecht, 2021) work suggests this has little +#' effect on UMAP's performance. +#' @param dens_scale A value between 0 and 1. If > 0 then the output attempts +#' to preserve relative local density around each observation. This uses an +#' approximation to the densMAP method (Narayan and co-workers, 2021). The +#' larger the value of \code{dens_scale}, the greater the range of output +#' densities that will be used to map the input densities. This option is +#' ignored if using multiple \code{metric} blocks. +#' @param seed Integer seed to use to initialize the random number generator +#' state. Combined with \code{n_sgd_threads = 1} or \code{batch = TRUE}, this +#' should give consistent output across multiple runs on a given installation. +#' Setting this value is equivalent to calling \code{\link[base]{set.seed}}, +#' but it may be more convenient in some situations than having to call a +#' separate function. The default is to not set a seed. If +#' \code{ret_model = TRUE}, the seed will be stored in the output model and +#' then used to set the seed inside \code{\link{umap_transform}}. +#' @return A matrix of optimized coordinates, or: +#' \itemize{ +#' \item if \code{ret_model = TRUE} (or \code{ret_extra} contains +#' \code{"model"}), returns a list containing extra information that can be +#' used to add new data to an existing embedding via +#' \code{\link{umap_transform}}. In this case, the coordinates are available +#' in the list item \code{embedding}. \bold{NOTE}: The contents of +#' the \code{model} list should \emph{not} be considered stable or part of +#' the public API, and are purposely left undocumented. +#' \item if \code{ret_nn = TRUE} (or \code{ret_extra} contains \code{"nn"}), +#' returns the nearest neighbor data as a list called \code{nn}. This +#' contains one list for each \code{metric} calculated, itself containing a +#' matrix \code{idx} with the integer ids of the neighbors; and a matrix +#' \code{dist} with the distances. The \code{nn} list (or a sub-list) can be +#' used as input to the \code{nn_method} parameter. +#' \item if \code{ret_extra} contains \code{"fgraph"}, returns the high +#' dimensional fuzzy graph as a sparse matrix called \code{fgraph}, of type +#' \link[Matrix]{dgCMatrix-class}. +#' \item if \code{ret_extra} contains \code{"sigma"}, returns a vector of the +#' smooth knn distance normalization terms for each observation as +#' \code{"sigma"} and a vector \code{"rho"} containing the largest +#' distance to the locally connected neighbors of each observation. +#' \item if \code{ret_extra} contains \code{"localr"}, returns a vector of +#' the estimated local radii, the sum of \code{"sigma"} and \code{"rho"}. +#' } +#' The returned list contains the combined data from any combination of +#' specifying \code{ret_model}, \code{ret_nn} and \code{ret_extra}. +#' @examples +#' +#' iris30 <- iris[c(1:10, 51:60, 101:110), ] +#' +#' # Non-numeric columns are automatically removed so you can pass data frames +#' # directly in a lot of cases without pre-processing +#' iris_umap <- umap(iris30, n_neighbors = 5, learning_rate = 0.5, init = "random", n_epochs = 20) +#' +#' # Faster approximation to the gradient and return nearest neighbors +#' iris_umap <- umap(iris30, n_neighbors = 5, approx_pow = TRUE, ret_nn = TRUE, n_epochs = 20) +#' +#' # Can specify min_dist and spread parameters to control separation and size +#' # of clusters and reuse nearest neighbors for efficiency +#' nn <- iris_umap$nn +#' iris_umap <- umap(iris30, n_neighbors = 5, min_dist = 1, spread = 5, nn_method = nn, n_epochs = 20) +#' +#' # Supervised dimension reduction using the 'Species' factor column +#' iris_sumap <- umap(iris30, +#' n_neighbors = 5, min_dist = 0.001, y = iris30$Species, +#' target_weight = 0.5, n_epochs = 20 +#' ) +#' +#' # Calculate Petal and Sepal neighbors separately (uses intersection of the resulting sets): +#' iris_umap <- umap(iris30, metric = list( +#' "euclidean" = c("Sepal.Length", "Sepal.Width"), +#' "euclidean" = c("Petal.Length", "Petal.Width") +#' )) +#' +#' @references +#' Belkin, M., & Niyogi, P. (2002). +#' Laplacian eigenmaps and spectral techniques for embedding and clustering. +#' In \emph{Advances in neural information processing systems} +#' (pp. 585-591). +#' \url{http://papers.nips.cc/paper/1961-laplacian-eigenmaps-and-spectral-techniques-for-embedding-and-clustering.pdf} +#' +#' Böhm, J. N., Berens, P., & Kobak, D. (2020). +#' A unifying perspective on neighbor embeddings along the attraction-repulsion spectrum. +#' \emph{arXiv preprint} \emph{arXiv:2007.08902}. +#' \url{https://arxiv.org/abs/2007.08902} +#' +#' Damrich, S., & Hamprecht, F. A. (2021). +#' On UMAP's true loss function. +#' \emph{Advances in Neural Information Processing Systems}, \emph{34}. +#' \url{https://proceedings.neurips.cc/paper/2021/hash/2de5d16682c3c35007e4e92982f1a2ba-Abstract.html} +#' +#' Dong, W., Moses, C., & Li, K. (2011, March). +#' Efficient k-nearest neighbor graph construction for generic similarity measures. +#' In \emph{Proceedings of the 20th international conference on World Wide Web} +#' (pp. 577-586). +#' ACM. +#' \doi{10.1145/1963405.1963487}. +#' +#' Kingma, D. P., & Ba, J. (2014). +#' Adam: A method for stochastic optimization. +#' \emph{arXiv preprint} \emph{arXiv}:1412.6980. +#' \url{https://arxiv.org/abs/1412.6980} +#' +#' Malkov, Y. A., & Yashunin, D. A. (2018). +#' Efficient and robust approximate nearest neighbor search using hierarchical +#' navigable small world graphs. +#' \emph{IEEE transactions on pattern analysis and machine intelligence}, \emph{42}(4), 824-836. +#' +#' McInnes, L., Healy, J., & Melville, J. (2018). +#' UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction +#' \emph{arXiv preprint} \emph{arXiv}:1802.03426. +#' \url{https://arxiv.org/abs/1802.03426} +#' +#' Narayan, A., Berger, B., & Cho, H. (2021). +#' Assessing single-cell transcriptomic variability through density-preserving data visualization. +#' \emph{Nature biotechnology}, \emph{39}(6), 765-774. +#' \doi{10.1038/s41587-020-00801-7} +#' +#' O’Neill, M. E. (2014). +#' \emph{PCG: A family of simple fast space-efficient statistically good +#' algorithms for random number generation} +#' (Report No. HMC-CS-2014-0905). Harvey Mudd College. +#' +#' Tang, J., Liu, J., Zhang, M., & Mei, Q. (2016, April). +#' Visualizing large-scale and high-dimensional data. +#' In \emph{Proceedings of the 25th International Conference on World Wide Web} +#' (pp. 287-297). +#' International World Wide Web Conferences Steering Committee. +#' \url{https://arxiv.org/abs/1602.00370} +#' +#' Van der Maaten, L., & Hinton, G. (2008). +#' Visualizing data using t-SNE. +#' \emph{Journal of Machine Learning Research}, \emph{9} (2579-2605). +#' \url{https://www.jmlr.org/papers/v9/vandermaaten08a.html} +#' +#' Wang, Y., Huang, H., Rudin, C., & Shaposhnik, Y. (2021). +#' Understanding How Dimension Reduction Tools Work: An Empirical Approach to Deciphering t-SNE, UMAP, TriMap, and PaCMAP for Data Visualization. +#' \emph{Journal of Machine Learning Research}, \emph{22}(201), 1-73. +#' \url{https://www.jmlr.org/papers/v22/20-1061.html} +#' +#' @export +umap2 <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", + n_epochs = NULL, learning_rate = 1, scale = FALSE, + init = "spectral", init_sdev = "range", + spread = 1, min_dist = 0.1, + set_op_mix_ratio = 1.0, local_connectivity = 1.0, + bandwidth = 1.0, repulsion_strength = 1.0, + negative_sample_rate = 5.0, a = NULL, b = NULL, + nn_method = NULL, n_trees = 50, + search_k = 2 * n_neighbors * n_trees, + approx_pow = FALSE, + y = NULL, target_n_neighbors = n_neighbors, + target_metric = "euclidean", + target_weight = 0.5, + pca = NULL, pca_center = TRUE, + pcg_rand = TRUE, + fast_sgd = FALSE, + ret_model = FALSE, ret_nn = FALSE, ret_extra = c(), + n_threads = NULL, + n_sgd_threads = 0, + grain_size = 1, + tmpdir = tempdir(), + verbose = getOption("verbose", TRUE), + batch = FALSE, + opt_args = NULL, epoch_callback = NULL, pca_method = NULL, + binary_edge_weights = FALSE, + dens_scale = NULL, + seed = NULL, + nn_args = list()) { + if (is.null(nn_method)) { + if (is_installed("RcppHNSW") && + is.character(metric) && + is_ok_hnsw_metric(metric) && is_ok_hnsw_metric(target_metric)) { + nn_method <- "hnsw" + tsmessage("Using HNSW for nearest neighbor search") + } + } + + if (is.null(nn_method)) { + if (is_installed("rnndescent")) { + nn_method <- "nndescent" + tsmessage("Using NN-Descent for nearest neighbor search") + } + } + + sparse_X_is_distance_matrix <- nn_method != "nndescent" + + if (is.null(n_threads)) { + n_threads <- default_num_threads() + if (batch) { + n_sgd_threads <- n_threads + } + } + + if (is.null(n_epochs)) { + n_epochs <- 500 + } + + uwot( + X = X, n_neighbors = n_neighbors, n_components = n_components, + metric = metric, n_epochs = n_epochs, alpha = learning_rate, scale = scale, + init = init, init_sdev = init_sdev, + spread = spread, min_dist = min_dist, + set_op_mix_ratio = set_op_mix_ratio, + local_connectivity = local_connectivity, bandwidth = bandwidth, + gamma = repulsion_strength, negative_sample_rate = negative_sample_rate, + a = a, b = b, nn_method = nn_method, n_trees = n_trees, + search_k = search_k, + method = "umap", approx_pow = approx_pow, + n_threads = n_threads, n_sgd_threads = n_sgd_threads, + grain_size = grain_size, + y = y, target_n_neighbors = target_n_neighbors, + target_weight = target_weight, target_metric = target_metric, + pca = pca, pca_center = pca_center, pca_method = pca_method, + pcg_rand = pcg_rand, + fast_sgd = fast_sgd, + ret_model = ret_model || "model" %in% ret_extra, + ret_nn = ret_nn || "nn" %in% ret_extra, + ret_fgraph = "fgraph" %in% ret_extra, + ret_sigma = "sigma" %in% ret_extra, + ret_localr = "localr" %in% ret_extra, + batch = batch, + opt_args = opt_args, + epoch_callback = epoch_callback, + binary_edge_weights = binary_edge_weights, + tmpdir = tempdir(), + verbose = verbose, + dens_scale = dens_scale, + seed = seed, + nn_args = nn_args, + sparse_X_is_distance_matrix = sparse_X_is_distance_matrix + ) +} diff --git a/R/uwot.R b/R/uwot.R index 51424f53..8073f242 100644 --- a/R/uwot.R +++ b/R/uwot.R @@ -2992,7 +2992,8 @@ uwot <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", dens_scale = NULL, is_similarity_graph = FALSE, seed = NULL, - nn_args = list()) { + nn_args = list(), + sparse_X_is_distance_matrix = TRUE) { if (is.null(n_threads)) { n_threads <- default_num_threads() } @@ -3144,7 +3145,7 @@ uwot <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", n_vertices <- attr(X, "Size") tsmessage("Read ", n_vertices, " rows") Xnames <- labels(X) - } else if (is_sparse_matrix(X)) { + } else if (is_sparse_matrix(X) && sparse_X_is_distance_matrix) { if (ret_model) { stop("Can only create models with dense matrix or data frame input") } @@ -3158,7 +3159,7 @@ uwot <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", } else { cat_ids <- NULL norig_col <- ncol(X) - if (methods::is(X, "data.frame") || methods::is(X, "matrix")) { + if (methods::is(X, "data.frame") || methods::is(X, "matrix") || is_sparse_matrix(X)) { cat_res <- find_categoricals(metric) metric <- cat_res$metrics cat_ids <- cat_res$categoricals @@ -3283,17 +3284,31 @@ uwot <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", need_sigma <- FALSE } else { need_sigma <- ret_sigma || ret_localr || !is.null(dens_scale) - d2sr <- data2set(X, Xcat, n_neighbors, metrics, nn_method, - n_trees, search_k, + d2sr <- data2set( + X, + Xcat, + n_neighbors, + metrics, + nn_method, + n_trees, + search_k, method, - set_op_mix_ratio, local_connectivity, bandwidth, - perplexity, kernel, need_sigma, - n_threads, grain_size, + set_op_mix_ratio, + local_connectivity, + bandwidth, + perplexity, + kernel, + need_sigma, + n_threads, + grain_size, ret_model, - pca = pca, pca_center = pca_center, pca_method = pca_method, + pca = pca, + pca_center = pca_center, + pca_method = pca_method, n_vertices = n_vertices, nn_args = nn_args, tmpdir = tmpdir, + sparse_is_distance = sparse_X_is_distance_matrix, verbose = verbose ) } @@ -4214,17 +4229,30 @@ x2nv <- function(X) { n_vertices } -data2set <- function(X, Xcat, n_neighbors, metrics, nn_method, - n_trees, search_k, +data2set <- function(X, + Xcat, + n_neighbors, + metrics, + nn_method, + n_trees, + search_k, method, - set_op_mix_ratio, local_connectivity, bandwidth, - perplexity, kernel, ret_sigma, - n_threads, grain_size, + set_op_mix_ratio, + local_connectivity, + bandwidth, + perplexity, + kernel, + ret_sigma, + n_threads, + grain_size, ret_model, n_vertices = x2nv(X), tmpdir = tempdir(), - pca = NULL, pca_center = TRUE, pca_method = "irlba", + pca = NULL, + pca_center = TRUE, + pca_method = "irlba", nn_args = list(), + sparse_is_distance = TRUE, verbose = FALSE) { V <- NULL nns <- list() @@ -4358,18 +4386,27 @@ data2set <- function(X, Xcat, n_neighbors, metrics, nn_method, n_neighbors <- NULL } - x2set_res <- x2set(Xsub, n_neighbors, metric, + x2set_res <- x2set( + Xsub, + n_neighbors, + metric, nn_method = nn_sub, - n_trees, search_k, + n_trees, + search_k, method, - set_op_mix_ratio, local_connectivity, bandwidth, - perplexity, kernel, + set_op_mix_ratio, + local_connectivity, + bandwidth, + perplexity, + kernel, ret_sigma, - n_threads, grain_size, + n_threads, + grain_size, ret_model, n_vertices = n_vertices, nn_args = nn_args, tmpdir = tmpdir, + sparse_is_distance = sparse_is_distance, verbose = verbose ) Vblock <- x2set_res$V @@ -4405,13 +4442,19 @@ data2set <- function(X, Xcat, n_neighbors, metrics, nn_method, res } -x2nn <- function(X, n_neighbors, metric, nn_method, - n_trees, search_k, +x2nn <- function(X, + n_neighbors, + metric, + nn_method, + n_trees, + search_k, tmpdir = tempdir(), - n_threads, grain_size, + n_threads, + grain_size, ret_model, n_vertices = x2nv(X), nn_args = list(), + sparse_is_distance = TRUE, verbose = FALSE) { if (is.list(nn_method)) { validate_nn(nn_method, n_vertices) @@ -4429,13 +4472,20 @@ x2nn <- function(X, n_neighbors, metric, nn_method, if (nn_method == "fnn" && ret_model) { stop("nn_method = 'FNN' is incompatible with ret_model = TRUE") } - nn <- find_nn(X, n_neighbors, - method = nn_method, metric = metric, - n_trees = n_trees, search_k = search_k, + nn <- find_nn( + X, + n_neighbors, + method = nn_method, + metric = metric, + n_trees = n_trees, + search_k = search_k, nn_args = nn_args, tmpdir = tmpdir, - n_threads = n_threads, grain_size = grain_size, - ret_index = ret_model, verbose = verbose + n_threads = n_threads, + grain_size = grain_size, + ret_index = ret_model, + sparse_is_distance = sparse_is_distance, + verbose = verbose ) } nn @@ -4513,17 +4563,26 @@ nn2set <- function(method, nn, res } -x2set <- function(X, n_neighbors, metric, nn_method, - n_trees, search_k, +x2set <- function(X, + n_neighbors, + metric, + nn_method, + n_trees, + search_k, method, - set_op_mix_ratio, local_connectivity, bandwidth, - perplexity, kernel, + set_op_mix_ratio, + local_connectivity, + bandwidth, + perplexity, + kernel, ret_sigma, - n_threads, grain_size, + n_threads, + grain_size, ret_model, n_vertices = x2nv(X), tmpdir = tempdir(), nn_args = list(), + sparse_is_distance = TRUE, verbose = FALSE) { if (is_sparse_matrix(nn_method)) { nn <- nn_method @@ -4534,16 +4593,20 @@ x2set <- function(X, n_neighbors, metric, nn_method, stop("Sparse distance matrix must have same dimensions as input data") } } else { - nn <- x2nn(X, + nn <- x2nn( + X, n_neighbors = n_neighbors, metric = metric, nn_method = nn_method, - n_trees = n_trees, search_k = search_k, + n_trees = n_trees, + search_k = search_k, tmpdir = tmpdir, - n_threads = n_threads, grain_size = grain_size, + n_threads = n_threads, + grain_size = grain_size, ret_model = ret_model, nn_args = nn_args, n_vertices = n_vertices, + sparse_is_distance = sparse_is_distance, verbose = verbose ) if (any(is.infinite(nn$dist))) { @@ -4552,10 +4615,17 @@ x2set <- function(X, n_neighbors, metric, nn_method, } gc() - nn2set_res <- nn2set(method, nn, - set_op_mix_ratio, local_connectivity, bandwidth, - perplexity, kernel, ret_sigma, - n_threads, grain_size, + nn2set_res <- nn2set( + method, + nn, + set_op_mix_ratio, + local_connectivity, + bandwidth, + perplexity, + kernel, + ret_sigma, + n_threads, + grain_size, verbose = verbose ) V <- nn2set_res$V From 7fafabc6eb3c08d2a84dce9bb4982e4a818add24 Mon Sep 17 00:00:00 2001 From: James Melville Date: Sat, 23 Mar 2024 13:48:29 -0700 Subject: [PATCH 11/20] allow logical input to irlba PCA --- R/init.R | 5 +++++ tests/testthat/test_pca.R | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/R/init.R b/R/init.R index dbd2f9e2..70ced2e3 100644 --- a/R/init.R +++ b/R/init.R @@ -403,6 +403,11 @@ svd_scores <- function(X, ncol = min(dim(X)), center = TRUE, ret_extra = FALSE, # Get PCA scores via irlba irlba_scores <- function(X, ncol, center = TRUE, ret_extra = FALSE, verbose = FALSE) { + if (is.logical(X)) { + tsmessage("Converting logical input to numeric for PCA initialization") + # convert logical matrix to numeric + X <- X * 1 + } res <- irlba::prcomp_irlba(X, n = ncol, retx = TRUE, center = center, scale = FALSE diff --git a/tests/testthat/test_pca.R b/tests/testthat/test_pca.R index c0009f1e..1218787c 100644 --- a/tests/testthat/test_pca.R +++ b/tests/testthat/test_pca.R @@ -56,3 +56,12 @@ test_that("PCA returns model data", { check.attributes = FALSE ) }) + +test_that("logical pca ok", { + set.seed(1337) + random_logical <- matrix(rnorm(1000), nrow = 100) > 0.5 + random_int <- random_logical * 1 + + expect_equal(abs(irlba_scores(random_logical, ncol = 2)), + abs(irlba_scores(random_int, ncol = 2))) +}) From c4aa8e7505019cbf281d3667797e49f27dddac2b Mon Sep 17 00:00:00 2001 From: James Melville Date: Sat, 23 Mar 2024 13:51:47 -0700 Subject: [PATCH 12/20] Start on updated function doc --- R/umap2.R | 104 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 61 insertions(+), 43 deletions(-) diff --git a/R/umap2.R b/R/umap2.R index a78c7dd5..c9b85934 100644 --- a/R/umap2.R +++ b/R/umap2.R @@ -28,12 +28,10 @@ #' Matrix and data frames should contain one observation per row. Data frames #' will have any non-numeric columns removed, although factor columns will be #' used if explicitly included via \code{metric} (see the help for -#' \code{metric} for details). A sparse matrix is interpreted as a distance -#' matrix, and is assumed to be symmetric, so you can also pass in an -#' explicitly upper or lower triangular sparse matrix to save storage. There -#' must be at least \code{n_neighbors} non-zero distances for each row. Both -#' implicit and explicit zero entries are ignored. Set zero distances you want -#' to keep to an arbitrarily small non-zero value (e.g. \code{1e-10}). +#' \code{metric} for details). Sparse matrices must be in the \code{dgCMatrix} +#' format, and you must also install +#' \href{https://cran.r-project.org/package=rnndescent}{rnndescent} +#' and set \code{nn_method = "nndescent} #' \code{X} can also be \code{NULL} if pre-computed nearest neighbor data is #' passed to \code{nn_method}, and \code{init} is not \code{"spca"} or #' \code{"pca"}. @@ -45,8 +43,8 @@ #' @param n_components The dimension of the space to embed into. This defaults #' to \code{2} to provide easy visualization, but can reasonably be set to any #' integer value in the range \code{2} to \code{100}. -#' @param metric Type of distance metric to use to find nearest neighbors. One -#' of: +#' @param metric Type of distance metric to use to find nearest neighbors. For +#' \code{nn_method = "annoy"} this can be one of: #' \itemize{ #' \item \code{"euclidean"} (the default) #' \item \code{"cosine"} @@ -55,8 +53,36 @@ #' \item \code{"correlation"} (a distance based on the Pearson correlation) #' \item \code{"categorical"} (see below) #' } -#' Only applies if \code{nn_method = "annoy"} (for \code{nn_method = "fnn"}, the -#' distance metric is always "euclidean"). +#' For \code{nn_method = "hnsw"} this can be one of: +#' \itemize{ +#' \item \code{"euclidean"} +#' \item \code{"cosine"} +#' \item \code{"correlation"} +#' } +#' If \href{https://cran.r-project.org/package=rnndescent}{rnndescent} is +#' installed and \code{nn_method = "nndescent"} is specified then many more +#' metrics are avaiable, including: +#' \itemize{ +#' \item \code{"braycurtis"} +#' \item \code{"canberra"} +#' \item \code{"chebyshev"} +#' \item \code{"dice"} +#' \item \code{"hamming"} +#' \item \code{"hellinger"} +#' \item \code{"jaccard"} +#' \item \code{"jensenshannon"} +#' \item \code{"kulsinski"} +#' \item \code{"rogerstanimoto"} +#' \item \code{"russellrao"} +#' \item \code{"sokalmichener"} +#' \item \code{"sokalsneath"} +#' \item \code{"spearmanr"} +#' \item \code{"symmetrickl"} +#' \item \code{"tsss"} +#' \item \code{"yule"} +#' } +#' For more details see the package documentation of \code{rnndescent}. +#' For \code{nn_method = "fnn"}, the distance metric is always "euclidean". #' #' If \code{X} is a data frame or matrix, then multiple metrics can be #' specified, by passing a list to this argument, where the name of each item in @@ -138,8 +164,8 @@ #' \code{n_neighbors} may help. #' @param init_sdev If non-\code{NULL}, scales each dimension of the initialized #' coordinates (including any user-supplied matrix) to this standard -#' deviation. By default no scaling is carried out, except when \code{init = -#' "spca"}, in which case the value is \code{0.0001}. Scaling the input may +#' deviation. By default, (\code{init_sdev = "range"}), each column of the +#' initial coordinates are range scaled between 0-10. Scaling the input may #' help if the unscaled versions result in initial coordinates with large #' inter-point distances or outliers. This usually results in small gradients #' during optimization and very little progress being made to the layout. @@ -148,12 +174,7 @@ #' recommended and \code{init = "spca"} as an alias for \code{init = "pca", #' init_sdev = 1e-4} but for the spectral initializations the scaled versions #' usually aren't necessary unless you are using a large value of -#' \code{n_neighbors} (e.g. \code{n_neighbors = 150} or higher). For -#' compatibility with recent versions of the Python UMAP package, if you are -#' using \code{init = "spectral"}, then you should also set -#' \code{init_sdev = "range"}, which will range scale each of the columns -#' containing the initial data between 0-10. This is not set by default to -#' maintain backwards compatibility with previous versions of uwot. +#' \code{n_neighbors} (e.g. \code{n_neighbors = 150} or higher). #' @param spread The effective scale of embedded points. In combination with #' \code{min_dist}, this determines how clustered/clumped the embedded points #' are. @@ -472,7 +493,8 @@ #' descent. If set to > 1, then be aware that if \code{batch = FALSE}, results #' will \emph{not} be reproducible, even if \code{set.seed} is called with a #' fixed seed before running. Set to \code{"auto"} to use the same value as -#' \code{n_threads}. +#' \code{n_threads}. Default is to use only one thread, unless +#' \code{batch = TRUE} in which case \code{"auto"} used. #' @param grain_size The minimum amount of work to do on each thread. If this #' value is set high enough, then less than \code{n_threads} or #' \code{n_sgd_threads} will be used for processing, which might give a @@ -574,27 +596,7 @@ #' #' # Non-numeric columns are automatically removed so you can pass data frames #' # directly in a lot of cases without pre-processing -#' iris_umap <- umap(iris30, n_neighbors = 5, learning_rate = 0.5, init = "random", n_epochs = 20) -#' -#' # Faster approximation to the gradient and return nearest neighbors -#' iris_umap <- umap(iris30, n_neighbors = 5, approx_pow = TRUE, ret_nn = TRUE, n_epochs = 20) -#' -#' # Can specify min_dist and spread parameters to control separation and size -#' # of clusters and reuse nearest neighbors for efficiency -#' nn <- iris_umap$nn -#' iris_umap <- umap(iris30, n_neighbors = 5, min_dist = 1, spread = 5, nn_method = nn, n_epochs = 20) -#' -#' # Supervised dimension reduction using the 'Species' factor column -#' iris_sumap <- umap(iris30, -#' n_neighbors = 5, min_dist = 0.001, y = iris30$Species, -#' target_weight = 0.5, n_epochs = 20 -#' ) -#' -#' # Calculate Petal and Sepal neighbors separately (uses intersection of the resulting sets): -#' iris_umap <- umap(iris30, metric = list( -#' "euclidean" = c("Sepal.Length", "Sepal.Width"), -#' "euclidean" = c("Petal.Length", "Petal.Width") -#' )) +#' iris_umap <- umap2(iris30, n_neighbors = 5) #' #' @references #' Belkin, M., & Niyogi, P. (2002). @@ -707,8 +709,6 @@ umap2 <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", } } - sparse_X_is_distance_matrix <- nn_method != "nndescent" - if (is.null(n_threads)) { n_threads <- default_num_threads() if (batch) { @@ -716,6 +716,24 @@ umap2 <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", } } + if (is_sparse_matrix(X)) { + if (!is(X, "dgCMatrix")) { + stop("sparse X must be a dgCMatrix object") + } + if (!is.list(nn_method)) { + if (!is_installed("rnndescent")) { + stop("nearest neighbor search for sparse matrices requires the ", + "'rnndescent' package, please install it") + } + if (!is.null(nn_method) && nn_method != "nndescent") { + stop("nearest neighbor search for sparse matrices only supports ", + "the 'nndescent' method") + } + tsmessage("Using nndescent for nearest neighbor search") + nn_method <- "nndescent" + } + } + if (is.null(n_epochs)) { n_epochs <- 500 } @@ -752,6 +770,6 @@ umap2 <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", dens_scale = dens_scale, seed = seed, nn_args = nn_args, - sparse_X_is_distance_matrix = sparse_X_is_distance_matrix + sparse_X_is_distance_matrix = FALSE ) } From a688a60bff03f9dcd7eeccc05fc57d95a0c85976 Mon Sep 17 00:00:00 2001 From: James Melville Date: Sun, 31 Mar 2024 13:52:23 -0700 Subject: [PATCH 13/20] check fixes --- NAMESPACE | 1 + R/umap2.R | 4 +- man/umap2.Rd | 771 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 774 insertions(+), 2 deletions(-) create mode 100644 man/umap2.Rd diff --git a/NAMESPACE b/NAMESPACE index cb331f06..74c0c31b 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -9,6 +9,7 @@ export(simplicial_set_intersect) export(simplicial_set_union) export(tumap) export(umap) +export(umap2) export(umap_transform) export(unload_uwot) import(Matrix) diff --git a/R/umap2.R b/R/umap2.R index c9b85934..4911171c 100644 --- a/R/umap2.R +++ b/R/umap2.R @@ -31,7 +31,7 @@ #' \code{metric} for details). Sparse matrices must be in the \code{dgCMatrix} #' format, and you must also install #' \href{https://cran.r-project.org/package=rnndescent}{rnndescent} -#' and set \code{nn_method = "nndescent} +#' and set \code{nn_method = "nndescent"} #' \code{X} can also be \code{NULL} if pre-computed nearest neighbor data is #' passed to \code{nn_method}, and \code{init} is not \code{"spca"} or #' \code{"pca"}. @@ -717,7 +717,7 @@ umap2 <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", } if (is_sparse_matrix(X)) { - if (!is(X, "dgCMatrix")) { + if (!methods::is(X, "dgCMatrix")) { stop("sparse X must be a dgCMatrix object") } if (!is.list(nn_method)) { diff --git a/man/umap2.Rd b/man/umap2.Rd new file mode 100644 index 00000000..854ecb49 --- /dev/null +++ b/man/umap2.Rd @@ -0,0 +1,771 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/umap2.R +\name{umap2} +\alias{umap2} +\title{Dimensionality Reduction with UMAP} +\usage{ +umap2( + X, + n_neighbors = 15, + n_components = 2, + metric = "euclidean", + n_epochs = NULL, + learning_rate = 1, + scale = FALSE, + init = "spectral", + init_sdev = "range", + spread = 1, + min_dist = 0.1, + set_op_mix_ratio = 1, + local_connectivity = 1, + bandwidth = 1, + repulsion_strength = 1, + negative_sample_rate = 5, + a = NULL, + b = NULL, + nn_method = NULL, + n_trees = 50, + search_k = 2 * n_neighbors * n_trees, + approx_pow = FALSE, + y = NULL, + target_n_neighbors = n_neighbors, + target_metric = "euclidean", + target_weight = 0.5, + pca = NULL, + pca_center = TRUE, + pcg_rand = TRUE, + fast_sgd = FALSE, + ret_model = FALSE, + ret_nn = FALSE, + ret_extra = c(), + n_threads = NULL, + n_sgd_threads = 0, + grain_size = 1, + tmpdir = tempdir(), + verbose = getOption("verbose", TRUE), + batch = FALSE, + opt_args = NULL, + epoch_callback = NULL, + pca_method = NULL, + binary_edge_weights = FALSE, + dens_scale = NULL, + seed = NULL, + nn_args = list() +) +} +\arguments{ +\item{X}{Input data. Can be a \code{\link{data.frame}}, \code{\link{matrix}}, +\code{\link[stats]{dist}} object or \code{\link[Matrix]{sparseMatrix}}. +Matrix and data frames should contain one observation per row. Data frames +will have any non-numeric columns removed, although factor columns will be +used if explicitly included via \code{metric} (see the help for +\code{metric} for details). Sparse matrices must be in the \code{dgCMatrix} +format, and you must also install +\href{https://cran.r-project.org/package=rnndescent}{rnndescent} +and set \code{nn_method = "nndescent"} +\code{X} can also be \code{NULL} if pre-computed nearest neighbor data is +passed to \code{nn_method}, and \code{init} is not \code{"spca"} or +\code{"pca"}.} + +\item{n_neighbors}{The size of local neighborhood (in terms of number of +neighboring sample points) used for manifold approximation. Larger values +result in more global views of the manifold, while smaller values result in +more local data being preserved. In general values should be in the range +\code{2} to \code{100}.} + +\item{n_components}{The dimension of the space to embed into. This defaults +to \code{2} to provide easy visualization, but can reasonably be set to any +integer value in the range \code{2} to \code{100}.} + +\item{metric}{Type of distance metric to use to find nearest neighbors. For + \code{nn_method = "annoy"} this can be one of: +\itemize{ + \item \code{"euclidean"} (the default) + \item \code{"cosine"} + \item \code{"manhattan"} + \item \code{"hamming"} + \item \code{"correlation"} (a distance based on the Pearson correlation) + \item \code{"categorical"} (see below) +} +For \code{nn_method = "hnsw"} this can be one of: +\itemize{ + \item \code{"euclidean"} + \item \code{"cosine"} + \item \code{"correlation"} +} +If \href{https://cran.r-project.org/package=rnndescent}{rnndescent} is +installed and \code{nn_method = "nndescent"} is specified then many more +metrics are avaiable, including: +\itemize{ +\item \code{"braycurtis"} +\item \code{"canberra"} +\item \code{"chebyshev"} +\item \code{"dice"} +\item \code{"hamming"} +\item \code{"hellinger"} +\item \code{"jaccard"} +\item \code{"jensenshannon"} +\item \code{"kulsinski"} +\item \code{"rogerstanimoto"} +\item \code{"russellrao"} +\item \code{"sokalmichener"} +\item \code{"sokalsneath"} +\item \code{"spearmanr"} +\item \code{"symmetrickl"} +\item \code{"tsss"} +\item \code{"yule"} +} +For more details see the package documentation of \code{rnndescent}. +For \code{nn_method = "fnn"}, the distance metric is always "euclidean". + +If \code{X} is a data frame or matrix, then multiple metrics can be +specified, by passing a list to this argument, where the name of each item in +the list is one of the metric names above. The value of each list item should +be a vector giving the names or integer ids of the columns to be included in +a calculation, e.g. \code{metric = list(euclidean = 1:4, manhattan = 5:10)}. + +Each metric calculation results in a separate fuzzy simplicial set, which are +intersected together to produce the final set. Metric names can be repeated. +Because non-numeric columns are removed from the data frame, it is safer to +use column names than integer ids. + +Factor columns can also be used by specifying the metric name +\code{"categorical"}. Factor columns are treated different from numeric +columns and although multiple factor columns can be specified in a vector, +each factor column specified is processed individually. If you specify +a non-factor column, it will be coerced to a factor. + +For a given data block, you may override the \code{pca} and \code{pca_center} +arguments for that block, by providing a list with one unnamed item +containing the column names or ids, and then any of the \code{pca} or +\code{pca_center} overrides as named items, e.g. \code{metric = +list(euclidean = 1:4, manhattan = list(5:10, pca_center = FALSE))}. This +exists to allow mixed binary and real-valued data to be included and to have +PCA applied to both, but with centering applied only to the real-valued data +(it is typical not to apply centering to binary data before PCA is applied).} + +\item{n_epochs}{Number of epochs to use during the optimization of the +embedded coordinates. By default, this value is set to \code{500} for +datasets containing 10,000 vertices or less, and \code{200} otherwise. +If \code{n_epochs = 0}, then coordinates determined by \code{"init"} will +be returned.} + +\item{learning_rate}{Initial learning rate used in optimization of the +coordinates.} + +\item{scale}{Scaling to apply to \code{X} if it is a data frame or matrix: +\itemize{ + \item{\code{"none"} or \code{FALSE} or \code{NULL}} No scaling. + \item{\code{"Z"} or \code{"scale"} or \code{TRUE}} Scale each column to + zero mean and variance 1. + \item{\code{"maxabs"}} Center each column to mean 0, then divide each + element by the maximum absolute value over the entire matrix. + \item{\code{"range"}} Range scale the entire matrix, so the smallest + element is 0 and the largest is 1. + \item{\code{"colrange"}} Scale each column in the range (0,1). +} +For UMAP, the default is \code{"none"}.} + +\item{init}{Type of initialization for the coordinates. Options are: + \itemize{ + \item \code{"spectral"} Spectral embedding using the normalized Laplacian + of the fuzzy 1-skeleton, with Gaussian noise added. + \item \code{"normlaplacian"}. Spectral embedding using the normalized + Laplacian of the fuzzy 1-skeleton, without noise. + \item \code{"random"}. Coordinates assigned using a uniform random + distribution between -10 and 10. + \item \code{"lvrandom"}. Coordinates assigned using a Gaussian + distribution with standard deviation 1e-4, as used in LargeVis + (Tang et al., 2016) and t-SNE. + \item \code{"laplacian"}. Spectral embedding using the Laplacian Eigenmap + (Belkin and Niyogi, 2002). + \item \code{"pca"}. The first two principal components from PCA of + \code{X} if \code{X} is a data frame, and from a 2-dimensional classical + MDS if \code{X} is of class \code{"dist"}. + \item \code{"spca"}. Like \code{"pca"}, but each dimension is then scaled + so the standard deviation is 1e-4, to give a distribution similar to that + used in t-SNE. This is an alias for \code{init = "pca", init_sdev = + 1e-4}. + \item \code{"agspectral"} An "approximate global" modification of + \code{"spectral"} which all edges in the graph to a value of 1, and then + sets a random number of edges (\code{negative_sample_rate} edges per + vertex) to 0.1, to approximate the effect of non-local affinities. + \item A matrix of initial coordinates. + } +For spectral initializations, (\code{"spectral"}, \code{"normlaplacian"}, +\code{"laplacian"}, \code{"agspectral"}), if more than one connected +component is identified, no spectral initialization is attempted. Instead +a PCA-based initialization is attempted. If \code{verbose = TRUE} the +number of connected components are logged to the console. The existence of +multiple connected components implies that a global view of the data cannot +be attained with this initialization. Increasing the value of +\code{n_neighbors} may help.} + +\item{init_sdev}{If non-\code{NULL}, scales each dimension of the initialized +coordinates (including any user-supplied matrix) to this standard +deviation. By default, (\code{init_sdev = "range"}), each column of the +initial coordinates are range scaled between 0-10. Scaling the input may +help if the unscaled versions result in initial coordinates with large +inter-point distances or outliers. This usually results in small gradients +during optimization and very little progress being made to the layout. +Shrinking the initial embedding by rescaling can help under these +circumstances. Scaling the result of \code{init = "pca"} is usually +recommended and \code{init = "spca"} as an alias for \code{init = "pca", +init_sdev = 1e-4} but for the spectral initializations the scaled versions +usually aren't necessary unless you are using a large value of +\code{n_neighbors} (e.g. \code{n_neighbors = 150} or higher).} + +\item{spread}{The effective scale of embedded points. In combination with +\code{min_dist}, this determines how clustered/clumped the embedded points +are.} + +\item{min_dist}{The effective minimum distance between embedded points. +Smaller values will result in a more clustered/clumped embedding where +nearby points on the manifold are drawn closer together, while larger +values will result on a more even dispersal of points. The value should be +set relative to the \code{spread} value, which determines the scale at +which embedded points will be spread out.} + +\item{set_op_mix_ratio}{Interpolate between (fuzzy) union and intersection as +the set operation used to combine local fuzzy simplicial sets to obtain a +global fuzzy simplicial sets. Both fuzzy set operations use the product +t-norm. The value of this parameter should be between \code{0.0} and +\code{1.0}; a value of \code{1.0} will use a pure fuzzy union, while +\code{0.0} will use a pure fuzzy intersection.} + +\item{local_connectivity}{The local connectivity required -- i.e. the number +of nearest neighbors that should be assumed to be connected at a local +level. The higher this value the more connected the manifold becomes +locally. In practice this should be not more than the local intrinsic +dimension of the manifold.} + +\item{bandwidth}{The effective bandwidth of the kernel if we view the +algorithm as similar to Laplacian Eigenmaps. Larger values induce more +connectivity and a more global view of the data, smaller values concentrate +more locally.} + +\item{repulsion_strength}{Weighting applied to negative samples in low +dimensional embedding optimization. Values higher than one will result in +greater weight being given to negative samples.} + +\item{negative_sample_rate}{The number of negative edge/1-simplex samples to +use per positive edge/1-simplex sample in optimizing the low dimensional +embedding.} + +\item{a}{More specific parameters controlling the embedding. If \code{NULL} +these values are set automatically as determined by \code{min_dist} and +\code{spread}.} + +\item{b}{More specific parameters controlling the embedding. If \code{NULL} +these values are set automatically as determined by \code{min_dist} and +\code{spread}.} + +\item{nn_method}{Method for finding nearest neighbors. Options are: +\itemize{ + \item \code{"fnn"}. Use exact nearest neighbors via the + \href{https://cran.r-project.org/package=FNN}{FNN} package. + \item \code{"annoy"} Use approximate nearest neighbors via the + \href{https://cran.r-project.org/package=RcppAnnoy}{RcppAnnoy} package. + \item \code{"hnsw"} Use approximate nearest neighbors with the + Hierarchical Navigable Small World (HNSW) method (Malkov and Yashunin, + 2018) via the + \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} package. + \code{RcppHNSW} is not a dependency of this package: this option is + only available if you have installed \code{RcppHNSW} yourself. Also, + HNSW only supports the following arguments for \code{metric} and + \code{target_metric}: \code{"euclidean"}, \code{"cosine"} and + \code{"correlation"}. + \item \code{"nndescent"} Use approximate nearest neighbors with the + Nearest Neighbor Descent method (Dong et al., 2011) via the + \href{https://cran.r-project.org/package=rnndescent}{rnndescent} + package. \code{rnndescent} is not a dependency of this package: this + option is only available if you have installed \code{rnndescent} + yourself. + } +By default, if \code{X} has less than 4,096 vertices, the exact nearest +neighbors are found. Otherwise, approximate nearest neighbors are used. +You may also pass pre-calculated nearest neighbor data to this argument. It +must be one of two formats, either a list consisting of two elements: +\itemize{ + \item \code{"idx"}. A \code{n_vertices x n_neighbors} matrix + containing the integer indexes of the nearest neighbors in \code{X}. Each + vertex is considered to be its own nearest neighbor, i.e. + \code{idx[, 1] == 1:n_vertices}. + \item \code{"dist"}. A \code{n_vertices x n_neighbors} matrix + containing the distances of the nearest neighbors. +} +or a sparse distance matrix of type \code{dgCMatrix}, with dimensions +\code{n_vertices x n_vertices}. Distances should be arranged by column, +i.e. a non-zero entry in row \code{j} of the \code{i}th column indicates +that the \code{j}th observation in \code{X} is a nearest neighbor of the +\code{i}th observation with the distance given by the value of that +element. +The \code{n_neighbors} parameter is ignored when using precomputed +nearest neighbor data. If using the sparse distance matrix input, each +column can contain a different number of neighbors.} + +\item{n_trees}{Number of trees to build when constructing the nearest +neighbor index. The more trees specified, the larger the index, but the +better the results. With \code{search_k}, determines the accuracy of the +Annoy nearest neighbor search. Only used if the \code{nn_method} is +\code{"annoy"}. Sensible values are between \code{10} to \code{100}.} + +\item{search_k}{Number of nodes to search during the neighbor retrieval. The +larger k, the more the accurate results, but the longer the search takes. +With \code{n_trees}, determines the accuracy of the Annoy nearest neighbor +search. Only used if the \code{nn_method} is \code{"annoy"}.} + +\item{approx_pow}{If \code{TRUE}, use an approximation to the power function +in the UMAP gradient, from +\url{https://martin.ankerl.com/2012/01/25/optimized-approximative-pow-in-c-and-cpp/}. +Ignored if \code{dens_scale} is non-\code{NULL}.} + +\item{y}{Optional target data for supervised dimension reduction. Can be a +vector, matrix or data frame. Use the \code{target_metric} parameter to +specify the metrics to use, using the same syntax as \code{metric}. Usually +either a single numeric or factor column is used, but more complex formats +are possible. The following types are allowed: + \itemize{ + \item Factor columns with the same length as \code{X}. \code{NA} is + allowed for any observation with an unknown level, in which case + UMAP operates as a form of semi-supervised learning. Each column is + treated separately. + \item Numeric data. \code{NA} is \emph{not} allowed in this case. Use the + parameter \code{target_n_neighbors} to set the number of neighbors used + with \code{y}. If unset, \code{n_neighbors} is used. Unlike factors, + numeric columns are grouped into one block unless \code{target_metric} + specifies otherwise. For example, if you wish columns \code{a} and + \code{b} to be treated separately, specify + \code{target_metric = list(euclidean = "a", euclidean = "b")}. Otherwise, + the data will be effectively treated as a matrix with two columns. + \item Nearest neighbor data, consisting of a list of two matrices, + \code{idx} and \code{dist}. These represent the precalculated nearest + neighbor indices and distances, respectively. This + is the same format as that expected for precalculated data in + \code{nn_method}. This format assumes that the underlying data was a + numeric vector. Any user-supplied value of the \code{target_n_neighbors} + parameter is ignored in this case, because the the number of columns in + the matrices is used for the value. Multiple nearest neighbor data using + different metrics can be supplied by passing a list of these lists. + } +Unlike \code{X}, all factor columns included in \code{y} are automatically +used.} + +\item{target_n_neighbors}{Number of nearest neighbors to use to construct the +target simplicial set. Default value is \code{n_neighbors}. Applies only if +\code{y} is non-\code{NULL} and \code{numeric}.} + +\item{target_metric}{The metric used to measure distance for \code{y} if +using supervised dimension reduction. Used only if \code{y} is numeric.} + +\item{target_weight}{Weighting factor between data topology and target +topology. A value of 0.0 weights entirely on data, a value of 1.0 weights +entirely on target. The default of 0.5 balances the weighting equally +between data and target. Only applies if \code{y} is non-\code{NULL}.} + +\item{pca}{If set to a positive integer value, reduce data to this number of +columns using PCA. Doesn't applied if the distance \code{metric} is +\code{"hamming"}, or the dimensions of the data is larger than the +number specified (i.e. number of rows and columns must be larger than the +value of this parameter). If you have > 100 columns in a data frame or +matrix, reducing the number of columns in this way may substantially +increase the performance of the nearest neighbor search at the cost of a +potential decrease in accuracy. In many t-SNE applications, a value of 50 +is recommended, although there's no guarantee that this is appropriate for +all settings.} + +\item{pca_center}{If \code{TRUE}, center the columns of \code{X} before +carrying out PCA. For binary data, it's recommended to set this to +\code{FALSE}.} + +\item{pcg_rand}{If \code{TRUE}, use the PCG random number generator (O'Neill, +2014) during optimization. Otherwise, use the faster (but probably less +statistically good) Tausworthe "taus88" generator. The default is +\code{TRUE}.} + +\item{fast_sgd}{If \code{TRUE}, then the following combination of parameters +is set: \code{pcg_rand = TRUE}, \code{n_sgd_threads = "auto"} and +\code{approx_pow = TRUE}. The default is \code{FALSE}. Setting this to +\code{TRUE} will speed up the stochastic optimization phase, but give a +potentially less accurate embedding, and which will not be exactly +reproducible even with a fixed seed. For visualization, \code{fast_sgd = +TRUE} will give perfectly good results. For more generic dimensionality +reduction, it's safer to leave \code{fast_sgd = FALSE}. If \code{fast_sgd = +TRUE}, then user-supplied values of \code{pcg_rand}, \code{n_sgd_threads}, +and \code{approx_pow} are ignored.} + +\item{ret_model}{If \code{TRUE}, then return extra data that can be used to +add new data to an existing embedding via \code{\link{umap_transform}}. The +embedded coordinates are returned as the list item \code{embedding}. If +\code{FALSE}, just return the coordinates. This parameter can be used in +conjunction with \code{ret_nn} and \code{ret_extra}. Note that some +settings are incompatible with the production of a UMAP model: external +neighbor data (passed via a list to \code{nn_method}), and factor columns +that were included via the \code{metric} parameter. In the latter case, the +model produced is based only on the numeric data. A transformation using +new data is possible, but the factor columns in the new data are ignored. +Note that setting \code{ret_model = TRUE} forces the use of the approximate +nearest neighbors method. Because small datasets would otherwise use exact +nearest neighbor calculations, setting \code{ret_model = TRUE} means that +different results may be returned for small datasets in terms of both the +returned nearest neighbors (if requested) and the final embedded +coordinates, compared to \code{ret_model = FALSE}, even if the random +number seed is fixed. To avoid this, explicitly set +\code{nn_method = "annoy"} in the \code{ret_model = FALSE} case.} + +\item{ret_nn}{If \code{TRUE}, then in addition to the embedding, also return +nearest neighbor data that can be used as input to \code{nn_method} to +avoid the overhead of repeatedly calculating the nearest neighbors when +manipulating unrelated parameters (e.g. \code{min_dist}, \code{n_epochs}, +\code{init}). See the "Value" section for the names of the list items. If +\code{FALSE}, just return the coordinates. Note that the nearest neighbors +could be sensitive to data scaling, so be wary of reusing nearest neighbor +data if modifying the \code{scale} parameter. This parameter can be used in +conjunction with \code{ret_model} and \code{ret_extra}.} + +\item{ret_extra}{A vector indicating what extra data to return. May contain +any combination of the following strings: +\itemize{ + \item \code{"model"} Same as setting \code{ret_model = TRUE}. + \item \code{"nn"} Same as setting \code{ret_nn = TRUE}. + \item \code{"fgraph"} the high dimensional fuzzy graph (i.e. the fuzzy + simplicial set of the merged local views of the input data). The graph + is returned as a sparse symmetric N x N matrix of class + \link[Matrix]{dgCMatrix-class}, where a non-zero entry (i, j) gives the + membership strength of the edge connecting vertex i and vertex j. This + can be considered analogous to the input probability (or similarity or + affinity) used in t-SNE and LargeVis. Note that the graph is further + sparsified by removing edges with sufficiently low membership strength + that they would not be sampled by the probabilistic edge sampling + employed for optimization and therefore the number of non-zero elements + in the matrix is dependent on \code{n_epochs}. If you are only + interested in the fuzzy input graph (e.g. for clustering), setting + \code{n_epochs = 0} will avoid any further sparsifying. + Be aware that setting `binary_edge_weights = TRUE` will affect this + graph (all non-zero edge weights will be 1). + \item \code{"sigma"} the normalization value for each observation in the + dataset when constructing the smoothed distances to each of its + neighbors. This gives some sense of the local density of each + observation in the high dimensional space: higher values of + \code{sigma} indicate a higher dispersion or lower density. +}} + +\item{n_threads}{Number of threads to use (except during stochastic gradient +descent). Default is half the number of concurrent threads supported by the +system. For nearest neighbor search, only applies if +\code{nn_method = "annoy"}. If \code{n_threads > 1}, then the Annoy index +will be temporarily written to disk in the location determined by +\code{\link[base]{tempfile}}.} + +\item{n_sgd_threads}{Number of threads to use during stochastic gradient +descent. If set to > 1, then be aware that if \code{batch = FALSE}, results +will \emph{not} be reproducible, even if \code{set.seed} is called with a +fixed seed before running. Set to \code{"auto"} to use the same value as +\code{n_threads}. Default is to use only one thread, unless +\code{batch = TRUE} in which case \code{"auto"} used.} + +\item{grain_size}{The minimum amount of work to do on each thread. If this +value is set high enough, then less than \code{n_threads} or +\code{n_sgd_threads} will be used for processing, which might give a +performance improvement if the overhead of thread management and context +switching was outweighing the improvement due to concurrent processing. +This should be left at default (\code{1}) and work will be spread evenly +over all the threads specified.} + +\item{tmpdir}{Temporary directory to store nearest neighbor indexes during +nearest neighbor search. Default is \code{\link{tempdir}}. The index is +only written to disk if \code{n_threads > 1} and +\code{nn_method = "annoy"}; otherwise, this parameter is ignored.} + +\item{verbose}{If \code{TRUE}, log details to the console.} + +\item{batch}{If \code{TRUE}, then embedding coordinates are updated at the +end of each epoch rather than during the epoch. In batch mode, results are +reproducible with a fixed random seed even with \code{n_sgd_threads > 1}, +at the cost of a slightly higher memory use. You may also have to modify +\code{learning_rate} and increase \code{n_epochs}, so whether this provides +a speed increase over the single-threaded optimization is likely to be +dataset and hardware-dependent.} + +\item{opt_args}{A list of optimizer parameters, used when +\code{batch = TRUE}. The default optimization method used is Adam (Kingma +and Ba, 2014). +\itemize{ + \item \code{method} The optimization method to use. Either \code{"adam"} + or \code{"sgd"} (stochastic gradient descent). Default: \code{"adam"}. + \item \code{beta1} (Adam only). The weighting parameter for the + exponential moving average of the first moment estimator. Effectively the + momentum parameter. Should be a floating point value between 0 and 1. + Higher values can smooth oscillatory updates in poorly-conditioned + situations and may allow for a larger \code{learning_rate} to be + specified, but too high can cause divergence. Default: \code{0.5}. + \item \code{beta2} (Adam only). The weighting parameter for the + exponential moving average of the uncentered second moment estimator. + Should be a floating point value between 0 and 1. Controls the degree of + adaptivity in the step-size. Higher values put more weight on previous + time steps. Default: \code{0.9}. + \item \code{eps} (Adam only). Intended to be a small value to prevent + division by zero, but in practice can also affect convergence due to its + interaction with \code{beta2}. Higher values reduce the effect of the + step-size adaptivity and bring the behavior closer to stochastic gradient + descent with momentum. Typical values are between 1e-8 and 1e-3. Default: + \code{1e-7}. + \item \code{alpha} The initial learning rate. Default: the value of the + \code{learning_rate} parameter. +}} + +\item{epoch_callback}{A function which will be invoked at the end of every +epoch. Its signature should be: \code{(epoch, n_epochs, coords)}, where: +\itemize{ + \item \code{epoch} The current epoch number (between \code{1} and + \code{n_epochs}). + \item \code{n_epochs} Number of epochs to use during the optimization of + the embedded coordinates. + \item \code{coords} The embedded coordinates as of the end of the current + epoch, as a matrix with dimensions (N, \code{n_components}). +}} + +\item{pca_method}{Method to carry out any PCA dimensionality reduction when +the \code{pca} parameter is specified. Allowed values are: +\itemize{ + \item{\code{"irlba"}}. Uses \code{\link[irlba]{prcomp_irlba}} from the + \href{https://cran.r-project.org/package=irlba}{irlba} package. + \item{\code{"rsvd"}}. Uses 5 iterations of \code{\link[irlba]{svdr}} from + the \href{https://cran.r-project.org/package=irlba}{irlba} package. + This is likely to give much faster but potentially less accurate results + than using \code{"irlba"}. For the purposes of nearest neighbor + calculation and coordinates initialization, any loss of accuracy doesn't + seem to matter much. + \item{\code{"bigstatsr"}}. Uses \code{\link[bigstatsr]{big_randomSVD}} + from the \href{https://cran.r-project.org/package=bigstatsr}{bigstatsr} + package. The SVD methods used in \code{bigstatsr} may be faster on + systems without access to efficient linear algebra libraries (e.g. + Windows). \strong{Note}: \code{bigstatsr} is \emph{not} a dependency of + uwot: if you choose to use this package for PCA, you \emph{must} install + it yourself. + \item{\code{"svd"}}. Uses \code{\link[base]{svd}} for the SVD. This is + likely to be slow for all but the smallest datasets. + \item{\code{"auto"}} (the default). Uses \code{"irlba"}, unless more than + 50% of the full set of singular vectors would be calculated, in which + case \code{"svd"} is used. +}} + +\item{binary_edge_weights}{If \code{TRUE} then edge weights in the input +graph are treated as binary (0/1) rather than real valued. This affects the +sampling frequency of neighbors and is the strategy used by the PaCMAP +method (Wang and co-workers, 2020). Practical (Böhm and co-workers, 2020) +and theoretical (Damrich and Hamprecht, 2021) work suggests this has little +effect on UMAP's performance.} + +\item{dens_scale}{A value between 0 and 1. If > 0 then the output attempts +to preserve relative local density around each observation. This uses an +approximation to the densMAP method (Narayan and co-workers, 2021). The +larger the value of \code{dens_scale}, the greater the range of output +densities that will be used to map the input densities. This option is +ignored if using multiple \code{metric} blocks.} + +\item{seed}{Integer seed to use to initialize the random number generator +state. Combined with \code{n_sgd_threads = 1} or \code{batch = TRUE}, this +should give consistent output across multiple runs on a given installation. +Setting this value is equivalent to calling \code{\link[base]{set.seed}}, +but it may be more convenient in some situations than having to call a +separate function. The default is to not set a seed. If +\code{ret_model = TRUE}, the seed will be stored in the output model and +then used to set the seed inside \code{\link{umap_transform}}.} + +\item{nn_args}{A list containing additional arguments to pass to the nearest +neighbor method. For \code{nn_method = "annoy"}, you can specify +\code{"n_trees"} and \code{"search_k"}, and these will override the +\code{n_trees} and \code{search_k} parameters. +For \code{nn_method = "hnsw"}, you may specify the following arguments: +\itemize{ +\item \code{M} The maximum number of neighbors to keep for each vertex. +Reasonable values are \code{2} to \code{100}. Higher values give better +recall at the cost of more memory. Default value is \code{16}. +\item \code{ef_construction} A positive integer specifying the size of +the dynamic list used during index construction. A higher value will +provide better results at the cost of a longer time to build the index. +Default is \code{200}. +\item \code{ef} A positive integer specifying the size of the dynamic +list used during search. This cannot be smaller than \code{n_neighbors} +and cannot be higher than the number of items in the index. Default is +\code{10}. +} +For \code{nn_method = "nndescent"}, you may specify the following +arguments: +\itemize{ +\item \code{n_trees} The number of trees to use in a random projection +forest to initialize the search. A larger number will give more accurate +results at the cost of a longer computation time. The default of +\code{NULL} means that the number is chosen based on the number of +observations in \code{X}. +\item \code{max_candidates} The number of potential neighbors to explore +per iteration. By default, this is set to \code{n_neighbors} or \code{60}, +whichever is smaller. A larger number will give more accurate results at +the cost of a longer computation time. +\item \code{n_iters} The number of iterations to run the search. A larger +number will give more accurate results at the cost of a longer computation +time. By default, this will be chosen based on the number of observations +in \code{X}. You may also need to modify the convergence criterion +\code{delta}. +\item \code{delta} The minimum relative change in the neighbor graph +allowed before early stopping. Should be a value between 0 and 1. The +smaller the value, the smaller the amount of progress between iterations is +allowed. Default value of \code{0.001} means that at least 0.1% of the +neighbor graph must be updated at each iteration. +\item \code{init} How to initialize the nearest neighbor descent. By +default this is set to \code{"tree"} and uses a random project forest. +If you set this to \code{"rand"}, then a random selection is used. Usually +this is less accurate than using RP trees, but for high-dimensional cases, +there may be little difference in the quality of the initialization and +random initialization will be a lot faster. If you set this to +\code{"rand"}, then the \code{n_trees} parameter is ignored. +\item \code{pruning_degree_multiplier} The maximum number of edges per node +to retain in the search graph, relative to \code{n_neighbors}. A larger +value will give more accurate results at the cost of a longer computation +time. Default is \code{1.5}. This parameter only affects neighbor search +when transforming new data with \code{\link{umap_transform}}. +\item \code{epsilon} Controls the degree of the back-tracking when +traversing the search graph. Setting this to \code{0.0} will do a greedy +search with no back-tracking. A larger value will give more accurate +results at the cost of a longer computation time. Default is \code{0.1}. +This parameter only affects neighbor search when transforming new data with +\code{\link{umap_transform}}. +\item \code{max_search_fraction} Specifies the maximum fraction of the +search graph to traverse. By default, this is set to \code{1.0}, so the +entire graph (i.e. all items in \code{X}) may be visited. You may want to +set this to a smaller value if you have a very large dataset (in +conjunction with \code{epsilon}) to avoid an inefficient exhaustive search +of the data in \code{X}. This parameter only affects neighbor search when +transforming new data with \code{\link{umap_transform}}. +}} +} +\value{ +A matrix of optimized coordinates, or: + \itemize{ + \item if \code{ret_model = TRUE} (or \code{ret_extra} contains + \code{"model"}), returns a list containing extra information that can be + used to add new data to an existing embedding via + \code{\link{umap_transform}}. In this case, the coordinates are available + in the list item \code{embedding}. \bold{NOTE}: The contents of + the \code{model} list should \emph{not} be considered stable or part of + the public API, and are purposely left undocumented. + \item if \code{ret_nn = TRUE} (or \code{ret_extra} contains \code{"nn"}), + returns the nearest neighbor data as a list called \code{nn}. This + contains one list for each \code{metric} calculated, itself containing a + matrix \code{idx} with the integer ids of the neighbors; and a matrix + \code{dist} with the distances. The \code{nn} list (or a sub-list) can be + used as input to the \code{nn_method} parameter. + \item if \code{ret_extra} contains \code{"fgraph"}, returns the high + dimensional fuzzy graph as a sparse matrix called \code{fgraph}, of type + \link[Matrix]{dgCMatrix-class}. + \item if \code{ret_extra} contains \code{"sigma"}, returns a vector of the + smooth knn distance normalization terms for each observation as + \code{"sigma"} and a vector \code{"rho"} containing the largest + distance to the locally connected neighbors of each observation. + \item if \code{ret_extra} contains \code{"localr"}, returns a vector of + the estimated local radii, the sum of \code{"sigma"} and \code{"rho"}. + } + The returned list contains the combined data from any combination of + specifying \code{ret_model}, \code{ret_nn} and \code{ret_extra}. +} +\description{ +Carry out dimensionality reduction of a dataset using the Uniform Manifold +Approximation and Projection (UMAP) method (McInnes et al., 2018). +} +\details{ +This function behaves like \code{\link{umap}} except with some updated +defaults that make it behave more like the Python implementation and which +cannot be added to \code{\link{umap}} without breaking backwards +compatibility. In addition: + +\itemize{ + \item if \href{https://cran.r-project.org/package=RcppHNSW}{RcppHNSW} is + installed, it will be used in preference to Annoy if a compatible metric + is requested. + \item if RcppHNSW is not present, but + \href{https://cran.r-project.org/package=rnndescent}{rnndescent} is + installed, it will be used in preference to Annoy if a compatible metric + is requested. + \item if \code{batch = TRUE} then the default \code{n_sgd_threads} is set + to the same value as \code{n_threads}. + \item if the input data \code{X} is a sparse matrix, it is interpreted + similarly to a dense matrix or dataframe, and not as a distance matrix. + This requires \code{rnndescent} package to be installed. +} +} +\examples{ + +iris30 <- iris[c(1:10, 51:60, 101:110), ] + +# Non-numeric columns are automatically removed so you can pass data frames +# directly in a lot of cases without pre-processing +iris_umap <- umap2(iris30, n_neighbors = 5) + +} +\references{ +Belkin, M., & Niyogi, P. (2002). +Laplacian eigenmaps and spectral techniques for embedding and clustering. +In \emph{Advances in neural information processing systems} +(pp. 585-591). +\url{http://papers.nips.cc/paper/1961-laplacian-eigenmaps-and-spectral-techniques-for-embedding-and-clustering.pdf} + +Böhm, J. N., Berens, P., & Kobak, D. (2020). +A unifying perspective on neighbor embeddings along the attraction-repulsion spectrum. +\emph{arXiv preprint} \emph{arXiv:2007.08902}. +\url{https://arxiv.org/abs/2007.08902} + +Damrich, S., & Hamprecht, F. A. (2021). +On UMAP's true loss function. +\emph{Advances in Neural Information Processing Systems}, \emph{34}. +\url{https://proceedings.neurips.cc/paper/2021/hash/2de5d16682c3c35007e4e92982f1a2ba-Abstract.html} + +Dong, W., Moses, C., & Li, K. (2011, March). +Efficient k-nearest neighbor graph construction for generic similarity measures. +In \emph{Proceedings of the 20th international conference on World Wide Web} +(pp. 577-586). +ACM. +\doi{10.1145/1963405.1963487}. + +Kingma, D. P., & Ba, J. (2014). +Adam: A method for stochastic optimization. +\emph{arXiv preprint} \emph{arXiv}:1412.6980. +\url{https://arxiv.org/abs/1412.6980} + +Malkov, Y. A., & Yashunin, D. A. (2018). +Efficient and robust approximate nearest neighbor search using hierarchical +navigable small world graphs. +\emph{IEEE transactions on pattern analysis and machine intelligence}, \emph{42}(4), 824-836. + +McInnes, L., Healy, J., & Melville, J. (2018). +UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction +\emph{arXiv preprint} \emph{arXiv}:1802.03426. +\url{https://arxiv.org/abs/1802.03426} + +Narayan, A., Berger, B., & Cho, H. (2021). +Assessing single-cell transcriptomic variability through density-preserving data visualization. +\emph{Nature biotechnology}, \emph{39}(6), 765-774. +\doi{10.1038/s41587-020-00801-7} + +O’Neill, M. E. (2014). +\emph{PCG: A family of simple fast space-efficient statistically good +algorithms for random number generation} +(Report No. HMC-CS-2014-0905). Harvey Mudd College. + +Tang, J., Liu, J., Zhang, M., & Mei, Q. (2016, April). +Visualizing large-scale and high-dimensional data. +In \emph{Proceedings of the 25th International Conference on World Wide Web} +(pp. 287-297). +International World Wide Web Conferences Steering Committee. +\url{https://arxiv.org/abs/1602.00370} + +Van der Maaten, L., & Hinton, G. (2008). +Visualizing data using t-SNE. +\emph{Journal of Machine Learning Research}, \emph{9} (2579-2605). +\url{https://www.jmlr.org/papers/v9/vandermaaten08a.html} + +Wang, Y., Huang, H., Rudin, C., & Shaposhnik, Y. (2021). +Understanding How Dimension Reduction Tools Work: An Empirical Approach to Deciphering t-SNE, UMAP, TriMap, and PaCMAP for Data Visualization. +\emph{Journal of Machine Learning Research}, \emph{22}(201), 1-73. +\url{https://www.jmlr.org/papers/v22/20-1061.html} +} From 9580ec62e975d8af260a2f17d36a1062ae04f93b Mon Sep 17 00:00:00 2001 From: James Melville Date: Sun, 7 Apr 2024 21:04:46 -0700 Subject: [PATCH 14/20] detect a=1, b=1 and use tumap gradient --- R/umap2.R | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/R/umap2.R b/R/umap2.R index 4911171c..795ffb48 100644 --- a/R/umap2.R +++ b/R/umap2.R @@ -738,6 +738,12 @@ umap2 <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", n_epochs <- 500 } + if (is.numeric(a) && is.numeric(b) && a == 1 && b == 1) { + method <- "tumap" + } + else { + method <- "umap" + } uwot( X = X, n_neighbors = n_neighbors, n_components = n_components, metric = metric, n_epochs = n_epochs, alpha = learning_rate, scale = scale, @@ -748,7 +754,7 @@ umap2 <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", gamma = repulsion_strength, negative_sample_rate = negative_sample_rate, a = a, b = b, nn_method = nn_method, n_trees = n_trees, search_k = search_k, - method = "umap", approx_pow = approx_pow, + method = method, approx_pow = approx_pow, n_threads = n_threads, n_sgd_threads = n_sgd_threads, grain_size = grain_size, y = y, target_n_neighbors = target_n_neighbors, From dbb5f188ce2c463cd095316fe1d07d5586ea01f9 Mon Sep 17 00:00:00 2001 From: James Melville Date: Sun, 7 Apr 2024 21:05:07 -0700 Subject: [PATCH 15/20] sparse umap2 example --- .../img/sparse-data-example/ng20-umap.png | Bin 119158 -> 0 bytes .../sparse-data-example/ng20-umap2-150-15.png | Bin 0 -> 139394 bytes .../img/sparse-data-example/ng20-umap2-50.png | Bin 0 -> 141984 bytes .../ng20-umap2-exact-50.png | Bin 0 -> 142386 bytes .../sparse-data-example/ng20-umap2-exact.png | Bin 0 -> 140240 bytes .../img/sparse-data-example/ng20-umap2.png | Bin 0 -> 132391 bytes vignettes/articles/sparse-data-example.Rmd | 512 +++++++++++++++--- 7 files changed, 446 insertions(+), 66 deletions(-) delete mode 100644 vignettes/articles/img/sparse-data-example/ng20-umap.png create mode 100644 vignettes/articles/img/sparse-data-example/ng20-umap2-150-15.png create mode 100644 vignettes/articles/img/sparse-data-example/ng20-umap2-50.png create mode 100644 vignettes/articles/img/sparse-data-example/ng20-umap2-exact-50.png create mode 100644 vignettes/articles/img/sparse-data-example/ng20-umap2-exact.png create mode 100644 vignettes/articles/img/sparse-data-example/ng20-umap2.png diff --git a/vignettes/articles/img/sparse-data-example/ng20-umap.png b/vignettes/articles/img/sparse-data-example/ng20-umap.png deleted file mode 100644 index d9418a936178a6ff0a5c5585cfebf2a8bb4886d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 119158 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

>cmVQQ`pCR(AmlBcF-=Isdtk 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 literal 0 HcmV?d00001 diff --git a/vignettes/articles/img/sparse-data-example/ng20-umap2-exact-50.png b/vignettes/articles/img/sparse-data-example/ng20-umap2-exact-50.png new file mode 100644 index 0000000000000000000000000000000000000000..a669bb6fdbbab02968944d3fc3e05c4e56a136cc GIT binary patch literal 142386 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 literal 0 HcmV?d00001 diff --git a/vignettes/articles/img/sparse-data-example/ng20-umap2-exact.png b/vignettes/articles/img/sparse-data-example/ng20-umap2-exact.png new file mode 100644 index 0000000000000000000000000000000000000000..4e6fb9e0ac104574cd4144eebdbffd966f971603 GIT binary patch literal 140240 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

l1eFTvR(oqoinT`x-q=-bG0mL*4k}tA9Xo+#` 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

?LySNX^e_;FI41EZ3L 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 literal 0 HcmV?d00001 diff --git a/vignettes/articles/img/sparse-data-example/ng20-umap2.png b/vignettes/articles/img/sparse-data-example/ng20-umap2.png new file mode 100644 index 0000000000000000000000000000000000000000..c191a38287c74116473fa76cb5b4153300ea40c8 GIT binary patch literal 132391 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

P>)b`1<5xVI#Lpy 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 X%;UA~fs%{_1O7>iD~MH!7zF$uc*&?P literal 0 HcmV?d00001 diff --git a/vignettes/articles/sparse-data-example.Rmd b/vignettes/articles/sparse-data-example.Rmd index ae59a801..68a7b5bd 100644 --- a/vignettes/articles/sparse-data-example.Rmd +++ b/vignettes/articles/sparse-data-example.Rmd @@ -35,7 +35,8 @@ added a `download_twenty_newsgroups` function. That took up a large chunk of one afternoon and evening. The second problem is solved by replicating the PyNNDescent package in R. This took me a bit longer, but a mere 4 years later, the [rnndescent](https://cran.r-project.org/package=rnndescent) package is -finally in a usable state. +finally in a usable state. Consequently, the `uwot` package can now make use +of `rnndescent` and support sparse input via the `umap2` function. So let's get started. Apart from the Python example above, some other good resources for doing text analysis on this dataset can be found in chapter 9 of @@ -198,7 +199,7 @@ find out more about them in the "20 Newsgroups Secrets" notebook linked above posts, so to try and catch more, I will end up filtering those out later. The tidy text example goes on to examine the word frequencies for each newsgroup -as a whole, but we will go back to analysing on a per post basis. Now, having +as a whole, but we will go back to analyzing on a per post basis. Now, having split the posts into lines, we need to unsplit them, and also re-associate the other columns from the original `ng20` data: @@ -297,7 +298,7 @@ hist(nwords[nwords <= quantile(nwords, 0.95)], main = "0-95% word count distribu So 95% of the data contains 250 words or less. -What is this massive document. Let's (carefully) take a look: +What is this massive document? Let's (carefully) take a look: ```{r longest document} substr(ng20[which.max(nwords), ]$Text, 0, 80) @@ -449,13 +450,14 @@ and takes up a lot of memory and you have to spend time working out how many dimensions to use, which slows things down even more if you don't get it right the first time. -So let's use `rnndescent` to find nearest neighbors on the sparse data directly. +Fortunately, now that `uwot` can use `rnndescent`, we can work on the sparse +data directly. -## Finding Nearest Neighbors +## UMAP with NN-Descent -We need to convert the sparse matrix into a format from the -[Matrix](https://cran.r-project.org/package=Matrix) package that `rnndescent` -can handle: +To use `uwot` with sparse data we need to convert the TF-IDF matrix into a +format from the [Matrix](https://cran.r-project.org/package=Matrix) package +that `rnndescent` can handle: ```{r convert to rnndescent format} library(Matrix) @@ -468,75 +470,76 @@ tfidf_sp <- ) ``` -and, following the example in the Python UMAP tutorial, we want to use the -Hellinger distance. This show-cases another example of `rnndescent`, which is -that it implements a lot more distances than most other methods. The Hellinger -distance, being a divergence is designed to work on probability distributions, -so I am going to L1-normalize each row of the sparse matrix: - -```{r normalize rows} -l1_normalize <- function(X) { - res <- rep(0, nrow(X)) - dgt <- as(X, "TsparseMatrix") - tmp <- tapply(dgt@x, dgt@i, function(x) { - sum(abs(x)) - }) - res[as.integer(names(tmp)) + 1] <- tmp - Diagonal(x = 1 / res) %*% X -} -tfidf_spl1 <- l1_normalize(tfidf_sp) -``` - -Now we can find the neighbors. +For historical reasons to do with not breaking backwards compatibility, we can't +use the `umap` function with sparse input data. Instead we will use the `umap2` +function, which is a newer version of `umap` but with slightly better defaults +and which can take sparse matrix input. We also need to load the `rnndescent` +package. ```{r install rnndescent} install.packages("rnndescent") library(rnndescent) ``` -I will use the brute-force search in `rnndescent` as the dataset is small enough -for us to handle an exact search comfortably, at least if you have enough cores: +In terms of non-default options, I'm going to use the `batch = TRUE` setting, +a longer than usual optimization, and a non-zero `dens_scale` to model some of +the original density differences in the data (see the article on +[LEOPOLD](https://jlmelville.github.io/uwot/articles/leopold.html) for more +details). I will also save the nearest neighbors with `ret_nn = TRUE` so I can +compare them with the exact results we will calculate later. -```{r nearest neighbors} -tfidfl1_hell_bf <- - brute_force_knn( - tfidf_spl1, - k = 15, - metric = "hellinger", - n_threads = 6, - verbose = TRUE - ) -``` - -This took under a minute on my laptop. - -## UMAP - -At last we can run UMAP. As we have the nearest neighbors data already, that's -the only input data we need. The other settings ensure we do a slightly longer -optimization than usual (as we save a bit of time from having already done the -nearest neighbor search), and that we use -[LEOPOLD](https://jlmelville.github.io/uwot/articles/leopold.html) to model some -of the original density differences in the data. - -```{r setup} +```{r umap on sparse} library(uwot) ng20_umap <- - umap( - X = NULL, - nn_method = tfidfl1_hell_bf, - n_sgd_threads = 6, + umap2( + X = tfidf_sp, + nn_method = "nndescent", + metric = "hellinger", n_epochs = 1000, batch = TRUE, - init_sdev = "range", dens_scale = 0.5, + ret_nn = TRUE, verbose = TRUE ) ``` - -If you follow along with the code here, you will not get the same results as me -when you plot them below, due to the stochastic nature of UMAP. But you should -see something similar (if you don't, please +``` +Using nndescent for nearest neighbor search +UMAP embedding parameters a = 1.577 b = 0.8951 +Read 17666 rows and found 88894 numeric columns +Using alt metric 'alternative-hellinger' for 'hellinger' +Initializing neighbors using 'tree' method +Calculating rp tree k-nearest neighbors with k = 15 n_trees = 17 max leaf size = 15 margin = 'explicit' using 6 threads +Using angular margin calculation +0% 10 20 30 40 50 60 70 80 90 100% +[----|----|----|----|----|----|----|----|----|----] +*************************************************** +Extracting leaf array from forest +Creating knn using 32172 leaves +0% 10 20 30 40 50 60 70 80 90 100% +[----|----|----|----|----|----|----|----|----|----] +*************************************************** +Running nearest neighbor descent for 14 iterations using 6 threads +0% 10 20 30 40 50 60 70 80 90 100% +[----|----|----|----|----|----|----|----|----|----] +*************************************************** +Convergence: c = 170 tol = 264.99 +Finished +Commencing smooth kNN distance calibration using 6 threads with target n_neighbors = 15 +17 smooth knn distance failures +Initializing from normalized Laplacian + noise (using irlba) +Range-scaling initial input columns to 0-10 +Commencing optimization for 1000 epochs, with 389106 positive edges using 6 threads +Using method 'leopold' +Optimizing with Adam alpha = 1 beta1 = 0.5 beta2 = 0.9 eps = 1e-07 +0% 10 20 30 40 50 60 70 80 90 100% +[----|----|----|----|----|----|----|----|----|----| +**************************************************| +Optimization finished +``` + +If you follow along with the code here, you will *not* get the exact same +results as me when you plot them below, due to the stochastic nature of UMAP. +But you should see something similar (if you don't, please [file an issue](https://github.com/jlmelville/uwot/issues)). ## Plot the Results @@ -551,6 +554,7 @@ a similar approach to the Python package ```{r create palette} library(Polychrome) +set.seed(42) palette <- as.vector(Polychrome::createPalette( length(levels(text_unsplit$Newsgroup)) + 2, @@ -562,7 +566,7 @@ palette <- as.vector(Polychrome::createPalette( I will also rotate the coordinates so they align along the principal axes: ```{r rotate} -ng20_umap_rotated <- prcomp(ng20_umap)$x +ng20_umap_rotated <- prcomp(ng20_umap$embedding)$x ``` Ok, now to make the plot with [ggplot2](https://ggplot2.tidyverse.org/): @@ -572,13 +576,13 @@ library(ggplot2) ggplot( data.frame(ng20_umap_rotated, Newsgroup = text_unsplit$Newsgroup), - aes(x = X1, y = X2, color = Newsgroup) + aes(x = PC1, y = PC2, color = Newsgroup) ) + geom_point(alpha = 0.4, size = 0.5) + scale_color_manual(values = palette) + theme_minimal() + labs( - title = "Sparse Hellinger 20Newsgroups UMAP", + title = "Sparse Hellinger NN-Descent 20Newsgroups UMAP", x = "", y = "", color = "Newsgroup" @@ -587,9 +591,385 @@ ggplot( guides(color = guide_legend(override.aes = list(size = 5, alpha = 1))) ``` -![UMAP](img/sparse-data-example/ng20-umap.png) +![UMAP](img/sparse-data-example/ng20-umap2.png) Although we can't compare this result too easily with the Python example, as that one plots the training and test set separately, and there isn't a legend, I think this has done a pretty good job of separating at least some of the 20 newsgroups. + +## Finding Exact Nearest Neighbors + +Before `uwot` supported using `rnndescent` internally for sparse data, this +article documented the process of using `rnndesent` directly with the 20 +Newsgroups data and then integrating that with the `umap` function. This is +still a perfectly viable approach, especially if you want to use exact nearest +neighbors. `uwot` uses the nearest neighbor descent method to find approximate +nearest neighbors, which is faster but not exact. In what follows we'll use +`rnndescent` to find exact nearest neighbors by a brute force method and then +see what sort of difference that makes to the UMAP result. + +I'll assume you've been following along so far, so that we have the +L1-normalized TF-IDF matrix `tfidf_spl1` and `rnndescent` loaded. Now let's use +the brute-force search in `rnndescent`. This dataset is small enough for us to +handle an exact search comfortably, at least if you have enough cores: + +```{r nearest neighbors} +tfidfl1_hell_bf <- + brute_force_knn( + tfidf_sp, + k = 15, + metric = "hellinger", + n_threads = 6, + verbose = TRUE + ) +``` +``` +Using alt metric 'alternative-hellinger' for 'hellinger' +Calculating brute force k-nearest neighbors with k = 15 using 6 threads +0% 10 20 30 40 50 60 70 80 90 100% +[----|----|----|----|----|----|----|----|----|----] +*************************************************** +Finished +``` + +This took about 35 seconds on my machine, whereas nearest neighbor descent only +took about 5 seconds. That said, in this case I am happy to pay the +price of the extra 30 seconds to avoid any issues due to approximation. + +## UMAP with Exact Neighbors + +We can now run UMAP with the exact neighbors. I will use the same parameters +in conjunction with `umap2` as I did with the approximate nearest neighbors: + +```{r umap with exact nearest neighbors} +ng20_umap_exact <- + umap2( + X = NULL, + nn_method = tfidfl1_hell_bf, + n_epochs = 1000, + batch = TRUE, + dens_scale = 0.5, + verbose = TRUE + ) +``` +``` +UMAP embedding parameters a = 1.577 b = 0.8951 +Commencing smooth kNN distance calibration using 6 threads with target n_neighbors = 15 +16 smooth knn distance failures +Initializing from normalized Laplacian + noise (using irlba) +Range-scaling initial input columns to 0-10 +Commencing optimization for 1000 epochs, with 377272 positive edges using 6 threads +Using method 'leopold' +Optimizing with Adam alpha = 1 beta1 = 0.5 beta2 = 0.9 eps = 1e-07 +0% 10 20 30 40 50 60 70 80 90 100% +[----|----|----|----|----|----|----|----|----|----| +**************************************************| +Optimization finished +``` + +## Plot the Exact Neighbors UMAP Results + +```{r plot exact neighbors UMAP} +ggplot( + data.frame(prcomp(ng20_umap_exact)$x, Newsgroup = text_unsplit$Newsgroup), + aes(x = PC1, y = PC2, color = Newsgroup) +) + + geom_point(alpha = 0.4, size = 0.5) + + scale_color_manual(values = palette) + + theme_minimal() + + labs( + title = "Sparse Hellinger Exact Neighbors 20Newsgroups UMAP", + x = "", + y = "", + color = "Newsgroup" + ) + + theme(legend.position = "right") + + guides(color = guide_legend(override.aes = list(size = 5, alpha = 1))) +``` + +![UMAP-exact-15](img/sparse-data-example/ng20-umap2-exact.png) + +Actually, although the plots share a lot of the same features there are some +noticeable differences to some of the cluster placements. + +## Hubness + +What's going on here? If you want, you can re-run the UMAP with the exact +nearest neighbors a few times, which will tell us how much the result varies due +to the random selection during negative sampling. I will leave that as an +exercise for you. Having tried it myself, the plot is pretty stable (the +`sci.space` cluster moves between two locations). So the reason for the +differences is going to be down to the performance of the approximate nearest +neighbors. As we have gone to the trouble of generating the exact nearest +neighbors we can answer the question of how well did we actually do in +reproducing the exact neighbors? `rnndescent` has a `neighbor_overlap` function +we can use which will return a value of 0 (no overlap between two sets of +neighbors) and 1 (perfect overlap): + +```{r compare overlap} +neighbor_overlap(ng20_umap$nn$hellinger, tfidfl1_hell_bf) +``` +``` +[1] 0.7484169 +``` + +So about 75% accuracy, that's less than the 90% that I would usually be happier +with. I'm not totally surprised as high dimensional datasets tend to contain +"hubs" (items which appear on the nearest neighbor lists of many other items) +and these tend to make it hard for any approximate nearest neighbor method to do +a good exploration. Does this combination of dataset, `n_neighbors` and `metric` +result in the neighbors having a hub. Once again `rnndescent` can help us with +its `k_occur` function which will count the k-occurrence for each item: the +number of times an item appears in the nearest neighbor lists of other items +(aka the number of reverse neighbors). The hubness for a dataset can be defined +as the maximum number of times any item appears in the k-occurrence list, and +I am going to normalize that with respect to `n_neighbors`: + +```{r hubness} +tfidfl1_hell_bf |> k_occur() |> max() / 15 +``` +``` +20.13333 +``` + +A dataset where each item gets its fair share of reverse neighbors would result +in a maximum k-occurrence of `n_neighbors`, or in this case a normalized hubness +of 1. So we are at a much larger value than that. My own personal experience is +that if the normalized hubness exceeds 10, then approximate nearest neighbors +methods will struggle to do well, at least if you are looking for relatively low +values of `n_neighbors` with default settings. Incidentally, you don't need the +exact nearest neighbors to detect hubness, the approximate results will also act +as a good diagnostic: + +```{r hubness with approximate} +ng20_umap$nn$hellinger |> k_occur() |> max() / 15 +``` +``` +30.46667 +``` + +Not necessarily good at reproducing the result from the exact neighbors, but it +will certainly tell you that something is up. + +## UMAP with More Neighbors + +So what are we going to do about this? In these cases, usually increasing +`n_neighbors` helps. I'm going to look at `n_neighbors = 50`. We will also want +the equivalent brute force results to see if it helped: + +```{r more exact neighbors} +tfidfl1_hell_bf_50 <- + brute_force_knn( + tfidf_sp, + k = 50, + metric = "hellinger", + n_threads = 6, + verbose = TRUE + ) +``` + +Let's see what's up with the hubness: + +```{r hubness with more exact} +tfidfl1_hell_bf_50 |> k_occur() |> max() / 50 +``` +``` +[1] 20.1 +``` + +Not that different to the `n_neighbors = 15` result, but I have more confidence +that nearest neighbor descent will be able to handle this level of hubness given +the larger `n_neighbors` value. But let's find out. + +```{r umap with more approximate neighbors} +ng20_umap_50 <- + umap2( + X = tfidf_sp, + nn_method = "nndescent", + metric = "hellinger", + n_neighbors = 50, + n_epochs = 1000, + batch = TRUE, + dens_scale = 0.5, + ret_nn = TRUE, + verbose = TRUE + ) +``` + +```{r hubness with more approximate} +ng20_umap_50$nn$hellinger |> k_occur() |> max() / 50 +``` +``` +[1] 21.12 +``` + +A similar level of hubness reported, but more importantly, what's the accuracy +like? + +```{r compare overlap with more} +neighbor_overlap(ng20_umap_50$nn$hellinger, tfidfl1_hell_bf_50) +``` +``` +[1] 0.9553753 +``` + +96%! Much better. Let's see how the UMAP plot looks: + +```{r ggplot with more} +ggplot( + data.frame(prcomp(ng20_umap_50$embedding)$x, Newsgroup = text_unsplit$Newsgroup), + aes(x = PC1, y = PC2, color = Newsgroup) +) + + geom_point(alpha = 0.4, size = 0.5) + + scale_color_manual(values = palette) + + theme_minimal() + + labs( + title = "Sparse Hellinger Approximate 50-Neighbors 20Newsgroups UMAP", + x = "", + y = "", + color = "Newsgroup" + ) + + theme(legend.position = "right") + + guides(color = guide_legend(override.aes = list(size = 5, alpha = 1))) +``` + +![UMAP-50](img/sparse-data-example/ng20-umap2-50.png) + +Well, the clusters have spread out a bit (expected due to the 3-fold increase +in `n_neighbors`) but they have also continued to move around a bit compared +to the `n_neighbors = 15` result. Hmm, let's see if at least we have agreement +with the exact case for `n_neighbors = 50`: + +```{r UMAP on exact 50} +ng20_umap_exact_50 <- + umap2( + X = NULL, + nn_method = tfidfl1_hell_bf_50, + n_epochs = 1000, + batch = TRUE, + dens_scale = 0.5, + verbose = TRUE + ) + +ggplot( + data.frame(prcomp(ng20_umap_exact_50)$x, Newsgroup = text_unsplit$Newsgroup), + aes(x = PC1, y = PC2, color = Newsgroup) +) + + geom_point(alpha = 0.4, size = 0.5) + + scale_color_manual(values = palette) + + theme_minimal() + + labs( + title = "Sparse Hellinger Exact 50-Neighbors 20Newsgroups UMAP", + x = "", + y = "", + color = "Newsgroup" + ) + + theme(legend.position = "right") + + guides(color = guide_legend(override.aes = list(size = 5, alpha = 1))) +``` + +![UMAP-exact-50](img/sparse-data-example/ng20-umap2-exact-50.png) + +Again, some of the clusters are on the move compared to the approximate case. +It seems that the locations of `sci.crypt` and the +`rec.sports.baseball`/`rec.sports.hockey` pair are particularly sensitive. + +## UMAP with Even More Neighbors + +The next step would be to increase `n_neighbors` even further and see if results +are more stable. The maximum I usually consider is `n_neighbors = 150`: this +is the sort of number that would be used by methods like t-SNE with a fairly +large perplexity of 50. Fortunately, in my testing the results for this +value of `n_neighbors` actually *are* stable so we don't need to go higher this +time. To get something that visually resembles the original `n_neighbors = 15` +result, my strategy is to run UMAP with progressively smaller values of +`n_neighbors` using the output of the previous run as the initialization. This +isn't as time consuming as it could be because we only need to do the nearest +neighbor search once and the optimizations before the final step can use the +faster t-UMAP gradient, which will be used by `umap2` if it detects `a = 1` +and `b = 1` being passed. The following uses `n_neighbors = 150`, +`n_neighbors = 50` and then finished off at `n_neighbors = 15`: + +```{r 150-to-15 UMAP} +ng20_umap_150 <- umap2( + X = tfidf_sp, + nn_method = "nndescent", + metric = "hellinger", + n_epochs = 1000, + batch = TRUE, + verbose = TRUE, + n_neighbors = 150, + a = 1, + b = 1, + ret_nn = TRUE +) + +ng20_umap_150_50 <- umap2( + X = tfidf_sp, + nn_method = list( + idx = ng20_umap_150$nn$hellinger$idx[, 1:50], + dist = ng20_umap_150$nn$hellinger$dist[, 1:50] + ), + n_epochs = 1000, + batch = TRUE, + verbose = TRUE, + a = 1, + b = 1, + init = ng20_umap_150$embedding +) + +ng20_umap_150_50_15 <- umap2( + X = tfidf_sp, + nn_method = list( + idx = ng20_umap_150$nn$hellinger$idx[, 1:15], + dist = ng20_umap_150$nn$hellinger$dist[, 1:15] + ), + n_epochs = 1000, + batch = TRUE, + verbose = TRUE, + dens_scale = 0.5, + init = ng20_umap_150_50 +) +ggplot( + data.frame(prcomp(ng20_umap_150_50_15)$x, Newsgroup = text_unsplit$Newsgroup), + aes(x = PC1, y = PC2, color = Newsgroup) +) + + geom_point(alpha = 0.4, size = 0.5) + + scale_color_manual(values = palette) + + theme_minimal() + + labs( + title = "Sparse Hellinger Exact 150-to-15 20Newsgroups UMAP", + x = "", + y = "", + color = "Newsgroup" + ) + + theme(legend.position = "right") + + guides(color = guide_legend(override.aes = list(size = 5, alpha = 1))) +``` + +![UMAP-150-15](img/sparse-data-example/ng20-umap2-150-15.png) +This strategy can work well if you can find a suitable starting value for +`n_neighbors` that isn't too onerous. Bear in mind that quite apart from the +computational cost of finding a large number of neighbors and the consequent +increase in number of edges that need optimizing, a more "global" setting is not +always better as you could be short-circuiting the manifold structure of the +data. It seems to have worked out in this case, though, and repeated runs give +a layout which is much more stable than the original `n_neighbors = 15` case. + +## Conclusion + +If you install `rnndescent` and use the `umap2` function, it's possible to embed +sparse high-dimensional datasets using UMAP and you can even use relatively +exotic metrics like Hellinger divergence. + +Be aware that high-dimensional datasets can contain hubs. For low values of +`n_neighbors`, you may not get as high nearest neighbor accuracies as you are +used to. `rnndescent` has functions which can help detect hubness. Increasing +`n_neighbors` can help, but you should still be wary of over-interpreting +the relative positions of clusters in the output. Yes, I know everyone says this +but it bears repeating because the temptation is always there. I recommend +re-running your UMAP results multiple times with any given settings, even if +you have exact nearest neighbors, and you should also repeat with different +values of `n_neighbors` (e.g. `50` and/or `150`). "Annealing" the `n_neighbors` +value down in a series of optimizations can work out well. From 5f1af424766e540ae1ddc70ada911cd33f937141 Mon Sep 17 00:00:00 2001 From: James Melville Date: Sun, 7 Apr 2024 21:21:20 -0700 Subject: [PATCH 16/20] minor typos --- vignettes/articles/rnndescent-umap.Rmd | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/vignettes/articles/rnndescent-umap.Rmd b/vignettes/articles/rnndescent-umap.Rmd index c758d01d..d7760476 100644 --- a/vignettes/articles/rnndescent-umap.Rmd +++ b/vignettes/articles/rnndescent-umap.Rmd @@ -279,7 +279,7 @@ If you use `nn_method = "nndescent"` then the UMAP model returned with and `load_uwot`, nor do you need to worry about unloading the model with `unload_uwot`, as you must with Annoy-based UMAP models. This is a consequence of `rnndescent` storing all its index-related data in pure R (no wrapping of -existing C++ classes), but be aware zthat this can lead to much larger models +existing C++ classes), but be aware that this can lead to much larger models on disk and in RAM. ## Using `rnndescent` externally @@ -524,6 +524,10 @@ with `rnnd_build` and using `ret_model = TRUE`. If you want to use `rnndescent` with `uwot`, then: +* Install `rnndescent` and then use `nn_method = "nndescent"`. + +That handles most cases. If you want to use precomputed nearest neighbors, then: + * Run `rnndescent::rnnd_build` on your training data. * Run `uwot::umap` with `nn_method` set to the `graph` item in the result of `rnnd_build` and remember to set `ret_model = TRUE`. From 3b4a34c32b00304ee93b40f3d2a554c93e493612 Mon Sep 17 00:00:00 2001 From: James Melville Date: Sat, 13 Apr 2024 16:26:38 -0700 Subject: [PATCH 17/20] No tumap if dens_scale is set --- R/umap2.R | 244 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 143 insertions(+), 101 deletions(-) diff --git a/R/umap2.R b/R/umap2.R index 795ffb48..2f18ff74 100644 --- a/R/umap2.R +++ b/R/umap2.R @@ -665,117 +665,159 @@ #' \url{https://www.jmlr.org/papers/v22/20-1061.html} #' #' @export -umap2 <- function(X, n_neighbors = 15, n_components = 2, metric = "euclidean", - n_epochs = NULL, learning_rate = 1, scale = FALSE, - init = "spectral", init_sdev = "range", - spread = 1, min_dist = 0.1, - set_op_mix_ratio = 1.0, local_connectivity = 1.0, - bandwidth = 1.0, repulsion_strength = 1.0, - negative_sample_rate = 5.0, a = NULL, b = NULL, - nn_method = NULL, n_trees = 50, - search_k = 2 * n_neighbors * n_trees, - approx_pow = FALSE, - y = NULL, target_n_neighbors = n_neighbors, - target_metric = "euclidean", - target_weight = 0.5, - pca = NULL, pca_center = TRUE, - pcg_rand = TRUE, - fast_sgd = FALSE, - ret_model = FALSE, ret_nn = FALSE, ret_extra = c(), - n_threads = NULL, - n_sgd_threads = 0, - grain_size = 1, - tmpdir = tempdir(), - verbose = getOption("verbose", TRUE), - batch = FALSE, - opt_args = NULL, epoch_callback = NULL, pca_method = NULL, - binary_edge_weights = FALSE, - dens_scale = NULL, - seed = NULL, - nn_args = list()) { - if (is.null(nn_method)) { - if (is_installed("RcppHNSW") && +umap2 <- + function(X, + n_neighbors = 15, + n_components = 2, + metric = "euclidean", + n_epochs = NULL, + learning_rate = 1, + scale = FALSE, + init = "spectral", + init_sdev = "range", + spread = 1, + min_dist = 0.1, + set_op_mix_ratio = 1.0, + local_connectivity = 1.0, + bandwidth = 1.0, + repulsion_strength = 1.0, + negative_sample_rate = 5.0, + a = NULL, + b = NULL, + nn_method = NULL, + n_trees = 50, + search_k = 2 * n_neighbors * n_trees, + approx_pow = FALSE, + y = NULL, + target_n_neighbors = n_neighbors, + target_metric = "euclidean", + target_weight = 0.5, + pca = NULL, + pca_center = TRUE, + pcg_rand = TRUE, + fast_sgd = FALSE, + ret_model = FALSE, + ret_nn = FALSE, + ret_extra = c(), + n_threads = NULL, + n_sgd_threads = 0, + grain_size = 1, + tmpdir = tempdir(), + verbose = getOption("verbose", TRUE), + batch = FALSE, + opt_args = NULL, + epoch_callback = NULL, + pca_method = NULL, + binary_edge_weights = FALSE, + dens_scale = NULL, + seed = NULL, + nn_args = list()) { + if (is.null(nn_method)) { + if (is_installed("RcppHNSW") && is.character(metric) && - is_ok_hnsw_metric(metric) && is_ok_hnsw_metric(target_metric)) { - nn_method <- "hnsw" - tsmessage("Using HNSW for nearest neighbor search") + is_ok_hnsw_metric(metric) && + is_ok_hnsw_metric(target_metric)) { + nn_method <- "hnsw" + tsmessage("Using HNSW for nearest neighbor search") + } } - } - if (is.null(nn_method)) { - if (is_installed("rnndescent")) { - nn_method <- "nndescent" - tsmessage("Using NN-Descent for nearest neighbor search") + if (is.null(nn_method)) { + if (is_installed("rnndescent")) { + nn_method <- "nndescent" + tsmessage("Using NN-Descent for nearest neighbor search") + } } - } - if (is.null(n_threads)) { - n_threads <- default_num_threads() - if (batch) { - n_sgd_threads <- n_threads + if (is.null(n_threads)) { + n_threads <- default_num_threads() + if (batch) { + n_sgd_threads <- n_threads + } } - } - if (is_sparse_matrix(X)) { - if (!methods::is(X, "dgCMatrix")) { - stop("sparse X must be a dgCMatrix object") - } - if (!is.list(nn_method)) { - if (!is_installed("rnndescent")) { - stop("nearest neighbor search for sparse matrices requires the ", - "'rnndescent' package, please install it") + if (is_sparse_matrix(X)) { + if (!methods::is(X, "dgCMatrix")) { + stop("sparse X must be a dgCMatrix object") } - if (!is.null(nn_method) && nn_method != "nndescent") { - stop("nearest neighbor search for sparse matrices only supports ", - "the 'nndescent' method") + if (!is.list(nn_method)) { + if (!is_installed("rnndescent")) { + stop( + "nearest neighbor search for sparse matrices requires the ", + "'rnndescent' package, please install it" + ) + } + if (!is.null(nn_method) && nn_method != "nndescent") { + stop( + "nearest neighbor search for sparse matrices only supports ", + "the 'nndescent' method" + ) + } + tsmessage("Using nndescent for nearest neighbor search") + nn_method <- "nndescent" } - tsmessage("Using nndescent for nearest neighbor search") - nn_method <- "nndescent" } - } - if (is.null(n_epochs)) { - n_epochs <- 500 - } + if (is.null(n_epochs)) { + n_epochs <- 500 + } - if (is.numeric(a) && is.numeric(b) && a == 1 && b == 1) { - method <- "tumap" - } - else { - method <- "umap" + if (is.numeric(a) && + is.numeric(b) && a == 1 && b == 1 && is.null(dens_scale)) { + method <- "tumap" + } else { + method <- "umap" + } + uwot( + X = X, + n_neighbors = n_neighbors, + n_components = n_components, + metric = metric, + n_epochs = n_epochs, + alpha = learning_rate, + scale = scale, + init = init, + init_sdev = init_sdev, + spread = spread, + min_dist = min_dist, + set_op_mix_ratio = set_op_mix_ratio, + local_connectivity = local_connectivity, + bandwidth = bandwidth, + gamma = repulsion_strength, + negative_sample_rate = negative_sample_rate, + a = a, + b = b, + nn_method = nn_method, + n_trees = n_trees, + search_k = search_k, + method = method, + approx_pow = approx_pow, + n_threads = n_threads, + n_sgd_threads = n_sgd_threads, + grain_size = grain_size, + y = y, + target_n_neighbors = target_n_neighbors, + target_weight = target_weight, + target_metric = target_metric, + pca = pca, + pca_center = pca_center, + pca_method = pca_method, + pcg_rand = pcg_rand, + fast_sgd = fast_sgd, + ret_model = ret_model || "model" %in% ret_extra, + ret_nn = ret_nn || "nn" %in% ret_extra, + ret_fgraph = "fgraph" %in% ret_extra, + ret_sigma = "sigma" %in% ret_extra, + ret_localr = "localr" %in% ret_extra, + batch = batch, + opt_args = opt_args, + epoch_callback = epoch_callback, + binary_edge_weights = binary_edge_weights, + tmpdir = tempdir(), + verbose = verbose, + dens_scale = dens_scale, + seed = seed, + nn_args = nn_args, + sparse_X_is_distance_matrix = FALSE + ) } - uwot( - X = X, n_neighbors = n_neighbors, n_components = n_components, - metric = metric, n_epochs = n_epochs, alpha = learning_rate, scale = scale, - init = init, init_sdev = init_sdev, - spread = spread, min_dist = min_dist, - set_op_mix_ratio = set_op_mix_ratio, - local_connectivity = local_connectivity, bandwidth = bandwidth, - gamma = repulsion_strength, negative_sample_rate = negative_sample_rate, - a = a, b = b, nn_method = nn_method, n_trees = n_trees, - search_k = search_k, - method = method, approx_pow = approx_pow, - n_threads = n_threads, n_sgd_threads = n_sgd_threads, - grain_size = grain_size, - y = y, target_n_neighbors = target_n_neighbors, - target_weight = target_weight, target_metric = target_metric, - pca = pca, pca_center = pca_center, pca_method = pca_method, - pcg_rand = pcg_rand, - fast_sgd = fast_sgd, - ret_model = ret_model || "model" %in% ret_extra, - ret_nn = ret_nn || "nn" %in% ret_extra, - ret_fgraph = "fgraph" %in% ret_extra, - ret_sigma = "sigma" %in% ret_extra, - ret_localr = "localr" %in% ret_extra, - batch = batch, - opt_args = opt_args, - epoch_callback = epoch_callback, - binary_edge_weights = binary_edge_weights, - tmpdir = tempdir(), - verbose = verbose, - dens_scale = dens_scale, - seed = seed, - nn_args = nn_args, - sparse_X_is_distance_matrix = FALSE - ) -} From b43f4d6332dc7bacc90b4acf775815cfeb742f4a Mon Sep 17 00:00:00 2001 From: James Melville Date: Sat, 13 Apr 2024 19:34:47 -0700 Subject: [PATCH 18/20] make batch = TRUE default for umap2 --- R/umap2.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/R/umap2.R b/R/umap2.R index 2f18ff74..2935eb45 100644 --- a/R/umap2.R +++ b/R/umap2.R @@ -704,7 +704,7 @@ umap2 <- grain_size = 1, tmpdir = tempdir(), verbose = getOption("verbose", TRUE), - batch = FALSE, + batch = TRUE, opt_args = NULL, epoch_callback = NULL, pca_method = NULL, From f03e9206d3b1ab82c353f2d43ddfe407fea06063 Mon Sep 17 00:00:00 2001 From: James Melville Date: Sat, 13 Apr 2024 19:35:44 -0700 Subject: [PATCH 19/20] add article on umap2 --- _pkgdown.yml | 1 + vignettes/articles/img/umap2/umap.png | Bin 0 -> 60809 bytes vignettes/articles/img/umap2/umap2.png | Bin 0 -> 98111 bytes vignettes/articles/img/umap2/umap2_md001.png | Bin 0 -> 73203 bytes vignettes/articles/umap2.Rmd | 157 +++++++++++++++++++ 5 files changed, 158 insertions(+) create mode 100644 vignettes/articles/img/umap2/umap.png create mode 100644 vignettes/articles/img/umap2/umap2.png create mode 100644 vignettes/articles/img/umap2/umap2_md001.png create mode 100644 vignettes/articles/umap2.Rmd diff --git a/_pkgdown.yml b/_pkgdown.yml index 2d2d19e6..83c17ec4 100644 --- a/_pkgdown.yml +++ b/_pkgdown.yml @@ -28,6 +28,7 @@ articles: - title: Articles desc: More details on some of what `uwot` can do. contents: + - articles/umap2 - articles/mixed-data-types - articles/fast-sgd - articles/init diff --git a/vignettes/articles/img/umap2/umap.png b/vignettes/articles/img/umap2/umap.png new file mode 100644 index 0000000000000000000000000000000000000000..a36eeb1f43e114c1d703930d6a7a8304804caf18 GIT binary patch literal 60809 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 HNyz^I0&p)G literal 0 HcmV?d00001 diff --git a/vignettes/articles/img/umap2/umap2.png b/vignettes/articles/img/umap2/umap2.png new file mode 100644 index 0000000000000000000000000000000000000000..fc41d9b0871468238a9ed08e86d0de20f9556e50 GIT binary patch literal 98111 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࿑h(k5NmMUQ4a>b(PLmT^j^;}! zdkQ~u`Nw?yQe;vA2C%nELq7ktZlz9h18xE({Cm55Cl3ugWofiy4!WGRmEND-G(j3Y z`h4fbD!7+dxu-RE3+Pg;ObC2+^t_xx6`wVVI0kkeA!X0WKWs#ja-zbJ>6eJ*;(r_yfyBZqjfw@ zW}2y2$<(#>F=fzEq{0WJ^Ouh7Z?x*}YX&;ry?$Apf#zt%6fu+>MJMCUI3r5$*;_ zV(6)vxWXcm$Y!CzJpathVGwPpC#=Dp$p9V3k9Y(Yg`l9^^U%(NK^Vm|e?o}&hl1~$ju^L zrpydRYiCB~ilx1V2M0hqv|Om<61l1ZcdzsrF#|_WIZqA2ukR6w%g-{gT8hV`ks*UI zMo3N>sSmi}e|sHO=?X&E5a0b4Cf7-a7fA+`cqa}5UjVaexZEO8pouQVmk>dBQp#Q{P5 z;poJ13n$3IM_7as^uy4>ED(<13d6uhjW%G~&qy&1ma*@^0af(H|NNn&X!cR$wqYyl z1`$98QuiaHkmW>Ee=1vbz)x3*@p#ikhuVFXY7MubJUVnQR2g)gw{`=BJBa7Up8&#? z%kr-#L_yLP{Z=p`07A%rc^;nkgQeTkM~18lsJrpOtTi!2cliscgVxtaJ4bcoYIanH zJH3v+dM3jF>`mlAqBe zF-=q+)HB{SX4Yo3GmqVPj_WfPh};3coa*o9+jscbeiaa>=sNWez642kq1iV(vk|95 zZ#Fuj$RLnWqW!X~2Q5q~TL4XN8B6#?BE0DHyMIRQK3eZH(z4k#a~Rta^!^tcZIGfc zLn%PFCvW+_rQZv8txX9AnA%l*?&MuN&h%*3#Luw5Qkwl5j z+`%`Ob3P^w1_CfPluD#ZOX;xxHT%z$2(XCy0j&|iJgaz|TLlLIi$X5+O2T+yAuS{w zLJ*O-DvZ&=(1=Lkw^#lqYst{^#nZ6l3yrsZf0Vdx=7!I@07-IJAYX3x2Q1H%5lZID zq0SI(uXVH`dkF$q@;IMn%*$wXN!q9QUX8u1Bwj09js`Le-=Y!J_kv9{4+u$M`kmYv z`8?&=t?Sr2(uNz~XCp|hsAX_$d2G()#APXdHX7DGna0F9p)WDvI>G-CjgpO`6@fAr zg%^F`M#P{fpR`e+x#e!iMF2$b%F4tW58uf!&5mmXA90ZF4EQV3cd!H$LBO-63ItCXlJN$ zHjQ58S?|bkpdkxay8l4!91ZUDekW-lWkB+UHgNj&%!}m}&Ha&5i1r*oM#|yNfy5Az zP^VT;HfYSm5JsJc(ghjB1`KjNih)x?OHwa_1Io}pbYXBpB(NOAbTA}9N%zBoQD7y) zut*f3foq%rZ87;VRf*7r0E{HyFJJ{%3|pd^?%#Q-hsrsp%fPE=B79j!6IV-X$*M~o zo6A)e7eOV4Wk)2HS+nM>J!vLQ78eDVQDw97FR93ksHoIsDafiyJvn`9D3^P&{~ohA zba46*#`!|r)kvEWVYDbqQY3G*vG4P)`!rZM1Qb zCq@+$Pe!4Hlb}hE#)QFmS1CI8{|?cVEr==}FmupR7f)^)h%v2O#6R>GZ6SW(XND1- zGh9gpE&ZFyiCAb=4;potG}d>)C2ux)nw-`Dm=?i#0@X`>qL;VkdJ=%C z9f$Ok7>GMyu;FFr`6=pPBxi6J7ciUa_IbiL!U>|rD>{|*aIIzc+a@QuA&D8$E z$Hhk*1xd^#hQUI5pa_nT3il6yH6KKSA@!pK#}-~7VFtM?YK?&3_BxYKEU4BFF8I(k zJa_A_g;lw_!mkKLg-{23kG51qaCMc3M+Ry6b^6x)%`ln7h3>v8TIDBi$I&} zVk>@i*Uh6B*auJk0`7Z$Zx8hK)cObVhdZHe??&ihcTA!yV92#PVa>V6LFh~^W%FF0 z#v*alWw}}F7x(2;hJB!%mMozio-R+uCXw^jy&j9Hv?&d9*$3#YflLa_!q7ZjyI@r^ zJefmAD>qSvtRW?h0fP;@lEuG z&Q_rqvDrNAB6^!H-N`abg8s^CvJ`0zo}5)G{Qj($V@g>evS@brPu&Ys>_&Ur^hm|( z?@^D_82KM-PJqU34gEz3-WBd?qOiIVh8)%qa0-1QOkFF%wLZrFtfKOw@JGYBU~O0&)^7DJK5*-Td*o z@w~)3$tCh3tfaX*4nVtT?MWi2&h-ddvGfuxWe}zYnF2>NtQcNFR7k$ZWL`X1wrDDu zY+hp8_PLMwE8xAy-at-`>lcrXV{#ERO=Nf{77L_TWJ1Eph}CGTccp zs=sjQ>d0w@UnY(vVQQPEdXjn34(Z4c{hK^`uvXD)iGKDjnkB9H6q*BZ0sf*}Ap_dd* zz)YSZ?_SD{3XKm^cucnjlhIqU-;9BG*Mo%Z`;hH-z}X{jO|OFddqafO%yMV(V(h{J zK-nTwb^f@+G87C^8OeDNkO)#(Jb+L{l9^sK5Odv7i?|Bb0%|=_5vOFyB3cv;x7CxM zVk|xN&hZ>Y<>?P?>^}NceC*$TTDxV80*F&a2C;#m7v&SqE6V;skEvqewJx4eh~me5 zlZr&qt7T~L-RxA`|KiF-BlnP{Q5z|UW>H)+6Zw6+C-fCQN9c8quaZ_v$F(WfP7$7v zCrHRrR-)jxhZ3cGe}Wp+>yW*T1b=)qG;@ye!?vU6BT{CZq%Ia3wVmIIfzUz&m|6MllCLAqF)_5OQ$WtQGmNL`x;*AXgSXBG(K?cUB%!0n-D~ z1jqoOAW?is44WFRf8p$7 z*ikLs8?*U*I9KU!cC`)A`#zoz(tWQLY(7Rv(*Vp$v@>%!Bx5Ws=;1@wzRs#W84X&i z9;ekIg7(@~kCXjR3E}M5E`CsG9P;BY<6T1454XNKI@u+%#pPW>(6?`P^(M)e-D&G- zN&O7C^S2_~_n0$`{S8n_L6<3Z!sI#8$iCO6gM_Lep9~>J5&3znzRN${G19gfd-;tq zLl01(QO9E{RbvA(qK>7v-vhNHF4E+ABmTsY`%t~irk;_G?ojOq-0DaAtLvvw0&7mH zDV&cJ%%&;Q{;Oo-&AGJ6%c@V>G`{vV|5VnT2)CXu>h>Nsg+8XK2p-Xv&THFy*qjK| zKb{iT|J~Zd@r2l5l!d{I8k{Fb`y*0v>oS zk<+78a5y+G>Xg|cCEShJ0I-GlUBY?DpU}m!OSF<_`(<)NnN`AMVc_BwmgGOB7<8DS zOjziOsn5ppl2X!YO0d-fuW;*W|KiI)OeMC;gvthjW84_)VOAXZjR=idF{ z0MCB5xS?-PtycLnb2EtNTaCRV?+UhOl?w$Qd}ibC!^(<++tazi)t+WO{}zCpKcW4q z33EUqnUVm5BH1!7tF9MZ9F#iwhXRc>sfAw>zl4_59}?(ZX526p;^-!N9FwC+6fgt<27rN-HfnB>wqZLjeldSP%< zoK=5i6e{=@ZgiAKWCf%+(1D*kJ=X)V^Y8#j0Z0tztzS9*=IVaS!_}A-(3mnTrc7nH z(a2X}hJ@-2GG{f8*5TWaLa)t0K>22#mJbt4=#HZzx7`V(Ro4`GuJ7FD?83K)f0ftT z=2gHhERW8V4&X+Gl}u8!?^vWG2q%#P#EY5>{QSO!-VYpa>~Gk9cw9jwT)jUoY|{WQ zY5`oZyG)Mwb~RN~>lTt*+Kkj->(&6y)^~2W3>^Wnx53ntS- zdnhshIttxxC_XoiK!Em4$<|bL^;`kbGM-4g6>w$7PT$^@1PBt8$G&%O>&%zsOw}r! zTeA#mMva{dwk&Ksw^f^3cEM7tHxTI*QBPkbBxJFRBeA(1qMI;l{ss`|YYLez5o&|(Rq^1|rZH-n(#MHlJ-qSA zdtHzD?*MET+37fzJoO$b`2_xei&-uxM+TeVn(@C0tx=xN+PzvSz!gVWT303Jbv7^L`ddy_%9tKL!xx}U zxAV32w5ncT@h+&>QAmT4Cr8BWZ`egL%9*JP0OVuD&h>~3ya@6Lfe>sn0fj?Vr@WmDg#b%>Ru#J= z{rSkpwv`}^Fx^o_(er9G3R16Qf4>gia{E2h^Q*tz99A9x`D;7iV&w(v#+`4WDEAU2 zWw>1QZGMU?Pzjk_RyAP$r#J;X&S@RNii8;9OroZ4xuJXiL8Ic9?om;W+*SXQ4^Nan z2rBV-G3ton08~oLQgbje0klLi_ij2sh7vb3aFqKLq`n@c;HJgqSR zT8hM5g}hAN>0paVzsA5oE=_9L-lt(D3By)iiFs=w*1OFx z9yEW8>)72#T%*UZfay(kGndCxbEd@Tb4bWz%fQUY@_X)+{`q5eQrFW$fm1Cn4Y(iR zXubYx(edUE>_{r?sFrJ2P6cOjBA@hCvMu-geAOtthzdG|I)%6egJlTR&g4+&#~~Mf z=fzts^AD(N0sx~Oh-n;h)FF5FSv1RK(s;Hi=)SD$krRtx)S-0g2KiCn!b?86s#*a! zv(DT4%%hOYCnSO2L@H7bs)=NCW4URF3j z)V?^NFxGMG0)ZYkHXHIsDDLVsAFsjWJPpuWp);;X6w8tNiwqG`8|3}jQ_V{o4E?~Zoh!%|2_f+S;j@`)bpB9(R4qsKt0T z?8swM;I)9BmWa7T+?WeBbPBPw=Yf`)(6Az1Z67@zs<{s50e9SCR5%zhcu7fX13jLg zD9cHcID&&brQ~jIbFQsv)X|Jsn^t?TgN*thFfy{-_!7tra4;Z>=}NQis6Gn!8XY?W zs#gL-Q-J;*nhe!G`R>nkA|b)_7k}WJERz+?tc-CW10k`9V`w=1SSGT;1fTqwhbwWZT2amea8?4Tm^zTT7I>^rl53VJgY2{4!>pz0{0)UntY=PpvyhrelfWlkavGa;XcjI7)DElGC{Yk1 z=n}GIXXF`j1kB5>ySa3yN<0B%F&(5<>e-K>hP96|)Jf)jm~alFKS-<8IT_lsTY}`* z&-E?+3K#9?3_U+jw%YAJ_O&1957+Xxphh`QH9U=uEh;P6cNIWx7 zAe>O?I8Dmhslv(oyMi*=D~Ko3Gfn zenmc?o<6Z{{jGI~2@~gMmyF5!D{JXvdiWs$80-JHv2Yma={rV*nBM=9`A@9xW#;+i z0qUUl9gyxpm*7(~Bnkzfh#`ZCS#i1BViBV6NcV$@3@FQh@n`%s}FrpBF}-ynyzd zR=X`-LAb)^ru?iLuRKF5i#(w>uXZzuI2$q>mEusJP!|>0FY$YuUVyE(FjCOimQ2gmJ?CmjIwvWk9(RG((iD8EFl4DgU*RMX!A8c0F_2@*M z-TA?KQ`l-hOA}Q#rm@vzIJG!Aa^U;Bq{wv!m5%?VF`&bYQU|GVAXP=N2h;C&q}xr7 z+jN+ksgM3eH@plUa{-XVX`@q%4`+sG2C;^t{YG9uAb}$WwbYolu?C-);6|auz-Q~Y zNs0>-g^dW441&N@51}3AxL$f$YpxKtTEoN+Bqqj`_?BmzWAVMU-^@N z$be3&DeoG>g) z$`We3xv`OTaXGY8=d_wE(BFQ^9_x}Z8Ud{MzIgfmw6Syx)ekSeC2n|KH z5gjzy=nMw7RN~iC`=fiAa2R=^sAo#(o@~Nd9x5!l8!n@ErYhi4zGzLn1R8sf5*Z9# zCkl5c3qAkBcw#IpuI1r(-t?#NqNK%1wA77$&tm;*=hd(Zdg+Y9#C$#D(^^%C*~Ny7 zityim<~9Ml^}VA8>EnPVS*BJ-p|LaMK-gg}$Mj5M#e-rc;3&k0anHhqu$`ZXZjp7q9y9CetVUHu&5M zB&xV)HeLQVxTv2(2P#~6@W zw4#Db{1vpeed7~RMZ$Qh)a%X(6GYV6HN~GbBqsSHNw%Fan1`N!0}{k|&?JD|UYS`` zb^xKjO;w)$qm^pR8`^)Fa*O}}W&ujfFyQO3WyHk`fsflJhyVHbYqwGt1^+gIwL2Ki$A1Y{WPF25x zu@QX}eg9o;4gY>I`g|@X*C6B>F{p3VfD}KDOY)QZyxl&+Bzd%i6Q%lQov)X%k zYxf&laMLj>fi`w7XGBe*O=RDU4L+>ec=$6X@OZxT&GoF~*=5D`kPqW^vfqV@-fxzt82^ z_Zg%8BbAG`T#sSaPCghaFhm8Z5C7_62mL_Nla5Xv`(!M98~lWrP8iW|SdMHl zx&Z>Md~}v_iBAxA8xfs!E6Br>mUJSKaG>zRK$5`Wh~OR4!0S&PD;04Lqm5Yn`r;*# zeVc#{c?n_!70xl!^jAQZ#JY6h85}pfhE7?h&}B4Bh28sJGcrjB-q9q35_}wE(j#Uo+tTm#W@PL@d$Y1PlWCY|oxGdg`2&_PFO!R}R(eTkV{Sy1JA;K%I!K zrp~EjOylYkaB@?(`pp_0doDVQ|d6@sB9p&qZN z?;-BPe+;52kIN!NIl2USa@WBgL^&Am%p1N&V9%zH z3m7ON-7_~XLYJEliUm89VJJaT2q7}~*ghHS1+6lF4NA9gX+*h{0W0n8ffb&zNU5$J z!6>H9TS4%{a_qL#xbR^K+}8?>)_Hn@!vf->s=26F-F3zI;ZP+bu5r29*1V(cmNl(D zvf=o&%IVguR!si5T2=qi{ms_xWP7r`F+1tw=uzeI7dL3}W1Fy!J34T|D`Vls_a`-f z>Q5*{wfYM7Kwy&|Si<@nKa0s}O^)zB2j#zDMwW!dTeZ(NF521+9R9m2Y8IYosn!ha zs}o+#rV8oUeG=znGnk+7t=0l1Vj{SNAUpZ*SJ<6fsaF&LI`kzn|DX&;HK8rMIyh-2 zutnPxL<3P|B^m|+h`X(EnVo zW-CV0ciff-nrKb}^mmry*e|~d`)26ZA2C&yE0qFj-qx5R^ZQ-Ciue9Ti=S&1x|?|4zB&0l{e6A{ z1-9(>rR`JWudqG~jV1|qvh-Si11`A=WOL#^uI2rEie;h=-)IGez||A(iq42Y`> zmPAAF1eXB8-5ml1cX#)}-JJvr9^Bn!@WBTO?(XjH?mOSUefwwr&b{|^cXidNa~g&p zGWIXgQAt!tj60Avf7mz#ibq_M5DvX;NgDoy_?dLyZS&aigl=llrG2hOuW5!GktL zZL#y9RF{v&nNn8W`&vC?!%zk3e)JdmCo(6ITE>u5G6DQ3Jv_%@RTfdvcm?9M8aqyA z>L=_64+k(p8O9zgMadch37HNXrFbG{B_GwrALOz30UMrI`M1k^lN>TPE~|HtZ-FEVWnYnyQ+_*N z(Qm0d4;sHdxU)oseHl5~_Hy=N2iBdoHi_=vr5L&46=1QIHtg9&j9lWrsFybw>}I2dB@*kd!uINr?af*PryBK zDAN*>csGa;oCV;g6}@^%R`;t3?b+~od;A&-3FPVHwM(s+?BwE&CJL7Ti&-%`cbz$rry~7YhA}$bxbY#*vH_{kkQ=KhvPb8lWSZwG|O9C@CX`SAc)C zruLmpfd>(>Ms=<VYe@0@Q4<%ttr{gb*_h)JL6 zn&2OqdaT?U(N)K^epY%-Uu=y@H4bZJD~|y8>?=#{jzcGRb8_jH*2ebtmliq0B&qml#_cI6{76E%uZ%OZBs6F? z{6lKg(PrltXeFvs48jP_$G-;#F<5fPYB73Zz9SmNDdp9WS9&Rl`!+(!uUhGxiVb3_ z(d=^+B2olG=n?@IW+Eb&s@%uIiwgsNxO;0E1G2i$ZtZ18ddW}El zf|_Bzv#Y25@R9gi$nv?;+V5mIdVh@4rw#wP5@Mj$k1a(CyuY@-rVd>t40UER8_f8T z)FbpwJmkDrM1kOVga4=LcNiN4+aUz#BsJ@=aIA7FnO{fAoi{4$y%7w83C9%>YG~n! zVkmL_gI9>>@fy3dP)ZwsFo*2xY07!wivXowKZLnDGNU<3`o%MHPa#^fePGdjg`rn5 z*tIQXTrwRe%sAd%JvF0mR#1ng0ar7f8wcd;emYzGemp#HlM-G&%cP%Rh7Z|%1&n8L z(wm<@kq@9D$D7SH{wMEqq@G26F~3Ftgc50- zQ$Cc{pV<2!S9J~|jJ~1u6f<{4=0ot%(oD5EepF z7`#RemFItN4f-``p1UvB!Cb{c1CygUNEU>dcb<>@Si|l{n>_oyhYX3g_h*WIPY8KY zH+x=+2U+*VM<`}XVcDrpPSV2z$y#emCARZO!28+r9H9&sFoxh*s_O658eql7!)MN0 z4}U^V{dt7`>p{>NzynO+Z12$Y&r_LxA6`5L%EIWOkzl>67$y@)b#k}E@~we?PFAyB zVIz}9c9cZzBxEN{d&Bwp%@KCgtqC`|csvVR@_JgT8@Ao&<&*z`DFe=fbHlY@Qo_fr zr~_BV!$-jRyW#Fzr%3xnjRzRL-g`S#H36I4W?eXdy~ zq~5T8hr*amrfTes~AowgN-U=j&DWzVfMC zb#&m}A{<>gPt%y64z5B1z89}{AQ;cME94hZTgSrbU@IUwBCSk@IqTeE{@?e*>PqBz zxSwQ&_tSm<#LTVVCtsQiJbJ>mZ?3ypUENXfuiYU}CV~j{`nmiw5)EWZ7%rn0#4;1{ zSsreZu9BtNrq9E7T{L9d7IIDaKzj#f8iE`(^S9B>)X+>g`e0gN>^O4%J|;vDQ63Tz zf8X}~!>gXV3T~*>BLH$)c3L%_&=0IwjHuo>pLw$(+0~tg^89){<|27Y;G$ z2_xDL{^kFNbCS`huLl!9k(QXv|MA%;5WY!?=g;WI-~J0m?#MJU&SMR`5j(fwA?YGD zoSUQT@Pf*FxfMr{f1zKG! zY$p^JYNC;)Vp|U|p+(L3QVd9TbK36^-V zqj`9pw8$;zWgnyXB7VgO7L$dOu4_vFdO$`BL8SvgNzB_ab9INKv6923VsyzZo6lYA zM$@W0x1*kE!(k(zbhcA3Ow$@=#I$ZT1lu5V*!H4G?}K7pLw4Q!LO>NF%s|#9p=E`f zjs92PXOqXTbR4OniJX_35HslYk7Qq^@34m$P!I~R71(zub{H}UC5fU&Ljb+{SpW?R z9p6Vx0nO&{%r}7nh0MpC^XA_JmHvu>t~E?NgKWBWVIr4F$y4)cKRHroCqtasBE2v>ntjHHjOuL&cKoAVi{@i+uXGdOGZ3 zfMt#WpXuX|ttV_e7if%QQ`IW+H)RCGNK9~&Yiq|kY?g|Q-ui=_c1 z&}cL%7+RaRawn$ti~>K`KnC5^TS2iDsj`(Pa9?1h8wHYV8Dr)!ZkEREd{Q7dbmX{~ z${SiMU+kf+y?{sv23{j&Ay4g2P?DULWr;uR634aM5=xBe<&iT=x0J%;=GXA@y zbiXkwI{u+!yUE?7ogKZr7mD`JbfYy%oK)qh{lyZPu6o8~i4eoAKn(2h zc;u_s79@L*IMAmkN|6K17Z{2^* zpQPZ!>^uk_s?52p$pF-pfjl8-p)ssO`tW^l=w*yM=Pihvn#KS5=n;%IK`=bTf7$7a z=FtA`Q@2kM{2a zAO7xmF_HWDzwJZwcYBad)m9%Y&2cvsw$JJWfEe~Gt@SCyMl8zm*jKdciO#*JK;n!! zsNXc_L1so|%87sB-3$6`!z|0)Oj*;2(F4;zDJKep^RRE$=7;qO;kzC_?lk%6PbA8^ zY$eBvS0d@lWVFZ3z8o2` z^8(RqW5IXF#*74#7fTCsMvP4m|Fe|xSaDK=mHNr3I{`ON6AUB(<3-?=IR+#~sAH`| zR_#gp!xC;jPWy#ocS?TkF$>+VXX*DSy{@<%B+fVelS4=b`wV1;TYm$Lf0K*Z`KQr6$mMs2W2FMDaPdRb_;A+H3F>#1k_pS_pWBp1$ff*FW4;t zKAJE{7Jjvu9(?QybqrX(PV#yAoHN*5JxKhiAgAAW^1o6?1~^$}p?LA1NA$L!Ks&s;J<$R~Q?`J9>)U%B0VJyC00x?==jr>}8Sp6Hb8(V5Au*NfmhuK5q9 zR@&$=sd_z91m58qLb?}klXW{c2kB^ z1{(QbZrwLjo2Yh8{=~m-x>Q4Br_288v?BV&qK>!un|i1@I)aCf9m$UvKge)6a+l?k zkF5{Fx50_o>UATqAUfnQTsS1@N&wS4777$|7i)dk;lry=_4PAH;kDCKEf8g3EJId0 z#|wgbw%jcfQZl%R&|i4Y`?qENBOh?w8Hn@CyjeS6&v4_}9t%%!p@4s9oYV9LBhl$| z-cM_DJ~ld@ib{mCdX@d}nnG(69zvGM{NFpfx!+OC7rx4*rVjMJ+E-f*zR6d3h-T0p zcd~~Z@In10eKh1&PL3lF>|CjM>9XqB79L+LbUx@yY1}Ba3DNWR{;hp~C@LueZQ7dE)52g38h7;@8GTUD5dc_G*xFG0Q^ z3|&I2PeQ9Ade9MYqPr2T_1)@tvCPz{qjkYTAasD_Sj*!2AIKbI-zC(|6Lq-v~U#4FfqyI9k>2rb46gIx^!QNw|o{Bob} z)1B>gTl)^V>&2H}Kmgk4X@&V4K?cqJi$8FUijoG zAzPDbG2m#gQba_`*@WBCt|w|aMGyW+OkFb8uz95=Qa0O;v5&MB2956pSUsEm*&R444DYUWk;N`R%u>nBY2Hhs^wgffk_voumn?%mJC!ylW2@3<~1r&8R z{wk_kr&h|&ORy4eDECWFz^~D!^QV?6ou6yYsum*M1_#^O|0v2YMDFS2;psPm z4Ea=1h1TOKI0$HSCMwM`qC*dFk`t^7R*pK&B`-SG6#cdp)9*rMDwF}!5FP2K2UtrX z6u=2E1?zpSf3l{saOIah8M@rU9N*0Cx3%RWAgG^W`;p5^;M>*&%*rmUps5Z}l&DBnzB+y_`&du!WW;rdT##M(0*T80G zHTMs}_D$DwE@R%Zrgc2!@Hs{3k<~Q>u)Veh~bu6VvR&RX&5%TCZN9e+9sOD;d1XTf4nOYffxTccNof-csB@Efy~9#4D9{ zySbG#Y!_l|H(RAkcHG(nO)L2&I7mp{`Ih$UP2}!?a=b`Q4BDI z;3DY2_LjL$?&ay@1ZxVc87bxJ!X;-*P5c6FsoDB!R-9B7&#amkG;L+YFi<;)u#HY5I*2MYyH{C*W3D5%{;`+srE5qb zw&2!ymqohT;oh?NL^#K+U8G=(?`MhoTJ!ntn$_mfjZG{oq=P`MT&-0#+A=3Yx2Glr zYE|mjW^?LAxg*Irsuo5tq>4Gf3yL3l+ujXi|ABP1RlF#KQcPLl&1GDTWNf;%#fwCkt?A@4UlUdzR93GUC5FK3n=7eQYVCwL@JrD7yJF_pd)_1U_k znA55#G(TSIh^W!~aF6om|9SyxPl-|Q&sP|ID7ew;GTYHeUMb>k_$p#A;iZ+PY>i1I zwDB6XF5gy?*QBJ=v=#9zq%W8w$V#|6m{V={0?VWF+hu=l5eM=lsGPCz) z^1tzkR?)t2ZlEYLU_b;Uc=&P%;;WRyUp$tUjesw2<7_#Mk8YZr#Y1vcY#PduRevi~ z+%>}i8(mavHe+CA!(yw!9AzGhy?S}dWd!h$@bPZ4qlJX@kP^tO#vVxv7%fq>TsgO+ ziVGMBj@;p(8qf+B^HjnY2!>1^;SnW zC$>1>1>L3u7r8wj&dxL{np@9_NQhc4{2=9f(i(*0!qq-4-P+!>w4Ci3o&4H>TTKgD z0l}fA#qFaA76I&M70dmnacp!_o5$yA=cbR9FpaxmkY?A$b*wzhk0hD+g5qW7BKMrxfVHU^ z>P}}xLrIv-Zu{@Yl{h}R3y1FZx1VfT94he_RF%zmpUMgsIF7LQ4Y?vH?=FET9bvm< z;|5XgGWar9frH!D6XR-Z|JY-l_oW%YYXt$dHF{E6KFKk$7}*qrqP!jQ_L#IT^%yzn z=N)bq8)rThX_@QBvIM7n5^V-miI`>HEh-ac!*rnHkpe6@;SwOgSw$UE_wLHIMzGVP zLsRMhEWN%ypb-jG0f6=-r|7G-oyuk9v&TA(g|nZJmik6l&`}`!Y?sYNpG!Vu4hR)14(l=A_W6R;^kk#gG08@xJNh2wsNT^_mW#G@Oa?5i z-|l}2CTW-+J2zQJH+EZIy3wi+CsRnzl~c?g_pzP1m!w5NY6vEYivz08i%+2r<1OeS zV#yb%REgc&C`OqCU8plAAh_HX5ZiA_L#?uO8Bs~8nerrwM&q9umfc#%KUnsdGkop? zJ1BA;ClWi1up<{(CBohErU z)I+IapL_FqEe3cN&OJ7YF67((c1f?8?JaecHYFS6&rGPT;7>R7nLvO*K!v}|4zDjh z1j7V)MquJcwDI|O=p`Jc;&ca?5)sw9Q1kCGocq_vuw@ZVQP)f_jDl#t2Zvh|GqWmu ze&BGpZ)6)!{oXc(gOwP(XCpJuuT# z+LTL!y@g~=a&-S@q(Y*4#0vD;J4>YKHpXF$iHRP*8~>Z@Cxn!2A?BIS1 zosILD=W(9TM1cKy#DK+6cNMpZBQ^a2tItVLTTv}Pep^CS{`|!kn6}BZC3oE41Z6S% zd%1MS*s=}jp9yfbf%TFM0BU{FML#*Befj_y&mdjNkwHCCcbz2r==`cFYip;X2mtWC zAT(-x)9Cu&DRRIaIt0ZN$f5Z}RANf_k|^JG-Di=+v(}a&ZOb~rDaT`ZA)8L*(xF=t zW|=da-L2Q$C-A)GArA-J!k;He!JEaPfY-~Urk@Gmgq&dnA!*Ne)s0^3;~X#IpA688 zev5v3Kl-0xbTB~}$Hk?VM$XoewCz2Gu7}I--okMx^$&vi>=Y?`*ZqX>UJPTP?^)=5 zBAib4Q_B|)krB3a&1{_1Qk+?1)A(jEYBNhRbOqC;eZJ5&_b)di%0)VpsnJhKmSC+< zncdxe7P0e@=4BeHG)a4AIu`XDHg^DUt@Ab|Xebw?o%DNn`5*<|Ri8ck`66f2#YGeE z0LJWMHySZ20mbDCFKhPs)#@5?)eq&g>ztghz#vb93|wr8XjMR3$R|Pg@jl+SVn1Y! zTByl$L*Y)+c0ozBmnO;k#F_oZzoZ)1f_M}&n#>R*va+81v!JYG#;Hiqp+;>+TezCg ze}c5D*6O?CfPdCpe!WiUhDTVxEyqjyPp}r(OIu-iDJ!8HS7g8KtTtm$1}tCMdYR}E6ZHS*JiRLkQZ$Wt%I&{&Q_&Y|LA_M@+npSqB}D25ox;8Hr5Ru&E7`%!0fV2 zK!A0?yVgptkR4cY(UFXGFFD4E=Fb?N7)w>-{HC$@4u%c#*XO{{R-mD>fMi}cXfcg; z7~An2bI0XWN=ahWwbf zK5&7b3-xty$1BW5xb}vv{wl?g^kcS(c;%yORrlnMd1NT#@|V!&D{}cL0Tp4JklKuO zR3Fxr_;cfQJ$;U6e{z5XIV}s`_3su9M*Ir+ouz+Vw8Gq{FXF`tb4-Fjq@2B=oL<~r z*?>QDk<86g72c9;Q|Y&KKh}_VH$Csd73FQRsP0la*Xh&?%W2drKE=uk2^3i;vm7Fq z6+PFVyq_BgS0gjFPikQY&W31b%}v)kG%e>cQ_mzN&1rzOnUe{Utf_^V=d8zCDfW>* zMfYvF&k%Cxq(@#}GN z4OEKG-i9w4+6q-nL=M$b0NH%1WV-mO+!I#L`N%_pB1;^W=5K!}p_6=USbQJh?EUIh z2%jc>6#dRGdLb0#5l$(pPdBznk3wnoe4od+kd%I(40lY;@mT=K~kD6aN4lhiM5H!%Yr1uqPzOd@h(E#<| z6iP@6q8;80Q@ZFUrboZy=Uq37+UcZH~37Oo1A9HBZ;$<>zNav>DF(%3sLhn;^Clq?UB zU3gwXCa5pduD~rgx$pK*($Uw`mc8d>;4A1etK7SeNLFDXh_bh6!w2pm(}AA5N&<9` zoCawVa(1J!_mBvM*KaIefD~K*ff_eyb4qKenho}`Tme=B9Al{FI8FAev(vemC~zm) z=f*Uwm&A)v)YRrohZP^%^ZC@aGOfm22@&c_oDSZkzOW$CMQD%Qyo&2%@!14ZI?}xW zwI%J!p0K-v*{@wCeMCvUjP*E+OSl@=`{ClKP?}GlNEP>hZa{$!N!;QG7t7=s3K|t` zv;?RylDh$?e%;t+_IS)&bkbUl08})w0rGj7^g(Zt2t_4+;#fHOFIlL~ciaryiwD<- zGHNdTvtKJUOw~Bqkh&}jRB{uIIfLg12fH=u!>9K7pLnL=0}oL&G}&tn81}F#NN1Mo z8V%I)^L^mTYhTO#-!tvj!e%D6;r8mz^+}Qx(G7K}bQ16@_N$-hxtVx9oKe%N%Ikis zIW(=Dx$77cAGNTw*DHUuNmIY`#+Yp8i0)%Ex@~SSDastSx?NT?W5h=^wKru=_py6x zIv*Dj5^V!|@IuHotghf|M_1c}o1n1VkU-@6pA*QX6#oer`-K|tAu2_zh^TSSF}6{z zZsiUcHZy{T6Ergem+)49dI5Of{wAVbpBeakH-2c^j^sgpQy^TqpyC?oZ3313DNm&0 z3YwP^rQoU{T%{Tr0-2{TAv8Obs0hk>*lA~Uvx$A!{W>g*8n>@Uzh6*FBAfcOcbE2u z37|^Y@C;DZiF^{g%=XUN_|cYHI+vd?!(r{+G*|DEavrc^8cDm*=_X^t_WW?({wDNR z^=;YPhZItl3Z|`W%w6fe38Zv9)3b_$kmV{vd7gOQ$4)y^*p23Q?p3&9vL*0!Ng^>V zQF{Tbyi(?gI>2&|sH1{iQ@m5Nh0jEg+#qc4%18~LFT@PfB*kSka5;tsuMZ&*zeVD{ zACo}hKwvV%d-vidu2iH*=2Pn_S6CAe2PHI0N66z;jvd1aq!SH5E^=n9>C+fZSHWM? z+;^U|=3?}FuOiar_7-N-jLPKqa`C^La6*7;7qvuvZH?Y8=i6z4qpYm{Ub-JXsum>~INl1MP@(-k$KVZa z)G4(29E2(@rqUlF{+9AyZ}R|l&KR`${cUHNrhP?XHrm^Ybanp76^ZrhNI4Sa{0?2% zqT1r*39<~hSi6Z%C+KN$eB;$TYc4*=XKGn!*5~lRjMOWG46^8$cn7N<>IGp0HqWi< z6;SiIv-5(WnTh0Di4R6I7cAA+5pMAuW)+~T^j*M-q6Jzo26B~7A8d0{Rkrapd0rRS zOUe1Y-x0btO;M7SD*0{%vytqGyFAc-!{{S_+yD_QM_YZ> zaqq7 zt87E!3jU(W3G~LT5vpB4|2rF^w?TSa{6hIdu3?Tev@qhA(~2DbquHzC0sj$)kG7`^ zqU7FmBD!OZhwQ5k*rsNQbrbx?QPdCy>Xg3wHm|Fd(ixFry8XLo1pkwPdppkH?tdKu z|In$zKoWH}V&kSYMh&&zc>%ZX{}O_!l}`>=hHJcLmtij9mu%0`nmM0zJ&$yqKkXe~ z4xD}52i-?P_kRR`c$PQ^O~?#VKg!I`=MPPy2@A*PT2I#HRPUH<<)_ulJ=W{zn@5Aqz8|%4y=e&A3ie7-1}W=SDWKis z>qQT)&gY{blGK**PlL|REvZ?v!!@NkyaQ@M2c3FYYUx)wGsOi^PKK_}2vxqX({fm# z7~4cox!JTtje3cKf%B4d>W-h3vEYm<(sJ>J{`*s>2pTwxQ zfLF0Xn|#hEi&xQPPR@TmPrRFOB@#NqKbiE~p<6yi0@|jiR@K@iqzvA+@362Tv5_K5 zV!Df8n9C7Ii??onHUUl`9}|59WCH-9_Qgu-64 zo-3IP=1sqj^V3BOou0!5#q(WQz)Jul`1&+P$b0+Y!N3C9|C8XOG!rp7C|jo^xAukM zhM832jh(79;EUnkxi7X3__)|-@!Nw!&^!*XlML2al!3m#RS1kOpRTNJre;I5*k&s@ z)&-V$xOjL>VwhP12t1$?Om}de+>J!olcFdMcJ~SyvnUVxz5c8`)VQPy8_BVH7y2>C z@B8w*b`TM$4&Kz6nK8ve$hPfsFJd4 zx0vW;qx65=67s(kvph#~aLfWH%q0~S^>n^Fh9dw$H@XWZgc}6f=1kQz zqn~fsM>AH63;)_qVXfS?laZA2%tVYH=zhGK-0Z=t*H@gOJ{7+*=J3(~C=pOelmW*F zm_~OxHC~lC?dT4!bPsYjPVTk-B1iA(uEorGT6hX0AqKq1P5glHLq)?a)T-)CG0lG{ zuge>P*I$Lcygm1z2Y^d%9zn0C8QC&LRehbACts3;HlG4GPNHPWs$vA}ZtmFHCI4hn zyZ;g;DbXl~-2KEwmsD;o9H(6qNJUa&fl@+JRHz_{zbd<-p}}nOp!u*?BJ_lMtlmwO zn+2GFo*t{i*S9M;|hkovuFy8#Ty&3wApd+vG%B|&!arewNY3V9cx?MMZh(W)Q7@hCWpzJ2VB_t_O{rl` zZd1Isw$c%+ZU3p5#kS8ud2PB*o?015A}QV5_jd5Bnss{*hgfkoIgxll&nX3d_i^8` z-BJFWj@%hOZl-^+;?Eh1@WdH0rcGp%yFuzu<|(V(c!P+(tP=y-6zasGe(sRpwDmc3 zbCmytLj}78_N}&pZ#>6|!t1{Pykev>;T(UfLfN6!vPO`RyA-g04E~Zg^fRhjBMvQr zybW>dwCyWrN&>j^qZhL?04TKUt?J52P#>XR@Owx>f^m#_e$>rQNQ6{eKf09XSXCq`5&Y zXI7Z?-+ssbW;gn%9)Rn;PDXKGg!*3SG9*UUc_NHtm%aXG)rFFH_%3=R=XnHO@b&Jn zhY!(;pl6xXJgDQN&geDHAkQloSH3+BhA}CvB+QWUA^UgMaDeC7|v4l0NP6m*LBbT$ukWIx2%>wZiU4P z;j7rH_`>iFCC~%;l^a&h=-YSCxH^N~Q}KcULI&_jLGh6(1-Y5&p0#bl~xZ&fEj~@fA5^ARlXQfI+7Pj2{ z@92WMCGS2z;DW>94qdhn^~lJUYf&dVvw#cijGbF6kHxExIM?nh&IJsh&q`N#{WQ!Ac&KAEk`p zUPd6HCc!k;xKo}45V-)~IPQ|i6h0!1SEq#7{A}dM`V>azcB83Yd(cWx@GqzSWGytz zrOgmXvm-$K+BK>;+<(&HDIcf%vqSuTEuc)&&nPp&u*b6Jn3TPuA+`Z@H|4EiOsL1< z#c>pDV5|XMtNogh#v7xyvx<(#^jGn(p{BS+sV20BXv+C(b{Nm|L}H!Uf@PEEmL=1D z&E>`WAeQHWy8DO0iE2GV<=2%71I%Kc@Ptfaz@^4L`pjJ6Y6!QieUdt7y7V~zA~7`_ zintGeksU()NSdmeK;kliUkgY!?A=FeYa~vkUQ+AN4&~xE4nu|q_28=lB%c?)j|@$S z*(N{D$mMjM_Trj(&LcsJTSpf9hJfd_O%1KZ6{nkU1nn>{7s*cxlV?0k#jlIqj1Q4Z z=AiLl9=h@B&-xOi&c7bXJ|QazZKX`DlmS9|z1Ci>)_*y}V9_R*MSX!2oY)luxXaa! z0W{NC>?|s~^iLxb~+H!3|*)QJs)%X7kiTemG6Sc&&Stil@uO zmSzmT*`p8Vlab%llaCDPT5P<%j#aDT4oN_p)Tb0%9gU^x2UF7?{Jot^`rG1}zBQ$N zgND!?#RXA5+({&K`CrNOMLi!H*h`i>)@41I4sx@v(X=WBl1>wfy|o|D4OM6_yA|yh zO}K-FIxb1xM_;%F7Xmf6o(x`=IF1s_rP{EK*TVgFlhlSCO)t%E;-SuE*ohSPk78j;Cj;D7A03B?83{0^OIo%{Z`>Vi}0uXG!( z$01|WHLyZ861F5wRKO!2UM(IAMNgbVlM?6G2c4Yqa&duH8fAf2vOdb>o?v;rwyV%^ zEFQzax7U9JSKrrR`rNiZ-2z4lIM_$2q_Vdd827bT2Y@r9(-O&;_-XVIYex=Z7Jk># z$SI=#qgT1OjP~BK_*Rl2n3;(V?WSG#Qi+IJ&Q`7y*cSBqdf0)C*OV3BRP|;Y}@&k-412d|Mczd)! zST11>c4YYB18;js+gK`JitA2>ik?)wfl;lOu+X)x4 ze-WSL6Y*-Irx=z#P0##jlBmoGSkYdRjEiegQ44?^c5a>G(!-=nis&|Kp3jL7H#rfZ z{EISUtunriV)>>!XM$LgGxjo>F-1_O`8kKYbDhcD)qHBQ)Cz@4d_&{Z57hg6e%EM* zv4NtF^_#!5lLk}n)DEKK?%tk;y8eh|6qin-BLdqCUEFu2)9Bl z3QwhQ!bwmeU#{gR?N0|QTA;&G^e5Hqe~Awv&9rrCTOw_qKb>?9%bH5*JGvq}C{G-1 zlsGs7*|6awe!%lL62Drp2|VWPgi$&%lAF(nbO^77RQ#+JYmpj?03lDX1TkeAgp|nf zj@A)_wT;gg=Zn|8UK12I5>Hy99ij<0MAp$H)*o>URCj~^31O1F?iSh8kT>n1eV=Rb z3_e6@JI^~%7tK)chbOQ8DgPwfMz z#D=^(Y8y#e|84k5Q|rknNBs)^3+3w@Df0h%0R*q1&uLYsa+M3Xj4{5>m<2-lbr!q= zH#T<^PPLsac=&~xts@< zG?GwF1|u6BiB)e_@kfJUX4D%y+mqiZekKcAubRK#DSgRPH=F1?`Hd+=C!LVF(6BZ5 z0S!=yXCK&3*6@ zDjtMaCUlL`?7dY28-34<+D>L8lvM2fiKb2tDWkL`_4z1Qzr07ScKoYD0eKxnO(uIe zkmcTxBD-p?QSX<$!`|k>J_63KQ%tS{!D4AL8ScN$vRV;5lJ&Csy+jmm^rG%~aSS($ zVBm4b1M?>;SzfU8tJm$y7`?EGm-t)8S0Df1vaSxPf9Hy1mYSeB;!T>LcE{s=;z5mL zL}2Cp%p5|1t;u?H)DeyFE=zt31Ja^NxYPnO85tooeIPx-^1<;21<@Jt-D#WAUn0RpW&;hmc6mpCuu$eCqY2J+17D@dOj}0yWBXDtH|( zOC1#{UB`-o(~EK7A2`+D@q&12bj+Ix#ycw{-^Dyti}9dBS^s8e{W1N#Oi+t7holbc z4f_c-JtY;&KZaj6aae6WJZIWu!bsDst8Fg^v6f(*3KgpATe|5B!uOh#7=lgmGovE!zt zIWYUDK5TqzV|2N>A|Um;i(F7uGvjSRdM)j$@qzOY@@DU<@_~|J?OU|dWqJiJ8})Uj zk$=EV+D7TL4N^-<1b1t`M!DV&oa3*KBm|5N4M1CC2R_1RFw6WhOTDC66+;^~yg9_e zWN|29t-4PtJ+61re^=|dK#LrO5xSxh4Nm|b`YW--A##?JX zNJWrXsuYGzq-}FrsVV>Jyo*rapVAGi&nQmAH?AkNz^;|k7CW8g^1e!>DN{yg=NS3- z?M5}&^2T_b#DO}#F#c@z$z6)cKe6Sjr#_?ConduGK14g?T=KgpLSXhM%tEXcbF5Y% z9cyiUQTvqT@pr!sjo%u!RV_DD)TZm$CYeo60AceMGb=Biny3$A#WH%-u*N3C^_&oO zMZMZ?`pTiTnpi)Yvwwb-ktgGy&$;v!F)m$d?6-8-d|-F*5t_ZwsIn2JsL-xfb~_G` zCWrB+ zemzz+UL=-Imnc5-9v%!Q#6Pnr*EdU>pb&bV) zPg(z~y*ByvP+&n)c{f2{GkVhiDgicOCq6k?5!b-Gy--c&zN&a8cByX?a8s;b9{08= zWxt*Yaa@cu%Gihx@ee}Kzj^9#u)h?Cc}V=WDE zAL-i{wG^ovHXnY2`8uF@$q(ss_X(Xaz>gmFI|;8<*f!BR$*bak{9dLn>82e&r^4UP z=d*m4h;tWy;}0e{OvAYzwqBm^Xpr~ANyq7Aibc+Q8}^?zz^>rat7e-D4ihNlO;5#h z9Mz>3GeL7&uRZz)#kM$gEMN14k9)D>r)7lwXB^@CaXXu2$mm0@32{!`geZPp9qD-C zZBeQ(SKp^ZY8c7hTh!O)TopodgpZUHGXXL9JYT z`lHu%)XA~U{R8m}Uxb?Er0ptSH5Xu%zVd!*Me+jb|J3$YQE@iG+9>YsPVnFkg9rCP zgIjPXxLa@!4DLaLyF0<%-QC^wpKqW4?yP<8&fLtb^;Y+KyZWi>vgvwf>%IO@0=G2Vf<~FoN3T zpN59r*{3FLDL>IeVhT2(aL=5xdK5$h$FH`;GSw=ENGn_Z9y7>rRt_J=WrDJo{(dpr zeo~^BpGc{~Qan;dnRf0J$(B5Sljsk5T(U$s!A1mngWvPuR`)E*`f@i?TrkdcK z73pT~_P{xy$;7S$OGofsY{!#sLJ=jdwneNZu9G<$1w#geh8LXs!eAT}idKO*%O;M?00m{#XE|Wo4eoo`%QYSyVAQ82Nh6j}fSFJ9 zBRd3v@pEMMuvs}Tk-8;hy!Q9dn)=ve_U31c(k3+9+ZDOUQ~q#tO3Yc7p5mD>IHuw& z)w(OXohi+xwdAY(4iZwae?J+V8n{E`N2SC?{qAL8!;bu- z$)b%~Lqv&hfQj?a4V=AG@wd`_D=Ltn?){zT8)sMAE~7@aaJPF#Cx8 zD23u-!Ey96=GFVm9vUj=ASy7}vE9j4Nh`?8qR!oSea+f!J+R8)>!O}#`xaB|I!Y|M z*gtk=JDoJrP_X$&>ipriF6f*Bw+zr??^kKU%vb<>uIul*M~SnHpnf;ET9V0Qg~&(2 zz9;XJy)>bQK$~}MLJEKwn;?nEj<8wZmBEGJaLH#_7pt1*FS-;2{4(PoMk*!_T0+@o zx;t#rWbS_Kc?Pv6Wt5ee#MDLsoe@ac_nXKnLk+2f5`uVSAi%we8Rr9M&E_=%)(&(y0Z`%Z$ zf$foh#ggc9XyC!c35HEh22uxh13!PB_0fI2szKbw`5e?Rb_M9~ytO@^2&3*zth_>MMNqtItv4mc1_VX-G*?3T;1=zs{GS zFE%dEKUhs@Vlt=h%D6gfge(SZ1o$CSWf0t`a^W(p?wI_VyfT~Rz1bsO!lw2<9tN>0 zM`MhGloD13H-MMPR_2G=sV1Ufjgieqy7HhB6`LuxT>O#-D@GLt6_}&d-f&_I@(%p8 zjd8SZQH^TT3A7o-KRZeJ$EG(L4aw3eZyye`r4NPOjX+|MuOg3ohY$V-a#i4B3WnSK zBQ>K;=gHd6ZqB&cOMFBaT6smK%T!juZOl~|x1WQo6O|Q&3J=-9P9f6$>rc?OP#-?M z8Q3B{5+laUwQ)G@eO$S%%O8y&N`|KQ?bV#XToPp;7xD3P{1kd&-XMO|J)7avv7H@h z!EVQ)SXq3alWlV(Vvoj{%jFwB=69tTAvo2p^|~YCf?f4WTp?m-UV((_W)t6yuE1ne z^JI0e#E1a_raC2)$QeB3utJc&Uy%Jwq%o~mMjhtda4j@~v{N=B2qG1-ys?*8uphH065l`4s z(J|(F(3Sn1H99t6cp39~im4v1C(}M ziF4VmfW4p%O#^4WmqpBF*89qM+E8;y5x6mfk)cXM#P*wZSj z8EKvmjJEru%q8c&GIiKsn&cD&;;GXqSuRNlMA>gYcU-p5deAME8C6P^38#21+sD9e zDN-5dm|ME!N=--9dthUiXj`GJr|t#Gvva0W!p0GEa{M!)=LtnWINkCG`^@X=-=p64 zeQlx3+-FRF(HjE32wO?C@5Q{^I7x5SmzjRYctxR zUU@`*nV|DaKaSdDJPInDl-&hHm@tXYqO{;JLY}ePb%=38KIxs7j` z#_E*+5Ye#@im9la_-JH#4JOGZL}JBM--yQ!M96aqHM4S5NM8;*{A0+)DoLV$JzmJS znZdyRG>X6i2INi6f>HfGgO%L;iBYj7Sguxsss#PPb5)zvq>7V6T z)XY9hNgcF0^4SlXEwXLg9)V19mI{==;$(Ebbg$)WmePWmM0Epl|ByS|@0a4%Y*>z5 zRt$L#SEo02+eTBSXY-AALc27YJ=R2Oc*8WoYxQa%*LHpilI*>sl~Z?(&9C6n8R$FjpO?mO{~{k( zYhaJOW2vN2e4i%SX(%AGUgE}K1ZHMD&4P{a^<7Wg&b(Y?XNb5^iN5!7X;X!UGu)gP z4(6~3&SH`=Y7lGCO^|phsvMPi*=b=@&zfceSU4)AI?{5n!>|wC21>(SPxxJQ>ZM3@ zm$i#oC?dk!me?o7qBO`mZ2B~`VzAx?Ki^2CVbqa4(uN%ez~-4NUc(=6rdzcAnE9QN zlkH2-`t@xjMj-!C3&=*&IR1=izP{AfUEVH8r?BbnWb+fzxDJQ0tR->&fFp%Nt`Npt z>T$b)&6OY@wLx6ha&;Rx`gvcn>r{h-5$l2(9=8axB4$W~`loAp4E>`Dxp(W@{hC;s+%A}WU# zZ;dD7CT+#{u!_-Y&5B1y9kskX%xM=QasA6P;b=- zpY%tBnxS-QzSf;9Ba5%ckJ)n8eSQ`}k!kBS$ToV;EdZ}jV0DEE{lc&V0a+49t4iMST>>>7 z7Ee=)+t_7^_j?39!rm~QOey9K4nJZlvL2J_Og?Asqg=M6nM+cGuvdkaqAePSODNcL zuad%0cGV$eR4I~m-~RsD=by?{$IiVJ7-{w5o`9k@0amJ6WS#Y%nM=Vvc;kZOjKQU4{BZ)DYer5H5u#WL=ZS)zXw&ikj2kb451s8E~b&fDduzCuy5(jPxZZSEt#f zVs=u`Oq=Q0`wGHcNbmil*sc)e8_z(cH`wU?+y#})S5Mnc4dP=&Nzn4$C}|086{;g}kY><0r4;3n5pb<;!te5)w%cAZ$xtr3EV>RKEaS1*ewRAtnd zt9fGNVl1k+&opfA`tYqZm^r2IZ&}&vkvD1ct`kyKnmFO~+Zo?7J?-#h8%mWU*2Se_ zvP%xNGOM_pR-|O72>xnoCB0h!xRhfDjQ z)z%BaNqt70beM7<2)H96p?+^ZZsWHU8~(I*rk>eXyn*c;7`jwcA;%MzAjkT zZL2G(Sn-UnOe-}NOuGXveAmw^p#}k)&YLyQ-FSee{mD#Hk!BHCk{~WgF=|l^@SPHq zN-5o)5VoGP5!kE0zsY@0BI6@MZMCFmK0SjiyU+4;O$B*$jYhgA7VWH1O@MyET>9T& zEe6Kc$?G(}1I-9%vk}Qi7XAe-PLruWYRW#-2cyZuwIx_4+~2n9eE7u|MAa&_e)4F) z&I*{P516bJlqxw)w;gI(7Sar5B7)%T8n*H=O_J9%_!S9E$`6KUWWPI5ZA|bGHzFn3 zj1|i0*0^C#uu-Y=Q1kJJ*-R>ZlDRgMdR2Zh>KXq`(s?@7CchY3 zWUEglPkr63X{Z%1hU}dvf`-z6{k0x>5!hH2&-UZR-vjcf+d+42=T7}2_i~E3eMZ3w zz0L5T9_`ilER!OYW>I<)p@y;_$bXQUV<8&n1mD4KEE$;{T&B2~+_dk`=8=iNpzY9a zGr%>r(Y3G5dw~(fqNm8^I<@gjU@=K^3T?`wzgD6E`?F*1omLZ6Agu4HRixBsC%>~d z!2bf%yrVjXrsKW13g4nk#>`-Fq9(Q_Wdr%$H0Kx~?^?VZDOqB&oFF8Z0AnUXAU zG!B{sRc&Of#-p!QU393OIwxhpBF(GDp|#T^&FhoS7NmsNPp|YZEVlg3+Yoj570j>e z$j$9O9nZce#?H$ffMbGVQ-Z&m<#FHg^YySl2 z9oTp-HG&egn%Fmty68{NLf(SIB2x0z8fa6`@e?Bqe{!LARJz*defStq^0oh{ZwB|V zGM^cZwMWHv{OPsE8$szu<7`VzJUJ%njIazt==ykP82jpQA=|3wE?3Cx`hnfq!?Q=* zz_8+*;lYW<;JlEIU&Ubk;6&o2eNPJYy~Eh&12;?iuwGy<7G`crHrKJuSV=kK(Sr8m z@0tujBE^Z|>3|>UW%G(Pja$TKXQ;H~7e}K4DTYjO{^9Q|nJLYx>k)f6B92=>cS}Du zm|C)Iy|boilGmE^B#=YJB(*;aP3l_(g{3<|X!tBfX_kpg(g2j^pV?cc;r*@)pn?UN zqp37D*P46Q=aE|r_Dw$nH1Ub z8M6PTC8e|P{!Q5-*Dhg|Rm*AauAct$=z@JCi$*usvU>{n3K=>`(AB3EI1{qJ9C9<0 z&UcW{J)sjYVdz95?UxM;yDo_Ab{2p*i#6)Nao%&@n?^0E#%HRdkTCP7!DKP-xX=QA z)jU-ZM6WWU=8=Sny3*ESllB+WQ4DF|se6iwj_$-UN-j5%7_Chqu(q_i@- zEk)UP$VjGm8%!4fpP&X~ibHS~W8J6C?FZYgvbx5cx=cf>On++2Hzo=C$&nR+9Dh#b zd2_#jb*Amtwgz!_ja5s1Dt7bCdYf~87fCtTNJ0)w%J~biv|4TM7kRt5t6`0HnmO9^ zi%jx`Dn5hlF_a!0E9|19+LzI}r>`cC3kQh$J92b>yp@8_JUW3V2VW&4Ht`~jW6X;8wl{$MQ z0()W9>hx^xJaO~lse$$hg&}5H2H&GRn#$?X%8|$w})4xQRh5B!bLVGx3eyjI^=o}#@QXN1&A{kUbn~ zb8NG!j8#ixPogiDfxcx@aONJ7i>FksplP4*3N6RX$F+%65ASDMrYz)5^#EC|7A~L5 zU!W3fh^>)uxI1x59DXfA`4EsdUspBLpC^o|eAt<(A3i)M^{+TjBG1JmXwQk=zTU5C zj389tj9iW#mt>!B_XznE5NK`N6!012z2U0Ej|dwk#_bQ<5H%(YN;4+QPg)`gsUIX7 zGL0gX9$PsI`d}^<*!7dYb=`6pQGyoPHw|a2?o$m_NOOvww|4jL~PL&Fm%c02M;=Y?f!gCYwOE zCK;GVxASs__=F8ckl=RP7fj2ydTTw< zsQme2T&Z9kiciu%6TE(W_h`aoA#Jf9Qm|of1@AQS5by6&3d`ZB%Kq!HeEs$CZ1XB3 z8m=v;k<5vnNs*c|8hAXqyZ9Iu7dBMLwhYklT)sL=H?@t%G7C35|4LmxUT8qYW;GVf7-}CmoY%0lQe%lVX(m_K) zSrF71@fc~*>a5>RhpPk?NgPwNmi?8T2|%j|Dq?|3%c7+sjo}Xyns?ETJDHjAc})%@Q6(j*bYW7n2`G8r2~h_}uuuyRK1|5Ui5 zR>HFT>G@nwMk7BFer@njB-0;pI&Cq$KkSaJMe7CMkp)h#-}C6aKb_;Qt~xZpZYI8# zBG%$uC)e(aB&4{eD0hHOvV==@e2 z^^J~{Ds%jINvu~I`#!ztaK}4wjLm*6&$+eJ2l&eGlRyMV?*u^0b}8?K)ZtKJc$jP) zV+c2m0Y!%#M@fN+!l1{IQbcG%NVMmVITMaQ&BzmEQhwp%-!n*;J%g`s%3fxY?F#3o zL-fh(6gp=FMJjF^HA~~MvnezBOb3kyI7udmV;ny6mUSC#@9oQ5d%Nbl_Bbs7y85-k z@@!)XsHX-OvcIo(y?=|d?>KPS4X86qZ$^-Z*C4?hwHrErQ9g#*Deve_1HSz`d-s3V zPDsR+r_n=cH8A9)8BN4>IZadpGf~n(RqiiiUwb_hw$LQl&KgS@u1{R+-4^}$c|+$T+MvxAybiNgTH3L^Dt&tfy77s8wl0TFR!rg?ZT&qryY~GN z>(q<%ifjj5Sl#0|@Juf_Oy*;I>7Kq`y@F-=+0`gp`JNQ+D5};ef|2h=#n{0?4*hLS zIDy8YCr`Y|I+Zp`~ zE(2{eVQoBf{Xz8jeo=;BY4DQPf66{fdZ_T~e86G1L50#raag{{BQY5Q{e%7Zd!F;T zxyWdp>FqXBqiNs8=|9`5_1p%w*ow3{q(8j=g#L9l1NCR*41>F;{UPeq%MUk?84HWQ z7|4{AT$hTqb$d>ziT2K%>%pn9pW^5r9c3)8J|UVGEe8Yd6c5nM&7@puY~L4~;E!Bp z*GjMb z#xjQfZ5GWtOk6x=YO!`YGRDXQ!j0+4Q$gV`Y*ZsfX;-@b>vF$+q~1X>M@m> zdh;tncbEP-%p!6SFBNm(y<3RcOM-u;R^*+F$y~3G|@Yo}hxJc``lLgb8dP z(xx1(uj2hjE}ns^+5HhZxc!zGAk?OuBNBl)!7abUW9JQ9thlCS=SdAC2r&?J2ooCX zE7`%!q~)@lCHGz(K+}IGJd9Y`x{$@qCd^145?t!pE_$$wSL%qOa7Jm^q&WkqOk zKC8S`WWAEmw#1{fDW=0&BmuGLVv)q7#c9Rp@i@F3>#@!(WQpX~d5m{Dky<-fxgeF! zp*NArut-%u89kMaXIBoSp$vDt=|ZOwPAs~!N9*X0(Xz64QsB-ydw8@ydixpjM9I9~ z@Y2>3wWPbK_7YiAmykJQ>huH0*?736vP(mw{4hD=(aloEs%R3j0V*oOjKlzIbWATd zH9xhuB5V#RnbvJXz?HUjp@2PO(x|q>dzL56(0g{y{(LIr=173tQ^EU8v$pP~ziUy@ z@trT-zv7G0 zHgv1@eb-1e$1<5~)P^5uJt{24w}m`e;GB}u54L=wn&KDx&h0q(}{XM*t~}ISYi#rTLG{Yc&)y)4?BZB$WKpg3*N~8sog!hxu(# z5y8B-5JB+Ej;9;lt-1pBs@l&<(tatLka1SAsEMyS+#4y3#bw{AcFRe3KKKsmOmPzh zJ-?ZCv^vxhf{-;`u`8?{hy5q0$QSGzBj_pYQ6fMYbZmX|B_pewMZ1;_fOjUnnY*+7 z{J~V=!CbWr?SCCHH7V)xd@f!Jk&{!&)ygw0R!HUn7wZsUbIG6#H64}QWY0>6f4Dqe zF+q_7_u@8e`PPxYDc)fJ25|+RcQ9cfqdc7vI;qn-%sfx*LN#HnN8spphf0M2vxm;G-eG&1C?Bih8jhL8k41c_5_l>p1$}I%-jor0$Ie(MC zG%)aqY$RKOC-zt)USGYwN`25$5ZH+5%J^`kg+KmO8^0H%b0;$(2#}HbT;}bbb=dl&HH3 zT3p(wu?AA~s_6+~H+e=2#A#K&X=%%{^L>v9;W`F5n=nPoU+%f@xS@P7``=C=5+Gtx z_~B#G@qYJiyI9F+4XjlLUj5DN#OO#gW=#k%qzRpn@r!(U0~8ZbYSdH{RuEWqDc)?`Q9$-rH5*V~q@2 z!Qmx&i2gSzR&Cbcr8%x7x&0=Q(;{7M?dNl)m0*KUc$2I4nUyx->srY0jJ#p?lvT6l zS2fScg_{xXie;4=ejESzW5ciCY=Q8JH|a?>upmj3)r83bCU@UFlBEhb*01x2nmH|} zfAah@Uh+R@iLz8&j)SKw94=;aKD~o_#I*aT!II0j>R-LooR7cbc6jYUv>r@s8HDEM zdj;yOt*wRpbn@pRC--}>JI%#`rZU0H$gnNPs% zre=(W0#Dm`%%}-63WrO0H^#D=k8g0X)&lDh2T#SxormS=FOKQlV&mRT`E52SWKdNe z-gK$r<$a><*z6M{j~`WGh-=L?am%%?hxoA3q9QIq-Y$^q6yWQ@udT_xY;{fn7#WHS zSh3UJEe1!tKKufvs3ZU6;c44yrYM$9iyiWi82ri~)89UGhFE9D1~yzhI5>K!L_fWP zWzCHQir@u-=kfkrH5eoB0xUm`@Ry4Y#OhwwAN*pIThN^Yu#dNX?Qa5DedtuuQm} zGwp7bjv?0WPwY~Ciiej?$raH>?k_^&Ju*L2e^;(LqBdga50tmC z6OGWxtq2+k9+o=f;jo$N8eCN{J$Nx~8<+HmJg%`R zN%TE&xz%&(Ipq#`bfT~jz0PwOszIi({{fbfjHGI4u(mqK{jnV+w8-HLX51M@G5cW_5aoVSS^C^0zy*o+H;9r5P@+X{q-1 z_~`nrHDGITi23pmub9_nn<><xFAn_r0CR;*EH zbAeQYAq4Gv%9ml>owl65Va)U_SLSaKoB6vk0weE(8c6hoEm((|l!~XgZYj#0j7i{i zkh^H!IM&)~=szD#m9c?2umU)edk`@(y&x`6SA)@L?nY8+CyIXN8NTp`-r=)$KB6kl zCw=SdHhr{4vV|7wkJ|Z0LSPlo)l>*Z6H^3e;OPqA>KyW`Wm9s}fj4m-lj2wSn+g5Wb@88xfzS>2SKkD*0R3Bgp%2e`mYP+#e;>Qyag4E|6H z+4JUcM}~UzEi0R2(SsO8@L$#lP^jax<)%txm^MLGk}tLJOOObtizH9r33Zau)nm(*2^OXTkCW`kDZ$uYiaEpb zNQMRTDFYg7MaT2oz^0P0q7APAn)9(mw4gkH>}uS4(5SRL9UL+q zJhN`iW@nUJ2nO%(KG}aTp<3GXkLSDlizA`sa9r1C%9pVJyAFuM|bKB zp*{<^aax8?cvWu@DGnH^VHfMVsOGjTV{X6lCCrx`QsJi_11E`@s zZPs}Md)I}BmkJHlG-rdZX~sIR#xIL%VNb5)Kw-{;xc*teBLD5A3Yp?W?f^)1d^S7K zqM~QBf|fI2`tL=9Y|T-#*1@4?yW>N_Uj&WSgibl?ZgVg@Y^WF_`Jk5(c^SX6e+~EI zlL;Ce(@tMXQcy0hJP ze82Ju#+K3%m97u^wt^QL^O%>{o8JLC?5na&YT#Lvhp^Hmm}>!|Joa4aj3v0g@)f8f zO?FS#aFO_M^8KzJtDA7|7_Bp?EUZe;8@>-2yK=k}VHXqoUWtY4MxnTI&x8qM=XmOW zKa;2`a^V*@8cH?jUx@C?Sx$XuAh%WpqZ*8B`ba)Fw3*tZBkr9as*Han^>ot}HGJOd z?|(jfuZ&@Mqd|$65`Gb!SD3NBm|B09#TqTpINDI;8D7&0Lf1oZJdNLwr7CH(i{Q4P z6q9c{S*b;nI0UQX!(GAV&DqPI(;j0>JB-pNA=Tp#>hZ*kYk5z#MoSsLaa||>lh636#Jjy_ z^G9m)l*fR0LYACz#XpzNfPaHSwCt%ZUar-79y>oKx|GWX_fL0CykDWl$ugqELJP}G zLG>;R3w&^)fE(Cf_$@xQKL)|7bp2A@lG@V!MsQlF^FG+e(Sozy#`j868Az{RNy?O>WNb5V@#9D4gXoG^I9!B6 zKHkwfn6uym##t-t2xq{5;@aWoU4&E)6h$Ai=uSaTtZ>iiB;hQgIK4E>xV4t=JzuS3 zzYz_oH1W(SqbasT&{ruZ`Vj_3QNI_>B|VqRq6Xr+ARmJk6M%lWZor*&g_Q62O9Ku^ zQxh zX$aT|1}d?L3XUlh{`{y%;!0~pc67KS%36h}l?}L^yp6IT@J7sS2Qu}IZd&Yc*^97{ zvxv}o+m#tn1V3#RxX*Yzeo`Rs*54}+?M%@31M%qo68sAayO-<7PVYOQB$Z~)o1ZtB zX-k=+#-2Q_mxpPbZh3!cQ_O-*CH{9YU`f*%J{_qcZJO?al8BRGzNvAYW!3RXB;;l^k|Y4D%Tty2XAafu*zg(Q;Ui}fS$70*5f4XtdcH7)F` z5eg=e3~*Uk8Hc@b!-WJ(lXKd}6cBA0V#%-IyXtZdD&wYCm z`RiHFKPM=!N$k4^)-%8QhNUnGcH%{B78CC!8*uD^^jX%z<8}Ul!@!)$IgVqQ&LaO? zL7N{d@PvSGmI zd6t=Sh%|VVUNQZM2U3ViP)De8ExD!(L&XUHg%e<;!AGFr*cPOlf1(dj8EC?efVugd z#P^rTYsQM+dn?2Kmk;<>}F ziR>_hg7J{s7m09h;fVFo^psva9O!R0y!vg`Twr61NkX2^UPKKa-&~q=_7Ln5_gS&z zPzy>Lg)c`%=ZF>O&Z;ofw04i2jBRZvJ&2aGIMHj9u?9co7P!|sKEE_~r49Kj2Rt<- zk#<@5nb-?;l`i6fvoZD}DF(dmcYIi*i|{?c7(2dTzBEIL!$^Y>DQC}>RiB=&aFEK%1uOk?WORXQ)uCHF7kpD((s=Yt_2p)Q)A%PnEq~&YfFc zl`%#b_K2xhv*%Ef2(~;5%_IE>q`NJ>0$TFZ5uT|90_Ggejc9svR18$aCEgZDJY1D5Wq<_c8g z^p0Kxi$XNO`?9g)#+L^D!|ym9fkGG~0;G6wYxtkJbIV%og4-X^1`W@Ct+r7k5+2A73x~VD zuQQpnq{rk*b$p%97%G;L7%F!3$aAwO@_I~}7UPf2Pm=lTd3VUu5Uyfnpj#UwD9@p@ z8Z8fg7la7V_{d_|vH|hv3~?Gc6<(fpnYDANMvraW@;YBsJ`WBaat$C*r(igxmK)#K z7qFs?-1kqyV%UPni~2v^h2mzX5lHcI-voFi8FxoJx1@Q)VHCyNUCKZ_>ph^Zo+WKD zcl8)9W?z<(WM7_6M~Vb$juFm5A)6ebe1*HCO#@(x`6y%2WoWrNZEW}No18F#s%jgH z_P(o!B*U+jMlJ&dqr18q%lpm`_b)xMFi9$w*3?JJ@g46?V|st*(Hr?~Y;Yk#6^+GJI$KlZvkPGp-#mW2_YTkWdYGU~ zBGk0VUhd(s`=Ef2Hv=%(LXv?_^kSg9^W8UOb#Lm5b%0L9xY`f~y2*KJ>3FwTr3@;6{eM?D8u((f<1Efc6T+@&Wj+n>E|e~C3T?6Q@)xbDyfWZ-_&6In-i;B zTs_-At6Qo}AH%zEI9%pnnxzAyQ5IYSp#5(U;mmmJi@e%iy1IB963#7H0XGVV3isx` z@veCN^f+Du%2w$iTcqG?5U*QP^qJE*Ix)6=qCeyN2hPVxNxR`T3|$phdlLYlze&Mc@IeVn*R2&ko%S@x|BokOdk9B9gA+iIe_8S2$H~ z0oQ6nmH(|=dS~z9=E2vnM+FYu06p%cdWlhFON3-g&=HRtMqlk;4&6my>BTBfb?_-yq&W#FiLviM_Lnw#7=wBWobvhI{b9&ELlcZ)Jlir{wzDeG z3jEkg!@wZoyI&}8#}Erwyrg9{xf6LAubLo#pP9ZCTRiN1SCqx32yT{Kdjed8pX^?~ zeKes*AW{S`xfH;F1v8xgH(0(ARN%4b#K4~Cw;c%t3JFq~Oa!nm0v!P!3N{oR!OlY- z8Z|H&Lu@XvFXI0_NUcPjXdMnrn~{C@zf=A1QzuICZav_79bB{ex<6E0qWRuGX+Ch* z@?}gf)5ZCnQ%~KuIQZYH_~+}^5e`dg!T+%!``*z@ja@mJ34$zf}yh?}lqG8SD-Et`nI>pClGh1X4E>(R+h zR!;CoEJV+M z8J*Z&bq}$XAQ2B*m|!X3_{g(2m?!03t1q>Q=XFE}q)l&|e!PDd2hY8O{5yug?5(}n wWB$KzfCC@b|I4QT@7wwRft3G02R(g4@Xi`bg?-GOLV!QAl0b<{F{5Aq2W-uK8vpP=PGRQF7G z-|xHUo_kIsQW+qP{1yKz1Ox=Ktc-*z1Oya5c!7t90&giBoZbe1AvntDxIjRl4E(o1 z4m*^aLqL#1$V!N+duE?){7ff&^jm&*$T9GHQ~(L4lg0gkfDwi4nk4%kNsfv5`&_0o zwefm4{gkjTNgykHWYs_SzR5q~>|~U>Y5`v+djX?Ub}^M?C7x2RkQ_3RF)~pG1vUbU z1qL4J%dbD#=|yFiRTrx`8$1Ys5WGBJo&pSiA04068ogI__}}+d7L&rG!HA-T#7p(e zLBa=F#m*K zaXfZUw9aTSeDRCKf0rrV+;{83iph8F^;g#%6QY9~u5jCB;zq|SKHSWt-#+6S^X_YI zyCcWOm9EfV0G@E$t8a$DZIFet86wI0`;0$afA{`{B2C}b)rTOzQOB5rjqjE`|Kk}6 zagXz}pqAcK=Fp>H({*DV9`RZKOM>E=F+24`*)9oPJyl}o;IJ|DZ#X}#diWq>9Fv}%XQBj0Y`Df_)8zl!;h>e(YE1@g=3g7@Td2qn;rzSyY>2V zH9bA8k=mOP;(R6V6K3+`GH6b8?iku9+}IP8mMNS=R0o5Ty~z(F?xSS%Hcrnk^yZG- z^=66I^?cJ8{`qBFcj(d2>67a9ek|w3WFyzWy=u|ftAJz7{1d0{TCY7Q6g;K=mb0g)Y$=fQvUW3CW-$D0Wq59KA`7rq{fnKFLT`{c{m8DG&ZuHp_quIB| zAn<^NJV^`&kLAgQ9baaNoFvQ39t|z(x&q3;K}~Kw?n?$xSls+U1vX&mD&967# z=B+)?rUCSQ{s^XBrl77VIlcV7`bIU)^Ttew%-wpGY5)g-bLeR_yBd(BSg*QxaP99) zdEWb%_J9N)2ItfxGiYn4u>_c%SYiKias3zD$$D#}>4E?rM8 z%Jr;?-htOg2SG_di#;IX-QBQF*&&yVDbHI26`BK0nEjF1LicPG=X>ZMdvr zFMWQ3Se69L?Kz68+Piuj&0ddgxEAN&9vVMSx=CYw1D*|6KF@z?@mn(4rF8ex^9Nox z?CN_FH93t>FSMTj!r8pOq34(2uetK~@Z&Qvc04V?S%K^A{`4*j%Tl0q$QAN4zGPbN z4FFB$5ODkNnTUY%$DFM>G#tm?>~UF(*gNoRYcs%ttG(0!Zt5^KC{5Vsyfh{S{@|_R zwg0>6zkP1hvku)!JIQRLnZ7vC1ytC>$4@hHIHB9nXgeNg=3YFQKlB86!k&&>JsVm! zWhARU9eCG$aZ-I+{5kO?>)lQumQECX=Isq-nWYb0q^>tHyL}CFKVR*9>rSjWCX*tq*^>6ozl$o6 zPZt1ZKXwItu5HXR)Hoss{azH`14MB`68@*|I-^#|&jGK1=2+s#ER=(&u)LlgPF0h@7dG0aed8iKRK2Sc(%a3z;2yg089zTolGhECHQXL z09s`<3GpBEFY`ps~wO|}|l3?rm;gWa3U-#bTL%#tr zq51w`$C(oun%I}ok9Tf2KViprz!Xs(;qrp5NZa&um(%Xl`v6X-sc`mCMCJB2BF;EL zD~F*G_rtazf$#*Q0DcbP>mx^t$u6<`d53M517&(p+UJiYv@>BNv{?7jam4M!E0l|# zYT1vQG!iUOEN|ZS6kPKyT@H=7IETl^P>xTg8N$CeLV>VH{q-6T4d(vmUHe10Z!>Yi z%lv<@1_xYrr|6YVxSb|A{tNp7b)Z(bqdvTDIdaKJ8?DwPr8w!IcogVW_VK|XW%Mwjyq4uu$^VW?#I&RoWsYTR8;hdIIYbt=l=CU zv9|UrA=+F5_N$vbL#`U<%b+3BP5I23mXDdNGzBgJ$DY>inKL)7wd=7#;)DVNxLO?v zXlA1xEv5}d?tqCi&;7BC$|bx!M>Rx5u_P>*KRI!tX!c`&HfE>ZJ5eH3nt~m*bQppE z>5}bQYOso_&K^p_s6969Y-k|Wm;2v>C8Fnl373e~{~MX}&rpVDe0e!u)9Q4 ztB-tD&&o~G$Ds}9f9fR1;Ye3cy0(Gi^d`?)cZs4<=o0gaIf1EBLf?{TOY28Zh7T=D z2B67ddX~!)>5RQaWc2ni7Dy~#fqwcmX1IZspnakY&132|D8UEO7earm$kWpQ`2IJ3 zq&i^d0HT^<6@X<$-|m829p%(i8utFu!2`;g>{wZZL*eU^#11-4foO5kg2MxWLRVw^OYMahTY9{*Pjd7QOB$WVFZ&abJC;OFb@^yK?xOEdTqFWkE%=7IZ zas`gbV|alVMrO~*5Z%BPjk%*H^q*2_7wqIY)s{_L#&=uBfFSJQaFJhp)*^vG319XD zatKJ65d`x0NmRM7)-YRx+z5p5MS~4&Vax^Dp9fE*qjvUPB5R}~7ics0fezJX8+D09 zQV7gF9$Y86s!?zYJFJXdVe?!Vs0m)k{L;S4d*4Lc>LOelGZnjnc@>*Z#g`oaC>fhg zs>K?+Vi4rBK?*fMLfjH207Lj@=AN+kRg^_U6B}-fDUKz$e|tu(lLg+Sr;?OV!5UkA zCtOJBG6y*C7;R@@#hqAIaj=$tk#>rPVY=5z^^eId*1~u2()t9QAX=Q@t#z7%y?OQR^=q%v6-{2 zV&&$M=qTAK46!{j;T=jgc@Qe680xZJZ-J)L$h{K;O+3cKj*{oL8(@4m({9u-vJY z7ZWxCZsePcnDOjO!85W;0JgdWVKGz8C{ZVvNr?JWncCEoexV?OQlV%gs(Q`xyoP zN4kXsEQd3C@NUXkVoGx_SQ$&S@dY6bF6uN;RHkVP-?0}8&qI8&5GA;k1;zb{^WVL) zq1>_Godhri4SohNnKIhAqfkk?W&hQrOgYj$gW6`N3@3A-uaH2QyqwiJT-mHK2^fQ{`|_Q!66!CU4v)x( zT{gMMK9YOt9ojKjGZp}naUstuHkF2!aIj`)Em>M+mq+qUzz)>-CUwhLzW4q+2s>6q z@K=tsd;)(+jwAxOK3oDOmp=hZ0OC((kNQAZ(KgZlNMY0tOFI3NXC@LALoJY}v&>9R3!O}YWS^Akh>r^e!a8KC^RnAKOt`360-H>=8V*VEJk67 zd!!P~mNI!&#R2J=hDK5otBhA{=ZICx#IY9xbALIANXGfYtCORj9Ug2cgQJ)yl)&zp zkQ9Z9Bz}cavJUJrnFAW*oGq3~R!EK_e*$?mv=CHqTnkDL6NsZp%TUU=kZ?BWg2;gi zZ3MD*?(N(PzOYL$Bn;CH*xdz%K~{c87JLKIDiE&-s~{zM9ZEDPaP^2NO8?H8N}k&SBO$+L+? ziP=JcBv_|0+AIz}zAj13Tu0>xho?x-u!7K^LOQQcmRIT-%$RsY{KEPMbZsZ1l>XXe z?4NHhmYIH#VPvW7rXzZ~L7^6f$KjL%(2k3^%wT%(FR1Quf!`~*qUR&e&_k~5EPI8F zyn29C1UHJ!Jb;Y+opfW`A2peaa%)Xfv&EJn%QtlwjtGdsj%MI0dH*UMVNdFjzHYM4 zrio1@@o#r63LlOH^jDwM(J2Zy=ZUM~p2v$aW0`b;orekx0OUG=SBwnFwxK}Ms(F5$ zr1Ni1^BiUV43eUujd`46$8>M_RxPpkJ?Fa zJ6vVd?~g+k%gLGf0*sXzRpmcPvN zfML-c(i!Oh1@Go9C0wJlgQesDYu=sflg!3HX_4l89@LR1qz+97WKotQGXR}m{wJ0V zI_x`d2-D(&A)@IO{{d@$PD-`5HNXQh@&9U zj-^>0qa?V|E~pw(YKej{D6Y}GGgm3CK8?OgJB~Aapoy@u9Lm~~0f}64&se-O_cY5= zJqY6+J%fFA#-Ds;P9vbuXQ&Q zRn@O$9<}D+G$Rx?*xW~>l1swtn($2ksm&T8df3?mD3dw+ zyOZN~GbU#S6!-b)S*bX}ZGR_?I2XMwxUT0|llsB+QD7zYLe)C?+Dml$Bl>iA;+=E3%}cqVk+KEDK;CPDc~3m1F}vhE zV_Ya}S*)C>Q-neB9zF<>!=X(z$NZ!!u{|blP(WIlOj*S=J$n8y(=A~NC*y@Kg}u!} z?EEix!&_Kwmc;6J;xaBpH$to{m6+wCfRNi)vbn{27CsK>E=ee&ns42qFG$K0G6kN- z9Jvn6eA}=l8tAbGj}a5jKEQnsc;GK6NFHNVys~$%)!f*7WNWGH7eaQUVMaAx$qyVJ zi!+98!*w=y>>@-eB;~9>Q#+b0paS6bf)jxYLdlS}$yk|ke>p1zf3(B4=Cy)zc!Hbx zx2{Du=!H;x5nb|jA3eI ztC7`ec@#j#fZ880_&s%%iP)_5x9PVqLf3z+8`f7HY^?DFCChgK-%3g0N#el9BZM>W zGA`cuJ-e33le6m_D}FZ%hIm1C{p;8>nW}1fAI&^$J}|#*^bLkH5?>NwSF^rJhD|QQ zkt9JV6?I#0l3->{$DBxT@+M1S3FG2Ehp#f!h^nFe`6=lJHvw4EzEZ#QgHf=J3JR_@ zMsKL*_h;zI-FF7wp##!(yjyrfSXn8}1UJyEuXyS0&&5k@ZVc=Y4e8<}A4#v6b+Rtq z+j-Q<@1$TsUk&_{O%DYF$2ZDP926xZ9v|kUP z8ox}xP%dHszXzrc&k^(?H9Zjrs^tsC17%F<<)$<&7#*D|0iA0J!)zYBw4E(!k9A5TME@^$)t7mG6_uFz2tPK+-xnnhjFv7zvqUR%_S< zkrYY+?g*IxW*y2u&FnsLhlOgSiu3tHS|XZt#kQ;)+=7i~PTbKD$HYIkBPDLeck zf*M%PFuj>{d#PEpwbi_3UH)6{R4kOiRWL?d72Fb^s8!b>XKcvftCGRc$^Nrt_9pzV zb28&Z#0#lRW}CJ#2%l;l&iJqaTLmc_Beba8$uws<^gz3A1lrwBDhgTVc~>2@gOz30 z;Qgr=xNcI3`NU<7v?aCpJr>XrS&U)lWYt$B(4oDGE!#R=Lh-{13Y98~1a5i`E1n{} zM1n*e9DG9xus3?so1U168NT0+;>*{qXue$OXm0OuC2F|Tc^1QOE(lwc^O32=_p(^O zj=afjMEhH(=O!yI?RkZp)JcSCS9C;B9Hue!;Oh$bWSv6#;jIa`sOKZ`2aYJ)zcEJg zl6Xvw2E|_HOZ?^(X32b1OF&)~mUX5N3NJRbYQUy=k3YSpv_=w)<&9Tso0Fu5@0X^s zrgi7nq&P9I%eTd2!#_4$`I-Mx=8qCxa|sa|KI*0NfG6}N*y^9c*ivX)0`=1H z!%k|EmP@sU=yI#&ji&|F@@WcaK{!@TBE-8x5@nOi(Gtx&Rfh1%+77XI4&VioOX1k# zkv62PlTm&XjJ;IOg3P=Jw?SPwbwwBxASRe%RD987ho%aLh?~cVg2Y~LpP1ako~UQV zmw69*Le(Uc#NoTUaW|BstF3N7VT$KMm3>H@;i(A!GYb(8&K84<$ah#kS>L9WV^bz$ z90=9;LLjNl5o2-q(Gyl+4$b<;8G1#oXe5;SaD}3pciIi^BKhrBk&yIS6OQxf+mF)h zip>O5OqlJW|M)Jc6ljdokm^Ve0sM*O$6@=$xuNNPNv{S<#Fg<^@9jmR3YX%9HXYs20~4~mF^=DP@2C67Hd zu6}IzBodLzJW)ARjo4e{T!EYY{f`AGUxVU{jVe`bAsleHxnH}w>ZI8|E z9d6fBA=d##T5hq-D$U%$jAdUeLhu>p@4`k=gzz1$%KEY(FXN4sP3yq}cQaglqh7N2 z_G$BGqugZ}MdSKshJLlzV{gcjN62gIK!v~fvO_N%Qnmw67VrN`)!Z?asKEb5#>kRI zMK@4#!*C%MR4hgXQNE@gcBB!9Ze$J4`GR{Bm`sQlp2>BC&sYH8T4Qpg9agIE3O&?v zN#}pfY!GS_lKj=BZU}YzOm1M_O}z$d|FN=ikgU+tV9g&q{m`!xi-lzspq-UtO}H(p za&ZVI0E!E`PCSk6q;PP1!a7+q?Y5BW8fyoEk<2h+a$Hf_Prs;HpX9jKVu2khV}A}z zdFh?=8Ge1&U{YUN@FlAv{5j=pRqtbIS~3W#Szp>k*g#9 z?yBDLB_u^5GjhW*t-+F`=C@*8Q1OYhbv{FU^R~A_KnSjHl;CSGL;fJ{n=op8JJ7%2?Y6S> z$&)-y!WmXxIAmg|S~$3#IEWtV4!Tb^pPB$kVCLk^xMJ8OoWLkA=4$OZhN#@Ra&3K! zT-nwp>TA6^0k@x%zM9|bVJQWMHbPIuTwuRaz!kVi1Bs#MDEA|Bh)iJA5idH(#6)iiT0$o~@C)!*UCq!!kGYfm$@{^5eU!EjZufAthcKTqs-qYe8%a z2+dgUy;MVRi2dE7NLW3n%|e5z0o@NvLR%|M5*I9sY$ccs@9-|feMhDDvW)}ghT^ei z77#B1olZD1^zR;POCjXf`Ck0ncXQ=4*oRr)wiv1ms6et*ASnvYeBOe;txi?*hgnK1 zvltX-x|&m~`E=(A}9t#=dA5HhXsBCfe)PNseZOXlM%3 z(zd&f3Q{$G`hl>0;6G>1%s`Q))+{s%{rUTe+MI~AVdakGZo^YXet3s~vm16KTc=Wo zk+LOmJ<1j$gb!>jj|JsuWb6lYtu@1@vPdQ+RHYb*+Szo$chPCUV{>rrX}hzB3r$F+ z6YQM(KhFZh={Hptvi@-fP6z(_bsY8%-**UduIAj8##b zE{A&JcF_U9ujWz!k!>p8gQO#B%lLwFifqCI9(+QaC!I!PKN24W(W`u1_y^G^P-ea{ z!#{qRS$6A9CoJfin4fR)?aA6}IT)!Os^~iB4LlYua}BpjvK(MbwvHM~aD_HN$Fm-dX^5VTsH zf-T3s#Q9!N+Pahz41c_p*`ZU^6L$N+d}(<$S)e0HkK|9RR&B z(2?QOdQM*@US{+V+>Bj|4*qm)`UP9{s#GhSTr+O3bpXN8paahp^I|QLi5i^L;~u<- zJoluJJ15|gD6gMg)^7JKU}&84kUh+&0tcsDa-4>$j*0B_C=fc(@-V_~Cn&(PhwKzK za7V_>?c6Tod2lm7JAz;-uHt>=z*h>40b#H#Vjn~wJPo|%44Xxeqk$+qm9;DK{mK|- zpgUokc$Y&|Gakel%zijpc~Y=z(-=p{x=|T(DkEESzCyp&h|i84YrperPi!gLeDW}< z)f5^$5#nHea^N^YTU6b`W|{gdaavPEaGuzzlqf`86s%T3J=F z|H357Ki4U`9UPl^mm8kbr3?YO9v8{2D->GzF{Fm3a||o0Z3hm#*I?Ce_5~}F5uEtx?itec zplBZ^hx{z>YyD1fSmViVfddPxI zandX3j5|<1uWU^{%kpe|-U}c-r^i&M-Pt{A*_K*3M$r z{2+HdC5jy&W3jH}f8tB>!FKAw{?2*OyOy2p+2inO?rf$TXX}5h664-B#x5U+^*;4` z-b_a8O^{WGeTVHhnqBEYnw{0JF?l@PJnxB%)x;1@6CHdy`F+g4OZoyjAb)Y@c=|>{ zp1H&=X;1b76!Le(6<4Cf7psMou;E zqeuhK(=&b-ngF&H&h#k&jx@k>bqVPE)*Dc4=JMLPMFMU5D^1e-r|=k9X=T<~Sw+2* zoQ^3Rpfd6*39PpJ*{sztGjCrcK383aaNC#XOon}41#lE@vl~5uRewN{ja{p-v%<-b zw2saT*TBc`;JBq%jtjA@V-1e7%N5HOmKu`oY@-CP+YcaiTC5^b`4;5keh-msX_?_7 z*;T05-Yh3JZ2$cHWA5W)Yoi~RSC{#=)XS%uN4o$}tW>9>&>2+^YW=ub-Z`!=9PPc? z5+pSGl<1$@YjmsGAN&40W7PLU|9Kg8DB$^|d}GbP7I}#){nDt;F~0pbCDWVu=WQ=M zDHfoyYa)2=I_2}<=iTtsE{WM5?h0Y|#*Of^L5p4YT+o&W7~Ul91%E`8jC?nq$-#>F z8m)bxs15`mG}L~jN3~z!-QyqE@_m@~kISXW1g1)njG_lf@P5->TEtlzX64uQ-f42{ z)Z~yIB8ax2zCAR|bBlIoD?BlI4k}w@$ep6*EA-Z8WYnb88Ox&&c-(qNI@((7>g$@m zyx9nNY&vsAr_H86F%j(2^mZ376n_}cur@pI7aV;bY7P8%#gEiGIOE~<@||y$B6W0v zP%2^yB{g-Ygj~&PhLXB$}cyiAPWrpvs2k|VoaNxKVgb_sP0hQr!LE`M>FAhg$}u+`m#kJ z7i#pbPClDKtXt+aCq#6BrW0f9s#bsp8{tEh@aMtajXs)znt%=Lwz2oy`AJ`0_0QuK za}7JvP2&4a0|uJC{G*8;b|dC=6HeQ9rb?oQ`HH;BDS(y1T676TMR?^i?`SPwOX&{h zuG{IRUVzZ-yD|UONS(vWav5A5(4v0>M8fONvAA*@-O5L-e|i3nxhW(jALVKT5vWd! z2Gd5&?3*av!rm()kJ#NkZ%rutCnoZ3`NeKK8gYLh{r#Q=bSe11Hr8BpFv&{2fV8U=8#)eKiIbX;P;J6jzjKa8KL))+G>9k7!X`Q*P} z4|kqW$*-i>W6LG{-r+OUN#jJ|EnO>FJ^QO#t?70}zmjR-Qp#3vqb`KLm)K}ULrxp% zz0yBe+pb0f2#=BJZhk<)&bgZL^7*7ZrlkTQSLH><#1+s%NJW?;$hfw+n49Z3Af~K8 zUFj(ROmqaEc{U6}tZ$;@AN^l?uchN)1$A=$W^e*vUxq9p}o=xv~ z3hw15??7jaTKa8oki>MhEX`((qytPUmlw-Wgw}*#l4Ps&Yg5YiPo)HsGZ>cm)C6rz z`=0dJ)zJAD?5mx`?CCmOy+^fORx^~+0fmWm8E$2VGgIbTgyp@hSqi)XTHVGWiBd;F#yWG-M5hO*IAZLF{#d*bk;h1@F8;@{xHsY6k zud35HEt#97%6?5QoeUhGQ}jQrc)`uU*j-ze_EcL=b=r*N&%tkT$gziv-= zc2@?77xH+~8OV9jdhy)eW?acqSU;!O)+`rj3Jg#B$b22k7MPOrBtxY@FZL+na3r=D64DbH2Qa@ zbK+)>r(xlQpfQMlM}sI@P%iMC{<OtVEpq8G?g20|MvNo6YxB57bo&BQO_-9_-Zy@0IeE%Nlw0-3>dq& z_&lS)xs{mny_U#vapEvp*}P%e{|s(-TcTXR&DTjzDw?^qYM}vJ6|f{l9haH}n0}pr zPAW?~%QOJ#mCqxVQg+%8G9eA^l=LyTyKlrcb}S}D~l)azgt*MEqj+90mn z-*3V^XCAiK9%oqayKs@nOPd}?*tFl4d8e{5CP>=7ZCpD>7lcrPzCuWDB#2*N z&{W_!1^6f$f@p%^gszVf#fux+2S<&jvQk`!F?;cAni>3ED!Q~0XvBJG7UWWi5+h@@GDwm9NtDiL*Rzh%&Dqdxw9i@c&EQn`@D@kP^Ere868EuSO}KPE?4;% zdOCBL948O>m&p{;igkPGM`0JIQJ4Jl(WM3+dfvN5!Wqq#Erp}|`>SUSl3ECCO|YP^ zl(EVZ0sm%lHyO{zDw0HJG1IcEB5wBsl*kJ{R?AA%Rf!3&$kL7a;Adw0PX{I@*xC|$ zKfUmGJBe2S-GG9T1ayTY>y!&7UDd!Y|C)d+hY?Fz>Z7xKL#6NmnA!?j2IgHafqNcy z7grAzTB!2MPpz#78tMh3*Jd7L%|$x^jSG9y=}V8J&(ilU(3`Ikr_txN_;^hu+#-mG zj>K&dMNoHiar0%|V@Y^Zk3Q3K@B&{Uja|d&#ECBGtwQkzRm$vG#`!&La=Uf>oBZU{ zjJm)^9*3#-fvwOAo*D<$0w!E#dnPknW#zJl^unI@MKy_p?Z9+@<~;i2JNqF(*R|4L zvHxy9!us#R%}fl=e6Tu$DZdn2@siXYa44e{dn#w*2(`4h`2t6A>;6=7jzMoDYqd0f z0=kg_?|OPwx-;*kf8b-JVW`w%=(d2AAq-_}AKZ15$Fno8mgTrzxMZJaa6hJV2>x9wr5YVSO6Uq##6|;$jt=uE~yiSQYxrbR>P}+0ybh6!3>%0un zrU@B3Ew%?MWQOldf*S(Y%R3nvBX6qC@470|Iy$YqITKUag0HK>ud%|=wQKXhF5msL z_S4Rfn@_%6LCQ6@=6-R*5%^+%C7&sj)@M1hAl3z;pYP5!>rIL$y%qQVJlvgb^pZ7Q zho^Rp-TJy*l?y+l-TlpKPjYi^N(`kNr#{Yx?=8;HFZUpuY(4A%uZf5q*hv^B-|r<3 z-?mqt)uJP{g=UH}SN0v*ngx@Cc-XA~X=#{aUC;OsoeqLSC@ zN3}(@KvbRNpqIA*g-0>)&nq$uk;$rT0Ew1nS&~B-UwcyWn$&VkC{Ief_sjP+3^e*( z1VCRIMkhcx!19iH95!dbvQu+$b61ywgGZ71ExQHJ5)*Je0pkPhV*bz7cC}1%LBRFv z-D5}ZP4Ua^fPDomkUFIuHp)Vb%)8U`5vF@1wACNImC@pXuyk~)R~#rsJ>K_XJf45I zxQ1l=Zyq;;fkuj#^=sl%rn;_fxq6m#@M*zm>F&SRiHQW6E0UhzpR-HS0+q~Da2P3O z!`W*>E)pZl$K?9L_idoHa%4X3=BJ3;Y3)9oGH9(Q z+6ES;Ucc()N!jU_cMV}w2o!UDngZpWC+(Gpa}lFT=SgMeSIDowK-C*hM;)GPgB>!Z z%)OT4N?nXE7mvd?hhx9Q-#uLN#&QI3?Kh(&e2U+YDL8s9Wn;U&B6MRDcK_}QJmWUd zIv}y@ntI_G#4cJ#*$~Xljj&x3TD)@QdL~P^xa`s9oFfTNMkY;wis&RL1o;0l$4##Q zO8Sp*uX$`jtIc!#`I(Nu^NhlGm~T z-T^LK9{#ue(LF$`aI0-ip~W4ay-#0PvGbXY5R@PFF}njLX7Wm^bvuF?gx<40#nCTO-0Ur{-K(Z5_-iIesl5yO3!uyMTdtg((XF8DI_#_26y72z+N;!5 zp7Z8bk8KyL7}l=1l{t+k4bBl?51t%Y`{)>cn%A|nSo1qG`*A~<6X~Qf%0Idp zIr|OQN+!+7R8p}g+`dD|)I6SO46}2-9Z*WnA?`&bT|}slc@f3PsB4<@ez!`DCPICf zS8BUYy!X_5s|e_E`*%!llXMQvh|@T}$A4H|>9;NP+`rN1w`;dQp+g7T;xNqNb&6Iw z*5@6USFHcV(V#HFQ;$9rDgnN)9X7Cs)Av+^PDAJ(!RuW&V1O^KXM6`^6h`=otad!p z(7ThB(f=A{hBiT_$38T+ej!(Lz+@in7O~4GTRB2WpsdF)S&gQq!YiNw>$Ueo+qJMd z!pA-TiiXEBFMztk*PqS}wNjo%=E%uZC3(-2F?*h7^_*4?(gWe}J>I!v3G6AX3WpC< z0LM7-LVG>80}qjyCcdpT<51LFyk#d*86Y>?=3*IJch`z$5u2IS7PI;VEvX*vgHC_@ z()6Q3lXRo#JbuuekJxRHLNwP5DHOax6UKE9(o$PyS=X?GdrC>Ior3j zh|@iN?7=Gj5=52upUJpA9FtP$MGmD~j~Gh-cmBDs(@m$YGe#~eQDnPF z6aXXoT0}Tne*W~YnYl}ItI66CzS^9>19RT1&mQ7LPLXz@CJlNo%Q^Z$zB+l@ZBmV) zv|hAXf~|>t!}I$trieUie092JPHVt%&rROn>FsY$K69f5!XL49_nd1T=~)@R{zpce zl^P3wg7NEl-M8cEW^XCs5Yn!wS>!nY-gkv*SB-6#0m*aSCjK1k?-ycbi!zjWg6xe? z<3fOM#I;NySvf(7xyxBhBCM#Al1hyx08y-~aQXL+9iN^@fP2Pt#j)vo5R0UA-u*XJ z4Xr@)F(g8WWP2 zH7{8*J(c**JQflHDIN1IwN!6H(PiwFlh49wRtj3Pk)8I z&lbN`I5x%Mn)z+LXQejiu%nl%bNl8=6nbqXtC>L*nK4+vhksA0uQs)mdn{ow#{Gd` zWLE75K_S7%2zIwN!X;Hn&#<-x1AT6IyZ~x(9t8&_*{1u%yv1+W2a#Y#mjgyIWO+w; zZ`3nHQE^N<8i?_QZ#@vN7W#j8)eyd8|i|+xRJO`da+! z?($@2B=qm4?8~HpEIICu&;WB0qwp?big3MtpPX43%gb__vZCfKwc|YoP0NOfPOKp% zoB=1RO?I`JN9T(UbDoOIM!MF!zxNRjV8_b$@auX)eF6ABIHx064HQC~yF;t@ZIkAJ}NVhUeT|8RdD(w{m+ZJ@0zm1E+kFH z=v&9Ix8(Q&9hC#2@l$|FrNl%&|Induo$m#A@P75@OI9|I*W!_^Ypvqa$=y9z5+9}a zu$$fU+<=4pTOOmhLC-7MgwPfKhI&>qBpSzS@rb_#d z2O>4JC`o6irD9>4qu*qc7el@BPm@yg*D-0=PJ&LRQ^EEUda+9yjyPn2KyMVSAbhNA zMD4PM#r#;6Jf?-kv7z>K0x`p(3dTj55t1c6LsGx^1r=|SOT6c?tx7B)9K~@L&Zm9p zj}SiMV^_=Q%336W4Y=kyJ6ZQZHmlp2;@Th1%~b2Rj#X+1mhp^qnO)yg<_AtpIjxom z1q(wBx_`)CUmTSlnudl_DQXZ1s@^h)2$gHDJ zo5sFy|9ajfB+e?%$krdYrw} z6rn`l6Xl=c#=27T{=N^pZW0{kTz+)sY1~>;=`~eR&$t(*pAo3zC|U8VN@-P@5XdlE=j3R9!0;He2@79-J#A-ZzeBA-u%#zYbK0K^7(9Q-$6U7+HDRA#(wyMxS{S}8#?#03-?0!y>0`jz4(zTpNzpxD$>)eF&JC*P5ruz> zqZ(L!{|R_z7vuY@y#^{3y$r8&vV>BkFcO)2Sv4Pvj>-GOk&z*(;dPb}od;sTM7bT| zI>4b#4L-)>Tg`&*E-j55tUsTrRrN6hr1_bHy|eKE-|@2&%+{wK!+0_l6bM57o6eAv z@`9zqSL3y}BOqARt1Ev5JZy5bO}+*-(UR=BddZXxe?B|5=lvtkW*|| z*122UIw!61IDh6!qanzjG_PqDhNowaFggH9`qhGq0&-YEHuP&j?Q! zHnM3vWcLC2_iYx`dzkrC^IRQ}WDc(Wi23_)aogs6z9>{3R2$ZC(8pbVSt(pW{zcz` zG%xS(2V4OfFojl?q@o#=L%FxZ?!D4Q_A6VoH+Y%}7CmLwENW$WZ0S|kdB@TIkOj`& zSdTy4>^l<<2Gh=K;p@uXZiuL=%cA?VTB)^%6pm}<PZZ`P#Bqyn>>7A_}^lIo2&I-R*@#ydb5~e;_XpkQlt#MBh7Y)FJfb-9D3^kglp6( zlqpyrA9cfs(Ou4AzRXLO6$>GLKD#Lz>M4I9A1>WaK|UH8@|;n>Xul4K`<@)`#`1*< zrKawNe1~D`kw!xs4%y~U`@vl_T2a$K^cZ}{-+Rm7>Vtfl;@+7fL%Dgq!}o`6(?8LV zR!PMvf)0ks1gRn=uB?)XQ57B~zec`+`Y4w){I`Lt5A=)-Z95h73=*RTPUv1Z+a z=GD2d0A|~t*fb+x@~y1=J-PghdDU;ES8~qe^9*;h8jE5eFr(6%wn~f635y^#cPn=i zDIL1gJGNPKc?MG=XbA~_-@WP}mAkNhW=#2bE5S`SF;yKi^{Bm&;<%=Rz;j!wWMlIO zw|#XP8+l^t$dRQ(KU3?f2F;vV=5z59LQHe+h5T5hd77TCY7HZ2$FqS*TQ4(b@)ywD%S30}2}w^kCN2feVt~%kY18bbzm)^=6M`-LHCp3R4xtt(WFVK zw(h}lc*(F3F>{Tw?tsE}M;lWGCBiS=$yj)OB|`(rR36trQXYQwl&Nf`R9k^~xfC8t zi%{=hzRWI&>`^)_LoY)QJFjQUQ_zpF3zgZYCO2&SL(^_0UDVRsmM~OttTB_G3Rpof ztZ|q=xpz;XjV|QZirqLMz|sj>0`nNpS|iwkk62rV&BR?`ciZOM?|Xt&O3cg=$cC8u zq7tOzgRiD$tvjiqL_sg26Za=m6b<7wROx!!By9XLVlC}u=)mQ z+Icd%_!z(4+*$GZMx+^86kYH^g8ZbH%-v%W8tP}OQxYsF5mY4RM(&Mq^|J<}xnfgn zmI9VJZLf>k%=Y)rk@8nVIH8DGqq~SUN>(t$B}GIXN#ma$kFv6LYYs7h>?Qp_EKNO> zcrSZHdSkjp4p~M~e`mY0-j0rm`JIRLO$W^o4InZrP_cPm{&;v>vVvf&kc(QbL?nfoC4k1Y$#c+7u)`Xvz@odi)qNne#tjTnt|Hy#_c z8YNS5$3mI)hsE<^o?G4sPoU@YN{YF}0VAw9QN1$o>UenfvRjNV)&hC{bkE&3*ReZz zm$tCc@VXIN(>Y)9XKc%y1d{jM&9aPj#h7kJZRl#6l|Q6NV%y`9-C90>Fux{XXu5Nd zDlo1MnUNGF!f)p%VR(IR$=cFSn0s8yU-cPSrYeq+FX$v?ho6OaoRxwjp>iB#QE5%S z%C^be;wTl_Ci;NtoC?%C9Eha{b@5t;d1z)rA#GgV`Oh&e>Y$w-v8FES4wovNO3iJV z)&?^=tMupMjJfDnxWg$1Zk*LX1ADha7H`1+py?W;E9ru5Y}>Xcwrv{|JDJ$FolI=o z#>BR5+s?b+d+YtZtJm$-)u(pV*?V`L-%pwP8*%+qxBYMBw9pHSDwdS_9WfQVZj;^( zxRSa2-M=|KjjPe!iSu4g(~)U&6`Fgr5?t;J*UlDT3Aw!`dGgI5r(Wn0-780Tzs&M- zw;-u7uuo6+$=S~V5NwmGix`G@e}2)lL56zJ$fk`eid-OBDOV|HOIqCwC-u7tQ>!4p zbUSZt|1s+B+XwDZ=7j(nA9BKI1j~HJFe8{4UPrq0sE8Ve+drjb35J~fTATO@B6Vm` zUjLH--`>f8ydF`i_nEfUEs6gWPzC2r30e`C1haJxan@ALfe41Bk5WY{l}$J+L8Tj~2u;M%nab3~kUqvVmMK(cyxlQ;KMtLKZi z9Bn`ZNM#|MM6g>PsV)6*d%CP%`KW&Z?H!ANhA~@;I?)gdh_-Ss?Hg!@G}F)$+M-HV z1<;TVO21@M`=3=Nk4M|K+GG-m{*t2Ls4keZ1&V=ikR3*OZ|MoXiQwTvt0k$~B^=Nl zszt$)L^L9g=QY9>BAG743Wo^{SL|0HQG;F=y?Dh9{#BH)q+BZ2HcP6joMr87(+}r} zVrg0-E6ag(yRG51U|G|8QGC4rmUsfzo*>&WVxd-Hx3wUrhZOSpT(tuY%j0=pn4XjG z>|saBVYKxZfi?;sOjOJ^S*JQ9NwTTbfJULW4#PPRpOAq0ftnmiO++s$q-`;tr-w== z$m`zt1>w#1QPlBs_0NsPup8)5!-KIUOQr)(_CGz3%J>YUF)A57($pc%{3m-?AI9m(;pDW+Ubw;O8JuR|qM-pA51+l&IaoiJ*{CIu z;{DsM)sK$hKo#1x;3Zx_hBl7bf1OB@B)gzT{C6MnB;CCl9;zk&4td6q94RpUzTPR% zFO+ax1aq%Iu7MROyWOb+Gkz$B+JLP$7K84pOzm0dM6In!%B!U%@i9ngmL&i-|9}jrlkLi(a=`$X+Yd6m8 z9}kD9jx!TiP3cEeel zvo^^qPiE2Degf5uBM}!KhA6({13W{yGO!P?n?@vv1QnQZH5j1SmaX#?An`dD=FPMg zp-)_fl2u|zVw$ip3hQhWh_(JFV3|u>Es!Qap^9`IiXu_uulOf+Lzoo5@bmVZFLgE8 zEO85TfJ~EL8g66fQ|@8--MFg9op-sG<;h4x-=R~Zs~pVdsI}^Piujx7)qBYBu$9;I zQt_Ce{*z{p?)12LT*`QB8h{vQ?_N*bs^HRAPHo+SVCgfVp9VZ8Xu^pUQR4z)v zS^BQQXXR~XX~9ho(C$Z*_A7rU#c9W1h<7P+%hkn;qC_l+6q@oP&K42EHDd2m0;20! zl`hUPzjwx_jjk;YHeS^Yzgp`fpd5ji4dP70cN!U)$tjh}gsJ=U^wad-y|;x|{ulh- z9EQ~kTusZZ24^wLIJsa%{@Wh=$PNtdE%4@ z?p#rOK$z#qXImt?A~JuH4WINr+xLJv({5y9re+$PHdRd1)-s-gLVs*_RE>w+<;=^nJq}Ps?^9jJ{;6%b zIO{Q4fCdxYnr|Fxvg&$@X)vfpz`MGM{4W6jyPKt$1ZRV;3rKq3D4yv4fGt7RUj*NC zIPG}lWQ7~-pk$qt7A=zG)EH8w^|tfJdmbsDdY6G;A9Ys=v_F&f)C{+U+{~zlGBH!lAVs1m1 zba$*J2H|_%{l8zyaejB_u(^bO2Wyk4l&&z8+wPX14~&DkKZbsv$G|KKS*veHGrB&H zbD2#QfEMG}!G87(sX3y=!QTZWZB%p~`Ja7YNE1F^Se9r75j|=K7{)#NPUXR+63UEH zE3_II{x6bqL7+;}J~i$i#v|juYKN6=0>ncPPA8{QISWTt#aXLgyB2n<@6Uui7@mfB zLk@VDk$V|7WXxOxXIQB{{2ESIv5NE~*7Ak>>%uZ<;J^c ze+YNeO_$f3>3v*fl3tO{@rt{c?V69~as#*bljaND-?~u`HniKT&XzB~fC^1w)C^cx z!~5}IZtdaFD`bQq0?;3t&$x9i7#Fv@pWQC9K0z3++K%4~#b!kNeTS4%hKzi-n)Ck@ zXBNZVMDi@JHN$rcc~fw&pmIc((Ygx~jw4kBw1N5nl_M6*$BV8@2&04{CwfVFM`pov zQ>9t@Wv^GRUVwE|t(BP$`5wp6KkSj?l$IG3_(VL@vKsX1U$8UuRIA!AHi&5T*?Oi7 zdD5h<`rarqry+smFP+UqgsNJ)KKNJrE?9fmwO`q_ferFE&`>^OsB2^j(xk;(kq=pu z2#Wd)VUYiVDWnP))w*oz8rGIkCX+&rX|gKW!B{&!6wL zvvf>M<@UkM^M)Y>+JV(a#@e;d+sQiNk&lv zk8z*(3%l-rho-JJkgvTzoZqdzBX3av>9|+0bRdQtBTZA=$RWZeRNYO|A*+){>4ZM!_|#6BiJHQ#5#Ml%;jkc8hy)JU%PIktOP z<3;+6ZO4E-?;T+McgWXY1JCd}7@c6sJH5m5__bMIj_e{d$uk`A$^fj#zYBVvSv=?1 z7J(O~)|vZp3_}zlaixR1!ylZdIoN}7anG_c=tt8m5NXFrO-?4B9chM}oo1AAH}IB+K5R;yt#>j5a#h^^VzLYWbl!48}-8j`Xy^n zyj0R8UK6H^I6-TH(=jcMuQn&(==W03!xu$!5h{fA8>>m1RmTR`(5ho2`{OW zHeWf=-LjNCrio^-X|;$euW`3{=fN%VpTWf0o@nOONv?8_t+ zX3~_X@FJ4E48mPsAG01~m2?!%pSKpdqk`^gPV*AC3tIxyFtNzHd zuu%9q@a}qcO?M)0eM3-*iW?7ot(sGn@VKOPx$geIpYPEP`cisdz&8iYe$N4$U%9c< zdQd<2wfj#n?RY6LPY`yHYD0GOu7C94Kxwmy4+jWQ^*H3jB|7$yTn+?%%mG zs!t2uWa9Xpb=*!U9K3I)Tlq56dq(eOy57cLDfyi~VUt=PA8rJ>(uc05b()~#412<_ zP*Uzx2Z0wU48u5yTH^7@d6`D6Y8$g6V-2^X+67OnRRcI!c)f$P+x{OC4w$m>5I7Bz+?{r#U|LT0?T$d){2x49de2O)BSa{{>b_muLNQ*pc*T zQP-l0k}OU?A79j_NpoIUTfMT#$fHQ^gIy{@c?}?wazKJ4&=y}-*4~A%65jrpeFe0S zEjA+s2Vo332t@OiUKCQL*ERBxLwp{U0#9btMu26X67S~T3gLRv`l%<7jmPy^dFM&) zeXX-qI;WAdPA9P0n>LTrH%`+a+jusbU?5pEf~ZtJ==W)ELf3$;r>6P0aP2%bv2DP( zJWc-L9Gif9Y?7|pb?(xfXlzivq}K6yvt*&Fig==o=1t$bcbU4fB;^vf-vQ_xUR^yP zn5`=Mx|i?6@xlGLoO12wQSM&5Tjsh?@e?ISt}S+l1W&|ZAhRf2Y!1mwNqLIu$e741 zp*4S|Y}@EE^)~euJZ*D1I>2>87H0zjb0pI}DnC3c*Ik20?Y;0f zHlk|)OwvrUYI)1t#hZ8sBle3`VtG@=HK6x*s%7Z@?0-@eRd*p;GDmxP8A6_t)>%HZ znX_5ZW6M9KMjwUO(P1Ok=>ol*4LH4gvv9R*ydHF*di>P^Kd^e~%sk8Z+343lLWlsT zMWvys-S1LwtDCkD6o$Bl8+#E_l-RT(ax!zuhp|Q{Bh$1F2K<75(sKal&}mfcXEO&{ zI6^8~0xp#8u^vqG=YHQoyxB9dCd5n6@kc4%H!Pklm0q5>R-*gI6mGjryWMO3)?WQ`haH(#w zwcwdmj#XnOG&3} z1x!{;cuE-EEtnnJ4ljKzg`n!a)Rl=j%3h(>-x0d4(0AjD9UG4@2km#pq&nNx^u9nd zxg~Rbtkf85?ENjsC=pXQ172~;r%}Bxk+-X)$JYbLqYMoCW_AGsVI2c|A&6U~;QXl} zC3~FajRPwv;2Mf;%u~OAj>lHUW#v@L<8Q>&W?B7-h|=?}X6-J_6!!a&5eWBd2H+ka zZpWsqJ`s5VO}G2y*nz?4m758)!27GY$Gw5QnJwQ#`$&%W$xgS*pKV&Vyhhkjl8-?R zhhv9@(LOpm#QVx7X)Yi_v$NOTAW)FS+s2{}=0c*wgcYcoy=(G(qN?3)JMLJjX+@CO z_zp}bjMiYkjA55e&x}fUKe;PZlecf1N*&3s%>~BJjTYMtjyZ#NN3F%GI{YwwxIyBl zC9|12Q*`Ag0xNt~q%7p>H4V3vfri52U$YzO;a_%)N<+48025s9aZTkn(Y zpooONcg-#=xpgbLM4ArK(fpn!bqn_y=p*Hw=|U_zvKvS091|0hlu=&yI>HS@eo6So z{i94serGQna*_EYM=pY0KccL?f}QvRUvze1(IGYYRQ+Ms5ww|ZmJv<=L=c&K`vdjqC_U{xOx=#!ubWC&>czWePqm-85aq*nuIboNw;L!ACX!FR#H5 zh0PjzkCm+Ne)&CHho^(gGo72=ImRIcKlxJv55PFXPr4hpq5lp3<*&W58Giho=*Scv zMR_YQzEO6=Oe($u1|4A*Muqup8R24d!9KI_1E66#yAaJF-gCo58FvZE>izC;dLfuI zmBSu_Y&Y;i6B-#Xn0}-TxmUji5R-UqQHDo<*wQjTqsFVRk8!}Be@}U2Y@-451<9RA z5-XM8*T&tlq0777=9$8qa#gdXxyTAW{R!R6xSW{UNI?X783aOnmM9l14>7Ux{f+>u%@t8<`vX0)7l1nNGZGjgmcxT?kYVzpZ@9Dl z`nIshj!>&1Nnx=niIOui3^7H)$0v!>(Zgki%r0TM#x6LLc~^TpJ!N`wF<4)DA&h0E zo?*cKCREA!rlfYW^YUG25P87pLdgHn&gg9XWY4o}Yrg|_4JdVent3cSNur6SzY^z= z(ZK|TZo|Rr;whP&Md9zzwYT~{G|HR8V-wHKLa3oO=6c1tV-5m>KrRO*muj;YqD{9r z1GVaTq|{W|$b$Xd!R_ID5sy-TT9#+>pVSmTH8g5^m$hanw_0Xhh4Ycah01g)h+xFE z7gWw;V2fiKw(Pk5tE3ueu3m3v0ni(O*}}1Df@iHnv#`R^inUm&CIq+DL3y!%f8VD~ zx+n{NnBXI@@=r*H2{ z@OareV;)S(J8x<0QIsbL{{qb=MIC$O17SSU%Zxs|S&PjY`1T{4)NJPoX|tTyl~!JL zKge+@WOVn`j^J55wqYeo%b5fHffzipbbc{x5yk?BJ^H<3B;kGLZIaVJG!@sVRaL(U zh+QI{$*v0bw^>w`p*D6TH?{k=#Mz^|h`6l*)=SwekX;%(&gQ#slaW;O%X`^Et@6p%VbOOY9cM~Q-F%rg6k7@@co4oPdL?MzfjZinuq#5ePgr% zhgk0=oZ;pBXKscIIY(nHTlV?+6d89RB%w zZ=LQX>d8~0u-=~ZjRPyiC*WYC`#9!GxSa=f@;G4YzoR+i4z9s{epNjLnyYGED_(v zutIERJgVLzwA5SeVE91)wv7iR2^(aqaOQdNKzU~$xluY8X+hp7YmyhD-oUH(x#vMa zsftpg6=c@vNcu7%G@QZ0z;qDgGq7?;z}#s$W&vzX`5o8~XqDP%BWWfLh43zq^S zWjL|;u0{pMH+e~U&>cnz!(#GCqh0WjJ6+TK>rSE4qm&wTGBH(DfVR;bq`5rA6m3K( zm5|lZ>DpomZ}#NPt;5<}wBGyh+pIPFoNblHVP}7&zeP)zWQW%K{Z8b^A!M01RGj4B zAHpbd(V)9u%otHJ`oblgRdF{(>Y#(&ouqm@HUnzq4aPjUE)0dOAde%g1n^;c&+ z?h?YoseR!P>=mh8Y~T0L4v9a)grxm<-*0K1;SZXW!oOQ%(Hpb=)@_zWA5wm4;!2Y) z;mZfd(JNZW)}d8nfz9yM!MzyGq;0@Bszmto98fH5hFi&LMS=mK;avv3jj$)`xYpHu z@C8gT1CpweTbc`UA_PogT3K!OCIEW1c@covT8dy>aqH5;N^tG1GYC5QA_jJY=hKmH zwlfPML~vrzY~>Z9C?N?P8F-zq^U`ds1=2i-W^rHl|L8?bqTFI0Z@yRllS(6pUKd-( zo_=qPGQR<~tZF9dc8#4&CVpHY6z9+9djYQ$-UO~a3HZ~8Dk zb!$+}4a)WD1FjBu-o3B;ty>*adqKLL)1D#oI77gD^%DCsNtZdh+l6RR^W75HHuN4p z?F%R&Hzxa%OIlFeN16zsVto>bL)9{#knc9n9)kp+KFfkJww{F?7_+~sqJhQc9iqRd6vdm;&KYD9Er+>({yiBZ< zZ{$wo8|6E`2>JF4$>_N~l4Y9W40H0=_j)I*0_?BMPWz?N*C1?z-A{or1%pS%AIz%nYK(nesCKnj$R>WYCKx+&NL&))Z0V>kRR`+bR8t0;P3 zs(A?o7@s#L;~@nB*u08GTxZ^mIySj^Nb$P)Nk&Dy-y^QEga`Htck5gz!)C>M+UaN5 zKnsHnRB2;ofAp$YWoQ@KZ+XcgI897L&Y80j(&5I)gak?Eu70QhL_Q#XHC?t2jes0I z>}2iW(i2;pQ9iAhV3lWV2!(PsXQV(PS43Kd1~I~)14H)1FOEjk9Q_q4u9SneLthH1(dpmEoLPnwkK776*GI4!`FO*nNw?7wjhGr__} z&%S*y_1zatUYWRZKl63Rg{Lq_PPDmF3;FsiOl3BiGq|48Vt@!IGlQ`JYp#L8=#h9_ z0g_V*sjs=I@z>`n@&uHO6r-1xuGN4I7ZhsCS-<(r9%htYE_cW23#V7QRIyxx!%~H zTnZ@WPzY`@RXb9maSB4)Vrz*u^GJoE{(3n3aWwLyPuB1xl?|6N@^*lct|BoK0#lX1*P63ABD3 zzeb&(oL2q3-RRfWa%&Z;W-ldncayro>w3LGlwz#MGFo4l)##0S7SO)O8uZ+DBr=PQ zJqC&{LLGfSombJxl-vBu-l|!X$#cj)B}KisxajV7 z6F<7eXiYj}Q852#G4Jt!*(m9fr;%zNR!s1UEBQX0z=8<2hmU#jNljg44r4UNs!uUEAgV%!cyp2x;-IVZhSk%n?}>`pS`iu<9to9J$)PZ z^FF(pn20l<+IB0ZeR8t!*$T6EYB?Fq*1QaFs2B?^h6TB^5|O5=&n+KvWG0WC%Sc!N z{}mqSzM?d?tytk?h;$k#Sh`luunZYT0m@UC2JriIxJt-W{O9EtYO#2}nY0y9_I~++ z)Umk>LJ|)>_&M4EX~O5muhHGA(%fu}+9R&fGyl=Y3;X&Q9DpqJdjTs5ubH!2utE(D z-YePmzEOkm+4OSWugQ%|WVw?C?|Z@CxYo}s-l9lYtZG=uRXmw0OMY}e}zQ>U5 z!B82A5~5>-;E>(`?7<>w|E|nbxmkZWTD#aP#XFQbqGJk>1rj{bl#lJ#(A8AjGiWpc zb{E%{#HHnK16#eT^vojz`Mi}S`;s(v2VL5Di<+!gOB#KNj@k%xQ0Rh13!73t@k@mg z$)k@_a^+EI)x}wsQq7VyY6DJ`Fp`848B};;-l^k`yTJ;TN3G13QPhn&i3f8B`_mF? z%Ex8{8Lo8ytXfJjInZ59a2|m3Uoq3_`gdpS&>UKla3huq4Z@mo&wa+)x5%0^@(E(_ zX0`eyG9ajCz0o)iDv>guffU+N(NP1NN9BFIaL?#_&aV5QKnRGIvscz9FgdJ8z_c~1 zTi#EEK}9 zgu)cV!<%`{v?DCwG9(~aXN*%kiZ>lN?*J_}?NhMvNbXpEAXz-Zb}oF^sfZdE$D{rR zytX&P%4N+94U#PtDXXBDm{U*F>tcW>hF+R=T_2Au{3$pEZu5C@!l;7dI@ZGtr^c>a zNO-|ir3KHcxyoXE&}Rc+Bl)>ibSwK6fM8)3DT)*geO7%`aL% zy5>Y~Tv$gkebqjKLqMpnwdLs4jku}g=!i`j#v4k2H?DMo<5D2ZJE`bWBZ? znE>N{N-IRKP5qFUVJq=<&xNte)N2ayk-(>UMRReJ#)TS+e(%>EU&NyPI5j|}uDP2X ztD}spXNsOe)=^nlw1NWZ=}lii7Yi>y9#?w#;NnoIW>=*nA#*=v>J#)kcw^IZ+R7)s z*e|wdBKkrbjY#_L@m4NW^328jBQYkG#)oCwk3mKp;|;-6NzGuC&J=@(Bp|~V1XLEj zF;{!wIZGx>LY|O%`ykp)rb$tGM8j1hp@HlOFJ#+Cz8<&W6zNH5^=-Q#CqA1~{LGt= zD6)Tg+1@+0sOm#6Zx)lOzw|mv`k^j90pPRWAFR_1Y`}AX7E>=n8tryr46$6ydu0;K zGBd13#Tjs+W9=#`HE0vbMk}($Z4rnWuBT4KtM+p~U+WX3eVmka-2QDL4C>f8ppI#I zfxbz1d4WjUP9BGjFmF5`>9>PDBrj9dl1_B_x_TMQVvWJ{-g0iq8<@|aib%G^-#=sSC@8fT z9-1Hyn`TwEc}aGO(gOVk#rxcLjAw89m+TOr4ugI zlJ=pEl*-3K$^`!oq`HR75f1g01|5EmSbL~bmWTWpbf2xunaP5ahZ!_o^;&(}oHZ1a zv4>1LFkyMhTNw#l3By4IOcY!Q>Acdlaef+O;s5meC1YnB##@lecp8J+V#kQhx~JpS z=d5No(+a#}ZF|C^RV_EWz4zAFGm$JTM2^@w3p91dqQw5uKQJyHu_y? zL9`GUvaFT)eV3e@lRNu^kxR|=?Dh89yJg)Vsb5QF5zJa&N5JiPMG~^GeGwz z-$K7Lx;#SxpxpI$;+})C&YiU3O0IH0hZHa}fv?}Gw9Hnq8aS9ZXGGBNY!@`*JaWwz zP8V-C1XHU^s0VW(kMT#yn*Yc6VW9bN%6OYl46stbu!Jszrin3?aKQK-02a-ua+#nA z=xDlz$Ug|B{&>jFf)Y*f0ci7J0Adqmn*im3JLB%~$@Q<|mHw5NQAr9UhVGQuch11nH+kkZ z47XIq1K5+gZPQ+aj?!nK|r@OO9Y%%8y5RHAnq~jvO3Mw6uxK!p&fJjNuo_w0_sN zxnaDZx!^lsw2G*TVv893bBd65*B9dzo#p2fXb?!jZ+r9IxK{W{xtXlitCUPUWbdvj zPODMxCsJO}E`x4hkPtfLY@U?dw*8F`A&&4|>KI{G-2HO6ir6I3^N_1QgE3Y8>qci& zyW>dZ{bkDpnsnf9oThN&uil^o)+TtD8t1&J70$|#-F`=A`%nu#0sm@e)1Wlhbt_OJ zG+a=EA%W+tz?=Wu?$^zN*cQb%L&;dC#5X=%ayq3v@9=`dC)NMjQ`#d4Tl2pFk+DBn zIQ%Z#Qq@+r?c6q}wk%?wBVShwq?oI0+NO$@Aj7z&ocf~_O?OC^quhB2+{ zOifZP87sRQ{iG2>p`?fQC^;LOI8LkqC7-A@bb+Mz$V1`4uSln)-s~cUv3oo^Hm=&P z<^(8K7v`xw4-&OJE|`j}`S$D>v_XJdG=+bgRm`{8tB4-u&rFM5b&()1P#JyVc4&OB|;>kd|>M zvcC4}1gL>;WP`O6v90gOH-S(ICjHsm%A z#>b0k8Zl$6$^n(}9N@(szPPs5(5Rr7a1Gr57PcE4x1U*-k^8*@T3Ex&;o#=`-b9Z+ zh2I^Nju;0Laz{vqa#P0mwkq&Bn+h;bPt+s0{KS-)|IJCb=2=!lJ1e9d=>4R<=83hu zhy1~o+TS;M#qAaI$WAcyz0%;Y-qKLl(h^&cEFmu0GBZt4#ul8G@w!HCp~2W;V_CqA zyZO4hJ^+YP-X5Nz5`K7LD**kvuXOB-K*dWk+ORv)78R7gjLDxnP@T+2y{vVqEF6da zt(cdd4NuS(2~7!>BVz)4Nk&S_K^TauL4e{h8N4~THu4=p7!jl{SVQzm=o{n7V>6KC zN)S@LWSsUma;~sX4r;{B@7;-1y?@>-7H!{&@pJ={{~l35H>dJQqET;xG)2a}!q9?C z@A_#8w>u~zc>Co!$r+J$N)=$2aRb|HH8Zrm>zQko8H~8QW&ELOW2N>vKk0Nxw(vA_ zRAA*?tK*IHW-KRbhUdn&!sY#k7VadNq5y`f%rE*+C?PmkOVkH&D@ znk`kC>%dWkt{Sb>*IS)?9=gm6b^xtKG|f@AX3Jt@c}vc*m1!U;L2nP|4oCoiF{s8L z5JHYBunY(*Pu_&dohH$}dD)}u+>NcOrYC#4vq081%AFJ6`&Id=opr7-#@Z%O{ z+X>W+FDV+mB~z_ND&w(C`@{}ToeIEfji293^m)$swb*jVj8oie%=&$kOvTGz|MRG# zVTkt^;1l>B@ta(%;gOSnzE!U>Lcc))ju&A^GAJSUhl3V{&KD~qC7|#ahhe{+c+I#f zHtl9C*F_$%zrsltDg>2;aw(9UeC5^>t3ky|eFUj?2`r@Yp)x+@I&^xqLZYZ`K`puv z79Xxf>awKimgtbDXUS!K7^CM~-4B}BNDA6X4!CvmZKbpu{1FNL7i2%IT5yI90Hxbm z-5RyF`uv$iEW(eUwax{m_L`5LhaInLeJ>Z6r$~qn+!zX=K-jkM{eqAdQ(OJS)l^df z-%HthIId|?5iVce1KH0>*&I&&23}-J2P0}F6feAqfdpG+SWFohDJ9)OF(N1w3!oVB z!p_Rp^Yit}YtQR0Dx^TFM3A<;x!td>iXNAX<#Jf(uXn%e_LE&(&ddw>a+{c&dEcAd zVe~N`tC{bOp4-ls@8yx3^o*}}ABC+a9!!p!i}9$Whwiw?Mpjy|FiQi8d4CM5T_Ton zx{Mh2u$HLOdMWFS)%fOHCugg(boMxP~_Bdexz7^)#>&eDJ;CY9F${WCMZ zd3B*)zGD%+p-ccDIu9DL8E3UFb{Zn#!25G7;=WUa7cs=(xAys0dlNMLtlXl|(bd{C z=`G~X;$wA6tA>XVG_gGS-`tk0QL+T$x@Nw{+0Zx~hBt!zWXR6$*EjPz{OUI*O zDf`JKd!~EvW&Hy9%Rz6gn)ApjT6M|Au;sXG5`{g<)d(#dJ~dwBm6XpgW*?a<*wI2C zf4F#Yy+s<>JC0{swRRVcio zh})s-grZp`b|i@P#e&J&hd$QW5LuRJi`}OPd>m=}g0u%n@Ij;cDDslhendZiyR;2E z{O|HOv5TW^Ht+qEZ9hpymVNAy9r};DlRp{3l&1`P9-@Tg_Tl;4$u#go7Z2qYhS2H$ zU{)!4w4t$bzYE*kIpQ0Tp$Ab}K??N#V(e3nX6JPV+z^cj7uqvdme69%k*Vt}XGRLn zQPkH^_IQzEcy$iCtc3ghv~L@Gyh>hu*J2a4@u9o@>8_W_C9HKA8irY#aV#6V zy9B+*T#Q6Zv z=n1U|#@T1p#~9Ld#^JIoazQmkJHX10r;4&7W-fymhi%e5{Kd_m08#m>FsC`PqUdU9 zHkVVNRM0p+8KZP;JdQ@b3@e?Z) zU<(M~sy&Zg6fLG*XwdE;-GN%9^xp#}H=(XwICj`Gpm`iu-jHX+^i9^1B}%=+C44L? zv?h+A>Dx_udwD&8|z(uI8ILfy>aXYjy;vd5$j4^IcPIOsC!NFsdT%p@ghds%VS-?+O(66)9$L% z+^hL{oT#M(_@;(N$Ubye>5*6z0|jcrt-;p~8uL^_r;klZRdUiTmJJ8pgizbQ&K_b; zqd6mcbOmdkbr+b14aAFVX|jwFQM^#hi)islWT}0eR!Frw$K={k?o^Ww!%IVNZ^y@j z6(77U_7G_pwkfBO3(2)s{Xs!cvZ;~(AbqW4NrURcjI`p#FfiipFu$0X7`3~n2v3rt zBdYWrb?;gIW*%#?0^MHCo}Z;BHqLZgp*to|xl8k?E!0Nk(PViU zR-W@uuJF45l9ee2Keb*d3a7JavV$3nB&r4Vfyo*eHqn}7(#&#UT)|d!?>w;(ZgRPy z+GtS#WreC<^K$DYgNV!TpcpQN_H%uVN}S-!Y@XI#EfD#UMA#o1Co=hHudEw%fpk4$ zEzA|7G}tZh8YdvOp|h%*R$gbcV3bnoDttMFP9gzp{Iyd`s3lKIBSyZAVbAEs@jE%I zE8zk%<%Utug^6~5o(v%Zv~px6(+XUA+7dsx7u~#UKPcdP9f@ByC2qE>71^&7 z&dt0qQT+(`-RQS`2ecXTzPIfapKn7?UhE-r&fzRkf1$)|FO zO6y8Jq#D+Dh>9^Va>Dnk6mS4!b+=mM%XZD?*X&U5HB7C%=d+agmy(Ae2^(MCaDn6Df)e?K4o-sJ0 zBd!K5g}Dk|{=_pQE3BeN4Yd@8U8^T6bbYo%3cM_1#Q4;M2hcQOV>z7 z>n8`1O%{qScK8xBJzbBvl&>c(q~K^eHLRGK%NXzoP&cx-lHh*>W-i1^(p*^Wlge^; zNz$ZisrLDNP(tJLn8|5&H40tTW*EfKTe&d>zy zXaV2PUUbZ(zV_iXj;PX%1P#U%_Rz-5j{e4xv>vwgvVF?_UygFzZ@;5_@}Tv|IAs&X z%S5t9%yYNRg21bG5Ls}wE9T;A*ao6mku{n0OJl!FY1z{*YcIAWAF4_BMBhx(AEClU zUlQwY{kJ+#x?A_b+LA8uripdC1&*jv5er$aJcT%-mYe?S4;Ty}cR=OIoQ}3r2wDAp zj4tq)*NVx3$6~>*nX^H;lzNOQzYAQd*R-+zv^)^59X7}a=)bAvTnp<){J`4!k!!<| zhR`B^j1Zrdkn9-sr;?0-k)$f1S;bFXope)9&DUWlhvU+y&j7P6i-|s3t6$2c#)ukX zfCc==*;<$nhX~_*&fvQ>jZ>$J9M#;S(rqV1>LPL-=)pjx%FJ;gsyIJ!lOD;9!v?}+ zp>xG+g~B#w$e`C9*f0Rb21C%O(rj{4UQS#0D903x&}Y9@-kL0-1PsZ#DoEf}^#qZt z5$T&LPBx~a#Col2%#&?mCL46iXtWHZ*offWAky8bH0UrkwC!`K?8#+Hu08JQt1Dg! zVo>$F-D~o7=}~iPTr%{ieHed5*MN!2w6Rrpv$t)liy*T2g9($L?w54vE3@3pLJCwP z+C7DZ172HWI`Rxv*ATx(SBL*IUUjj>0lA9pMMpq`P#w+2R2Pdd=ayPp%p-93AKdhk zHegQT6Mo@q&_;2V4SCEYoiAvkdQG?%5&`{#ZUV|~oTH?}IMW(?4n#kRYHTZ)IOa{F z(;H`1w)TtOT)gyo{w{kf6l<}Z+2kHqM-7C7OPqi8fHDHQ&&g#@`0PJfCGMLuXj@cc z%bv#fQaQ$=uPj5x+>MWC(f=VSAj-y)!Y`N#1IsD?veU>M z(wj)Y25)*caJ(e#ivqj4wrIN`t9hnzI%wVBTRP~08ucZ4=eB=g@s^Sv0rCcHMVwx{SL4mR=fWyPqW`j$GXCVa}%e|di=(A9xD*`Mxoe41EaaMJC z^YqNh-CCdTFZv*xG~IK_KBou%$Nb9GM}ADmB^rbDQYMLn{cRU7Z>by)K8wZWo z9AP$q*m|1`c3`6A9?BQ5|D#9z@-!53!ckRP*={#FA;-0mI+DR$>|iU-r;$C`L^gQA zI$~4{2+Jz^#oiN9C2g-8^DP-J0V#%7Og6h|oO<6^<-cl=r{_7)T&{iowzHJ==kVfa z?Nu6d#tiAm6KlsoWqwt~nWK^IWX|4$N=&6v+FHPDwKr|6eJd}EuzImvHjE8VhpfRG z*|76_0R~Z|W>D_L+ zj~gSO$Jzt+F+EL732<0sYN^8VE$KI-6@>WK;~@-jYQhReP!uSvpuAF)CeX$`Qn^Di zF}Ju!x1?fEY2wZLD{Fb>-tXWqLEv|Y!!En!OK;zzd&5CKaT@&$-oEXsbt79CJ&vca>8b~0^ybs|f4=WmvAFGyY-LI^SOkLqxCbPfI zmJ_WzOz^DF`7T`e_wg{Uu_A6~)4+(o{AIyQ%*(vb5|jfD4yEG{|S(xFI-r7yQU zd3?HJCUHPDkza+H=hS)vvVR>C7A}2M9aKTwf^BRs@nNL#yPjfaeRl(W4XU7<`tDQi z?DrrQj=9R=k(qABU`xuHm%YYx$47pYuL~Y!J?(gD>=}G6a#A;SaE@R3!b>&`3%!3i znE;FAeb>#id1aO>*LKmRk|PxSdjv}S9Ov?3RD#3iys8M#7WgO~SD`2*z{hTQF}wKZ zw?PJFXe^KgI+ugxB;L7J(_&UuIuDIWSK%$^QE^0;VFa~ObD#HQ|jRm+~j z76I4nWN-pP281dlPM=d9AWu1%1|&l9KTLg7bY@+!?HAj2(y`G|$F^ z0t8;LpVFSmz^Nk$>oyhyl_msFkrbMbEw34LyIdS0yXP+-?^rW?h4~p7xcaHyx57o4 z{LdYKsoi7u_gB}__ob{(jf)T-m*(5BWPbPCQEvtong8Nw-R(E$U4&c7bs-%;PuqR!;(rl@7xOLYS#Y*(v3k#Uc*| zQr1)`|4i|Q3YU|lM<`h?6d1%1oP#lg&}zR5^*S{9rR6VHO^N^&Xd;|iW7tGbOUSWE z^ZP^DuP$rFq0Rllel#^g7v@L4qrdt-qf5@ei_YfjmkWQWd`kY${HG7Y@6(~FP`R*r z)A{vGR?KZ}BL$2JTrUu+vB$H)XfeQoMUcaU%hN3!T{i3$0jQn^m;^Qim(9HK#^(sC zId6ozSp*>q3>NYjZaOAzX(8$Pw0a9!zy%-qLrYpmu0Nw(0<{9G9O`6Ojf*E!NvDEK zRZ+EiO(q9{&`bD`d8^%8BMfd4%6z|PbX?@HI9c(LD57-<^(Nz{y9?<^2v;%Ii#~nW z97|G>1q(}-AZ6odDuEetS$2rGTt$HA6X5eH$>mVS8gw4<#xZLuNZcz#d@TcrzwG9leCMWK_8gP!&sh zM?#Ba2O<<*)&DRiI)~L}5$uOXRioX%gS0{jlCnNr?#4By`T0gSZpY1V)Sz$Rh{d~uO~=)cyQ)s+KvSx)tLJtdf9g&l zWE4PNX@T2v@RAjNJVr9W`sdko_B|nWJ~e#Gta!v&)UU4kF!C1m$zUj^*qua*&F}h{ zX|g$pT%elNmhwmYu4AFc*`YT$@Q-C#aBm|HW?KTj6`!HVxVXPUJrHw{i8$0j-?mt` zzoC*M4OUq0a!Kn>!f(4Y_lE(hXcm%SDebK$F350N9Ffi?vtAXwTP?#!$b%Y3-qh*L!v9_-`@=bvCKSD(+z)0uCZU0nc=S{M+oPKL|^g3g87TjLL2 zJ-&5jr>J9($tHPe?A$5GNpJ;c0h<_`6PNA!TJlj_fzs zF+CT%-r?_Eey9}hST)cT!6|37K2g^15_c2$d@A@dY@SyzhUnUuvub7NkSo1>r*FrS zNoHR&V>(}aN{a5%Ym=^Q8%z%=0}DwW5-FyZzgK%P0|U|*ihv{^w;)k+A*qB!MIll0 zekf%E{fNegSyF~7O0`?-3UD*vo|%DCO?65W zW}jCYN84G5>bfdHOnD7T1oGzv%8cwM93?L}#N^+Hkkh1G2EmHS!r zz&}{C(5LYk7TLNL?xoUF{M;mC6r)Y$pQ6<7i3EGK$K1Yp<4@K@ZOJHQq>31rZ7u$2 z0&4Z&sb{u+JD(5G*Nw139PWof65pfJfRouY0jofYLP|4XEkqMj%`QW7C=%9!dJaOl z!k_y*adGIt@tR7rLoBlzg7^W;6@1|){5{~#31J3SZg1XBSQ-}g{@%DYx;AG#e0U2q z)f8j+ZUCB)zgOV>+!-&pXv`xBA$FUusXOX!^3xzU0*@uZXtLKS10h6~2*=P`C(~@k zsE4ea*63^25x;ZYoZ3!x0afm5?NE5)E=%k5UXu zkpY<^=c3c2gBKnAS(Mk$WOh(n;esqjB$I#z$ z1ipoIDiQSqsF!~*;*_Y;NV;E z)YdfT6j=QZ%e_j*SY_&Sg4VFZ)(`({OY~pP`v)0nyV$m$3fOmU|)xWvRSD z$R~{2f&3D%6U60yfAi#K_1zm=gy22;=!E)bxys zSx|tnqxGGK-yf}p{bv60ivCD8Y9U1%3ak^K%^}k~iL(mCk!__QXap^aGq3)0A^kIU z=LWX(0h2e3nhC<0ph_8?F>h~I^1GR}p|9|^Qpz_7t4hS1j0O}Y-6fmj8VfI}#2dFn zR8?8*{r(6Vrm1Kur>-=BD3)VuwQuz+cB@c%v4@h^^UkZjdPF!TV;F`gEqB|fH9h8S z`u+bm#fMe%Tr>v)0dzUyCo^vmzXyJVLZ_@G4!j8^@HYJ)xDvn`%p17MkGIx$LK z&2MU3!~$oXel5*W^+(rgk&aQy`E)qMo^PO+pfxtY+t)5)%FAZmW0UUJ*Q#_9)pu?& zSbx(zFAMy5PxdU&-h|W$w_LxX@&rc(l`S9v%LS5$o-SLf9uGm9x}H`)@mW(XnPZ7V zH69#yF~EC~^Kj#Og;K-e;?t)y*@*NSTYy5aQ{g~d zR{BVCHID9x#nyrATNBXVes!3`yCcF|=)BL2ei#dj9`=$QW*l<(Q6h ze$z=4X}x#+c8j|E`Sq@7u&4gj-^tJKHM-5$6op?l{&HCDCPa8=7ajvch1~#_1O_Y+ z6C=$xgvqL6NhA|$oeYmI!?%o^GqEp=!>d>19zeCA{}Y-gxEc{W59Z46Re{=iID_7b zgq2WHweWG`zlhAamJrP0ty{M5(veV$$Cf>pA_L&jgTWJIwTN3zM8a6GpN5iG`v6K{ zxT!7sd8HJWtMJ}JW)&FJNbelqiv+6yam7dzciPa2@E5b_J3ZdS>$X3)QU`}-VP0h9 z?2F1ckRq?_5!^Fc<0xc><&#sCs3@9l^@$$|?`Af~D7yeXy7q>f@zVH|g^b&G(=U|z zFJtrxT|U#*U+J~g??d#-O(3G0*^Irnn z>Mo>ZV~+*|9-~d%v&%AU#N8jQ`88Giz6ze^g|!AF2sIGizQ1H>;Y5?Eo;uJB8RWZg z$%p>Q#g~Zq&RQaBam}c_-V9@ev-e99InOiO-#(u*ob%znUJB8xd(mZIusn!i84hKv zJY0E9bdmY8c9Ze53EjGPUlr1~U}(Sb{JT##m<>L9Da!3`i0*^3*T}mLM8h1YrI|YC z5!jc?voOf*JIG%m!emUTlnEq1R!&A9vK)&JZ6EjrE^ggO3P)Rc{apN6yss~_cY3K_ zJ?zOV+lks%1X>3i>l!>>r`GL2usa{X(EMH(-2L{GIOQ2Ql1HWRnthy$7=9Kx{uXuX z0ihkJ+2$L>&E>W>=ZDoftTLHbxLIRxG{V_(Z=Y9Ee?HSvxyxrx$E))(6Z&0>61|#tCVoet$(rETF^nw_?yU^^xY>NMy;^-5 ztYjOqT_qu}#M;7K{Ar>%2-C%YS*K_>GjTzqF?A+oa$>^1-^m?OcL`5xgQJpGMmF}F%Jt333a30>Qp@23R|h*g zyPo+uUi->N^OEV-+F(?_rMEhRryG3+z2&7dUOgV4>V(;{B(V+vN}(q~QLm|8%ZjU< zCrHZ`ou6juR+Kca=^HOmoM##lXIIo~As(SuQVcYo12Tb50?;H01ilPd2#_p9W!{O% zB~;;CNqD~ZDDlZwMgo6*>#;i*Fza1S$2>23r{3)3impaRP`)Lwe~xumd}B59IgZ7i z7Hi_ysj_y`(yMd+F8<7o#0fCJ#5tgDqkwy2YuC>J=RtjZoQaFsZcROF)+oMd&ssfJ z+ND5pII>SWH|F#id7>}I)`P9yjW^s%D`9r0p_vGT#>G-x$(NzyQ>FHauk)@U)0MT) z&(BJ`K8V!+H=UB~ZoWLXXF0@RG91Bmiid}{en=E{Iin@oJ;nZprpB+mtX23b6w)c{ z)YM-yNKGdYkkgW1YGA{;oU#^~RNAO$pzO##i!OfGgD$75fz${%F|QKlCAPkC!B8fL zp3*a1R*8Ntm_K_67~5*_n3M|j)O}2q>MlHRZCzIRw#~c7q1EMeakg*X=08pBKM8o` zBTiQtiqBg@u&2S5+L|n^i?~Nf8=Le}dCUXbHyTi)dBBTzTf${fiHz^gu|KL#lhaTZ zkH+WQaN|p3vxh@en4vnuyBv02mGS%U`QrPg{z$iI_gnoxFLucJUhEHUzpA~vE*ICv zNB)P`P~LcKjmPRVc`uCmRtP{#zW*??KXT=6{O*9Q7qOu3mhElLm$L%DW)}Jv2mV4) zcCM;?y*(9t-TnCz%1m?o;Sk~9fTcTzN?f?7p$0vA_+rNuJ7+pLG9r@45n@ak`AC*% zUZ$u-UOW%4fbmV1V2{QsT*!8QS`|Rmn>SyZ3>9tTKle1OW_z$XC1su*2Pf*|%`b11 zT!;$OCT82)U{)G=xs-7`tF8RmBvhe1O1 zmnT-kQe@EA2F_gRXS5|mG$o`-w}ndALK6RGK}>0=y|8xqRTRXJ2w?wQK+xNLq*=<@ zohv^T4eTd6*h`@!K*Vs6r_@bd=FFu3*v`dKc>b(j0riGbyg24ibJJMv`YQYS^>?d^ z#fYeEThhqF^^*)G%{`tJ!c8>Ox9XQS*x5CVRbCT`% zqTKxcZgF}_DYyMHe&hOFscM^5!Y+R>KYwf$yQN-i+vUqBSm?WO!|wf-{q_7#pvU)N z&K=%-N%&FPJYTacr^0rQpHVkbt~_duR4{mL?-4D6cCj#eT7uDCM!VVNpAPr_m;3uK zNZ4b&C+U1#2PW%#-}lkI^7HJA#%-yeQ`|=~(x6cFdoxv^+uWCa1IpA8-pYAAwBq>pP3FcJe&3!e zJjLK?+wB#LE@=dA{X*Y+b2#%i7;~+<1BHkDHX_xJ5_K>T8BGn?>ZvL}V){ol9z82& ztBV!m2l_UiIrbBW;%*Ll6GSulG^3=5PON zxE|Z=_K_@xrakr{ZQp%b{g)`|&#GD?HI3AgGnCZjr5~*e-$E@RK%pZV<_cTcS-|7_q?_;)zeuy5|a5Hn; z7ID=#T2=luYHiKhnWrNAm*IhEA1-GK#!s}QijaigNno$4X@=KMADF%?E2ig@Xoq=i zty6j&p5=RzYFqhblW2YEJBy4Z&b;cKGzDusi_#HZ=2g3kN7Fp{IDL*ByyccBr;OfD z7?@i5h9uB!{w|Nv9~%$eS62kZOKH|_Qi(%~KVCY=RF^gIh$Q8^!6ttP*kuRowYl%? zU{$LNxo+0)|F^9+4eYzO%E=y!26oDM)sLiRWY3qYJU;qgSLJIfrWy`*TG&`@LwgiB2Lrx zENCa0Ywbe3qxN2znGbluqa*bz;w`E(UF;|E^iaUz>?XP(SZ;6lto0vRRR~Gi_>3ej zci!r$3DE4Vnox$2#=Xa4HEUA|sNl`57Fsjkhzo~enkO$OH_dhRv2AoYnoHBT!t#b<|)By_AY!`k4&*U6on=F(AC zMGho(IlKHB^@tmuJYlvu1e?2dMmJf__Zs`}gZw3wRH4?DH?<+yjOL4alVJ4Z?N)gC z0UrO$7L78+w~tr z6vn-acFdDqfJmt`>zY6D(>w#Cv8AlO7}<{Pvx`F1{y?&I`#AX%oHJ;oO%omel%$um zunreAq55*~LgKs_RtWW;v-(Z*KOf~=Z?1y7)hnO1m>QVgy%3*ZIxo9)O3~Ej&!#1_ zSh%XQF2-4ot2wue^Eq0*^iHILm;?LV*mn7r;D-aa3Po7zZ{OP~K{JypFd+N1gMWnhF;6k-KN7ipC-0Z3TK=?X4(t(==u+U3;aDU+|Ry~_P9ELVzRFGY%% zGmGWvK3%^n&PIC&=UX% zo`X`zawmB=^P+Z%vEv7fusmZ0KjAK21@C9q@9vkY%qR|yE;g(SkP3SjjVNq+wrt+g zx1xs@BMLNpxYgYDW2JM;fc1-OUe3i|8!$Aw z&G02ZOuC`E7HBzZg^$uxu;%}rj>jw(Z4>QTZhH6qf00Gw%M~C zCY!A3HQ>)pRL)RH#MsO&Vn7Wh3gr9I3l{62_@`V-Apx2Q;z|e}wFp>VNM;w8-bY`b zd7Q3i-uk{Xf)Eu(+gb9yoSJkx4?p=^7iHVO#arui5grI83Mu>!Ol}ij6_@Qje9^Kp z>3LJ+udCD$Y5kAHU7`O(mp@DSdbk@qE261UZAL3Y((#_ZT_PiaOAJ>}(DR>+Lqa3B zNjzr;4=B^|_C+c1&Z;59)bqz<({kv0?Ik#tDXwom88+WsgjBt4zATEztGmQhOe81= ziL|BgyxqyT9~M5yP{ejH4{sA43_kwDQkO$gzjeji?!&x47eRy#%n^ihdTNs}{NGuC zf8(N3gqDfi^(vr1&yYAMhmt|FQ1Y7ntyAgUuebYZ?N#`i`-QtQ+lM;v5!s9P9{aEU z1qDZGZTFY(eUtXHNh7B#8c{}d-DEVdMUr~k#TTRSu@t{>83Vc@d3GmZ%M~<)P8$W@Z)xhbyM=hPjG}`3CPnTVxVYp zmB_9QM=~5JWaL>-UMp#`#gX4mPCjH*jAB3|17l+=xh!eH#qd*3hxAhP1X)DTYpRmv zjV7R<>EH;7Oes4}+S!Ic6aD*-$j$wGn!=p_L z?TCJ#Np~R!k49#Nw{$b-r)8|sVBApG4U>I+Yx|v?wUc=`5NTF0x!%5L&_AI1s2jWyWb)S1qNb)AK?%WU4Y+SoYBzAzE~T^creo;gGN{S3jCp!xXNcReAVs!kr_7 zpmf^v>54vmsG)o6%`iVSV6kF|MnT)=@4V6TDhbK(+f3hJ!{*-i%_yU*Ld#+dogL-+ zc)5=e>Xq_rUnI2I4YD|?yJaxVV=UIxX*B;lx(wJK&CheHTeGz+ia-X(+zd1-hwYs0 zp-ExNWbrjTxgf5x>PZ;HTIO6MsdTc9v+9xI7+7Q$xN-Q$jJY$&&QY}YS>--98bZkX zx=}wlclJ8|Q?U4)yQ&N*gdJE`1RDFJ5Q|m1Jm^%i-C-5t<=kxaWm>OJBy8VATZ&RF zJ#$X#P;=Qn#cPPgsW9pqv?%M;)sv08uu7e|LB$?C+4LY_2E+`rtAgrG;;VAf&a&Rq zsos+(yf2XL#7i|4yh-G-?T&2_{s+__sv3wN;X=#hZ@%1%XUj^|f5i&KgVPcfXB?Ly z(r9E<*)q&x8eY}qr#kQBS8r-!#eeVWNjejrRS89d}=6e>cT`-oKCCD6>HS1LI78-hqTofvmz3i*+`0JpTF@ z5wLu*IfnTa^S|U~7*x28bn8L^R)bDA2rGACfAOdEa^d9ka#{qa0Tw>=~wXtBBSQqJzsv9SbhzaH= zv;~)3t%NLsCVYkEt^4MJDs#XM#Z_%f+7p;f3ZCs0${UY-isv6_g0tK@CZp@ST#qkw zv5*@xWIGvUc(+K(nXO{bC9z0JDA4VwT+wV*ra9X?YQW07@aL#3E*e|eWO;XjF#Y^u zxa(cWs=!m4YE}E7;ksuWCwuNV-&8Ja*E2Gabe65%$A;y`s^-U00S}9eL(n=%kq=@S-d8ETL#ih=-tfLw|SO0zMCxTAhB)F-J!^V zM_0?VkIY%%>s%2v*j;8Ll_N4WLapw|RX+$ySU z%>!qP*W>kOSSu2c(~!M7J*5VblTvHo26w@t2Iteaz5SW< z`D?I8W!#?)?HNX1vZWlAj=$*lrQ9?#+(zzS>v(+P%(8rgybeSW%L-Zjn6RY?_d$rp z?<_LcS$MRJlMffljlhhVR7>Q%beVP{$E7cyui~3+E=OdVm2^FBTUSGfATlO#tK2^k z`4@3fb{vbkQX1NtbsaZnx$@vdYG|X?t!H3mD`-baWXsiJ0pDbK%cBA>fJa9cn0x30 z2+hPlI^=T~N0@N6&fldAuEcKkAaR{H_FD;i)a{aMPl~Gos+$TQkqWjx`xxxKBZLB`x*F3ISbg+x=r< z_-dn%U7xG|>2vKj)K%MMY4g9iZvYtLZ2U)`=jFxgEz%a#snAxdEo!Agr5W-8Zc~9?hWO*>Hjh1O%f(T@1Yi!G7qw;Z?o}6u7b( zQhm#uTrZP~|DDj|2d0f_Yq;vN`xG1Eu5P*LMNQ?|nZS!etW8g{0YTMa5`J`bMB31-xo6M+aX^Ze0FQGEJoQyRBSaJyY$e+5KBZ)0Pf$ zsu|0be4H>vKziqf5OIyNYhUG8nO|2`dmAJu(g+Cp$>0ui-?LGW@fi(Ubhew?xytgL zGTKL~WKttHoOJCx5?I!VhN+Aq`XsyQ2!<*IKni(y%4$=ya)0JB{r9VV!%GPNYY@`! z$NJ|JbGfe9?=EL(H0t2uEEx-LI}PWfG=Q7$=HSL}6DQ-Lp8|wn3B&FQPUx9-G+qc& z#|;D^b+o6iLlzE+y6cdn7&O|zjV?W}PdPv{DhoX-D9Ha&c z0|Z(oQS62o4zmwKeFk;#=39G`$WcmG)EklM#+}$HAZ<3;;@VY7V>mZ>)MTtb)Fn=G z)Ew(nI3-YbofCuagBJk@3?e34LGfVD@EHM~2CHn)!~kCZbS4n89fc%{rJt=nwgogH zZ@m*Q8uv^_pgl&wAb>Bt{v5FwkVU2h2=3DZ`2z@6HQ>lmY2HE8@2vwE<2K)nS~_L) zjatPVUwf2jUA#Jb$xy8{85ZmB+GksT6ZejgRwWztH=V$Hk&&IPk z_v~m$yC39${21vt5t4%|{TB;+&&K+i1>R zQ7+UnOkZnR#8L6*Yy0A#hYKfQhZ_ul-}b8rxOy#w6^+oXD!2q7R*@3271+!W@;@kZ zF>}VSlDVax`TjaM8jBd66f#{v@0wFKNigo_$%kP;AgUrTc%#ml3i6Am`G-^;+{3dT;=^??u{pKHPp5Kh_Y2)_y^!>E&a(Mo?OE4DE`Lvy%@qC|3$=~`hHcj~**yX0MC%)fj zPx$tUv+(nEzpUd*Cg9SAg2VGbEgs~-TvE{NN(-r$YEh5LHrCKQbN33@tgS49h|fU6 za}NU@(8#_eW}nnc@+`F|ptV5*G@w(ViEmV=oc787{n%1NMI{Bq88S-5!UM#@$ODlq z`kByJs7#uFU7-SJ_j=8)$rN3qwEDMb5-Z)cUcx555cK^bdI^3)W?co8PK6eU)1dVb zF98myumxplv$Oxm06oNMaeR?7B8lBG=*07AbN)zz;eL;G;N`%9Li{=A#lOlQ>Phf1 zhNJ5VMJ9J3Ga?4T0$~SO0(!~<&yAK^Ry;T#knpy4$}YCDN~7L4iQY$p%%eefe4#Ov zRE0gCZc7n*J}vSJ<5Dg+UJkB9%+@aj_QHbsO)iWBK(}D>_3)jg;Du=+X9qV^pNGz}h-IU<{Sxq#qKKma&40Hy?3l#_`0Q!jRE&*@`jv|iskue+h_$7~9w zB#e;CW=vJH)(`wul{hVy9b9PE+nmZtTgm~9n?U3+JwR+ytED( zBzj&{YVPQ_UZO6PiY%M>?OWhIM;oQb9BGY9=Sc`X&@_^ngtzDjXL5q7vFT1ILqY&d zNOcxLZLb5Wgr))85%d@I83pat`eXOaNUHXW5qY=!`g1#8<}til8|&&%n~%Cy#+`F} zjZ5a<1as8a1wc_SSBT^*#wdO2z5$;A#=SATUmzN>n4D6@0Du?>%A`Zdd`v3UqjEyS z{(~+ES+Y)l$lcuG4@EHuwIRwq2v&uOQH%hH3lM}tQ2t$k{`VQtPQ{Y8Gu&p-U2RNl zC@KShSQ0*OQ__$#r0(6*#%QQNW&_Fi-9QO@I}66Ccjwyh5Wo*XySRD~6hdRh57O1#Dd7?>sI zL;@I?aooUtysy}x#z?dk>A`puA2T@35^XW;cO(-V4k%%iQJGY@U;#KR$igD`C6phi zqD5GcNuW?624Qg%j0a_OJ||`pvz1ZBb+)3Q z(LkhDf4ep$Z9Um^gAG}S)@gLu31WX2HLTPpNadEKvI$+}ZY?6=b?%8CKIT90bNn|O zR#Gd92*+*w85>O~ARjUqEHW4&G8mT;gaoHiuqDBp?ZnG7NJwhV*uPyAnN!Yff@#3ZBw=@h1TuzZr^l{ zv$aZAZM&`GrgQM8bf%J@jg3`<2NP=6xjyj>c^`Oef?&)Dl@sF|S!s_%2~$EwTtI?P zzPF0vf(FseA4p=dKrE>;3n1h`t^!mgEWc&$xq2vKb z@PL|jasVvGN35%E!aX^xu&7{fE4OH#R0V1@YS3lf{WnJlq9T&9D76`QV%~~`p@9p)r@)+{^npBT{9ANk|BPe&z4zs^oZeZe z%A36Dbe;P!Z;qMmaR%l0e*6vNFq`BSIo1>ac|#fIltb^Qt0x1aGN}Wx#F3IynT?S3 z^eBNeBuf%FKusEvEc*lJW$okPbG2`X!5Dy%%+Ylo)USU7?XfH#PZJy-nVYN%JP{kh zckW0ei%nPq=+R|C0${F0${{QOLLRkw$a&&7HFBbp>pykiIj>VIV0(^bvyrgy^|fYE zto?O?!fdO~So!^lvTTNO66e0=w<@si6RM1;Yi*l9h-G zc@AW^=xyPY1PmY`M_tddIRcQ-00_>05TL(m_y}sk$(4WuWnVr$YrbJ(d)Yv($__Q> zupy}v86K6+p_G3ukOVCsi4zFUPUeO9m_}8^-v^lC^nKmn=*EKc=fuqFzFnvvU=JeV zEVmw)rOd9^AW0TbSPup_)VitSMlCw)^8Q>80a2Jo_9Yg&Vp|84h(Y`fye^MyJ)bnR zPFg6JvUk(%zS{m;|7Gp;?52On_d_7mB!|i>13INaWz7~(mEjfSx@_#<@|bi`yK=M^ zG#VgM0~p$ZCd!b5tbvoiXz(j3;l^elJ(H7DxBw|!| zwqIJwwiy^3hYJM$=xM$MUY0 zG&JgZnZ?_!R^#6JY>SIoLlPdqbkXv;ruCLOSg#+EPbJ6%J>|WN3((1U?F@82g^!TK z9#<4Kr%P@&2arkHeD_*s^lXI5F~B%tY`eh}GRH;-fo$wptAh~wacmrVLM9E8oz2A~ zWxEv{D`SDx9mSWzgo5@g5ZXa$ zTA=g30ngMsm#zzt`&cvv_#W|pRwCvUqOm zM&(a)WM|*4>$Yow2tX^QE^&8{*;v0`KH(hxXr$-0uGdLQ5%aa$_%`}{ z-^%t||FU_I<8!=k*72hc520;o0f(}{zw@ob-&f-3!Jc6mS|M)vx7RnfYapsLxX^GR z;hVi*&60*A7bqc8CX}o>ycY}6HU%CLUooS?Bs)Hbwf-ll0}L1;$lUJyHsGzN@mX%< zwmvYTUG-pHOU+=b==!3k`V*33Wl$4M8bTh3O#%Rdu=n^ovd@W(KNuI4C`M|C{?WVn zQ#p7TKaVX^c~f7cq*{EJN4lQ6XtXtRPUGU*Vv1SxJp~F70M#&9*s<#&e{?m5c7TxR zp~@+5_Bb7_36YvPZ$8Gt%J#5&B(Nv=JmY_Bq?AEPG%MPxH*d|eRR_I(51&pMV|C9j zj9WQJ0Nks8YvxPFWv89cSHf;D)6G+10!o5(W-gU8b@3YusswN;Ie>;G8M+_0H_q93 zk2es2P$nk;8CJ0u8b;C7t>cg2^$s*9Psc~K_ym@AsW3qm%zuagWg-|+{sV&e@4%o- zveiJ6Yq1G2Yw>U@wtl17n-LsF-W}2LNHa>Br)NXwiua=QQjUL%ttz7}*csfzw&b(T z20a}{x{W>%XAUGu;nW{{vNaTp=SR2?bmYwO5f71PPmq@iGoS%gM(xxDsO39_5?6CG z#G$AeaDbjD6c7jq)!;^C3V$f#ok-@A7$A6Cj}m7^X@_a!F%}5AIR$sbcpnn3xcpi^ zM%j7nF*nO7lksCu)?y<XW?xcX^H$Wmfr37guDt4^;BR3P5fT#x zeRXKVCbqkt&bz<7R~+k=twFL~BeX?6r?-DV$gbo%&bUZ?;v==QCO+@KBt>Kp zeiWrR4WWRI=GM}q&vOAX9(~B95^+TYGq6>Df}8RNS^L*2C>D-MGk@tjH5zOBFz!`N zmrEKJiiOwv$4d_!z$?RhsbJ zyf8WqZ$4H*Sv6nNPstFz%uiSII;#X`oXLc@c)v!vt|R`4+t_rE-fk*?>Fl43cMdP3 zU^P|~zt>R%ClMkn4{x5u!2g0utLSVm8JL2)JN=QL~XT z{$iJ@&M9Cvf1Qq*b0c6XL|U z8-dD5pchr|b4C`=4agv*xQHty7LR{|gP{AH;@ICeHT=vq)-Kdd>sh0-kF2NvO?jOR zQhwcz2fPN?YeD5$p_3d>0a!3E-S$r;yH~I1KQt|e)p(QHq(qY%#gQ&L?~=bpPsNGg z-sDy;ML)XMS?>OK7C>;~7dnI_D2_8pXs-JdJq$ngYP0oM2!GA$@+*z+xBL9(taTEV zWyXd_a6fuSOZU=g;g=!aVr*YmxAwCzxth=x*xv5h4_#W&ojm;s8$9ZZ{n+^C;!OkH zp^p6wg#4_$m<%>c+f18EMmxri<6E3qLl2LDqeK1IIl}(s`#;rq?O4U;Uqd24P=-#V z-jiL~e`qWUQ0}Fnb}-pvi>l>_p=rdAD5cPx?M5gcGZ{F5YoK^^gk)0Gfg^OwxbM?b zWD&4-j$jf4*g1KoLs6{_>M~&Ex%@baLD|guHq7mYb(`%ZMfOkbjG@ez zj@!QTh_cI()1py!K-;WY;|X7f&xz&Y!P5^JL5KRl%CYYnGN{Hf3D&oLoyRqJbt&kY zXjCp*zVmW2V%tl}i?5^%%c&1ZRZ1oEVY<2`!Orib_uOZ^LVYSudRQl2L~{QCk{v#A zQyJQ${oC1v)ZBC5Ti1LmG6JXG%tYKx{-dK;DkS?$m%}2`fM~vs$H^uiRv=$(2tU1) z*MnNfu1W6J9>{&*G6%2GD*$W<@0L9*swqct|ROnFwL*)Yn zO-zLp%JHr}Htt>;X{vvfKn!8IF%%~;hz(-c5n23Ap@w!(M&&Xch$jq}14e=j3IV#K zw#DG<@^$t24tAXNVdU31b^A+HwBkIt^w6drdEB7GtE(1-Bqvv83tI>2t54$Iv4>~qkb7lv)rK9kCB)9P;m-mpAdbVf~CV(HuU)&*Q=(b0b# zSutYw^U1z`>llIj_g>u9OAW_eM=T0;)X# zLU%kWar+=-G8uuT>Yv!R%}6&KP`1YyoeEz-y+`HVg!H!U+>n{wTBctjlBT~Tmr5}I`3D8clc10QlpD@UDARGifD!dB1?SaX_Fq+QP-nhZ&@|AZz9{D2nLCmm6>H9q zDUcHb7=^zIdCgAKRl9ozI8KSk-aOly=ZlD&RigeSs?&V#eW&-x!+?fJ`d^H%A3D{C zHiXP~eTvjJowjxL>MP6Ea=IAa4Zbd*m6cepw5h0_i31&#OCo8E zunDJdo+l*UC($MYt1+LyXn%o?sFf7RkH{a7F1R*2rk;d}6}UiHgmPTwM9+XuWztu) zJkc1gE-@U;no;p%7|dd0=m9)GAlEMZL3XZTBa_>f`a}6jPX{0Ab3t4Dv=G!&>&cVc z#d@?O2Ly#(FdtzEDGLFvRf|@*OKth?l%Ay4BH30Cmy0!q8P{@y==|jCq?IL8jT_y6 zi0rej#XW7nWV1Fg0DqWh1(*Z;bon_p33;p8`8gSjZPq1!Q`|XFT&}(0RejveF%70o z+hTdvP3(P}%JcY)W`B3i%c+=iKgtg{_xOZ51sr7PzINUyQ~Z{bZAl z$A^#BMdP^Xd^T@O-*!W*wE9xwf>FFJf|>3^s&pTYzz04`R7X#mqE63OCRt;6$Dr+= zr)j-*SUt0>+NXk?k%LBt_d%?0FeDhH z8pWMS(V!0Baw5WtWk`6-Y}>p~y=X9vf?$w>0Uz4@IWJ$t8*r%X4kGVC` zyJ2PFcY%EJe3gy`!@l&DH|{5X9&abP=*@G<4Oe9We~>7+F!RU1T*`)xDWs`zLou|P)6>SWw&hT+%ov1K2*zA1|t3d zL;b~W7Umpum4%jEd=&F+*gcL!G~2oh&LB^)kRBz==&quYZ;foP) zL;XCYkY&I`rNdCi^|*pdUf`;$^HgO_2lpGzU)?&LO-2HTADokqQ9w#|R$~9?V@um6 zvZsRxA?w@Dwny)0DAk5u`<3^35n9rQUuBv#)MUI#1%*8X>{zjy_Y0u(r{b*VH(oEi*h<&@+QUrhrtb46Dhe02fAn zmCr%A{G>J3U?}0M%;v{%3X12>K+1E}Zk<|(K1T+(M1dD%n+z>%^_N#P-S9gIwx7$; ztU+JOGml@DgfLs-(TSsP`tKS{h|R3 z3YFpYjTXj4x}Qco43mP@|8CQ$D4*lSc*cv4!%R z>r+9?MU!0{)&Go#VTyM`?zWZAVla@wP>7nwtTyD?6Hu~M!>a60kFs&>F~VTQfTshv z^=o3pGRz2->ER?YRz_NAEB$7#e6_0pB7R(Z9i7Q(MR_-EUE-cS4D3~wmVQ(G%NBDj zJ{QYjf`CT)6CTW;%xHMI3(de2&r|Mm-Gyz6h8bT>_P)%>OY9Dgu0zhO9Q&?`;6Q%s ztTH~Iekcxy0Q=JIiLTcgJVP`45eDYj$lj9qiCv?-XKz*c8U12_ywR%=5&#JzP^7$> z?@Hc;LBxk7{Xu;Ooo#*Jt|)|)5WoUch7Vb6F{r2-NS+*&?BkQ>o1I^P7MPp4WSALl zv)Q1F*Z0GYJ^<6xsz5w0G_(AP3pMI|_1_`Vw9C7%+H%w1`)S|oIqiPkK4lJ8L_j$*92%t#{LnDC?%q=%oz|XUr+q(ut#K7>FjN+67 zLt1DT*pTo9_0&LGN8!5hbCF-S?~^TLfO!^C>$UGKx`k}9YfL7plAd zRaHl|>)_-&%O;bH8Jt9e+s_MH96yS4nz?{?RGQ}id$prutYn85c(XHNd#?mw@2x;c zQp1U5)xuvx;K2J-iumep()Vve+CocXYWQ^uB=}MdE8N4t_8L#9tK4@30AJFM6bi-> zmsR&7!|iF_&lB%Fa^5d?k3hvY5im`v8SPheb;>y9i+keoYpE=)7J{5_<1>rvkgSdq zOnc%1o)pLTi75Pi1THVv%wBC}N3}6WVo)wGW+>IH3k_m4lcSo`gtkkF?jHj~D0l-r zW2-;W47R?!O`7OEMVw+i)2B%4Ft^E^v(rbv$mo7iq*g&$yL zuiCg|93U#2{?s}tcW%KBjXrxRH%U3jsJnEZqdZj0;>)$je|b;e*S>~V6jGUxGzW7) zR`~o2T)b6^KLdv&BXD2V86p5gp?=m~b=CDFOTfNX*}eP~%g$Fp{+^pO8s0Vb`NOPh zdc2k*)F`1vLw7zD5dna_E+i9xRF+d;02a;fzG2~gMp~UMkNTB39hzJK0!33D0#X(V zr;h*_IIILB{}&o|n9vyO>8Z1~)aYcEAL+%65T!r=ffe93opT>UZUo5HLOhIm1lnFkU&uPk*;vclW%)0@HryFOL*9*v5ec2gX;wm3 z+j$i|xAv8r+;;1{zvL=rfMZ>F?r0`K%u(0%K$Wl9mndaPBLU(7`PlDORxMA{qe@ew z3<2SS68lJroo_5IunOP4p5i6&ayRndZ|@_w)&8CPFDiG$kmF?9*$#@ai>Bx=3g8%Z z5oB4Dey6m`roY7z!;XO`^63=F+^v~xcdlfJElI{yW}yvyHbis_^{7kpsX9X2Q6GK>95i=-fr2!e4S=OY-UZLwVZM4WPP$& z?A`i3mWrI8m)KSX^AMU2gwHYU`J)kWvN6I|6p#1qrZBtez=#vse{m?{ULJL-#nyT z;c76}Cb8djPmHc}49V{iS1u z@YMI?EFy2|8G4pOqF_`1(|&A#J;?aZDKZcs$9;@2u1MR}Jh2Pk^ET$XC`>P;W_e`| z;bRF2K-sTBHBj6NuiN^w=+as8yW%|aWT7Y%hPWjJx9%5!8$70F_~?+(BmJN@Wp#KL zT~3F?flrAVZKTd959~mMd_BBW#+F0k0V3ZJ)CPTrjhjdiO&eq*ET7&Hh($zE4QTmU z8Sl0|*^j69jRoyrxT}nd^Z!GfG=z8q=7dAqw9q^_M1P4S1$?390cw!VMm@jTeZPh? z<5x508u;zV!~XKsDk&SCe)_zY`~8jX(qeGSJrVv3xGnPSj%iRDDQril2Hhp_iW>|s ztU_g(CnZm0j?(Z17Vs{6)ypi_=PL!TK*bvBW}+ptQKVBu=yNK4`_K4-68=I_d!38z zVUAE8T-`9yxw~|nP`5wJxJ0h-pOPypHpqSOAEC_H(o`7)aPm-d&~xyRj}+*F#H7|O zsF>S^Xo}}$q--S=)qJW_*&^;^mhy58`D~v6dL0o!B*kE~?&s1( zS8~3|2R8YzC_*d)ah;;h=GhBmi!#K*qkqxCyuqo1$G#naNFW%6^K+mg#+0ap;7ti{2p9xqUXEM))y4#D5JB*xraDRcmuo z<>HbkVAGLGKWq#RHL;vvw$KmV&1ljd*o{JH^(>}F>7#_dYY9h{>cuH8O}bkNNe$24 ze0THCD;TJ)GydDu`J86*BdmZBc_!{n~kR9vrC%uPdQi6_GvI<0jcH=!OT*SaiNxk(=Fg|GhKYfV#yaZo;9{2G(B-Bxy z9Fr!j{yBKp{hLe%_|Y2J3e)8`cr!Ph(woexNN1T5tMDgEr9yJV#$`_&p8r10YLbLC zDKK{*E(22H=hT#(O^VyLu1m-F$Bf647t+WQ<67;;u3D2sgwRsOLez*vXG?;_MU+## zKGvaA~ctF4x+Yi!UVH5{1k&Q~lsQ!sxE&!wa$Zu7n*2K1uzb~4cA>NE=jf+(M7+n`nk?`MPOwQ%hUEBh zLs8|tQ>IA|xBEtyP(p}OLAe3Ux_v%Sh(2DHuQxJtv&trmvP?KEzUY6eZxgMNZ?Q6s zCAIeCw0L0_FJD_j&-VvJ+kxk=Qa&tfBRcZ6;CN80s#0$;=EW0jCZZFBpMBRhaB=XpV1fo8DT>F7M7w z?H(T1Yb-X-lU@gDF@(o2mbAvx7w8$kec;`^>~{~P;_LHlsS_kWaA?l9tkSu;a0sv~ z!$db)rr}q0x;B1Yr8_~&1&se~e9&fVG7dMkBFQ>S*GdKZPU(tK%dk^-m!0o=&mB~-*2G|51HRk?_?E|H14GZOoa z19?nKi_AR**U?$0$$s0yf#%gllObx;P=-CGh_HELlkuZ!ivINiS|I>heqps|ZS#FZ zuQMfxd@0KD^1s!0(d>xJk7Fhv^RQTPhM^>D%-CQW3|ZvrI@QQwQ<`>Ii5MlKQ|Max z>h7tMH{ST%jY!bc1td0e5?%`9(!m5oWtYm!C#UdS$DpV>>s{bGoQCG-#VJ!e@s8G< z^lC2u7#GGXhKWx_?Adafu&T@7*u}J}USH7pmxw=fM1V{Oj-34~H{q)Y=*IkhQ1qY#bwcZ9{GG=b+>HC$bMMn9bf>g3nQCCu=D2+8 z0Z5oej+eW68asa0=(-@BL;;mYqwH;>@&4VKik2wK86cpba*UK7b-r=~;(z(L|FMKe z4Tf#hPC8r{a*@x8Hqez~OhK6=Sxa>-0pqKQr88jYSErnPgaxIXzXG4fW4BHDNaL>BG_O==?cnZI0G0??0qkP^m=X(Mb4i`g!K?x#dkGEhq6q1J8f? zgbujZ_EHkEIa|7BCL5{3y1}5fitR2Nq>wl^-8O`%)Uxf(QykRAvTu}g1~lXBpQl5Oe6C$vr@*5vkYGat8+Eif@@Hw=+1 zLM5*;QdgD%$j`|Oms0*@S0LzcFx=1dZ_-R$PsDF|-?Uf%e!PJjGrD^q;z+Z|Hl0vw~V*Y_PMQBgxI7@e}}TwwWkzJ?>#lt zW$zRbI7dzcmR*#!)%&R;olK31rRA2S>Azy_*eW2nnT}VL`hW3Nv1IP1Ewqm-4@lS3Zrc0=>!Y%$e%;nS}qpM|`g-Z+wo2tPR(4 zMY~Gi7X~>VjCohR4}%*xfd9E?uCfwNW|37aQKtTnA>U;!lK4+2)J}c>v33jd44Is6 z&kHE8!TApVdkp2F+p>o_Dp^_k0|bTvRmNyul>hst)*57Hk_$?pzXnfe(Ib76!2BgIDO+&xp9P z$Ir^?A`qJ1D+c+Wh7GpXD!yF0+DoZCkPAlHiT| zQebzhx&9^ycs{R^p@d+;bpFwKUtxt5w!$HZRtCQyh$7bMw~NC>aq}QHdy)uVmN=<1 zS=~Gjes~M`CujbZ9~+PII549(^tctqX0XZ%im#1><`~^B3}$_UGgTnaYSH6v(^ilT zC}u^Y?U^)8%V$6MI^+vYew)^19Bl+)?fo(|S9A`W`qf0=+FXp3LSvrLHItn)6 z&~B#Nqq&D2-=jl5h{vAuk7PB)k%f|ZJvj8@$>CB|ZHz+*z<}>380Ruz27E{_5r8Yo z8_Vj@n|jt770bUn)3secF@%xC%vT__$anRP!^O27+{p>&m}R9|u_sUh0Kc@{*7yf> zu2#?gf_2QEIt4UeIzZtEbz)ckS2c2r-g4*30dm5<@9ro~5JQ8i84b;4>LYi~X{h#k zbgc#X6_m;JYf!Fl-p&92wE(Y|O@<)z>?X1<#IdmAaec?MRqn8zd?}!*^y)yJ9Mw^m zQ~g$zs#gg^OpaEVW-9|Nc!m6uU`7tE+7okP2S?=g_1>vK8eahLg8O+KzMvqL8rX@K z>yymQsv}sP)c*KcQUr`D6z~wNK=^5!ffqaDHNM|X(|-kQ`_UAz3zl`%Pt!W`yL{t5 zRq+T0+W6utnPm$UKeGwb$dbJ8Q^_R33kMf^%GT^PM>(r6zpQTJSEelxAnJwDiriy$ znb#B)@f$qx;M>5uuxSM3axJ#9m@))u?VYpPo4;`|6Rgymlyd6FBReI&>#2R z@DjCI^8~OJj?kEn6c|;?KxJJZ{>zp@(`$DcnLM@N@MtPA zYqbcnY^DjwC;da)ZJp&eRTix3SIEOIlr7&SsC+6CX)QRcy`h%O# z2?xLjO4yGnyZ8mH*!yGrvOW<_oRq@(uchzWeYw*E$>DS)rF z87?jtDKTk)B}bT@;ZPYZeJ!a}ZR39qY@u_b)#>UAg;NR&nX#X4gfFX0xj;+hit}Ko zYSQhBlOpRUum8qx&L~yG@+f`85cpuP@V>EEypyfpe1T)ZyYW`ko8NrKrtT#))9%>F z?k+hq#q2ck>UQ8|~oSh9I;arDvI&ubCPlmMr)DGAj zo!)<-+3E!xoXAza_Q1)eR5>!ecdL|Dx^K_ZJf$xPY96_LH~M35>85q|@-gmkKDQ-g z7c0laD_|J_WHWNX1a*t@8y_f zol1I3b6;B8YL@n7Ik|kHkXEQ66ZcwS6j_-ca7r^4A`Bt~MYO+pG+00WWRQGu06r2N z%6N}`Fgi3Y?!fn=Jr%~`a9_QwZ+N`QWgOt8AI*%+@1M-kgKjQ9k={p3DqC7w>fE>L zIzSi32_Ll)rLvKR#bhZ2){?Sk1NC1L3+XBv#ON^(%DktF^-RViq|&U}bwIN@gfwwO z`-VaHNOyI~xTRt?SByoGN|R@$4ub|$6|L=Fpya8G{L?1R^5Y_>tS&zD7$(lO@sr)0 z;HU)`H|<|J4jZkjj~7+8qcPIzVt@QuN}#?>n8>hDk%w_?>q&}uT+;TMot>TiCFt#{ zs{6ZEe_PSBP|E&AUt2YxkR$&oIf;`knY$?-c)4IhUuk zb!DU8tO}vwGf`;h*{NI8z}zv%bn-%4sZ1#_J5)QE^O z2_v8XG>hAunu5z?B}17@|$$~2WX4V|J)T4FT;yKfhpR{@qHl;olp3Gjscdl55Z8*Ieb2m6Odlo8l+5?n<({+MCsC*-JF8xa3+u zhF#H6OuE-<%~kq%#^vw~n9;qzO-bVLoNqA1jc4NUWN|_@Bi5R!IVnvO8BZE}4Rv#r zfeSr;IJ<9UfNH~EZPyMRd4aAmo9i*visaQB3tH+Hh;c1gI`)XV*=cj@LgEA3p_xDJ zKpZ4+gk4rC2&yv$5jKzBzFaC5nx`Hfy{c*Oz1(Yb_HfEkXnpR7Fw^C~zR@o`W8Zw~ zyd@kidae_*3$9kDGKh zUoIN?iojwe`7XGIQe_|&%JUF|yGvm&C`*q2p8w9}@-vClSbtRg3_jhEPCOXTMO2Ev zlpiGgGBkDjK1HtEZUeIM>Nd(1p@+9wD7~b4df%o%q}o3r^vrP5G38uy^7{MVvX{ky zg$mIFwdr|oLynSbyVDqn{rh?|S9KTJw(_bA`*>Yh!7KdM9jGxZuDZGy6Rtk=b*4S& zfnAZV+7Mk1h^j}z4ouhCGSA=)wCvl-izX-NV<`ShnvsOGFgqLACfxP9Cl<+DYtY`* z@J+VR1c}JO{a-Ac)0cRJOYf=I`!dyOVzmmlTR09}qeWv5 zo4v#|QoGe~TZq=T#vVP7wreede#gzbQKgSWmBguTp_@N7Rov$PGxtv(??boR3%X2? z=odS3qm(O81R;K-lqNHyll$SU(+X#gSsr=} zo%?@Xy!t^s!s*d9D#aFNzfJ6w*^t+Hu+l>Ue=;kc6KH!ozJ$13N9G}6QD%l_vZ;)< zwqBAcq+MA0`&0&-bGy4 z1PcOk(aZ!R>)vV>rDNK<6vu+H{vsl7`;HVYH@yh{%f|lXv5T;eF{GgJe4gd$awq2~ zlHK`(O%JtH^MOI4(&w50%32m;E>&+9kTBR zw;WrYN%lX4hZZQ43Lio~TBb3Jm{Jm1*YNy)Et^dvg~D{GSK|Y<&D8~$RH?}%H3lW~ zO|Mx|%^=hr$U@)`AajhvA7Z4wX)k5bFa8|}`g7mAMRi*@+W}tPd&;OS*LqL~a$1+^ z{mG?}0+k%&O9U&548#3R2uh^XC6Ut)9$lU}5fYKRU*CxaEd$K>{rd*ZC}@0~uo!hw z=_rr*z2EWAJfAky*5JK70)=``92dDlna}B7y(FoE7ev=!OSvimv6y+G?EQsW(X)Zd zsx}&HTQgQ&_c}SAa84sErugZE-kvoz! z7Hj;O8g%^dl<|_9K*t6T{25MqXyL;wnVy(h>5^ST#Zyj$O z`~94Q&6cAEQgbgh^SfY?g#HuBu=ebt>4NSn@9!%mj5+AufYp>!QsRTb~~7(IRa%XdU9Jhm?qzn!uZDO>Dd96#$l z*(QO*H_{XvR`sqo_jWvToiVTk1e6M)%_2pcm&i+s*dj0j z$fWY)9CqincB`DDBMn@3D~+ze4Fl43V^OKeIIpL8$DF5|52PUhZ0p^f6lB!(6(j_C z#;h4yIGa(T8cF5WRWxkU?pSU9+K>ZwCQcn&gqdfE*wXHMduP^;%RuCl6-4F?a99El zXO2oi=W7>8l@8CdL(oaUl+e=b#ih9Hi6dM4ZOV!NW4~C4tbbp)T{CA^aELJy%5GOB z+})2(n~7<=cSV{*n9XF8E(~(9kp+9I!B{UU199~%L>x|+OZMr zImPLGkT`|rR>%4eY@r(UkQE!px5v{`e0q6Gn+#4PtfCHKtJ8ueiGS>=S$C>1B(1Zw z>BJWh++n=Ye{EPcH3u#~jMyw;LXAgN9N908 z>&uptW;P|qSZ2@;@>6gbREu|F(@(R7Gz={~|;PbD*=J1paWT%6H` z<$G-XM6I|k3z-?=tY7XU(P2sWmXzyUPdPL3gP&hnxc)Uw6(U$b(X^U9sK&_ooiou8~uziPO<;-+t`fo08(cShtr20V=^L6hRM#) z%4MN;E~;+Z}d?Ai__1qAU{(Nr!M_ zg+9yH)G?R4`QEqkgIM^v?@YL&jol`3W#tMS3D<^(?=nD@TcV|>b4S+Fpw6|8F5fKxgAR2+zD*kJ57$1{de;5}| z*te6DOvW8-h&(B?oMe-~xmTNrUy)>c@7mBJ(+cvOb%?^H%hG<3Dv&7SqkqA*bDhM8 zwM;c5W2*aOQev^JjIWEExaa*AIvSR5^BH$z+JUd4Kyyr=(uT6~^$>sLLhPzF?Ni>l zNRDZFBsAF75u0A_j5$?1F&bh2^oAy&@Ov7`tmxlJV2Hh+8@DsefWK+bGDZy2id!tz z?1`cRTf7u?1ZSRdbz))2B$^(4w=XrxR2g!7N3q@q97dCQ&Q~qEmqFHw4d~we!<+d!km%qmzxgmIBz+7WSIrh{QExyQ;9fxa#(aDDMJdLyBINK-KH!9U;pcAx zUO9uz{2&v3)e_Z`L`oQVm2t@cY2RF51AX-x_ZwYei@keh`BUFPt_ z^uK!!8NT%?cz>i`Ae|fV#b0V>RLQcyYT<{#*ZP%5hceBGJvkNsU|SbB!Xl4~liNLE zi73~tIO=`VHg*r`FPO&_}Qj5oug2nvm$?ZuZ&lL zT1b(CfHpt7(tT2_uB(Zs8xNYVzARbaiL?WSGy19Uq6u`X}_1D zmyk$4VOj~W$8@>27O~S+$M>R(X@42HOHuCsv-GlUv+GD7=RYeVMa*T9AnBaeyHhk{ z&#B`wTH3c`P)aD*c+PAzch`AxzwDaD%6)cSmeS8C<(bCiDf#_uKxL>Ri<~bcr|v~n zRVOkR4bNa3lNK#v=`2M9=v*cigE6#L2W!lDZ&fveZF))h@mC`+TYJcvThccdt_iLw z^y9blQ1Zt&7n6{B^BlEaxVg%8&DNn5O2yd{<&wkUBJrbDvTUIO@e)7lo>+3LzQ)J~V@VBrJ|G{EKh4b|mjUE+Mwq$3Ql27{TC$Z* z+lABmRDnK2C)>r6)P6ZoMc53AOUlX;r>o~T!mg;S7!POg;o%c_S5dY8tzhTMHA<3? zR=y(J9A;TX)?xp#c(!i@XA;Fv6`UB8*_2i|c39oU{c1H+n7H8d(KbS6rYn4et{QONA%Zzn?d~3S+;ci1`(w)c%<_~Dtpp9w&&|A)N_X`ml=v8`}ncJ zE7l^zA=P=TGak-FfE*JMamn%>h95LKDGN0k7Ir10TE9g?`Esc;GSV0G$bOa?=T#PJ zEQXv=2+C!iW*X)9=SriuGJK?OX1RP#0l$`pW*Bz-?;+2QE1hhmb!Y8L9Vv74H!v+M=-Eolo|2RXv`SX7IqXS6V* z@ml1kcuInB7En0}<<&l+)Femk1Le zozFN1afi+tgh4~sw-lgZKpFQw$v!$#kS?#gdth_BVY=*=debo`n_iB`FSG?6lb5c} zVR=J2WST4!oyoXY^nGa>mNTJ9J$CeW$-GbODv^)%++|;?P}SnMs6Z#1_DjsLiqU zA7f=%34Dz!sW+>*~9@5p(wH$+GiprY9 z+9fHI_!}2p2d0O771vnE^K2%^5B+NfG4K+QQlVtBm=o~I0_op^zkfvEz|sHWuU=>? z5ZlmHm58<9Ycx=*S<|ryUd_oNTf1x3tWeC*w@?3qh()gplZGkbb&>cBibTTxCyS11 zL*P_Gbvsp14wEr~j_}+}@b{FTOfoEDd}7vQG?MX;)h<3cxK6P|?Vdrwk$P^QpDu_3 zN4!~WZx3TIkzrBs+TWSFH!tMmW$E1KaAEDM{9s2z6=Dsl+*%_@JWO&1eaWB zs2FgaLCi3*^4uSAPHpQ&uy^4$FikP%lRZ60Vq!z@B^kbjCWsd%468NdwDc#p5{MJb z{gBVX(Cl+{)uHmjcqaRHnYjA4oCF@rF7bN;DYq;$3+1gE-a{-iD&@fVA*Xv-Aq{(K z>g}Gro{scLa@^qWAt)IT`4wn9Wo*%M=x!B! z6U4XT3MTnGu?f3sXJ3n@r-W)bO%-K%JHFOZxjB8R%HKQ8){WnWv9}Uox~^|7*nC;; z5uI<(<)Nvhto_5nJgY*>!So{Hf++@rksHDEvbhYVR2buo9%8{W(n04Xq5tg+TK}dL%zD`1spSCG+oi(1r+XNxZEq4xc!q%sFZ$NPNzW4Y&(8 zjDSfUtM=D&V&lHXxWz4f4QEr1j#vxXL{uHk)Z$~d0B@?AS$HuB7%j{Pq_zks4t0k~ zg83ryFVlophD)aPHv(Qze%$wLy#cTP?T(Jjimodc5*VManDpJSXikTa9d8#Z^Zx3(pD5IasMx01>ao;_aQBX zZ-D)?yXFq>^KgVO@-rUWnU~?XeSid92Gf`(0)EMSBUg+&*1J z$Y;DSl?KKDZ(czZYwl2jws1>*=jj`6U^n(X2G9+!7A`6vo($XImBACtSz~ojYKL#W zUUb~ZikLmuN|eJLAXd}3N1E05@xka8N0NlASAsJ5(JNJ|=`3>uFoz&@+egA|Ud z;j@o=_#+p6{LDV}RDD^*lSNEnP?J|&9Lx!+9oisb{Vyg^=+(V77{@IEitANUwLK0m zO9b(d3pWFVT+TP~toukNp%DX%Q*X4Sk(_DY|L=f`LmqkjCm9~ow6v?z`>grHNua`* z?xRKx+sv{op8h~8sc{eZ=KYUHNLW#yZdOOaJnux;_+unyyF;&<6u)W=o)3w!qc*t? zdpU|e6d>r##rv|S4%i`1(cpOG4bERYr*cb{c|{q=CT--0s}10mHaKm!$--2TY`luF z)jLtQm+zq0S{{v%&IRqJP3k!PrKNMsiziU23N3y&=`kyj7xp-y#LCs|p|e`=Rbg80 zl%muaz%IjjXnPy6{XfL4cBylcqXFS1+-umH(Cy|-ig7n z+DzTWBkdPAXwP^>>F%~rw20mIxP)CdQzpAuTy>rJPnGUO36m3@9&uT&yM!$I_i~xG z&DO|F=C*sN8Dbw{Is0-evp;=aFfi4IFt6X+<0rrw+-$z*v&lb#qkySc2oJ;Bz8m5LY6ez&GyZn&Lk7P>7{~H9GyI+qGas+G;Qg;iOt)$D~G+w*k1~# zd(RM8`BGMt^6zvg1P89YG0HM3!fR8$q$NLp|1BmfOSD`@z@Sx6HIt5c-2Q^5T%Cdz zv=GjaL3Y$zkjrIfVJ4eSaol92_uJIR2U%ml+E7xQ%@P;0+pj?A0E6T|;Z40gkCnQT z*}P8Tj^c4L<~J{%nC#N~cJ6q8abj#PMH#3)gS#kMyZCl_KGqM9<;kgbA}1MXh~ zmZ^f!N%1+D{>V(v81+N^MIB*5n|v8to;NcuwjxBpF1qU?`ItgI`J?cB-}I~u7xa~= zOqsTzuZ>2w3{%Q!EOmD(m(8ggU0aY&f(g|x+9*0LH{Z17UiI-azvmwYvb35wjm8}& za$EUxD$=jBdP=GREuU6Ra4Q3iW+T_Q`MObcP6u}$T=D&ngQS%=mZ=0v33224?}k2@ z5~5xyYL5;8b=e`@Rsj2@=i-NvH1rq8X;g|#5|_}JkdfZEb;5KMX|aDl4wkX#u1p?; zc@Tz&BLY;)zsIUt#uEQpXQU<007pu2(?k87AbJux)DlHc&+hy#RoWONTKSxxY*%P> znufK1Yo6(&=A2mXl$N6(s85Oq&>abY<8S-^i?^?*^Ky3|TT7`rt%`95qJ#hd!EXr> zLFI)F!Pt=-!uP59YcHQO{$0I~8x1w3nJd=N13H(oK5WM^&IQc{t=6#apIKL@tgnR= zStvD;TuuAB$s3ZfqYCPjYU6RE3h>(~-zf7As9dkL#~#O)F^F4}K7x3*-HAAk7_Lj=sQwsZ}Yx+iB4zA|a+))^65rCe05# zAZM~qu}@6*&B>#XNT6C%z~{h%tZbgv{xkBCyrqA}BiQ`ypJT1M{hn@E}0hJ-!B2-4{K#sW#*a^7K>ainsk2vUy;mWPAsUziZ?v_4&r|0 zgl{pIQr|2t)Vl<^c$Qh49Z?nxWGDibS>`dNWW5KT2c_EEOLg_V7No^u%pS228@Pub1n6o?S5HmWD)K3mgK@-(_2m(8YWKRZ=2yH8?(Tq9mvQO zr!7WJfzGk(@`$vNz=Xli*_pnr_i#BE#pI#XYgH@NI`h)w3d?&qZoW&WrJ3~!r!)@v z)4GrB0p2TT_wN_RKdDFR@ch2En3IudRcdF9PBpg+t}S>|?p;J>>7v@GSZvhl9biWd zBX8^drjXCEk2m5(5Wvj)Q57c{QXAALUt^oyIb8XLTnr~6I&sb}!VdEq>PMNZ$L0}m zsm;C7d+mKwRW-|yLx4!=9{NKzU6&_}DPlYww0J znqtD~RAB1QyTjnx{Bkzc%(6_hfB~6sS*#3x4~%YftArxl(ax57Mnbc>UG#I$_!2KJ z_v=-Hi!)LpreSsZ!Rm6{+Db-XGj8 zBc2xDq}Wzpg#Zk%)aAn#g#;!QCgrIzmEf1|Zt=mRaxw|Ar)>!Gf9Jag>G2!7E1lH= z1#y^!`?7?cv>GsEg1r%1qI?s}=7Y-f8oL^`TnlIiv@k^C8H8KCR1q>Pi>Sj&#fFs2 z?akii&$9T0)~|V0tloO_vH@XnI2p8D1iZ9sCDI|T7lx+Ill~FytF9$D;ETP zW}sEusyUwYy<7|VoCTYRxR}eX`ZA(@ER}#TbIBt1g>zV4d26Gs#=mVjS1j9XTpT`N z3OgC6K#wzLl2;1-`>wduH@Y8&jMLo!+U8Ac|Kg?Yj2 zJQsg8YC>KcOO1c`cF=u46;Yr8MGsUC*X1c!>~$VWHzQUI0}IFG69>1(Iz;s{d%uzR zpo5E-qe;{XX^B(x4M)`>l#v$375*_~ARNRh)+jR39DlFn-&uhUfe7-#c}_xgGm8}m zcn6(Zt=q#SO?=bRIK9RL0etaV9?=#7#-o}gTDRqD97ThZ0y<>E?4)pfM zCB$Jxzgxu)pFwcTtJU24uT$Cof0cb@RGU$=F0`~zpg6^)XmR&q1&Tv~5?qRw;I4s| z0>xd6yE_C3)&?iIJH-pZ-Fx1C>#n=bUHAMs`H`%Z?0Myx$uqNO&z?7o7N87;hvlZ^ z$`%kPgSS6!<92-6(&VXnPp`?_RKsR1wk5gO-(+6i&Frk+RF&0(HO?H;ImIBU$$oZ; z3Z0f-lFV7wWkSRl>{08-C^Ap6skTUub?$X&2UVimzLuJyv+Eiga2y$3&mxsuP7D2} z%h=`?KR4#1JPW6fe6^fLRds+RCg*d4&3DU+J{cCY4_!sxk9wYFDeF=(} zqO!K!Dok&bl6|LgtQvJ=85oEKWFfJzV0Vt{)^N5*l7I`Y`!1ov>QF;E41o1dZqNFz zFSBcr=?Wv~oA|q7T=OlZ_TVwcA*bEe7eOL0!W>OI$rgmZgfVoXV#bH;c#1;5?$c?r zxj$y53QLp4<7ZtNozO9Co-5mn7thkU3=|hts(rSPyPwFh#S_~Smy=kV3w&hK*N8Bl zLJMP`=P-Q!b~HjQV^a1j0}IVc0(O>}SK*4!w~M{}j6c@L+z`}z%t3M(s71$PjJm)f zv#@oZ;85UJBJVMmX0_37_2&Yu``^KQ&W!Pie$-om#@jo;bF2x7z&@L_u3g2|vZqO< z`L#VU=Cfkg0ZI#B(6~ce7(|jTePXywz+=!M(@u%pq*#0TP8bis1)BBf4qbz7YS^adFVS@^-+cyM~i-7v1F^W z=?75=av2lm%PJOQgrIvixf*?2`XHa9U=taZkySkii`?&RPm7{zh~YKP$;pZ2T~X-5 zxq5jwZOkpeY92|<0v&6M;y^Zchnc@lLE*EiNGr0Pe?&#xRV6~LhAO^}%UK%@c%-`_ zh)gnxlZaEfxQU6X>wiFT{1WN0drC4Q9h4(yI09rfBVTb`N(;Dhm@CoI^`6XuhX1q$xNgqL)HHkZ4<+ zd!j;MlfNYh!sh$IUoTD0q{Evdry1ZSH#aqPaB*-mlUbE$+#O>Fh#}tk3|OoIQ2h_$i}R5EK5)YJkXw%SzoZ%&>8lVx;6tPlFmi!@ZWiDX_1- znA+SnU~7W@eHUfT)h9K|JtZ}SkD_#ZC5}7-tlw(8{AIPD99Gq6r|vUhsU6{E&EL5G z3qo@AK>s*)wty2U75y%F5S|u>`h@k8ZO(@)+t_;dvEzjMm}QqxsJ<)e?qZlsNKxDj zs)V=V0T4KUiy%AxSFpb=&)Vtl7Tnu|hjatA?;%_Id32U^dkudpqZi zju1APEp@}K=5-Y)_o`R9YN&GvZH570D5w-3$M8RP19I3x8OKHP?W~Ex zX^w=9SI}jNY;tAn%Su*R!(OFxE$El;1NiX+H9aDhx3ItypB@{oRj(XN*U4}f1D|9a zn%AP;CWjU76#iO&jmhqTa*XV)6)sW}pQLXz$6UWjKX?%FcgW0QGcKY ztA6hsnPQEPZK!?oOTRY-kzwb!Qc`9R0`sW@UaT?)0|Nvn$$h0)9hvE z@fh@a#7Dq}la<0uv4XLq*qm<2kXAiK`a)88L0FkR{KF;z)80Zt%plx*f;hrcPl*lA z9v;Sh3BRa6u0o7A=plbK)K&RUB z>gsBDjGZw$s>}@S;?dz@j$E!?p=ghzu5M=C0Q!g4{%#ED_<|||?0@S%#Ci$yb~O5h ztUMDCt$ujZ;@#S(S~n<5lQdrE_*8uMk%kcU)i-)!bbnt3@)hhY$a2iK=`?U{soe-$Li((s( ze@QP=?4oG->3h=Uuzv+>|DV&tqxf`YiIJZUMCh<8T1C!)%JkQO<*OAW^f+wSd>r_c zByvkxEdd{skT`wjrTJBu0?G&vSYv$t2*rBsAcD;S5*qMtE z6@+-vgoG?NGN_vqp?$Ie@(H!A>(G+nBK7m}mZWU~lv<62**f1U$G-!g?Gkq%^Mb=c z-D}eBxnQ+Z5EiUSZCmOTK=;ANhPWJXdf1I zQppw4zE~;jx z2pJWf*!T4uXYn2)nr4^bJ=6Bi7d^-;e&HXW^;1IQV(ZzL+rxW*cy>-wkV`9mlP(-f z+DI$l&xVf&+z6Jt>DAW|WB6{@>=!YnVVJV^(P^cSU1W#P*8OgX6lrnFHJWOi1H!9B zKY18a+i=$~y}q)AG=F;Tec`p-WzCJFih~2=|^plpslUH1~W(KyM@ZAuYr?vjB_~*x{h5! zCtHG}Ir|1Cu~R>i4O>gChTju)cjI(QU}y!{z={7rg4CZl4Tbgi}?b^yemp z!oz^Geg|Y{SH6?^1>Xcx4V1;EMEQ-_!wkf;d?>gVA|~a1;?1x+o)d(P6QZlyci=DG z+AgB6`a5#`yX8DOrIU!Md|Vy>Q&sWo^x{pZz6IvXV4Ke2D!CYgJedZM`bQsj+vviC zUCn5zRK$t_Yr*EchJkk97|PP?R~}^~Xwt&CvZ8tg1b4W_YC8>WW?Tm4nI2c7JzCbC z?)gnCOgmaAi-&+h7iAIPO9>T+3bEfNpdnojK`JS;%znl|+6;NXOTRaVV85LyE4EA@ zK5zmx2&8G|lr_Ii6S1zV{P+TBuv2@uUz%_)CDAh`p${_GE=jBvks7xyMhtweG@!$P z%gIcsy~;OQeVqh$_G&p7?7bpkV<}y+(k3Fnr>t~yU>Z~KN&bMY%69XpB{MA1DYl%G z;_SUSgiVa4n?}>5b`dd5^GsS;z59;^54l)iy$$GM=g#vJ>qTYS?~9|v12rWPD1Ui5 zxjk0O#l3c|{r4>O_|(k?aRGrMga^Ce(uHY%PY@+VrM(!MbaN;$zaxFNSmPVM6{s;n zXtxo6fC3qf4~@;-kQb9TnG;CQe40v?X9H!^wHb>R8zumyZBH9sd}0SNkU4{s0hLAp zD%H3Xg|@kp!O#_CPhnYN*IreL(`FkBw>RNRUY|cR&l52jQDAK*W9Zu#E|pp<0Tjyj^)sbr%YsrR z!iK-*@<9m7UKNzJR?S2K?40*{Vj%DA9+9-9s9Z#&*Lxy=^OAE~7>wI6KL4(UQ>*`a zqQ1cTL;#2it|a^Jg{5)}*nT@E@6f^YqI;=__^ z`v?G11pw0K`+Z+-Rx$Xr(l;A5-6!TVK3&kgDj`nYxo>PsJ)gsWWfBqSv6rp$?k%X4 z7tDP;ymuABUn_Lf9GNY{2dFL*FjKd^g=5RJ7A1{?kI-daVhsLYTzYR^kgZz*H`R&Z zf{Im~s};}T=bf^R@D-gMRt-;);*o6qSBJt!<5+-4CD^sVCqs4>tz*V2F9a@k%|aS% zHmr6pOm4_W5>+PZEp|v(Mvo;*2FqfUp&RGCGl(`v)=9^*Z~i}7I}D`pM(9sWM%D=^ zn5cUA#eZ}Z`goZReLiuYMTg6N7ltKRB!<8qL#m{DQYd%rIV{^it!++3ey_h(hYeOf zZP`JRVLwe@)!u*tY^m`N+X2QgOqd-rRnpaC`IVCGg|(J`z5%!@;fy6-gGr6sjnpwk z)PD%9?R1CXjt2&OM}aj)HrOTk$GWliMy20zhrZDJ|3f}KE8lNU{{A}5ODzKD=%fwt z7o0tX!Z7(8JvK^V zS{Z(1e{U-$;zuo!uxihv>!7(C4ZNVUe;K(rTZuuw0NfCchRCE8bI-iy*^kCz*Wyb( z-7hBUyZcIrG?MC?RxZ0!-dLheWxL<-Q<{;r(P9VyVYiv{AC`BB*n?(d^V$Xqr{tk% zo$HXKB;KD(nMu{`&2pNEnDgfrNh7xDDMs&kl|(~8-TY41&F3KJC;7A(jsNVQdq&i~;YF@eY;7Cq9lIRprYZH%GamtkW|TJJxi$0a?7D1wb7dp*XME{*deA z_ayyDZ?I-2sM~d$oo@7~zw@;X|5wSMb%R;tyv@dD^=2zo6bH}F{2|KlK`hUL4&&W$ zsOEhhUUp7wFX0mmj#*eW*UpY|pK%SGf@~cb(0$*G<1=9Yhgyrv^|yS1^>}!Y=vj?Q5urN|ZIc5!6IwWhQxv^rZ>{LcW zOI-Pf7%K$3gtKce!A?+7^F)AT0ah@=VSQN+IGYlYI5qG--*O_Bn&W54b&-}v0}fowZqnms^>`Xfx;^hYW&f7JCGMrNGP`os1C;jPg#4%&7< z0Ov_SH=#KEwt?9Z+P{}d{6YM*E-fp1*v=P-yCasHfXs%EtY~SJq@DU7cbo`^FT`On z51IXR06g{pJRxysdX?IVN|WF|`+z}cE0`+wUnC}9kf0xz{%}g-d(em@1BBWKuO}4k z{aia{@G$~u+bTzZC7w9>!I8>NqPeVhkohj4F~=*fW&uGPoB zzkat-eZb%wn)@c^EU$H-?P>d6%xZ=u8lcs}eafN)h)Ku8?kdOb{shoNiL88_?QvO8gYgvja;`~KO-FQlEnW2*0;rd{ynRX_t) zJ}xX5Jl?vrl=aoxE31^_c3e3L`|VjnE+4yi?TgiHO(#8eB!v%pdV0p_-AYzvPVS&# zx2aK*@2F3eb1^r!`~@JL;U792u01^q8(8KJRCe6#7OI>L|a3D(o#D5Lx?Ub+w@$IWN<_ zxkz&be&WOg8&wqOH0kVoJTfpt$;ikOYDE!NcX=Z9LdEbMO zi#aMwM@HRMja@&Qfw_I5DXQ2U9T-R=>~A=G~&bsH!VqttZpD(Sq5L#B(_6oj^Tw7r2DxQp$( z9HMr!K)!JKp|Q~f6ww2=NSEyDu+O9R3FWgKci|V=omoU(Px*`7zCzwC>Xi8`y*;FV z%NMX*l7%e}pDzP0kdb-$2j?tuYfL7i{VHHfsWsxHu+wu4n9%s1y9pUo3?h>z4vk}| z&k*k~EY2X>bb0r4g4DCJuQ=pgZ!3)3eX%-6=Qha%!?w?@R;#3oI?uF8}}l literal 0 HcmV?d00001 diff --git a/vignettes/articles/umap2.Rmd b/vignettes/articles/umap2.Rmd new file mode 100644 index 00000000..3b891e4c --- /dev/null +++ b/vignettes/articles/umap2.Rmd @@ -0,0 +1,157 @@ +--- +title: "umap2" +--- + +```{r, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>", + eval = FALSE +) +``` + +`umap2` is a new function that works a lot like `umap`, but updates some +defaults to make it easier to use, and to bring it a bit more in line with the +Python UMAP implementation. The main differences are the following defaults: + +* `min_dist = 0.1` (and used to be `0.01`) It should always +have had this value, I just messed up when I initially attempted to reproduce +the default parameters from the Python UMAP package. +* `init_sdev = "range"`. This scales the input coordinates between 0-10. I am +pretty sure that this was introduced in the Python UMAP package after I wrote +`uwot`, but we might as well follow suit. +* `n_epochs = 500`. In `umap` (and Python UMAP) the default is 200 epochs unless +the dataset is small (< 4,096 items). I think it's better to just pick one +default value, and with `batch = TRUE`, you need slightly more epochs. +* `batch = TRUE`. This means use the Adam optimizer rather than the asynchronous +stochastic gradient descent method. I find that in the vast majority of cases +you get quite equivalent results, at the cost of needing a slightly larger value +of `n_epochs`, but that you get more consistent results when using multiple +threads, so you can ameliorate the cost of the extra epochs by using more +threads. +* `n_sgd_threads`, speaking of threads, if you go with `batch = TRUE`, then +`n_sgd_threads` will be set to the same number of threads that is used to find +nearest neighbors and create the edge weights (controlled by `n_threads`). By +default that's the available number of threads divided by 2. For `umap`, the +default `n_sgd_threads` is always 1 because of concerns around reproducibility. +Note that even with a fixed seed and number of threads, the reproducibility +concerns don't fully go away with `batch = TRUE` unless the nearest neighbor +search is not subject to stochastic effects and usually it will be. +* If you have [RcppHNSW](https://cran.r-project.org/package=RcppHNSW) +installed, it will be used instead of Annoy. But bear in mind that the only +supported `metric`s are `euclidean` and `cosine`. +* If you don't RcppHNSW installed, but you do have +[rnndescent](https://cran.r-project.org/package=rnndescent) installed, that will +be used instead of Annoy. +* If you use `rnndescent` for neighbors (whether because you have it installed +and don't have `RcppHNSW` installed or because you have specified it with +`nn_method = "nndescent"`), then you can use sparse matrices (of class +`dgCMatrix`) as input (i.e. the `X` parameter). In `umap` sparse matrix input is +assumed to be a sparse distance matrix. As a result you *cannot* use sparse +distance matrices as input to `umap2` but I very much doubt if anyone was using +that feature, so this is a good trade-off. +* If you set `a = 1, b = 1` (and you don't specify `dens_scale`), then the +faster `tumap` gradient will be used. + +These are not big changes so don't expect large differences in behavior. I'll +use the MNIST digits for a comparison. Use the `snedata` package from github for +this: + +```{r install snedata} +# install.packages("pak") +pak::pkg_install("jlmelville/snedata") + +# or +# install.packages("devtools") +# devtools::install_github("jlmelville/snedata") +``` + +```{r load mnist} +mnist <- snedata::download_mnist() +``` + +Now let's run `umap` and `umap2` on the MNIST data using their defaults. + +```{r umap} +library(uwot) +set.seed(42) +mnist_umap <- umap(mnist) +``` + +```{r umap2} +set.seed(42) +mnist_umap2 <- umap2(mnist) +``` + + +```{r plot umap setup} +#install.packages(c("ggplot2", "Polychrome")) +library(ggplot2) +library(Polychrome) + +set.seed(42) +palette <- as.vector(Polychrome::createPalette( + length(levels(mnist$Label)) + 2, + seedcolors = c("#ffffff", "#000000"), + range = c(10, 90) +)[-(1:2)]) +``` + + +```{r plot umap} +ggplot( + data.frame(mnist_umap, Digit = mnist$Label), + aes(x = X1, y = X2, color = Digit) +) + + geom_point(alpha = 0.1, size = 0.5) + + scale_color_manual(values = palette) + + theme_minimal() + + labs( + title = "MNIST with uwot::umap", + x = "", + y = "", + color = "Digit" + ) + + theme(legend.position = "right") + + guides(color = guide_legend(override.aes = list(size = 5, alpha = 1))) +``` + +![umap on MNIST](img/umap2/umap.png) + +```{r plot umap2} +ggplot( + data.frame(mnist_umap2, Digit = mnist$Label), + aes(x = X1, y = X2, color = Digit) +) + + geom_point(alpha = 0.5, size = 1.0) + + scale_color_manual(values = palette) + + theme_minimal() + + labs( + title = "MNIST with uwot::umap2", + x = "", + y = "", + color = "Digit" + ) + + theme(legend.position = "right") + + guides(color = guide_legend(override.aes = list(size = 5, alpha = 1))) +``` + +![umap2 on MNIST](img/umap2/umap2.png) + +The biggest difference is that the clusters are somewhat larger and closer +together. This is due to the increase in `min_dist`. If you re-run with +`min_dist = 0.01` you will get a plot that is very similar to the `umap` plot. + +```{r umap2 min_dist} +set.seed(42) +mnist_umap2 <- umap2(mnist, min_dist = 0.01) +``` + +I will spare you the ggplot2 incantation and go straight to the image: + +![umap2 on MNIST](img/umap2/umap2_md001.png) + +So there's not much difference in whether you use `umap2` or `umap`. In general, +RcppHNSW and rnndescent can find nearest neighbors at a given level of quality +a bit faster than Annoy does and even if you deviate from the default settings, +you probably have less to type with `umap2` than `umap`. From 1eebf597ea52c122e1ac5ad37878c6096981d948 Mon Sep 17 00:00:00 2001 From: James Melville Date: Sat, 13 Apr 2024 19:53:47 -0700 Subject: [PATCH 20/20] Update NEWS and example --- NEWS.md | 4 ++++ R/umap2.R | 3 --- README.md | 5 +++++ man/umap2.Rd | 5 +---- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/NEWS.md b/NEWS.md index a93afede..54ae70f9 100644 --- a/NEWS.md +++ b/NEWS.md @@ -27,6 +27,10 @@ in the documentation, and also the rnndescent package's [documentation](https://jlmelville.github.io/rnndescent/index.html) for details. `rnndescent` is only a suggested package, not a requirement, so you need to install it yourself (e.g. via `install.packages("rnndescent")`). +* New function: `umap2`, which acts like `umap` but with modified defaults, +reflecting my experience with UMAP and correcting some small mistakes. See the +[umap2 article](https://jlmelville.github.io/uwot/articles/umap2.html) for more +details. ## Bug fixes and minor improvements diff --git a/R/umap2.R b/R/umap2.R index 2935eb45..0b9e6a58 100644 --- a/R/umap2.R +++ b/R/umap2.R @@ -593,9 +593,6 @@ #' @examples #' #' iris30 <- iris[c(1:10, 51:60, 101:110), ] -#' -#' # Non-numeric columns are automatically removed so you can pass data frames -#' # directly in a lot of cases without pre-processing #' iris_umap <- umap2(iris30, n_neighbors = 5) #' #' @references diff --git a/README.md b/README.md index 5fb65538..02230ecf 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,11 @@ devtools::install_github("jlmelville/uwot") ```R library(uwot) +# umap2 is a version of the umap() function with better defaults +iris_umap <- umap2(iris) + +# but you can still use the umap function (which most of the existing +# documentation does) iris_umap <- umap(iris) # Load mnist from somewhere, e.g. diff --git a/man/umap2.Rd b/man/umap2.Rd index 854ecb49..648dd6db 100644 --- a/man/umap2.Rd +++ b/man/umap2.Rd @@ -43,7 +43,7 @@ umap2( grain_size = 1, tmpdir = tempdir(), verbose = getOption("verbose", TRUE), - batch = FALSE, + batch = TRUE, opt_args = NULL, epoch_callback = NULL, pca_method = NULL, @@ -697,9 +697,6 @@ compatibility. In addition: \examples{ iris30 <- iris[c(1:10, 51:60, 101:110), ] - -# Non-numeric columns are automatically removed so you can pass data frames -# directly in a lot of cases without pre-processing iris_umap <- umap2(iris30, n_neighbors = 5) }

A_qw3^QhU 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 O2s~Z=T-G@yGywp4%3YuU diff --git a/vignettes/articles/img/sparse-data-example/ng20-umap2-150-15.png b/vignettes/articles/img/sparse-data-example/ng20-umap2-150-15.png new file mode 100644 index 0000000000000000000000000000000000000000..1af803bd70d492645568ea7eab98f415dcb04183 GIT binary patch literal 139394 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 z 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