• Stars
    star
    262
  • Rank 156,136 (Top 4 %)
  • Language
    TeX
  • License
    MIT License
  • Created about 6 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Master Thesis on Bayesian Convolutional Neural Network using Variational Inference

Master Thesis: Bayesian Convolutional Neural Networks

Thesis work submitted at Computer Science department at University of Kaiserslautern.

License MIT

Author

Supervisors

  • Prof. Marcus Liwicki (Professor at Luleรฅ University, Sweden)
  • Felix Laumann (PhD candidate at Imperial College, London)

Abstract

Artificial Neural Networks are connectionist systems that perform a given task by learning on examples without having a prior knowledge about the task. This is done by finding an optimal point estimate for the weights in every node. Generally, the network using point estimates as weights perform well with large datasets, but they fail to express uncertainty in regions with little or no data, leading to overconfident decisions.

In this thesis, Bayesian Convolutional Neural Network (BayesCNN) using Variational Inference is proposed, that introduces probability distribution over the weights. Furthermore, the proposed BayesCNN architecture is applied to tasks like Image Classification, Image Super-Resolution and Generative Adversarial Networks.

BayesCNN is based on Bayes by Backprop which derives a variational approximation to the true posterior. Our proposed method not only achieves performances equivalent to frequentist inference in identical architectures but also incorporate a measurement for uncertainties and regularisation. It further eliminates the use of dropout in the model. Moreover, we predict how certain the model prediction is based on the epistemic and aleatoric uncertainties and finally, we propose ways to prune the Bayesian architecture and to make it more computational and time effective.

In the first part of the thesis, the Bayesian Neural Network is explained and it is applied to an Image Classification task. The results are compared to point-estimates based architectures on MNIST, CIFAR-10, CIFAR-100 and STL-10 datasets. Moreover, uncertainties are calculated and the architecture is pruned and a comparison between the results is drawn.

In the second part of the thesis, the concept is further applied to other computer vision tasks namely, Image Super-Resolution and Generative Adversarial Networks. The concept of BayesCNN is tested and compared against other concepts in a similar domain.


Code base

The proposed work has been implemented in PyTorch and is available here : BayesianCNN


Chapter Overview

Chapter 1 : Introduction

  • Why there is a need for Bayesian Networks?

  • Problem Statement

  • Current Situation

  • Our Hypothesis

  • Our Contribution

Chapter 2: Background

  • Neural Networks and Convolutional Neural Networks

  • Concepts overview of Variational Inference, and local reparameterization trick in Bayesian Neural Network.

  • Backpropagation in Bayesian Networks using Bayes by Backprop.

  • Estimation of Uncertainties in a network.

  • Pruning a network to reduce the number of overall parameters without affecting it's performance.

Chapter 3: Related Work

  • How Bayesian Methods were applied to Neural Networks for the intractable true posterior distribution.

  • Various ways of training Neural Networks posterior probability distributions: Laplace approximations, Monte Carlo and Variational Inference.

  • Proposals on Dropout and Gaussian Dropout as Variational Inference schemes.

  • Work done in the past for uncertainty estimation in Neural Network.

  • Ways to reduce the number of parameters in a model.

Chapter 4: Concept

  • Bayesian CNN with Variational Inference based on Bayes by Backprop.

  • Bayesian convolutional operations with mean and variance.

  • Local reparameterization trick for Bayesian CNN.

  • Uncertainty estimation in a Bayesian network.

  • Using L1 norm for reducing the number of parameters in a Bayesian network.

Chapter 5: Empirical Analysis

  • Applying Bayesian CNN for the task of Image Recognition on MNIST, CIFAR-10, CIFAR-100 and STL-10 datasets.

  • Comparison of results of Bayesian CNN with Normal CNN architectures on similar datasets.

  • Regularization effect of Bayesian Network with dropouts.

  • Distribution of mean and variance in Bayesian CNN over time.

  • Parameters comparison before and after model pruning.

Chapter 6: Applications

  • Empirical analysis of BayesCNN with normal architecture for Image Super Resolution.

  • Empirical analysis of BayesCNN with normal architecture for Generative Adversarial Networks.

Chapter 7: Conclusion and Outlook

  • Conclusion

Appendix A

  • Experiment Specification

Appendix B

  • How to replicate results

Paper

@article{shridhar2019comprehensive,
  title={A Comprehensive guide to Bayesian Convolutional Neural Network with Variational Inference},
  author={Shridhar, Kumar and Laumann, Felix and Liwicki, Marcus},
  journal={arXiv preprint arXiv:1901.02731},
  year={2019}
}

Thesis Template


Contact


More Repositories

1

PyTorch-BayesianCNN

Bayesian Convolutional Neural Network with Variational Inference based on Bayes by Backprop in PyTorch.
Python
1,401
star
2

Know-Your-Intent

State of the Art results in Intent Classification using Sematic Hashing for three datasets: AskUbuntu, Chatbot and WebApplication.
Jupyter Notebook
134
star
3

Screws

SCREWS: A Modular Framework for Reasoning with Revisions
Python
26
star
4

CNN_Architectures

Keras Implementation of major CNN architectures
Jupyter Notebook
15
star
5

ProbAct-Probabilistic-Activation-Function

Official PyTorch implementation of the paper : ProbAct: A Probabilistic Activation Function for Deep Neural Networks.
Jupyter Notebook
13
star
6

Very-Deep-Learning-CNN

Everything you need to know about CNN in PyTorch
Jupyter Notebook
11
star
7

PyTorch-Super-Resolution

Super Resolution of low resolution Images in PyTorch
Python
9
star
8

Indian-Names-Generator-Using-Deep-Learning

Generate Indian people Name using LSTM
Python
9
star
9

LongtoNotes

LongtoNotes: OntoNotes with Longer Coreference Chains
8
star
10

PyTorch-Bayesian-Super-Resolution

Super Resolution using Bayesian CNN
Python
7
star
11

NER-Benchmarks

NER Benchmark
7
star
12

Distiiling-LM

The code for the paper : Distilling Reasoning Capabilities into Smaller Language Models
6
star
13

MastersInMachineLearningOnline

Online Content equivalent to Machine Learning Masters Degree at an University
4
star
14

CV

My Curriculum vitae (CV)
3
star
15

GMM-vs-K-Means

Gausian Mixture Models vs K-Means
Jupyter Notebook
2
star
16

PyTorch-Bayesian-DCGAN

Bayesian Version of DCGAN
2
star
17

Detect-Language

Detect the language from the given sentence
Python
2
star
18

Online-Toxicity-Detection

APOLLO-1: Online Toxicity Detection
Python
2
star
19

Twitter_Sentiment_Analysis

Analyse sentiments of tweets posted on Twitter
Python
1
star
20

HackathonLulea

hack night Lulea
Jupyter Notebook
1
star
21

AddressExtractorAPI

Extract address using the API
Python
1
star
22

Very-Deep-Learning-NLP

NLP exercise for Very Deep Learning Lecture at TU Kl
Jupyter Notebook
1
star
23

LTU_NLP

NLP Projects at LTU
1
star
24

GoT-Data-Visualization-using-t-SNE

Visualize multidimensional Game of Thrones data-set using t-SNE.
Python
1
star
25

QWERTY-based-Mistake-Probability

Add noise in training data with QWERTY based Mistake Probability
Jupyter Notebook
1
star
26

Business-Card-Detector

Detect if an image is a business card or not!
Python
1
star