Neural Nets sum up weights, but RBMs... multiply weights into a probability? So is an RBM kind of like a bidirectional neural net that multiplies it's weights instead of adding them?
Can you look at an RBM as being a kind of multiplicative NN?
2.1k Views Asked by Josh T At
2
There are 2 best solutions below
Related Questions in MACHINE-LEARNING
- How to cluster a set of strings?
- Enforcing that inputs sum to 1 and are contained in the unit interval in scikit-learn
- scikit-learn preperation
- Spark MLLib How to ignore features when training a classifier
- Increasing the efficiency of equipment using Amazon Machine Learning
- How to interpret scikit's learn confusion matrix and classification report?
- Amazon Machine Learning for sentiment analysis
- What Machine Learning algorithm would be appropriate?
- LDA generated topics
- Spectral clustering with Similarity matrix constructed by jaccard coefficient
- Speeding up Viterbi execution
- Memory Error with Classifier fit and partial_fit
- How to find algo type(regression,classification) in Caret in R for all algos at once?
- Difference between weka tool's correlation coefficient and scikit learn's coefficient of determination score
- What are the approaches to the Big-Data problems?
Related Questions in ARTIFICIAL-INTELLIGENCE
- Developing a Checkers (Draughts) engine, how to begin?
- STRIPS representation of monkey in the lab
- Difference between weak AI and strong AI?
- Q-learning in game not working as expected
- How do I use a class as a template in C#?
- prolog rules as arguments
- How to evaluate a recurrent connection in an artificial neural network?
- AS3 AI barrier detection and movement
- How to simulate neural network by changing different parameters after training in MATLAB?
- Debugging Neural Network for (Natural Language) Tagging
- How do I create a back propagation neural network that has different kinds of output?
- Google Deep Dream art: how to pick a layer in a neural network and enhance it
- Pylearn2 example for time series or sequence prediction
- A Star Pathfinding
- Using Neural Networks Without Training Them
Related Questions in NEURAL-NETWORK
- How to choose good SURF feature keypoints?
- How to avoid overfitting (Encog3 C#)?
- Run out of VRAM using Theano on Amazon cluster
- Calculating equation from image in Java
- Print output of a Theano network
- Torch Lua: Why is my gradient descent not optimizing the error?
- How can I train a neural (pattern recognition) network multiple times in matlab?
- Using Convolution Neural Net with Lasagne in Python error
- Random number of hidden units improves accuracy/F-score on test set
- Matlab example code for deep belief network for classification
- Pybrain Reinforcement Learning Example
- How to speed up caffe classifer in python
- Opencv mlp Same Data Different Results
- Word2Vec Data Setup
- How can I construct a Neural Network in Matlab with matrix of features extracted from images?
Related Questions in RBM
- How can I use Mnist dataset in MapReduce project?
- Measuring success of Restricted Boltzmann Machine
- Difference in calculating derivative of RBM while using ContrastiveDivergence
- Can you look at an RBM as being a kind of multiplicative NN?
- Deep autoencoder using RBM
- (Python) Gaussian Bernoulli RBM on computing P(v|h)
- Inferring missing data with Restricted Boltzmann Machines
- How to test a Restricted Boltzmann Machine implementation ?
- sklearn 0.14.1 RBM dies on NaN or Inf where there is none
- How to find why a RBM does not work correctly?
- Custom operation implementation for RBM/DBN with tensorflow?
- How to evaluate a deep belief network of a stack of BernoulliRBM's performance?
- Gaussian-RBM with NRLU hidden units (in DBN)?
- Loss not decreasing at RBM loss training
- How to train an unsupervised neural network such as RBM?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
First off, a restricted Boltzmann machine is a type of neural network, so there is no difference between a NN and an RBM. I think by NN you really mean the traditional feedforward neural network. Also, note that neither feedforward neural networks nor RBMs are considered fully connected networks. The terminology "fully connected" comes from graph theory and means that each node is connected to every other node, which is clearly not the case here. The layers are, however, fully connected from one to another.
Traditional feedforward neural networks
The traditional FNN model is a supervised learning algorithm for modelling data. To train this network one needs a dataset containing labelled instances. One will present each item to the network, consecutively compute activations for each layer up the network until the output layer is reached and then compare the output with the target output (the label). One then typically uses the backpropagation algorithm to obtain the gradient of the weights and biases for each unit in order to update these parameters via gradient descent. Typically, either the entire dataset or batches of it are passed through the network in one go, and the parameter updates are computed with respect to them all.
RBMs
The RBM model is a version of the Boltzmann machine model that has been restricted for computational efficiency. RBMs are BMs without connections between units in the same layer. This isn't the place to go into detail but I will point you to some external resources. There are a number of variations to the algorithm and the explanations online do not make this clear, nor are very useful for the inexperienced.
Neural networks are algorithms for fitting models to datasets. In an RBM, we attempt to do this using 2 layers of nodes: a "visible layer" that we set to the input and a "hidden layer" that we use to model the input layer. Crucially, the learning process is unsupervised. Training involves using the hidden layer to reconstruct the visible layer and updating the weights and biases using the difference between the node states before and after reconstruction (I have very much simplified this explanation; for more information note that this training algorithm is called contrastive divergence (CD)). Also note that neurons are activated probabilistically in this model. The connections between each layer are bidirectional, thus the network forms a bipartite graph.
Importantly, RBMs do not produce an output in the same way FNNs do. As of this, they are often used to train a network before an output layer is added and another algorithm, such as an autoencoder, is used with the weights learned by the RBM.
Check out these resources:
In general
The performance of any network depends on its parameters and design choices as well as the problem to which it is applied. RBMs and FNNs are suitable for different kinds issues.
I highly recommend Geoffrey Hinton's course "Neural Networks for Machine Learning" on Coursera - the course has taken place but the lectures are available for free.