Đào tạo một Perceptron trong Machine Learning
- Tạo đối tượng Perceptron
- Tạo hàm đào tạo
- Đào tạo perceptron dựa trên các câu trả lời đúng
Nhiệm vụ đào tạo
Hãy tưởng tượng một đường thẳng trong không gian với các điểm x và y rải rác.
Huấn luyện một perceptron để phân loại các điểm nằm trên và dưới đường thẳng đó.

Tạo đối tượng Perceptron
Tạo một đối tượng Perceptron. Đặt tên bất kỳ cho nó (ví dụ: Perceptron).
Cho phép perceptron chấp nhận hai tham số:
- Số lượng đầu vào (no)
- Tốc độ học (learningRate).
Đặt tốc độ học mặc định là 0.00001.
Sau đó, tạo các trọng số ngẫu nhiên từ -1 đến 1 cho mỗi đầu vào.
Ví dụ:
// Perceptron Object
function Perceptron(no, learningRate = 0.00001) {
// Set Initial Values
this.learnc = learningRate;
this.bias = 1;
// Compute Random Weights
this.weights = [];
for (let i = 0; i <= no; i++) {
this.weights[i] = Math.random() * 2 - 1;
}
// End Perceptron Object
}Các trọng số ngẫu nhiên
Perceptron sẽ bắt đầu với một trọng số ngẫu nhiên cho mỗi đầu vào.
Tốc độ học
Trong quá trình đào tạo Perceptron, mỗi lỗi sẽ khiến trọng số được điều chỉnh bằng một phần nhỏ.
Phần nhỏ này được gọi là "tốc độ học của Perceptron".
Trong đối tượng Perceptron, ta gọi nó là learnc.
Bias
Đôi khi, nếu cả hai đầu vào đều bằng 0, Perceptron có thể tạo ra đầu ra không chính xác.
Để tránh điều này, ta cung cấp cho Perceptron một đầu vào bổ sung với giá trị là 1.
Đây được gọi là bias.
Thêm hàm kích hoạt
Nhớ thuật toán perceptron:
- Nhân mỗi đầu vào với trọng số của perceptron
- Cộng các kết quả
- Tính toán kết quả
Ví dụ:
this.activate = function(inputs) {
let sum = 0;
for (let i = 0; i < inputs.length; i++) {
sum += inputs[i] * this.weights[i];
}
if (sum > 0) {return 1} else {return 0}
}Hàm kích hoạt sẽ xuất ra:
- 1 nếu tổng lớn hơn 0
- 0 nếu tổng nhỏ hơn 0
Tạo một hàm đào tạo
Hàm đào tạo dự đoán kết quả dựa trên hàm kích hoạt.
Mỗi khi dự đoán sai, perceptron sẽ điều chỉnh các trọng số.
Sau nhiều lần dự đoán và điều chỉnh, các trọng số sẽ chính xác.
Ví dụ:
this.train = function(inputs, desired) {
inputs.push(this.bias);
let guess = this.activate(inputs);
let error = desired - guess;
if (error != 0) {
for (let i = 0; i < inputs.length; i++) {
this.weights[i] += this.learnc * error * inputs[i];
}
}
}Lan truyền ngược
Sau mỗi lần đoán, perceptron sẽ tính toán độ sai lệch của lần đoán đó.
Nếu đoán sai, perceptron sẽ điều chỉnh độ lệch và trọng số để lần đoán tiếp theo sẽ chính xác hơn một chút.
Loại học này được gọi là backpropagation (lan truyền ngược).
Sau khi thử (vài nghìn lần), perceptron của bạn sẽ trở nên khá giỏi trong việc đoán.
Tạo thư viện của riêng bạn
Code thư viện:
// Perceptron Object
function Perceptron(no, learningRate = 0.00001) {
// Set Initial Values
this.learnc = learningRate;
this.bias = 1;
// Compute Random Weights
this.weights = [];
for (let i = 0; i <= no; i++) {
this.weights[i] = Math.random() * 2 - 1;
}
// Activate Function
this.activate = function(inputs) {
let sum = 0;
for (let i = 0; i < inputs.length; i++) {
sum += inputs[i] * this.weights[i];
}
if (sum > 0) {return 1} else {return 0}
}
// Train Function
this.train = function(inputs, desired) {
inputs.push(this.bias);
let guess = this.activate(inputs);
let error = desired - guess;
if (error != 0) {
for (let i = 0; i < inputs.length; i++) {
this.weights[i] += this.learnc * error * inputs[i];
}
}
}
// End Perceptron Object
}Giờ đây bạn có thể tích hợp thư viện vào HTML:
<script src="myperceptron.js"></script>Sử dụng thư viện
Ví dụ:
// Initiate Values
const numPoints = 500;
const learningRate = 0.00001;
// Create a Plotter
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 XY Points
const xPoints = [];
const yPoints = [];
for (let i = 0; i < numPoints; i++) {
xPoints[i] = Math.random() * xMax;
yPoints[i] = Math.random() * yMax;
}
// Line Function
function f(x) {
return x * 1.2 + 50;
}
//Plot the Line
plotter.plotLine(xMin, f(xMin), xMax, f(xMax), "black");
// Compute Desired Answers
const desired = [];
for (let i = 0; i < numPoints; i++) {
desired[i] = 0;
if (yPoints[i] > f(xPoints[i])) {desired[i] = 1}
}
// Create a Perceptron
const ptron = new Perceptron(2, learningRate);
// Train the Perceptron
for (let j = 0; j <= 10000; j++) {
for (let i = 0; i < numPoints; i++) {
ptron.train([xPoints[i], yPoints[i]], desired[i]);
}
}
// Display the Result
for (let i = 0; i < numPoints; i++) {
const x = xPoints[i];
const y = yPoints[i];
let guess = ptron.activate([x, y, ptron.bias]);
let color = "black";
if (guess == 0) color = "blue";
plotter.plotPoint(x, y, color);
}Bạn nên đọc
-
Perceptron trong Machine Learning
-
Hướng dẫn sử dụng Magic Morph trong Canva AI
-
Nhận dạng mẫu trong Machine Learning
-
7 dự án AI thú vị dành cho mọi trình độ
-
Cách chạy Qwen 3.5 cục bộ trên một GPU duy nhất
-
Gỡ lỗi prompt
-
Biểu đồ phân tán trong Machine Learning
-
Hướng dẫn kiểm tra câu trả lời của Gemini
-
Đồ thị tuyến tính trong Machine Learning
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:
Cũ vẫn chất
-

7 cách đánh số trang trong Word mà bạn cần biết
3 ngày -

Code The Spike Volleyball Battle, coupon The Spike mới nhất 03/03/2026
3 ngày 3 -

Chào tháng 6: Câu nói hay nhất về tháng 6, stt tháng 6 tràn ngập yêu thương
2 ngày 2 -

Cách xoay ngang 1 trang bất kỳ trong Word
2 ngày 1 -

Cách bật, tắt chế độ tạm thời trên Instagram tự xóa tin nhắn
2 ngày -

Phải làm gì nếu iPhone bị rơi xuống nước?
3 ngày -

Top 10+ trang web tốt nhất để tải phụ đề cho phim
2 ngày -

Hướng dẫn đổi ID Facebook, thay địa chỉ Facebook mới
2 ngày -

Những stt cảm động viết cho người yêu cũ
2 ngày 1 -

Cách chỉnh nút CS 1.1, sửa nút Half Life
2 ngày
Học IT
Microsoft Word 2013
Microsoft Word 2007
Microsoft Excel 2019
Microsoft Excel 2016
Microsoft PowerPoint 2019
Google Sheets
Lập trình Scratch
Bootstrap
Prompt
Ô tô, Xe máy