## Perceptron

Distribution 1.0
12 July 2015

Massih R. Amini

Université Grenoble Alpes
Laboratoire d'Informatique de Grenoble

### Description

This program is an implementation of the Perceptron algorithm proposed by [Rosenblatt, 1957; Rosenblatt, 1958] and described in [Amini, 2015; p.64-69]. The algorithm is a supervised learning model developed to train binary linear classifiers. The implementation follows the widely used online learning scheme where training examples are randomly chosen one at a time and the model's weight vector is updated based on the prediction error made by the current classifier. Consider the form of the linear classifier as $f(\mathbf{x})=\langle\mathbf{x},\bar{\boldsymbol{w}}\rangle+w_0$, where $\mathbf{x}\in\mathbb{R}^d$, $\bar{\boldsymbol{w}}\in\mathbb{R}^d$, and $w_0\in\mathbb{R}$, then the pseudo-code of the algorithm is:

The program is free for scientific use only and it is developed on Linux with gcc and the source code is available from:
http://ama.liglab.fr/~amini/Perceptron/perceptron.tar.bz2

> bzip2 -cd perceptron.tar.bz2 | tar xvf -

you need to compile the program in the new directory perceptron/

> make

After compilation, two executables are created:

• perceptron-learn (for training the model)
• perceptron-test (for testing it)

### Training and testing

Each example in these files is represented by its class label (+1 or -1) followed by its plain vector representation. In perceptron/example/ there are four (training_set and test_set) files, from UCI repository.

Train the model:
> perceptron-learn [options] input_file parameter_file

Options are:
 -t   (integer) Maximum number iterations (default 5000), -a   (float) Learning rate (default 0.1), -? Help

Test the model:
> perceptron-test input_file parameter_file

Example:
> ./perceptron-learn example/HEART-Train Parms-P-HEART
Training file contains 162 examples in dimension 13
Precision:1.000000 Recall:0.517647 F1-measure:0.682171 Error=0.253086
> ./perceptron-test example/HEART-Test Parms-P-HEART
Precision:0.902439 Recall:0.569231 F1-measure:0.698113 Errorr=0.296296

### Disclaimer

This program is publicly available for research use only. It should not be distributed for commercial use and the author is not responsible for any (mis)use of this algorithm.

### Bibliography

[Amini, 2015] Massih-Reza Amini. Apprentissage Machine: de la théorie à la pratique. Eyrolles, 2015.

[Rosenblatt, 1957] Frank Rosenblatt. The Perceptron--a perceiving and recognizing automaton. Report 85-460-1, Cornell Aeronautical Laboratory, 1957.

[Rosenblatt, 1958] Frank Rosenblatt. The perceptron : A probabilistic model for information storage and organization in the brain. Psychological Review, 65 :386--408, 1958.