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

import numpy as np
from adaptive_power_neurons import AdaptivePowerModel, SGD, DenseLayer

# Hyperparameters
input_dim = 3  # Number of input features
output_dim = 2  # Number of output neurons
max_power = 2  # Max power for the neurons
learning_rate = 0.001  # Learning rate for the optimizer
indexing_rate = 0.01  # Indexing rate

# Create SGD optimizer
optimizer = SGD(learning_rate)

# Create AdaptivePowerModel and add layers
model = AdaptivePowerModel()
model.add(DenseLayer(input_dim, 1, max_power, optimizer, indexing_rate, activation="relu"))
model.add(DenseLayer(1, output_dim, max_power, optimizer, indexing_rate, activation="sigmoid"))

# Dummy dataset
x = np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]])  # Input features
y = np.array([[0.5, 1.0], [1.0, 0.0], [0.0, 1.0]])  # Target labels

# Train the model
model.train(x, y, epochs=100, batch_size=1)

model.predict(np.array([[1, 2, 3]]))

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.3.6.tar.gz (6.2 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.3.6-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: adaptive_power_neurons-0.3.6.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.8.18

File hashes

Hashes for adaptive_power_neurons-0.3.6.tar.gz
Algorithm Hash digest
SHA256 94b97ca5d745d31b88eb0a17c64b79993999a62268ce1ac3b8c7ec043202bcf7
MD5 dbde615d0858fde4aad7af91f8c7b6e3
BLAKE2b-256 910526c66732ca5161ddbe69f9363db03d0571d370188938b4fe4903ed4a6686

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for adaptive_power_neurons-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 d4b9bdf2a2c3013d73ca46438148e94fef8c40b575cc25a4e6357686c2de726d
MD5 8c0acd15fcaeba82cb1801f0257c510b
BLAKE2b-256 8d51115dff34ed2a399796112182d83eb436a1ed01688115500c231268eadf68

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

This release

0.3.6 This release

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

0.1.2.5.4

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