Patroonherkenning

Neurale netwerken worden gebruikt in toepassingen zoals gezichtsherkenning.

Deze toepassingen gebruiken patroonherkenning .

Dit type classificatie kan worden gedaan met een Perceptron .

Patroonclassificatie

Stel je een rechte lijn (een lineaire grafiek) voor in een ruimte met verspreide xy-punten.

Hoe kun je de punten boven en onder de lijn indelen?

Een perceptron kan worden getraind om de punten boven de lijn te herkennen, zonder de formule voor de lijn te kennen.

Perceptron

Een Perceptron wordt vaak gebruikt om gegevens in twee delen te classificeren.

Een Perceptron is ook bekend als een lineaire binaire classificatie.


Hoe een Perceptron te programmeren?

Om meer te leren over het programmeren van een perceptron, zullen we een heel eenvoudig JavaScript-programma maken dat:

  1. Maak een eenvoudige plotter
  2. Creëer 500 willekeurige xy-punten
  3. Geef de xy-punten weer
  4. Maak een lijnfunctie: f(x)
  5. Toon de lijn
  6. Bereken de gewenste antwoorden
  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