/artificial-intelligence

This is a project to store the practices of my Artificial Intelligence II course; it contains basic neural networks algorithms with python and a GUI for plotting the trainings.

Primary LanguagePythonMIT LicenseMIT

Artificial Intelligence

Projects

Summary

This project is intended to host the main artificial intelligence algorithms and more specifically those related to machine learning; it extends from the main artificial neurons to more complex neural networks, all accompanied by graphical interfaces and theoretical content. The theoretical content is based on the content taught in the subject of Artificial Intelligence II at UdG's CUCEI, by Dr. Nancy Guadalupe Arana Daniel.

Structure

This repository has the following structure:

artificial-intelligence
│   README.md
|   requirements.txt
│   license.txt    
│
└───.vscode
│   │   settings.json
│   
└───perceptron
|   │   __init__.py
|   │   ABOUT.md
|   │   main.py
|   │   perceptron.py
|   │   ...
│   
└───adaline
|   │   __init__.py
|   │   ABOUT.md
|   │   main.py
|   │   adaline.py
|   │   ...
|
└───...  

Languages, tools & packages

Python is a great language for data science and AI due to the various libraries and packages that it has. Some of these libraries help to perform algebraic and matrix operations (many of the strategies applied in the present practices have been carried out through matrix operations). To configure the environment to deploy this project, we must work on a virtual environment provide by the virtualenv tool.

virtualenv is a tool to create isolated Python environments. Since Python 3.3, a subset of it has been integrated into the standard library under the venv module. The venv module included in the standar library does not offer all features of this library, therefore we must install the full library. To do this, I recommend using Python's package installer pip.

pip install virtualenv | pip3 install virtualenv

To create a virtual environment for the project, the following command must be executed inside the project folder:

python -m venv `env_name` | python3 -m venv `env_name`

Finally, to activate the venv from inside the project folder:

# On Linux/macOS
source `env_name`/bin/activate
# On windows
\`env_name`\Scripts\activate.bat

pip

Once the virtual environment is created, the required packages can be installed via pip using the requirements.txt file with the following command:

pip install -r requirements.txt

Packages

The required packages are used to make algebraic operations and GUI design. Below are shown the packages and why are they used for.

NumPy is the fundamental package for scientific computing in Python. It is a Python library that provides a multidimensional array object, various derived objects (such as masked arrays and matrices), and an assortment of routines for fast operations on arrays, including mathematical, logical, shape manipulation, sorting, selecting, I/O, discrete Fourier transforms, basic linear algebra, basic statistical operations, random simulation and much more.

At the core of the NumPy package, is the ndarray object. This encapsulates n-dimensional arrays of homogeneous data types, with many operations being performed in compiled code for performance.

Tkinter is a Python binding to the Tk GUI toolkit. It is the standard Python interface to the Tk GUI toolkit, and is Python's de facto standard GUI. Tkinter is included with standard Linux, Microsoft Windows and Mac OS X installs of Python. Tkinter is free software released under a Python license.




Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python. Matplotlib produces publication-quality figures in a variety of hardcopy formats and interactive environments across platforms. Matplotlib can be used in Python scripts, the Python and IPython shell, web application servers, and various graphical user interface toolkits.