tahamajs's picture
|
download
raw
15.4 kB

CA6: Systematic Generalization

๐Ÿง  Overview

This project implements advanced systematic generalization capabilities in neural networks, focusing on the ability to learn rules and patterns that generalize beyond the training distribution. It addresses fundamental challenges in AI regarding compositional reasoning and systematic behavior.

๐ŸŽฏ Key Features

Core Capabilities

  • Compositional Learning: Learning to combine known components in novel ways
  • Rule-Based Generalization: Extracting and applying abstract rules
  • Systematic Behavior: Consistent application of learned principles
  • Out-of-Distribution Generalization: Performance on unseen data distributions
  • Meta-Learning: Learning to learn new tasks quickly

Advanced Features

  • Neural-Symbolic Integration: Combining neural and symbolic approaches
  • Program Synthesis: Automatic generation of reasoning programs
  • Hierarchical Learning: Multi-level abstraction and reasoning
  • Causal Reasoning: Understanding cause-effect relationships
  • Transfer Learning: Applying knowledge across domains

๐Ÿ—๏ธ System Architecture

1. Learning Pipeline

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Training   โ”‚    โ”‚  Rule       โ”‚    โ”‚ Generalizationโ”‚
โ”‚   Data       โ”‚โ”€โ”€โ”€โ–ถโ”‚ Extraction  โ”‚โ”€โ”€โ”€โ–ถโ”‚ Testing     โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

2. Compositional Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                Compositional Layer                      โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Component   โ”‚ Combination โ”‚ Abstraction โ”‚ Application โ”‚
โ”‚ Learning    โ”‚ Rules       โ”‚ Layer       โ”‚ Layer       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

3. Generalization Testing

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   Novel     โ”‚    โ”‚  Systematic โ”‚    โ”‚ Performance โ”‚
โ”‚  Tasks      โ”‚โ”€โ”€โ”€โ–ถโ”‚ Evaluation  โ”‚โ”€โ”€โ”€โ–ถโ”‚ Analysis    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ Project Structure

CA6_systematic_generalization/
โ”œโ”€โ”€ CA6.ipynb                    # Main Jupyter notebook
โ”œโ”€โ”€ main.py                      # Main execution script
โ”œโ”€โ”€ demo.py                      # Demonstration script
โ”œโ”€โ”€ src/                         # Source code
โ”‚   โ”œโ”€โ”€ models/                  # Model implementations
โ”‚   โ”‚   โ”œโ”€โ”€ compositional.py     # Compositional models
โ”‚   โ”‚   โ”œโ”€โ”€ rule_based.py       # Rule-based models
โ”‚   โ”‚   โ”œโ”€โ”€ meta_learning.py     # Meta-learning models
โ”‚   โ”‚   โ””โ”€โ”€ neural_symbolic.py   # Neural-symbolic models
โ”‚   โ”œโ”€โ”€ data/                    # Data processing
โ”‚   โ”‚   โ”œโ”€โ”€ generators.py        # Data generators
โ”‚   โ”‚   โ”œโ”€โ”€ loaders.py           # Data loaders
โ”‚   โ”‚   โ””โ”€โ”€ augmenters.py        # Data augmentation
โ”‚   โ”œโ”€โ”€ training/                # Training utilities
โ”‚   โ”‚   โ”œโ”€โ”€ trainers.py          # Training loops
โ”‚   โ”‚   โ”œโ”€โ”€ curriculum.py         # Curriculum learning
โ”‚   โ”‚   โ””โ”€โ”€ regularization.py    # Regularization techniques
โ”‚   โ”œโ”€โ”€ evaluation/               # Evaluation metrics
โ”‚   โ”‚   โ”œโ”€โ”€ generalization.py   # Generalization metrics
โ”‚   โ”‚   โ”œโ”€โ”€ systematicity.py     # Systematicity tests
โ”‚   โ”‚   โ””โ”€โ”€ compositionality.py   # Compositionality tests
โ”‚   โ””โ”€โ”€ utils/                   # Utility functions
โ”‚       โ”œโ”€โ”€ visualization.py     # Visualization tools
โ”‚       โ”œโ”€โ”€ analysis.py          # Analysis utilities
โ”‚       โ””โ”€โ”€ io_utils.py          # I/O utilities
โ”œโ”€โ”€ tests/                       # Test files
โ”‚   โ”œโ”€โ”€ test_models.py           # Model tests
โ”‚   โ”œโ”€โ”€ test_generalization.py   # Generalization tests
โ”‚   โ””โ”€โ”€ test_systematicity.py    # Systematicity tests
โ”œโ”€โ”€ scripts/                     # Utility scripts
โ”‚   โ”œโ”€โ”€ run_experiments.sh       # Experiment runner
โ”‚   โ””โ”€โ”€ analyze_results.py      # Result analysis
โ”œโ”€โ”€ configs/                     # Configuration files
โ”‚   โ”œโ”€โ”€ model_configs.yaml       # Model configurations
โ”‚   โ”œโ”€โ”€ training_configs.yaml    # Training configurations
โ”‚   โ””โ”€โ”€ evaluation_configs.yaml  # Evaluation configurations
โ”œโ”€โ”€ data/                        # Data files
โ”‚   โ”œโ”€โ”€ training/                # Training datasets
โ”‚   โ”œโ”€โ”€ validation/              # Validation datasets
โ”‚   โ””โ”€โ”€ test/                    # Test datasets
โ”œโ”€โ”€ results/                     # Output results
โ”œโ”€โ”€ logs/                        # Execution logs
โ”œโ”€โ”€ visualizations/              # Generated visualizations
โ”œโ”€โ”€ demo_results/                # Demo results
โ”œโ”€โ”€ requirements.txt             # Python dependencies
โ”œโ”€โ”€ requirements_basic.txt       # Basic dependencies
โ”œโ”€โ”€ run.sh                       # Execution script
โ”œโ”€โ”€ run_experiments.sh           # Experiment script
โ””โ”€โ”€ README.md                    # This file

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.8+
  • CUDA-capable GPU (recommended)
  • Jupyter Notebook

