Розпізнавання образів
Нейронні мережі використовуються в таких програмах, як розпізнавання образів (облич).
Ці програми використовують розпізнавання шаблонів.
Цей тип класифікації можна виконати за допомогою перцептрона.
Персептрони можна використовувати для класифікації даних на дві частини.
Персептрони також відомі як Лінійні двійкові класифікатори.
Класифікація шаблонів
Уявіть пряму лінію (лінійний графік) у просторі з розкиданими точками x y.
Як класифікувати точки над та під лінією?
Персептрон можна навчити розпізнавати точки над лінією, не знаючи формули лінії.
Як запрограмувати персептрон?
Щоб запрограмувати персептрон, ми можемо використати просту програму JavaScript, яка:
- Створить простий плотер
- Створить 500 випадкових точок x y
- Відобразить точки x y
- Створить лінійну функцію: f(x)
- Відобразить лінію
- Обчислить потрібні відповіді
- Відобразить потрібні відповіді
Створити простий плотер
Створення простого об’єкта плотера описано в розділі ШІ Графіка Canvas.
Приклад
const plotter = new XYPlotter("myCanvas");
plotter.transformXY();
const xMax = plotter.xMax;
const yMax = plotter.yMax;
const xMin = plotter.xMin;
const yMin = plotter.yMin;
Створення випадкових точок X Y
Створіть скільки завгодно точок x y.
Нехай значення x будуть випадковими (від 0 до максимуму).
Нехай значення y будуть випадковими (від 0 до максимуму).
Відображення точок на плотері:
Приклад
const numPoints = 500;
const xPoints = [];
const yPoints = [];
for (let i = 0; i < numPoints; i++) {
xPoints[i] = Math.random() * xMax;
yPoints[i] = Math.random() * yMax;
}
Створити лінійну функцію
Відображення лінії на плотері:
Обчислити правильні відповіді
Обчисліть правильні відповіді на основі функції лінії:
y = x * 1,2 + 50.
Потрібна відповідь 1, якщо y знаходиться над лінією, та 0, якщо y знаходиться під лінією.
Зберігайте потрібні відповіді в масиві (desired[]).
Приклад
let desired = [];
for (let i = 0; i < numPoints; i++) {
desired[i] = 0;
if (yPoints[i] > f(xPoints[i])) {desired[i] = 1;}
}
Відобразити правильні відповіді
Для кожної точки, якщо desired[i] = 1 відобразити чорну точку, інакше відобразити синю точку.
Приклад
for (let i = 0; i < numPoints; i++) {
let color = "blue";
if (desired[i]) color = "black";
plotter.plotPoint(xPoints[i], yPoints[i], color);
}
Як навчити персептрон?
У наступному розділі ви дізнаєтеся, як використовувати правильні відповіді для того, щоб навчити перцептрон передбачати вихідні значення невідомих вхідних значень.