Several inverse and optimization problems involve the use of simulation models, data or experiments. Examples of such problems include simulation-based optimization, simulation-based (parameter) inference, identifying quasi-optimal regions in computer-aided design, optimal experimental design, etc. The simulation models represent complex real-world phenomena and therefore are often computationally expensive to evaluate. Consequently, it is desirable to minimise the number of simulations involved in solving the inverse and optimization problems. We explore neural networks as surrogate models that learn the inverse mapping between simulator response as neural network input, and simulator parameters as neural network outputs. This project will investigate Bayesian convolutional networks and variational autoencoders to learn the inverse mappings.