Installation

  1. Clone the repository
git clone <repository-url>
cd CA6_systematic_generalization
  1. Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies
# Install basic dependencies
pip install -r requirements_basic.txt

# Install full dependencies
pip install -r requirements.txt
  1. Run the project
chmod +x run.sh
./run.sh

Manual Execution

# Run main script
python main.py

# Run demonstration
python demo.py

# Run experiments
chmod +x run_experiments.sh
./run_experiments.sh

# Run Jupyter notebook
jupyter notebook CA6.ipynb

๐Ÿ”ง Configuration

Model Configurations

# configs/model_configs.yaml
compositional_model:
  embedding_dim: 128
  hidden_dim: 256
  num_components: 10
  composition_depth: 3
  dropout: 0.1

rule_based_model:
  rule_dim: 64
  max_rules: 100
  rule_threshold: 0.8
  inference_depth: 5

meta_learning_model:
  inner_lr: 0.01
  outer_lr: 0.001
  num_inner_steps: 5
  num_meta_tasks: 100

Training Configurations

# configs/training_configs.yaml
training:
  batch_size: 32
  learning_rate: 0.001
  num_epochs: 100
  weight_decay: 1e-4
  gradient_clip: 1.0

curriculum:
  enabled: true
  difficulty_levels: 5
  progression_rate: 0.1

regularization:
  l1_weight: 0.01
  l2_weight: 0.001
  dropout_rate: 0.1

๐Ÿ“Š Features & Capabilities

1. Compositional Learning

  • Component Learning: Learning basic components
  • Composition Rules: Learning how to combine components
  • Novel Combinations: Creating new combinations
  • Hierarchical Composition: Multi-level composition

2. Rule-Based Generalization

  • Rule Extraction: Automatically extracting rules
  • Rule Application: Applying rules to new situations
  • Rule Refinement: Improving rules over time
  • Rule Conflict Resolution: Handling conflicting rules

3. Meta-Learning

  • Few-Shot Learning: Learning from few examples
  • Task Adaptation: Adapting to new tasks quickly
  • Transfer Learning: Transferring knowledge across tasks
  • Continual Learning: Learning new tasks without forgetting

4. Systematic Evaluation

  • Compositionality Tests: Testing compositional abilities
  • Systematicity Tests: Testing systematic behavior
  • Generalization Tests: Testing out-of-distribution performance
  • Robustness Tests: Testing robustness to variations

๐Ÿงช Experiments & Tasks

1. SCAN Dataset

  • Command Following: Following natural language commands
  • Compositional Generalization: Novel command combinations
  • Systematic Behavior: Consistent application of rules

2. CLEVR Dataset

  • Visual Reasoning: Answering questions about images
  • Compositional Questions: Complex question combinations
  • Systematic Generalization: Novel question types

3. Mathematical Reasoning

  • Arithmetic Operations: Basic mathematical operations
  • Algebraic Manipulation: Symbolic mathematical reasoning
  • Proof Generation: Generating mathematical proofs

4. Program Synthesis

  • Code Generation: Generating code from specifications
  • Program Composition: Combining program components
  • Systematic Programming: Consistent programming patterns

๐Ÿ“ˆ Usage Examples

Basic Compositional Learning

from src.models.compositional import CompositionalModel

# Initialize model
model = CompositionalModel()

# Train on compositional tasks
model.train(training_data)

# Test on novel combinations
results = model.evaluate(test_data)
print(f"Compositional accuracy: {results['accuracy']}")

Rule-Based Generalization

from src.models.rule_based import RuleBasedModel

# Initialize rule-based model
rule_model = RuleBasedModel()

# Extract rules from data
rules = rule_model.extract_rules(training_data)

# Apply rules to new data
predictions = rule_model.apply_rules(test_data, rules)
print(f"Rule-based predictions: {predictions}")

Meta-Learning

