gneuralnetwork
[Top][All Lists]

## Re: [Gneuralnetwork] Bayesian models and Monte Carlo methods

 From: Tobias Wessels Subject: Re: [Gneuralnetwork] Bayesian models and Monte Carlo methods Date: Thu, 24 Mar 2016 22:36:49 +0700

Hi JM,

Yes, I see that Monte Carlo methods are used to generate (more or less) random walks in order to approximate complex integrals over spaces of high dimensionalities. The papers that I have read and cited earlier, therefore, do not even mention neural networks in the first place. So the principles of these methods and benefits of more sophisticated methods (such as Hybrid Monte Carlo methods) are somewhat clear to me, however, as I understand it, they are themselves not related to neural networks, but rather used as a tool in the training process. As I see it, they can be implemented completely separately from the neural network framework.

If that is correct, maybe I should try to reformulate my question:
If a set of Monte Carlo methods is implemented as a standalone library/tool, how (or in which step) would they be used in optimizing the neural network? A maximum likelihood approach has no need for calculating such complex integrals, does it?

Kind regards,
Tobias

On Thu, 2016-03-24 at 16:17 +0100, Jean Michel Sellier wrote:
Hi Tobias,

Many thanks for this very interesting email. I think there is a misunderstanding here though. Monte Carlo methods are a VERY broad family of numerical methods which deal with A LOT of different problems (the ones you mention are a very small part of this huge family of methods). Let me report here an extract of a paper of mine where I explain what this family is about:

"The purpose of Monte Carlo methods is to approximate the solution of problems in computational mathematics by using
random processes for each such problem. These methods give statistical estimates for any linear functional of the solution by
performing random sampling of a certain random variable whose mathematical expectation is the desired functional [46].
Essentially, they reduce a given problem to approximate calculations of some mathematical expectation. They represent
a very powerful tool when it comes to solve problems in mathematics, physics and engineering where the deterministic
methods hopelessly break down. Indeed Monte Carlo methods do not require any additional regularity of the solution and it
is always possible to control the accuracy of this solution in terms of the probability error. Another important advantage in
using Monte Carlo methods consists in the fact that they are very efficient in dealing with large and very large computational
problems such as multi-dimensional integration, very large linear systems, partial integro-differential equations in highly
dimensional spaces, etc. Finally, these methods are efficient on parallel processors and parallel machines. Thus, it is not
surprising that these methods have rapidly found a wide range of applications in applied Science."

I hope this somehow clarifies what I meant by Monte Carlo methods for optimization problems. Essentially, what I am looking for is a method which exploits the generation of (independent) random numbers to solve an optimization problem. This would represent an important feature of Gneural Network since it would extremely easy to parallelize and therefore useful for the training of "deep" neural networks.

I hope this helps,

Best,

JM

2016-03-24 15:50 GMT+01:00 Tobias Wessels :
Hi everyone,

First a short remark on my previous question and then, more
importantly, an issue which I have with the current implementation of
neural networks.

I have read more about Monte Carlo methods and my previous question is
that
$\sum_{i=1}^L \tilde q(w_i)$
would approximate  the total weight of $\tilde q$, which it doesn't,
because the $w_i$ are already drawn according to the distribution of
$q$.

Now to the more important issue:
As it seems to me, Monte Carlo methods are mainly used for models,
which use Bayesian inference, as in these models you have to calculate
probabilistic integrals frequently, which is a difficult task unless
the model is broken down to a very narrow class of distribution
functions (i.e. Gaussian). Monte Carlo methods are a tool to
approximate these integrals by simple (that is: computationally
inexpensive) means.

The issue that I have now with the current implementation of neural
networks is that it is not adapted to Bayesian inference models. In
these models, the networks are not trained to use a single, most likely
choice of weight vector as in the maximum likelihood method, but
instead these models consider a probability distribution for the
weights of the neurons and then calculates an average (expected value)
of the output, given a new input x. (This is the important step, where
Monte Carlo methods are used, because this expectation is basically an
integral over a very complex probability density).

In the current implementation, however, the nodes have a single
parameter/array, which is set to the most likely choice, rather than
using a distribution of possible values for the weights. I don't see
how I would implement a Bayesian inference model using the current
code.

I hope that my explanations were somewhat clear and somewhat accurate,
as I am still new to this topic myself. So if you see it differently,

Kind regards,

Tobias

--