Học Machine Learning
Học tập là một vòng lặp
- Một mô hình Machine Learning được huấn luyện bằng cách lặp lại dữ liệu nhiều lần.
- Ở mỗi lần lặp, giá trị trọng số được điều chỉnh.
- Quá trình huấn luyện hoàn tất khi số lần lặp không làm giảm chi phí.
Gradient Descent
Gradient Descent là một thuật toán phổ biến để giải quyết các bài toán Trí tuệ nhân tạo (AI).
Một mô hình hồi quy tuyến tính đơn giản có thể được sử dụng để minh họa thuật toán Gradient Descent.
Mục tiêu của hồi quy tuyến tính là tìm một đồ thị tuyến tính phù hợp với một tập hợp các điểm (x,y). Điều này có thể được giải quyết bằng một công thức toán học. Nhưng một thuật toán Machine Learning cũng có thể giải quyết điều này.
Đây là những gì ví dụ trên thực hiện.
Nó bắt đầu với một biểu đồ phân tán và một mô hình tuyến tính (y = wx + b).
Sau đó, nó huấn luyện mô hình để tìm một đường thẳng phù hợp với biểu đồ. Điều này được thực hiện bằng cách thay đổi trọng số (độ dốc) và độ lệch (điểm cắt trục tung) của đường thẳng.
Dưới đây là code cho một Trainer Object (đối tượng huấn luyện) có thể giải quyết vấn đề này (và nhiều vấn đề khác).
Đối tượng huấn luyện
Tạo một đối tượng huấn luyện có thể nhận bất kỳ số lượng giá trị (x,y) nào trong hai mảng (xArr, yArr).
Đặt trọng số bằng 0 và độ lệch bằng 1.
Phải đặt hằng số học tập (learnc) và định nghĩa một biến chi phí:
Ví dụ:
function Trainer(xArray, yArray) {
this.xArr = xArray;
this.yArr = yArray;
this.points = this.xArr.length;
this.learnc = 0.00001;
this.weight = 0;
this.bias = 1;
this.cost;Hàm chi phí
Một cách tiêu chuẩn để giải quyết bài toán hồi quy là sử dụng "Hàm chi phí" để đo lường mức độ tốt của lời giải.
Hàm này sử dụng trọng số và độ lệch từ mô hình (y = wx + b) và trả về một sai số, dựa trên mức độ phù hợp của đường thẳng với đồ thị.
Cách tính sai số này là lặp qua tất cả các điểm (x,y) trên đồ thị và cộng tổng bình phương khoảng cách giữa giá trị y của mỗi điểm và đường thẳng.
Cách thông thường nhất là bình phương các khoảng cách (để đảm bảo giá trị dương) và làm cho hàm sai số có thể khả vi.
this.costError = function() {
total = 0;
for (let i = 0; i < this.points; i++) {
total += (this.yArr[i] - (this.weight * this.xArr[i] + this.bias)) **2;
}
return total / this.points;
}Một tên gọi khác của Hàm chi phí là Hàm sai số.
Công thức được sử dụng trong hàm này thực chất là:

- E là sai số (chi phí)
- N là tổng số observation (các điểm)
- y là giá trị (nhãn) của mỗi observation
- x là giá trị (đặc trưng) của mỗi observation
- m là độ dốc (trọng số)
- b là hệ số chặn (độ lệch)
- mx + b là giá trị dự đoán
- ∑1/(N * N) là bình phương giá trị trung bình
Hàm huấn luyện
Bây giờ, chúng ta sẽ chạy thuật toán Gradient Descent.
Thuật toán Gradient Descent sẽ di chuyển hàm chi phí về phía đường thẳng tốt nhất.
Mỗi lần lặp sẽ cập nhật cả m và b về phía đường thẳng có chi phí (sai số) thấp hơn.
Để làm điều đó, chúng ta thêm một hàm huấn luyện lặp lại toàn bộ dữ liệu nhiều lần:
this.train = function(iter) {
for (let i = 0; i < iter; i++) {
this.updateWeights();
}
this.cost = this.costError();
}Hàm cập nhật trọng số
Hàm huấn luyện ở trên sẽ cập nhật trọng số và độ lệch trong mỗi lần lặp.
Hướng di chuyển được tính toán bằng cách sử dụng hai đạo hàm riêng:
this.updateWeights = function() {
let wx;
let w_deriv = 0;
let b_deriv = 0;
for (let i = 0; i < this.points; i++) {
wx = this.yArr[i] - (this.weight * this.xArr[i] + this.bias);
w_deriv += -2 * wx * this.xArr[i];
b_deriv += -2 * wx;
}
this.weight -= (w_deriv / this.points) * this.learnc;
this.bias -= (b_deriv / this.points) * this.learnc;
}Tạo thư viện của riêng bạn
Code thư viện:
function Trainer(xArray, yArray) {
this.xArr = xArray;
this.yArr = yArray;
this.points = this.xArr.length;
this.learnc = 0.00001;
this.weight = 0;
this.bias = 1;
this.cost;
// Cost Function
this.costError = function() {
total = 0;
for (let i = 0; i < this.points; i++) {
total += (this.yArr[i] - (this.weight * this.xArr[i] + this.bias)) **2;
}
return total / this.points;
}
// Train Function
this.train = function(iter) {
for (let i = 0; i < iter; i++) {
this.updateWeights();
}
this.cost = this.costError();
}
// Update Weights Function
this.updateWeights = function() {
let wx;
let w_deriv = 0;
let b_deriv = 0;
for (let i = 0; i < this.points; i++) {
wx = this.yArr[i] - (this.weight * this.xArr[i] + this.bias);
w_deriv += -2 * wx * this.xArr[i];
b_deriv += -2 * wx;
}
this.weight -= (w_deriv / this.points) * this.learnc;
this.bias -= (b_deriv / this.points) * this.learnc;
}
} // End Trainer ObjectGiờ đây, bạn có thể tích hợp thư viện vào HTML:
<script src="myailib.js"></script>Bạn nên đọc
-
Hướng dẫn cách tạo bảng tính Excel từ tin nhắn chỉ bằng 1 câu lệnh prompt AI
-
Đồ thị tuyến tính trong Machine Learning
-
Hàng nghìn prompt tạo ảnh sẽ có trong trang web này!
-
Perceptron trong Machine Learning
-
Hướng dẫn ngăn Chrome tự động tải mô hình AI Gemini Nano
-
Biểu đồ phân tán trong Machine Learning
-
Cách giữ lại bộ nhớ ChatGPT khi chuyển sang Claude
-
Dữ liệu Machine Learning
-
Nhận dạng mẫu 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
-

Cách xem địa chỉ IP trên máy tính, xem địa chỉ IP Win 10
2 ngày -

Cách thêm và xóa user dễ dàng trên Ubuntu
2 ngày -

20+ cách quay màn hình máy tính, quay màn hình laptop
2 ngày 20 -

Cách đổi DNS 1.1.1.1 trên Android và iPhone rất đơn giản
2 ngày 2 -

Đổi PDF sang Word nhanh, không lỗi font chữ mới nhất 07/03/2026
2 ngày -

Tổng hợp các mã lệnh trong game Đế Chế
2 ngày -

Top 100 chip điện thoại mạnh nhất năm 2026
2 ngày -

Cách gửi danh thiếp Zalo, chia sẻ danh bạ Zalo trên điện thoại, máy tính
2 ngày -

8 ứng dụng màn hình khóa tốt nhất cho Android
2 ngày -

Code Liên Quân mới, giftcode Liên Quân tháng 3/2026
2 ngày 18
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