Skip to content

DIGI2-FEUP/Hyper-Process-Model

 
 

Repository files navigation

Zero-Shot Learning (ZSL) - Hyper-Process Model

This repository contains the full implementation of the algorithm Hyper-Process Model (HPM) using as example a set of curves from Beta Distribution. Contrary to all the available and most known algorithms for ZSL, this algorithm was specifically designed for regression problems and not classification, which, up-to-now, makes this algorithm unique.

This algorithm is used in the following publications:

"Reis, Joao, and Gil Gonçalves. "Hyper-Process Model: A Zero-Shot Learning algorithm for Regression Problems based on Shape Analysis." arXiv preprint arXiv:1810.10330 (2018)." Download: https://arxiv.org/abs/1810.10330

"Reis, J., Gonçalves, G., & Link, N. (2017, October). Meta-process modeling methodology for process model generation in intelligent manufacturing. In Industrial Electronics Society, IECON 2017-43rd Annual Conference of the IEEE (pp. 3396-3402). IEEE."

How to run the algorithm?

In the beginning of the code, there's a variable "HPM = True" that defines if the algorithm used is the HPM or Hyper-Model according to the the following publication:

"Jürgen Pollak and Norbert Link. From models to hyper-models of physical objects and industrial processes. In Electronics and Telecommunications (ISETC), 2016 12th IEEE International Symposium on, pages 317–320. IEEE, 2016."

"Jürgen Pollak, Alireza Sarveniazi, and Norbert Link. Retrieval of process methods from task descriptions and generalized data representations. The International Journal of Advanced Manufacturing Technology, 53(5-8):829–840, 2011."

The program writes all the results in a .txt file where a set of hyperparameters are tested. For the HPM, these hyperparameters are the Number of Components used in the decomposition of shapes (SSM) and the polynomial degree for the hyper-model training. As for the Hyper-Model alone (not framed in the HPM), these hyperparameters are the polynomial degree to train all source models and the polynomial degree for the hyper-model training. For this case, 25 different functions where generated based on all combinations between a and b values of 0.5, 1, 5, 10 and 15. These set of values were chosen because they generate a set of 4 different types of functions. The goal for this example is to predict curves outside the 25 functions generated by the presented a and b values. Therefore, in the training phase only the curves generated by the 25 set of Beta Distribution parameters will be used, where in the test phase 16 different combinations of a and b parameters will be used in HPM algorithm to generate the corresponding curves. Here, the task descriptions will be the a and b parameters to train the hyper-model. The set of values for a and b parameters in the test phase are 4, 6, 8 and 12. In order to generate the curves, 20 input values between 0.01 and 0.99 were used to ensure a fair representation of each curve.

For a better interpretation of the above results, the Figure below presents two test scenarios for the Beta Distribution with a = 4 and b = 6 on the left and a = 12 and b = 4 on the right, where the dashed blue line is the ground truth from Beta Distribution and the orange line is the result of the ZSL approach applied.

In each row, different settings were used: On the top, HM was used with model degree of 3 and hyper-model degree of 3; On the mid row, again the HM approach was used with model degree of 6 and hyper-model degree of 3; On the bottom row, the HPM approach used tested with 4 components and hyper-model degree of 4. Additionally, below each image the MSE is depicted to assess the distance between the predicted curve and the ground truth. As can be seen, the best results are yielded by the HPM approach and, for the HM, it can also be seen that the MSE increased as the model degree increased from 3 to 6. It can be clearly seen the effect of increasing the polynomial degree used to fit the source models as in the mid row the predicted curves are more complex and irregular than the ones in the top row. Despite being more complex, they do not produce better results and are not a better suit for the presented ground truth.

For more details about the algorithm implementation, please read the afore mentioned publications about the Hyper-Process Model.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%