Reconhecimento de padrões

As Redes Neurais são usadas em aplicações como Reconhecimento Facial.

Esses aplicativos usam o reconhecimento de padrões .

Este tipo de Classificação pode ser feito com um Perceptron .

Classificação de padrões

Imagine uma linha reta (um gráfico linear) em um espaço com pontos xy espalhados.

Como você pode classificar os pontos acima e abaixo da linha?

Um perceptron pode ser treinado para reconhecer os pontos sobre a linha, sem conhecer a fórmula da linha.

Perceptron

Um Perceptron é frequentemente usado para classificar dados em duas partes.

Um Perceptron também é conhecido como Classificador Binário Linear.


Como programar um perceptron

Para aprender mais sobre como programar um perceptron, vamos criar um programa JavaScript muito simples que irá:

  1. Crie uma plotadora simples
  2. Crie 500 pontos xy aleatórios
  3. Exiba os pontos xy
  4. Crie uma função de linha: f(x)
  5. Exibir a linha
  6. Calcule as respostas desejadas
  7. Display the desired answers

Create a Simple Plotter

Use the simple plotter object described in the AI Plotter Chapter.

Example

const plotter = new XYPlotter("myCanvas");
plotter.transformXY();

const xMax = plotter.xMax;
const yMax = plotter.yMax;
const xMin = plotter.xMin;
const yMin = plotter.yMin;

Create Random X Y Points

Create as many xy points as wanted.

Let the x values be random, between 0 and maximum.

Let the y values be random, between 0 and maximum.

Display the points in the plotter:

Example

const numPoints = 500;
const xPoints = [];
const yPoints = [];
for (let i = 0; i < numPoints; i++) {
  xPoints[i] = Math.random() * xMax;
  yPoints[i] = Math.random() * yMax;
}


Create a Line Function

Display the line in the plotter:

Example

function f(x) {
  return x * 1.2 + 50;
}


Compute Desired Answers

Compute the desired answers based on the line function:

y = x * 1.2 + 50.

The desired answer is 1 if y is over the line and 0 if y is under the line.

Store the desired answers in an array (desired[]).

Example

let desired = [];
for (let i = 0; i < numPoints; i++) {
  desired[i] = 0;
  if (yPoints[i] > f(xPoints[i])) {desired[i] = 1;}
}

Display the Desired Answers

For each point, if desired[i] = 1 display a blue point, else display a black point.

Example

for (let i = 0; i < numPoints; i++) {
  let color = "blue";
  if (desired[i]) color = "black";
  plotter.plotPoint(xPoints[i], yPoints[i], color);
}


How to Train a Perceptron

In the next chapters, you will learn more about how to Train the Perceptron