tensorflow/neural-structured-learning

Training neural models with structured signals.

What it solves

Neural Structured Learning (NSL) addresses the challenge of training neural networks when labeled data is scarce. It improves model accuracy and robustness by incorporating "structured signals"—information about the relationships or similarities between different data samples—during the training process.

How it works

NSL leverages two types of structured signals to guide the training of any neural network (such as feed-forward, convolutional, or recurrent networks):

  • Explicit Structure: Uses graphs to represent known relations between samples.
  • Implicit Structure: Uses adversarial perturbations to induce structure and improve the model's resistance to malicious attacks.

These signals are integrated into the training phase only; the final model's inference and serving workflow remains unchanged, meaning there is no performance penalty during prediction.

Who it’s for

Developers and researchers who want to enhance their TensorFlow-based models, particularly those working with semi-supervised learning or those needing to make their models more robust against adversarial attacks.

Highlights

  • Flexible Integration: Provides Keras APIs, low-level TF ops, and graph-building tools to easily add structured signals to training.
  • Broad Compatibility: Works with various neural network architectures (CNNs, RNNs, MLPs).
  • Dual Approach: Generalizes both Neural Graph Learning and Adversarial Learning into a single framework.
  • Zero Inference Overhead: Structured signals are used only during training, leaving the serving performance unaffected.

Related

  • Project
  • Project
  • Project
  • Project
  • Project