from src.models.meta_learning import MetaLearningModel

# Initialize meta-learning model
meta_model = MetaLearningModel()

# Meta-train on multiple tasks
meta_model.meta_train(meta_tasks)

# Adapt to new task
adapted_model = meta_model.adapt(new_task_data)

Systematic Evaluation

from src.evaluation.systematicity import SystematicityEvaluator

# Initialize evaluator
evaluator = SystematicityEvaluator()

# Test systematic behavior
results = evaluator.evaluate(model, test_tasks)
print(f"Systematicity score: {results['systematicity']}")
print(f"Compositionality score: {results['compositionality']}")

๐Ÿ” Advanced Features

1. Curriculum Learning

  • Difficulty Progression: Gradually increasing difficulty
  • Task Ordering: Optimal task ordering
  • Adaptive Curriculum: Adapting curriculum based on performance
  • Multi-Task Curriculum: Curriculum across multiple tasks

2. Neural-Symbolic Integration

  • Symbol Grounding: Connecting symbols to neural representations
  • Symbolic Reasoning: Logical reasoning with symbols
  • Neural-Symbolic Bridge: Converting between representations
  • Hybrid Architectures: Combining neural and symbolic components

3. Causal Reasoning

  • Causal Discovery: Discovering causal relationships
  • Causal Inference: Making causal inferences
  • Intervention: Reasoning about interventions
  • Counterfactual Reasoning: Reasoning about counterfactuals

4. Program Synthesis

  • Program Generation: Generating programs from specifications
  • Program Verification: Verifying program correctness
  • Program Optimization: Optimizing generated programs
  • Program Composition: Composing programs from components

๐Ÿ› ๏ธ Development

Adding New Models

  1. Create model class in src/models/
  2. Implement required methods: train(), evaluate(), etc.
  3. Add configuration in configs/model_configs.yaml
  4. Add tests in tests/test_models.py
  5. Update documentation

Adding New Tasks

  1. Create task class in src/tasks/
  2. Implement data generation and evaluation
  3. Add configuration in configs/task_configs.yaml
  4. Add tests in tests/test_tasks.py
  5. Update documentation

Running Experiments

# Run all experiments
./run_experiments.sh

# Run specific experiment
python -m src.experiments.compositional_experiment

# Run with custom parameters
python -m src.experiments.compositional_experiment --epochs 200 --batch_size 64

๐Ÿ“š Theoretical Background

Systematic Generalization

  • Compositionality: Building complex meanings from simple parts
  • Systematicity: Ability to understand novel combinations
  • Productivity: Generating infinitely many expressions
  • Rule Learning: Learning abstract rules from examples

Key Concepts

  • Inductive Bias: Biases that guide learning
  • Generalization: Performance on unseen data
  • Overfitting: Memorizing training data
  • Underfitting: Insufficient learning

๐Ÿ“– References

Key Papers

  • Lake, B. M., & Baroni, M. "Generalizing outside the training set"
  • Bahdanau, D., et al. "Systematic generalization: What is required"
  • Keysers, D., et al. "Measuring compositional generalization"

Datasets

๐Ÿ“ž Support

Issues

  • Report bugs via GitHub Issues
  • Request features via GitHub Discussions
  • Ask questions via GitHub Discussions

Documentation

  • API Documentation: docs/api/
  • Tutorials: docs/tutorials/
  • Examples: examples/

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

  • Systematic generalization research community
  • Compositional learning researchers
  • Meta-learning researchers
  • Open source libraries and frameworks

โœ… Assessment Checklist

Before submission, ensure you have completed:

  • Build Compositional Models: Implement learning architectures that compose basic components into novel combinations
  • Develop Rule Extraction: Create systems that automatically extract and apply abstract rules
  • Implement Meta-Learning: Design few-shot learning capabilities with rapid task adaptation
  • Test Systematic Generalization: Evaluate on SCAN, CLEVR, and custom tasks with out-of-distribution test sets

๐Ÿ“š Course Resources

Related Lecture Decks

  • Slides 6: NeuroSymbolic - Concept Reasoning - Compositional understanding
  • Slides 7: NeuroSymbolic - Systematic Generalization - Core concepts
  • Slides 8: Symbolic Regression - Pattern learning and abstraction

Annotated Notes & Exercises

  • S2I_S06: Systematic Generalization - Theoretical foundations
  • S2I_S07: Compositional Learning - Advanced techniques
  • A2I_S08: Meta-Learning - Few-shot learning strategies

Companion Assignments

  • CA1: Neurosymbolic Integration - Hybrid reasoning systems
  • CA7: NeuroSymbolic Systems - Advanced integration
  • CA8: Neural Program Synthesis - Compositional program generation

Last Updated: January 2025
Version: 1.0.0
Maintainer: AI Systems Course Team

Xet Storage Details

Size:
15.4 kB
ยท
Xet hash:
dfb2dac696a2b4807fabb0763a435259fb7a9a04aff7706d61446a98bf098546

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.