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
-
Cách ngăn Grok lấy dữ liệu cá nhân tạo ảnh AI
-
Đồ thị tuyến tính trong Machine Learning
-
Biểu đồ phân tán trong Machine Learning
-
Hướng dẫn tắt tính năng tự động tạo video trên Grok
-
Ứng dụng trí tuệ nhân tạo (AI) trong kinh doanh như thế nào?
-
Hướng dẫn tạo nhạc bằng Google Producer AI
-
Đào tạo một Perceptron trong Machine Learning
-
Cách viết code cơ bản với Grok
-
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 cài đặt và thiết lập Windows 11 không cần kết nối Internet
2 ngày -

Cách khắc phục lỗi Outlook 0x800CCC0E
3 ngày -

Stt về nắng nóng bá đạo nhất
2 ngày -

Hướng dẫn đội hình TFT mùa 16, đội hình mạnh DTCL 16.1 mạnh nhất
2 ngày 28 -

Cận cảnh quá trình biến đổi của cơ thể con người sau khi chết
2 ngày -

Cách sửa lỗi NVIDIA Control Panel biến mất trong Windows 11/10
2 ngày -

Trọng tâm là gì? Công thức tính trọng tâm của tam giác
2 ngày -

Cách tăng giới hạn kích thước file đính kèm Outlook
3 ngày -

Sử dụng lệnh SFC scannow để sửa lỗi file hệ thống Windows 10
2 ngày -

PowerPoint 2016: Áp dụng theme trong PowerPoint
3 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