I have a machine learning project with not so much data, so I have the following reasons to use Bayesian neural network (not Bayesian network / directed graphical models) for my work:
- There are indeed some nonlinear interaction between features in my model, so I do not want to use linear regression. And as I tried, xgboost does not work well for this dataset.
- I heard Bayesian neural network is more tolerance of small dataset than multilayer perceptron.
- I can get a free estimate of the uncertainty of my prediction.
However, I have the following question about Bayesian neural network as I have no experience with it:
- Is it true that Bayesian neural network work better than multilayer perceptron? I synthesized some data using a function I chose, then gradually reduce the number of data gradually and measure the mean squared error from both model. Up until the point when the number of data is too small for both models, multilayer perceptron always perform better than Bayesian neural network.
- How should I compare the performance of these two models? For my regression task, I used mean squared error for multilayer perceptron. But how about Bayesian neural network? Shall I use the MAP value of the parameters and report the corresponding mean squared error? Or shall I sample parameters multiple times and report the average mean squared error?