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
-
Đồ thị tuyến tính trong Machine Learning
-
Perceptron trong Machine Learning
-
Nhận dạng mẫu trong Machine Learning
-
Hướng dẫn chấm bài, nhận xét lỗi bằng công cụ AI
-
Rebel Audio: Công cụ làm podcast AI all-in-one cho người mới
-
Hướng dẫn tạo video từ hình ảnh trên Meta AI
-
Microsoft đề xuất cách huấn luyện AI mới: loại bỏ prompt dài mà vẫn giữ hiệu năng
-
Đào tạo một Perceptron trong Machine Learning
-
Cách áp dụng công thức bạn học được trong cuộc trò chuyện với Claude
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
-

Ngày tốt, ngày đẹp tháng 4 năm 2026
2 ngày -

Cách hiện khung căn lề trong Word
2 ngày -

Code Kiếm Vực 3D 26/03/2026 mới nhất và cách nhập code
2 ngày -

Cách truy cập các trang web bị chặn
2 ngày -

Cách đặt trình duyệt mặc định khi mở link bất kỳ trên máy tính
2 ngày -

Cách tăng uy tín Liên Quân, tăng điểm uy tín Liên Quân Mobile nhanh
2 ngày -

Đây là những hàm cơ bản nhất trong Excel mà bạn cần nắm rõ
2 ngày -

Đố bạn: 1 Ha (hecta) bằng bao nhiêu m2, km2?
2 ngày -

Cách tạo khung viền trang bìa trong Word
2 ngày -

Cách căn giữa bảng trong Google Docs
2 ngày
Làm chủ AI
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
Ô tô, Xe máy