Skip to content

MSc Nuclear Science and Engineering Final Project. A ML Algorithm which is used to calculate residual stress tensors using Bayesian Inference, given a heavily-distorted set of simulated strain measurements.

Notifications You must be signed in to change notification settings

Farah-H/Bayesian-Project

Repository files navigation

Bayesian Regression for Stress Analyis

What is the purpose of this project? Essentially what this algorithm does is you have x = a + b.

  1. Mutate a and b to a' and b', adding statistical noise derived from a student's T distribution. This generates a set of 'measurements' with non Normally-distrubuted errors.

NOTE: Least-Squares regression assumes errors are Normally distributed, which is why this is an important distinction because in practice strain measurements have additive error distributions.

  1. Calculate x from a' + b' using bayesian (pymc3) machine learning inference, and compare this to the value generated by Least-Squares regression, the industry standard.
  2. Except x' is actually strain, and a + b +... is actually P11S11 + P22S22 where Sii is a diagonal stress tensor compoent and Pii is a coefficint, calculated from the material's isotropic properties.

Test Stress Tensor:

Iteration 1 (Current)

  1. pymc3 used to infer stress tensor components s11 and s22 the result is superior to Least-Squares regression in samples with additive error distribution in the following ways a) it is better at recognising uncertainty (LS can be very certain of inaccurate results) b) stress tensor estimate is consistently more accurate

Example 1

Example 2

  1. Calibration Experiment successfully carried out to determine appropriate prior stength.

  1. Outlier detection was carried out successfully, but yielded a minor improvement to the bayesian fit for the samples tested.

Iteration 2 (In Progress)

  • Look into TensorFlow instead of pymc3 for ML
  • calculate all 6 stress tensor components, not just diagonal.
  • Clean up file structure and code to remove unnecessary dependencies and make the program more efficient.

Iteration 3

  • Use Python Flask to create a simple interface

Iteration 4

  • Full deployment on AWS
  • CI/CD using Jenkins

About

MSc Nuclear Science and Engineering Final Project. A ML Algorithm which is used to calculate residual stress tensors using Bayesian Inference, given a heavily-distorted set of simulated strain measurements.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published