--- license: apache-2.0 tags: - tensorflow - optimizer - deep-learning - machine-learning - adaptive-learning-rate library_name: tensorflow --- # NEAT Optimizer **NEAT (Noise-Enhanced Adaptive Training)** is a novel optimization algorithm for deep learning that combines adaptive learning rates with controlled noise injection to improve convergence and generalization. ## Overview The NEAT optimizer enhances traditional adaptive optimization methods by intelligently injecting noise into the gradient updates. This approach helps: - Escape local minima more effectively - Improve generalization performance - Achieve faster and more stable convergence - Reduce overfitting on training data ## Installation ### From PyPI (recommended) ```bash pip install neat-optimizer ``` ### From Source ```bash git clone https://github.com/yourusername/neat-optimizer.git cd neat-optimizer pip install -e . ``` ## Quick Start ```python import tensorflow as tf from neat_optimizer import NEATOptimizer # Create your model model = tf.keras.Sequential([ tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dense(10, activation='softmax') ]) # Use NEAT optimizer optimizer = NEATOptimizer( learning_rate=0.001, noise_scale=0.01, beta_1=0.9, beta_2=0.999 ) # Compile and train model.compile( optimizer=optimizer, loss='sparse_categorical_crossentropy', metrics=['accuracy'] ) model.fit(x_train, y_train, epochs=10, validation_data=(x_val, y_val)) ``` ## Key Features - **Adaptive Learning Rates**: Automatically adjusts learning rates per parameter - **Noise Injection**: Controlled stochastic perturbations for better exploration - **TensorFlow Integration**: Drop-in replacement for standard TensorFlow optimizers - **Hyperparameter Flexibility**: Customizable noise schedules and adaptation rates ## Parameters - `learning_rate` (float, default=0.001): Initial learning rate - `noise_scale` (float, default=0.01): Scale of noise injection - `beta_1` (float, default=0.9): Exponential decay rate for first moment estimates - `beta_2` (float, default=0.999): Exponential decay rate for second moment estimates - `epsilon` (float, default=1e-7): Small constant for numerical stability - `noise_decay` (float, default=0.99): Decay rate for noise scale over time ## Requirements - Python >= 3.7 - TensorFlow >= 2.4.0 - NumPy >= 1.19.0 ## Citation If you use NEAT optimizer in your research, please cite: ```bibtex @software{neat_optimizer, title={NEAT: Noise-Enhanced Adaptive Training Optimizer}, author={Your Name}, year={2025}, url={https://github.com/yourusername/neat-optimizer} } ``` ## References - Kingma, D. P., & Ba, J. (2014). Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980. - Neelakantan, A., et al. (2015). Adding gradient noise improves learning for very deep networks. arXiv preprint arXiv:1511.06807. ## License This project is licensed under the Apache License 2.0 - see the LICENSE file for details. ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## Support For issues, questions, or feature requests, please open an issue on GitHub.