Ersatz is the easiest way for anyone to start building applications that take advantage of deep neural networks. It comes in two flavors: cloud and on-premise.
Ersatz provides a single web interface through which you may upload data, train models, and use models. In addition, we provide an API which allows users to do the same programatically.
With Ersatz, we take neural networks--typically considered difficult to use in practice--and abstract away their inner workings, allowing you to focus instead on your primary machine learning problem.
The first place to start with any machine learning task is with the data.
With Ersatz, you can focus less on feature engineering and more on collecting as much data as you can, even if it's unlabeled. One of the most powerful benefits of deep neural networks is their apparent ability to extract powerful features from your data automatically.
The formatting of your data may be task specific, but in general, the following tasks are supported: classification, clustering, feature extraction, dimensionality reduction, time series prediction, regression, and sample generation.
Ersatz accepts a variety of formats. These include: images, CSVs, time series, and streamed JSON.
Once you've got your data into Ersatz, you can use our data filtering tools to do things like normalize or split your dataset into training and test sets.
A model describes a certain type of neural network architecture. Some models are better suited to certain types of problems than others. Here's a breakdown of the models we provide.
Deep Feedforward Net: Can use with any data you can put in a CSV type format. This is the one that started it all--the humble but amazingly effective multi-layer perceptron (MLP). These networks are trained using gradient descent and regularized with dropout (among other techniques). This is probably the network to start with.
Convolutional Network: Most used for images, "convnets" for short. Convnets have been breaking records left and right and currently represent the absolute state of the art in vision tasks. In addition to being very good at classification, they can also be used as high level visual feature extractors. These extracted features can then be used with separate algorithms (such as a Q-Learning algorithm for those of you working with cameras and robots.)
Recurrent Neural Network: Used for timeseries prediction. Timeseries are all around us--text can even be thought of as a time series. Recurrent neural networks are special in that they have a sort of "memory state" that allows them to remember something important that happened a while ago. So if you have a long sequence of multivariate frames and you want to learn how the frames evolve over time, recurrent neural networks are a good way to do it.
Autoencoder: Used for dimensionality reduction and feature extraction. These are unsupervised variants of an MLP. It works just like a normal supervised MLP, but instead of having some kind of labeled output target, it instead tries to reproduce its own input as output. So basically, you give the network some input, and you ask it to output the input. Which isn't very exciting.
The trick is, we add noise or transform the input in some other random/stochastic way. Then, we ask the network to output the original (un-altered) input. If the network does this enough times, it will learn to de-corrupt the data, which requires knowing something about how the data is supposed to look. And thus it learns.
One of the key tools in making deep neural networks practical is the use of specialized hardware, specifically Graphics Processing Units (GPUs). The use of GPUs allows an approximately 40x speedup on training time. So now, a model that might have taken 40 days to train will only take one day. That's a tremendous boost.
So if you've been playing with neural networks and have been running them on CPU, you should try Ersatz--it's faster.
One of the more difficult aspects of deep learning is the black art of "picking hyperparameters". Not to worry though, Ersatz has you covered.
Whenever you create a model, Ersatz intelligently looks at your data and generates a set of parameters that it thinks are most likely to work well with your data, based on models that have been trained before.
You can choose to accept the recommended parameters, or, if you are an advanced user, you may override them and customize the model as much as you want.
In addition, we've found training several models with different parameters and combining them in an "ensemble" can be a powerful regularization technique.
One of our core goals with Ersatz is to turn neural networks into "just another abstraction", like a database or the square root function. An important part of this is providing users with a reliable, easy to use API.
The API is accessible via HTTP requests. We also provide a python based library that wraps our API to simplify things even further.
Ersatz makes it possible for relative novices to machine learning to use deep neural networks in their projects.
For companies with data science teams that want to get a head start on internal deep learning initiatives, we offer our Deep Learning Appliance. This is a hardware and software combination of a rack or workstation form factor GPU server with Ersatz software pre-installed.
The source code is also licensed so you can fork it, learn from it, or use it deeply in your own products.
Consider: A project comes down the pipe that you think Deep Learning might be well suited for. Would you rather build your own system and get started in six months, or simply buy an appliance and get started next week, with results ready by next month?
Because the appliance runs on your network, you don't have to worry about your data being in the cloud. Because you have the source code, you can audit it to make sure it complies with all the rules and regulations of your company.
This thing makes your job easy.