Google Summer Of Code -Part 4(Using AutoEncoders in TMVA)

Akshay Vashistha
2 min readAug 26, 2017

--

Hey Guys! In this story I would like to tell how we actually integrated AutoEncoders in TMVA.

We were working on Generic Model. We have a generic class MethodDL which is used to Book the method for any of CNNs, RNNs or AutoEncoders. I Parsed my layers into the MethodDL class. So it is like this that we have to parse our Layers then a DeepNet will be created according to the LayoutString. This layout string has to be defined in the Macro defined by user. But there was something in TMVA which was not suited for AutoEncoders. AutoEncoders are unsupervised learning algorithms so we donot require any kind of targets for them but the current TMVA is used only for Regression and Classification. It is not suited for unsupervised learning. So I was in a problem as how can we integrate this in TMVA as I didnot needed targets moreover there were classes that need to be used like the input belongs to which class. So it was needed that TMVA should extend to Unsupervised Learning Algorithms. So like Results Regression and Results Classification there should be something like Results Unsupervised that used only input variables and then there should be a comparison method to compare the inputs and reconstructed outputs. Now to declare this ResultsUnsupervised Class we needed to do a lot of changes. Changes needed to be done in Factory Train, Test and Evaluate methods, DataLoader and maybe TMVAGui also so it was not the best time to make changes as I had around 15–20 days left for Program and this is like changing at each and every step. So I consulted the team and members and we decided to use AutoEncoders as VariableTransform Method. So we declared a new VariableDAETransform class for this. I got a lot of help from Marc Huwiler, a Summer Student at CERN. He helped to integrate AutoEncoders in TMVA. The VariableDAETransform class can be viewed here.

--

--