Nhận dạng mẫu
Mạng nơ-ron được sử dụng trong các ứng dụng như Nhận dạng khuôn mặt.
Các ứng dụng này sử dụng Nhận dạng mẫu .
Loại Phân loại này có thể được thực hiện bằng Perceptron .
Perceptron có thể được sử dụng để phân loại dữ liệu thành hai phần.
Perceptron còn được gọi là Bộ phân loại nhị phân tuyến tính .
Phân loại mẫu
Hãy tưởng tượng một đường eo biển (đồ thị tuyến tính) trong một không gian có các điểm xy phân tán.
Làm thế nào bạn có thể phân loại các điểm trên và dưới dòng?
Một perceptron có thể được đào tạo để nhận biết các điểm trên đường thẳng mà không cần biết công thức của đường thẳng.
Cách lập trình Perceptron
Để lập trình một perceptron, chúng ta có thể sử dụng một chương trình JavaScript đơn giản sẽ:
- Tạo một máy vẽ đơn giản
- Tạo 500 điểm xy ngẫu nhiên
- Hiển thị điểm xy
- Tạo hàm đường: f(x)
- Hiển thị dòng
- Tính toán các câu trả lời mong muốn
- Hiển thị câu trả lời mong muốn
Tạo một máy vẽ đơn giản
Việc tạo một đối tượng máy vẽ đơn giản được mô tả trong Chương AI Canvas .
Ví dụ
const plotter = new XYPlotter("myCanvas");
plotter.transformXY();
const xMax = plotter.xMax;
const yMax = plotter.yMax;
const xMin = plotter.xMin;
const yMin = plotter.yMin;
Tạo điểm XY ngẫu nhiên
Tạo bao nhiêu điểm xy tùy thích.
Đặt các giá trị x là ngẫu nhiên (trong khoảng từ 0 đến tối đa).
Đặt các giá trị y là ngẫu nhiên (trong khoảng từ 0 đến tối đa).
Hiển thị các điểm trên máy vẽ:
Ví dụ
const numPoints = 500;
const xPoints = [];
const yPoints = [];
for (let i = 0; i < numPoints; i++) {
xPoints[i] = Math.random() * xMax;
yPoints[i] = Math.random() * yMax;
}
Tạo một hàm dòng
Hiển thị dòng trong máy vẽ:
Tính toán câu trả lời đúng
Tính toán các câu trả lời đúng dựa trên hàm đường:
y = x * 1,2 + 50.
Câu trả lời mong muốn là 1 nếu y nằm trên dòng và 0 nếu y nằm dưới dòng.
Lưu trữ các câu trả lời mong muốn trong một mảng (mong muốn []).
Ví dụ
let desired = [];
for (let i = 0; i < numPoints; i++) {
desired[i] = 0;
if (yPoints[i] > f(xPoints[i])) {desired[i] = 1;}
}
Hiển thị các câu trả lời đúng
Đối với mỗi điểm, nếu muốn[i] = 1 hiển thị điểm đen, nếu không thì hiển thị điểm xanh.
Ví dụ
for (let i = 0; i < numPoints; i++) {
let color = "blue";
if (desired[i]) color = "black";
plotter.plotPoint(xPoints[i], yPoints[i], color);
}
Cách huấn luyện Perceptron
Trong chương tiếp theo, bạn sẽ học cách sử dụng câu trả lời đúng để:
Huấn luyện một perceptron để dự đoán giá trị đầu ra của các giá trị đầu vào chưa xác định.