Source Code

The main purpose of this code is to help people learning about Artificial Intelligence. Most of this code is not in form of functions ready to be attached to a project. You may neither find everything fully optimized to save a couple of operations to your >=i3 core. The main goal is to clarify and make easier to understand my entries explaining about the different topics through source code, since code is the proof that you understood something. Some of this files are not very recent and were never intended to be shared, so some comments may seem a bit obscure and difficult to understand.

I don’t care very much about licenses, so you can do whatever you want with the code (as I state). Finally, if you find something particularly interesting or helpful, or you simply want to comment me something regarding the code or AI, tweet me at @jmlipman!

Keras

debugging1.py: One of the scripts used to learn how to debug a neural network in Keras. Related post.

debugging2.py: One of the scripts used to learn how to debug a neural network in Keras. Related post.

Image Processing

homography.py: This simple implementation of an homography is based on single value decomposition. Related post.

eigenfaces.m: This is an implementation of the Eigenfaces algorithm. Training and testing set. Related post.

circleDetectorImpr.m: This is an implementation of the improved Circle Detector using Hough Transform after applying Space Reduction. Related post.

circleDetector.m: This is an implementation of a circle detection by Hough Transform. Related post.

einsteinMonroe.m: This code builds and performs a low and high pass filter to extract certain features from an image. Related post.

lineDetectorPolar.m: This script implements the Hough Transform to detect lines in a Polar coordinate system. Related post.

lineDetectorCartesianImp.m: This script implements the Hough Transform to detect lines in a Cartesian coordinate system (previous version lineDetectorCartesian.m). Related post.

removeBackground.m: This script removes the background from a certain figure captured by the webcam. It requires extractObject.m. Related post.

medianImages.m: Temporal Median implementation. Related post.

Laplacian.m: Laplacian operator example. It requires myConv.m and findZeroCrossings.m. Related post.

Marr_Hildreth.m: Marr-Hildreth operator example. It requires myConv.m, findZeroCrossings.m and secDerGauss.m. Related post.

cannyEdgeDetector.m: Canny Edge detector implementation. It requires myConv.m and sobelFilter.m. Related post.

sobelFilter.m: Sobel filter implementation. It requires myConv.m. Related post.

Neural Networks

NN233.m: 2x3x3 MLP explained simply. It requires activation.m. Related post.

Noutput.m: Perceptron which may use as many output neurons as one wants, but it does not mean that the best result will be achieved. It requires activation.m. Related post.

3classes2outputN.m: Perceptron that tries to classify 3 classes using 2 output neurons. It requires activation.m. Related post.

AND_OR_XOR.m: Illustration of a perceptron and basic operations. It requires activation.m. Related post.

Reinforcement Learning

mazeSarsa.m: Simulation of a maze solved by Sarsa algorithm. It requires pickActionB.m, state2cells.m, colorCellsB.m, getNewState.m and calcReward.m. Related post.

mazeQlearning.m: Simulation of a maze solved by Q-learning algorithm. It requires pickAction.m, state2cells.m, colorCellsB.m, getNewState.m and calcReward.m. Related post.

mazeRlearning.m: Simulation of a maze solved by R-learning algorithm. It requires pickAction.m, state2cells.m, colorCellsB.m, getNewState.m and calcReward.m. Related post.

maze2fvmc.m (previously maze1fvmc.m): Simulation of a maze solved by First-Visit Monte Carlo algorithm. It requires pickActions.m, state2cells.m, colorCellsA.m and updateVfield.m. Related post.

goalkeeper.m: Simulation of an exploration algorithm based goalkeeper. It requires move.m. Related post.

Support Vector Machines

svmImproved.m: Support Vector Machine implementation (improved version). It requires kernel.m and plotPoint.m. Related post.
svm.m: Support Vector Machine implementation. It requires kernel.m. Related post.

14 thoughts on “Source Code

  1. i want to use the eigenface in face recognition. your explanation was very good but i don’t understand the eigenvector and i want to implimente my one code sous java not to use an fonction existe allready
    sorry for my bad language

Leave a Reply

Your email address will not be published. Required fields are marked *