Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AI: hyperparameter, metric, metricDecisionThreshold - can be multiple. Property talks about only one. #769

Open
VenkatTechnologist opened this issue May 9, 2024 · 4 comments

Comments

@VenkatTechnologist
Copy link
Contributor

VenkatTechnologist commented May 9, 2024

There could be multiple hyperparameters, metrics, and metricDecisionThresholds for an AI model.
The properties 'hyperparameter', 'metric' and 'metricDecisionThreshold' talk about only one value, and their class
is DictionaryEntry, which can hold only one key-pair. How can we accommodate multiple hyperparameters,
metrics, and metricDecisionThresholds of an AI model in the AI profile of SPDX?

@VenkatTechnologist VenkatTechnologist changed the title AI: hyperparameter can be multiple. Property talks about only one. AI: hyperparameter, metric, metricDecisionThreshold - can be multiple. Property talks about only one. May 9, 2024
@bennetkl
Copy link

bennetkl commented May 9, 2024 via email

@VenkatTechnologist
Copy link
Contributor Author

VenkatTechnologist commented May 10, 2024

Some real world, open source examples where multiple hyperparameters are used at once:

Machine Learning:

  • XGBoost (eXtreme Gradient Boosting) : n_estimators, learning_rate, max_depth, L1/L2 regularization parameters
  • TensorFlow/Keras Convolutional Neural Network (CNN): No. of convolution layers & filters, Kernel size, Pooling layer settings, Optimizer and learning rate
  • Scikit-learn Support Vector Machine (SVM): Regularization parameter C, Kernel, Gamma (for RBF Kernel)

Generative-AI:

  • StyleGAN2 - TensorFlow/Keras (Generative Adversarial Network): No. of layers & filters, Learning rates for generator and discriminator, Noise input dimension, Regularization hyperparameters)
  • BicycleGAN - PyTorch (Conditional GAN): Network architectures for generator & discriminator, Loss functions, Weight normalization
  • OpenAI Gym with TensorFlow/Keras (Reinforcement Learning for Generative Models): Reward function design, Exploration vs exploitation, RL algorithm hyperparameters

@VenkatTechnologist
Copy link
Contributor Author

VenkatTechnologist commented May 10, 2024

Metrics used to assess and their associated thresholds can be multiple in machine learning as well as generative AI algorithms.

Real world, Open source examples:

Generative AI:

StyleGAN2 - PyTorch (Generative Adversarial Networks): Fréchet Inception Distance (FID), Inception Score (IS), Human Evaluation
MelNet - TensorFlow (WaveNet-based Text-to-Speech): Mel-Cepstral Distortion (MCD, Log mel Spectrogram Similarity,
OpenAI GPT-2 (Large Language Model): Perplexity, BLEU

Machine Learning:

Scikit-learn Multi-Class Classification: Accuracy, Confusion Matrix, Precision and Recall, F1-Score
TensorFlow/Keras Object Detection: Mean Average Precision, Intersection over Union
XGBoost Regression with Feature Importance: Mean Squared Error, R-squared, Feature Importance

@VenkatTechnologist
Copy link
Contributor Author

VenkatTechnologist commented May 10, 2024

On that note, it looks like we need a class called 'Dictionary' to list multiple hyperparameters, metrics, and metric thresholds.

See #773.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants