Skip to content

Repository files navigation

Bio-Inspired Computation

Python PyTorch University

This repository contains the practical coursework, laboratory assignments, and algorithm implementations for the Bio-Inspired Computation (Computación Bioinspirada) subject, taught within the Degree in Computer Science Engineering at the University of Extremadura (UEx).

The codebase spans foundational artificial intelligence techniques, artificial neural networks built from scratch, deep learning architectures using PyTorch, and evolutionary computation applied to robotic kinematics.


🎓 Academic Information

  • Institution: Universidad de Extremadura (UEx)
  • School: Escuela Politécnica (Cáceres, Spain)
  • Degree: Degree in Computer Science Engineering (Grado en Ingeniería Informática)
  • Subject: Bio-Inspired Computation (Computación Bioinspirada)
  • Professors / Instructors:
    • Paco Marcelino Andrés Hernández
    • Antonio Manuel Silva Luengo
  • Author / Student: Samuel Corrionero Fernández

📌 Repository Modules Overview

1. Data Preprocessing & Feature Scaling (01_data_preprocessing/)

  • Focus: Data hygiene, missing value imputation, outlier handling, and feature scaling techniques.
  • Techniques: Min-Max Scaling, Standardisation ($Z$-score), Robust Scaling using interquartile ranges, and non-linear transformations.
  • Key Visualisations: Comparative distribution plots before and after normalization across diverse datasets.

2. Single Perceptron from Scratch (02_perceptron_from_scratch/)

  • Focus: Core mathematical foundations of artificial neurons implemented without high-level neural network frameworks.
  • Implementation: Custom Python implementation of a single-layer perceptron utilizing binary encoding and sigmoid activation functions ($\sigma(z) = \frac{1}{1 + e^{-z}}$).
  • Highlights: Convergence analysis of weight vectors and decision boundary plotting for linearly separable and non-separable patterns.

3. Multi-Layer Perceptron & Regularisation (03_multilayer_perceptron/)

  • Focus: Deep feedforward architectures and optimization dynamics for classification tasks.
  • Key Features:
    • Comparative study of custom network layers versus standard framework baselines.
    • Integration of Batch Normalisation to mitigate internal covariate shift.
    • Evaluation of Dropout regularization to prevent overfitting on tabular benchmarks (student.csv).

4. Convolutional Neural Networks & Transfer Learning (04_convolutional_networks/)

  • Focus: Computer vision, spatial feature extraction, and transfer learning in PyTorch.
  • Methodology:
    • Custom CNN Architecture: Designed with alternating Conv2D, MaxPool2D, and ReLU layers.
    • Transfer Learning: Fine-tuning pre-trained vision backbones for accelerated convergence and superior accuracy.
  • Evaluation: Quantitative comparison using training loss/accuracy curves, sample batch inspection, and multi-class confusion matrices.

5. Genetic Algorithms for Robotic Kinematics (05_genetic_algorithms_robotics/)

  • Focus: Bio-inspired evolutionary computation applied to inverse kinematics and path planning for planar robotic arms.
  • Mechanisms: Continuous representation, tournament selection, BLX-$\alpha$ crossover for continuous search spaces, and Gaussian mutation.
  • Results: Quantitative trajectory evaluation saved in resultados_pruebas.csv with visual frame animations of robotic end-effector positioning.

🛠️ Setup & Installation

  1. Clone the Repository:

    git clone https://github.com/your-username/bioinspired-computation.git
    cd bioinspired-computation
  2. Create a Virtual Environment (Recommended):

    python3 -m venv .venv
    source .venv/bin/activate
  3. Install Dependencies:

    pip install -r requirements.txt

🚀 How to Run

  • Jupyter Notebooks:

    jupyter notebook

    Navigate to any module folder (01_data_preprocessing, 02_perceptron_from_scratch, 03_multilayer_perceptron, 04_convolutional_networks, 05_genetic_algorithms_robotics) and open the respective .ipynb file.

  • Python Scripts:

    python3 02_perceptron_from_scratch/perceptron_binary_sigmoid.py
    python3 03_multilayer_perceptron/main.py

👤 Author

  • Author: Samuel Corrionero Fernández
  • Degree: Degree in Computer Science Engineering (Grado en Ingeniería Informática)
  • University: Universidad de Extremadura (UEx)

About

Practical coursework & implementations for Bio-Inspired Computation (UEx). Spans ANN from scratch, PyTorch CNNs, and Genetic Algorithms for robotic kinematics.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages