模式識別
神經網路用於面部識別等應用。
這些應用程式使用模式識別。
這種型別的分類可以使用感知器來完成。
感知器可用於將資料分類為兩部分。
感知器也稱為線性二元分類器。
模式分類
想象一下空間中一條直線(線性圖)上有散佈的 x y 點。
你如何對線上方和下方的點進行分類?
感知器可以訓練識別線上方的點,而無需知道線的公式。
如何程式設計感知器
為了程式設計一個感知器,我們可以使用一個簡單的 JavaScript 程式,它將
- 建立一個簡單的繪圖儀
- 建立 500 個隨機的 x y 點
- 顯示 x y 點
- 建立一條線函式:f(x)
- 顯示線
- 計算所需答案
- 顯示所需答案
建立一個簡單的繪圖儀
在人工智慧畫布章節中描述瞭如何建立簡單的繪圖儀物件。
示例
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 點
建立任意數量的 xy 點。
讓 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。
如果 y 在線上方,所需答案為 1;如果 y 線上下方,則為 0。
將所需答案儲存在一個數組中(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);
}
如何訓練感知器
在下一章中,您將學習如何使用正確答案來
訓練感知器來預測未知輸入值的輸出值。