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.
- 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
- 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.
- 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.
- 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).
- 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.
- 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.csvwith visual frame animations of robotic end-effector positioning.
-
Clone the Repository:
git clone https://github.com/your-username/bioinspired-computation.git cd bioinspired-computation -
Create a Virtual Environment (Recommended):
python3 -m venv .venv source .venv/bin/activate -
Install Dependencies:
pip install -r requirements.txt
-
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.ipynbfile. -
Python Scripts:
python3 02_perceptron_from_scratch/perceptron_binary_sigmoid.py python3 03_multilayer_perceptron/main.py
- Author: Samuel Corrionero Fernández
- Degree: Degree in Computer Science Engineering (Grado en Ingeniería Informática)
- University: Universidad de Extremadura (UEx)