Thuật toán huấn luyện

Một phần của tài liệu Nghiên cứu ứng dụng kỹ thuật BoostMetric nhằm tăng hiệu quả phân lớp dữ liệu lớn (Trang 30)

1 và tương ứng là vectơ cột chứa toàn các số và vectơ cột chứa toàn các số 0 Kích thước của chúng tùy thuộc vào ngữ cảnh sử dụng.

1.7.7. Thuật toán huấn luyện

Trong phần này, ta sẽ thấy bài toán tối ưu (1.34) có thể được giải chính xác và hiệu quả sử dụng Phân tích giá trị riêng (eigenvalue-decomposition (EVD)).

Từ và Rank(Z) = 1, ta biết rằng Z có dạng: . Và Tr(Z) = 1 nghĩa là

Ta có:

Đặt: (1.37)

Input:

• Một khoảng [, ] mà ta biết có chứa giá trị tối ưu của

• Tham số hội tụ .

Begin repeat

• ;

if (Vế trái của (1.35) > 0) then

 ; else  ; until ; End; Output:

Bài toán tối ưu trở thành:

(1.38) Rõ ràng giá trị riêng lớn nhất của , , và vectơ riêng tương ứng với nó là lời giải cho bài toàn trên. Lưu ý là đối xứng.

cũng được dùng làm một trong những điều kiện dừng của thuật toán. Từ điều kiện (1.31), nghĩa là ta không thể tìm được một ma trận cơ sở mới vi phạm (1.31), tức thuật toán hội tụ.

Hình 1.7 dưới đây mô tả thuật toán huấn luyện ma trận tham số X của hàm khoảng cách Mahalanobis, đây là thuật toán trung tâm của phương pháp BoostMetric.

Input:

• Tập huấn luyện gồm các bộ ba ; Tính sử dụng (1.26).

J: Số vòng lặp tối đa.

• (tùy chọn) Tham số chính quy v; Đơn giản ta chỉ cần gán một giá trị rất nhỏ cho v, chẳng hạn 10-7.

Begin

• Khởi tạo ;

for j = 1,2,…,Jdo

 Tìm một ma trận cơ sở mới bằng cách tìm giá trị riêng lớn nhất và vectơ riêng tương ứng với nó của trong (1.37);

if then break (hội tụ);  Tính sử dụng thuật toán ở hình 1.6;  Cập nhật để có sử dụng (1.36); end; End;

Hình 1.7: Huấn luyện ma trận xác định không âm dựa theo thuật toán Boosting

Phân tích giá trị riêng là một trong những chi phí tính toán chính trong thuật toán ở hình 1.7 trên. Gần như là có những bộ tìm giá trị riêng, đảm bảo với đầu vào là một ma trận đối xứng U và bất kỳ , đầu ra là một vectơ v sao cho . Để tìm giá trị riêng lớn nhất và vectơ riêng tương ứng một cách hiệu quả, ta có thể dùng phương pháp Lanczos. Ta có thể dùng hàm eigs trong MATLAB để tính vectơ riêng lớn nhất, hàm này gọi các file mex của ARPACK. ARPACK là một tập các thủ tục con (subroutine) được viết bằng Fortran, chúng được thiết kế để giải các bài toán giá trị riêng có quy mô lớn.

Một phần của tài liệu Nghiên cứu ứng dụng kỹ thuật BoostMetric nhằm tăng hiệu quả phân lớp dữ liệu lớn (Trang 30)

Tải bản đầy đủ (DOCX)

(58 trang)
w