Autoencoder
A simple autoencoder module for experimentation and dimensionality reduction. Supports automatic scaling
Install and load
Install from npm:
npm install autoencoder
Then load with require
:
const Autoencoder = require('autoencoder')
Create new autoencoder
Autoencoder
supports two ways of a model initialization:
- Provide the number of layers, input size, encoder output size (number of latent variables) and the activation function name
const ae = new Autoencoder({
'nInputs': 10,
'nHidden': 2,
'nLayers': 2,
'activation': 'relu'
})
- Define each layer separately for both encoder and decoder
const ae = new Autoencoder({
'encoder': [
{'nOut': 10, 'activation': 'tanh'},
{'nOut': 2, 'activation': 'tanh'}
],
'decoder': [
{'nOut': 2, 'activation': 'tanh'},
{'nOut': 10}
]
})
Activation functions: relu
, tanh
, sigmoid
As other neural nets, autoencoder is very sensitive to input scaling. To make it easier the scaling is enabled by default, you can control it with an extra parameter scale
that takes true
or false
Train autoencoder
ae.fit(X, {
'batchSize': 100,
'iterations': 5000,
'method': 'adagrad',
'stepSize': 0.01,
})
Optimization methods: sgd
, adagrad
, adam
Encode, Decode, Predict
const Y = ae.encode(X)
const Xd = ae.decode(Y)
const Xp = ae.predict(X)
Web demo (dimensionality reduction)
Try the package in the browser on StatSim Vis. Choose a CSV file, change a dimensionality reduction method to Autoencoder, then click Run.