Implementation of Unsupervised Neural Architectures

Implementation of several unsupervised neural networks, from building their architecture to their training and evaluation. Available networks are auto-encoders including their main variants: sparse, contractive, denoising, robust and variational, as described in Charte et al. (2018) .


Software for unsupervised deep architectures

Get uncomplicated access to unsupervised deep neural networks, from building their architecture to their training and evaluation

Get started

Dependencies

Ruta is based in the well known open source deep learning library Keras and its R interface. It has been developed to work with the TensorFlow backend. In order to install these dependencies you will need the Python interpreter as well, and you can install them via the Python package manager pip or possibly your distro's package manager if you are running Linux.

$ sudo pip install tensorflow
$ sudo pip install keras

Otherwise, you can follow the official installation guides:

Ruta package

# Just get Ruta from the CRAN
install.packages("ruta")
 
# Or get the latest development version from GitHub
devtools::install_github("fdavidcl/ruta")

All R dependencies will be automatically installed. These include the Keras R interface and purrr. For convenience we also recommend installing and loading either magrittr or purrr, so that the pipe operator %>% is available.

Usage

The easiest way to start working with Ruta is to use the autoencode() function. It allows for selecting a type of autoencoder and transforming the feature space of a data set onto another one with some desirable properties depending on the chosen type.

iris[, 1:4] %>% as.matrix %>% autoencode(2, type = "denoising")

You can learn more about different variants of autoencoders by reading A practical tutorial on autoencoders for nonlinear feature fusion.

Ruta provides the functionality to build diverse neural architectures (see autoencoder()), train them as autoencoders (see train()) and perform different tasks with the resulting models (see reconstruct()), including evaluation (see evaluate_mean_squared_error()). The following is a basic example of a natural pipeline with an autoencoder:

library(ruta)
library(purrr)
 
# Shuffle and normalize dataset
x <- iris[, 1:4] %>% sample %>% as.matrix %>% scale
x_train <- x[1:100, ]
x_test <- x[101:150, ]
 
autoencoder(
  input() + dense(256) + dense(36, "tanh") + dense(256) + output("sigmoid"),
  loss = "mean_squared_error"
) %>%
  make_contractive(weight = 1e-4) %>%
  train(x_train, epochs = 40) %>%
  evaluate_mean_squared_error(x_test)

For more details, see other examples and the documentation.

News

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("ruta")

1.1.0 by David Charte, a month ago


https://github.com/fdavidcl/ruta


Report a bug at https://github.com/fdavidcl/ruta/issues


Browse source code at https://github.com/cran/ruta


Authors: David Charte [aut, cre] , Francisco Charte [aut] , Francisco Herrera [aut]


Documentation:   PDF Manual  


GPL (>= 3) | file LICENSE license


Imports graphics, keras, purrr, R.utils, stats, utils

Suggests knitr, magrittr, rmarkdown, testthat

System requirements: Python (>= 2.7); keras <https://keras.io/> (>= 2.1)


See at CRAN