Skip to main content

Adaptive Power Neurons

Adaptive Power Neurons is a Python library for building machine learning models using adaptive power perceptrons. These perceptrons dynamically adjust their polynomial feature power and input indices, enabling the model to learn complex patterns effectively.

The library is designed for both regression and classification tasks and supports multi-layer neural networks with adaptive neurons.


Features

  • Dynamic Adaptation: Perceptrons adjust their polynomial degree (power) and input index bias during training.
  • Polynomial Feature Expansion: Supports automatic polynomial feature generation up to a specified degree.
  • Index Bias Adjustment: Incorporates adjustable input bias for feature shifts.
  • Multi-Layer Support: Create flexible, multi-layer neural networks.
  • Customizable Optimizer: Fine-tune hyperparameters like learning rate, polynomial power, and indexing rate dynamically.

Mathematical Overview

1. Polynomial Feature Expansion

Each perceptron transforms the input into a polynomial feature vector: [ \phi(x) = [x^1, x^2, \dots, x^p] ] Where ( p ) is the maximum power specified for the perceptron.

2. Weighted Output

The perceptron computes a weighted sum of the polynomial features: [ z = w_1 \phi(x_1) + w_2 \phi(x_2) + \dots + w_n \phi(x_n) + b ]

3. Loss Function

The library uses Mean Squared Error (MSE) for regression: [ \text{MSE} = \frac{1}{N} \sum_{i=1}^{N} \left( y_i - \hat{y}_i \right)^2 ]

For classification, a step function is used: [ \hat{y} = \begin{cases} 1 & \text{if } z \geq 0 \ 0 & \text{if } z < 0 \end{cases} ]

4. Index Bias Adjustment

An adjustable index bias ( \delta ) shifts the input features: [ x_{\text{adjusted}} = x + \delta ]

5. Weight Updates

Weights, biases, and index bias are updated using gradient descent: [ w_i = w_i - \eta \cdot \frac{\partial \text{MSE}}{\partial w_i}, \quad b = b - \eta \cdot \frac{\partial \text{MSE}}{\partial b}, \quad \delta = \delta - \eta \cdot \frac{\partial \text{MSE}}{\partial \delta} ]


Installation

To install the library, clone the repository and install it locally:

pip install adaptive-power-neurons

# Example Usage for Adaptive Power Neurons

from adaptive_power_neurons import AdaptivePowerNeuron, AdaptivePowerNeurons, Optimizer
import numpy as np

# Sample data (X: input features, y: target labels)
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([0, 0, 1, 1, 1])

# Create an adaptive power neuron
neuron = AdaptivePowerNeuron(input_dim=1, max_power=3, learning_rate=0.001, indexing_rate=0.01)

# Create a neural network with 2 layers (each using the adaptive power neuron)
model = AdaptivePowerNeurons()
model.add_layer(num_perceptrons=1, input_dim=1, max_power=3, learning_rate=0.001, indexing_rate=0.01)
model.add_layer(num_perceptrons=1, input_dim=1, max_power=3, learning_rate=0.001, indexing_rate=0.01)

# Create an optimizer for the model
optimizer = Optimizer(learning_rate=0.001, max_power=3, indexing_rate=0.01)

# Set the optimizer for the model
model.set_optimizer(optimizer)

# Train the model for 20 epochs
model.fit(X, y, epochs=20)

# Test prediction
test_input = np.array([[3]])  # New test input
prediction = model.predict(test_input)

print(f"Prediction for input {test_input}: {prediction}")

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adaptive_power_neurons-0.1.2.5.4.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

adaptive_power_neurons-0.1.2.5.4-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file adaptive_power_neurons-0.1.2.5.4.tar.gz.

File metadata

File hashes

Hashes for adaptive_power_neurons-0.1.2.5.4.tar.gz
Algorithm Hash digest
SHA256 9f52b59ca47bcc7a6612082e90cac49448555e32ccee558f45f801eb2c752008
MD5 ee068067c193ee459fb63761d81f123e
BLAKE2b-256 32c8aca27d05813be520190b38011e2360d30eca9de64b986dd5e39c0573fbb9

See more details on using hashes here.

File details

Details for the file adaptive_power_neurons-0.1.2.5.4-py3-none-any.whl.

File metadata

File hashes

Hashes for adaptive_power_neurons-0.1.2.5.4-py3-none-any.whl
Algorithm Hash digest
SHA256 24dd4f0c0930720fb1eb2b9a9a05c6b8a11da1acbf2ecf9638aa30b774085781
MD5 f7aa4177b119bfb86d3c85535b313db6
BLAKE2b-256 e7b22ba62862712f7a19cea6da261ee519d20e15a38601d86838e0d08e541c3c

See more details on using hashes here.

Release history Release notifications | RSS feed

0.4.0

2 files

0.3.9

2 files

0.3.8

2 files

0.3.7

2 files

0.3.6

2 files

0.3.5

2 files

0.3.4

2 files

0.1.6.6.7

2 files

0.1.5.6.7

2 files

0.1.5.5.7

2 files

0.1.5.5.5

2 files

0.1.3.5.5

2 files

0.1.2.5.5

2 files

This release

0.1.2.5.4 This release

2 files

0.1.2.5.3

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page