Module huấn luyện SVMs

Một phần của tài liệu phân loại văn bản tiếng việt sử dụng phương pháp máy hỗ trợ vector (support vector machine – svms) (Trang 54 - 57)

Trong phương pháp phân loại văn bản SVMs, công việc huấn luyện (học) là quan trọng nhất và tốn nhiều thời gian nhất. Quá trình huấn luyện sẽ trả ra các tham số của quá trình tối ưu hoá, cũng chính là tham số của các support vectors. Kết quả của quá trình huấn luyện sẽ được dùng cho việc kiểm tra và phân loại các văn bản khác.

Mặc dù tốn nhiều thời gian thực hiện, nhưng kết quả của một lần huấn luyện có thể áp dụng cho nhiều bộ dữ liệu kiểm tra, nhiều văn bản cần phân loại khác nhau. Vì thế việc phân tách thành các module tách biệt giữa quá trình huấn luyện và kiểm tra là cần thiết.

Để chuẩn bị dữ liệu cho quá trình huấn luyện, tập văn bản huấn luyện thô ban đầu sẽ được đưa qua bước tiền xử lý để biểu diễn dưới dạng các vector thưa. Tập văn bản huấn luyện đã được xác định nhãn, mảng lưu giá trị nhãn của các văn bản huấn luyện cũng là đầu vào cho quá trình huấn luyện của chương trình. Chú ý rằng, với số chủ đề là m, nhãn của các văn bản được đánh giá theo giá trị từ 1 đến m để thể hiện chủ đề mà nó thuộc vào. Sau đó mảng này sẽ được biến đổi thành mảng giá trị {1/-1} tương ứng với một chủ đề nhất định đang được xét.

Sinh viên thực hiện: Hoàng Thị Nhung – Lớp HTTTA-K11 Trang 43/67

Hình 3-7: Lược đồ thực hiện module huấn luyện.

Module huấn luyện có các đầu vào, đầu ra và thuật toán thực hiện như sau:

Đầu vào:

Tập các vector thưa biểu diễn tập dữ liệu huấn luyện đã được gán nhãn (đầu ra của module tiền xử lý dữ liệu huấn luyện).

Đầu ra:

Là các tham số của siêu phẳng tối ưu: b, α* = (α1, α2, …, αm) và các hệ số nhân K(xi,xj) sử dụng cho module ra quyết định phân loại.

Thuật toán thực thi huấn luyện:

1. Lựa chọn hàm nhân Kernel và tham số tương ứng (nếu có) để tính mảng giá trị hàm nhân cặp (xi,xj) trong tập huấn luyện.

2. Khởi tạo vector hệ số α0 (theo thuật toán). Để khởi tạo các biến α = (α1,

α2, …, αm):

 Thiết lập tất cả các hệ số ban đầu α0 = (0, 0, …, 0), tính tập N0

(N là tập các chỉ số i của các văn bản có cặp giá trị αi, Vi chưa đạt yêu cầu).

 Lặp công việc tìm kiếm các giá trị ) i(0

 cho đến khi N =.

3. Sử dụng thuật toán giải bài toán tối ưu (trình bày trong phần) tìm ra cặp tham số tối ưu (b, α*).

4. Lưu lại các cặp giá trị (b, α*)và các tham số của hàm nhân K(xi,xj)để sử dụng trong module kiểm tra(ra quyết định phân loại).

Sinh viên thực hiện: Hoàng Thị Nhung – Lớp HTTTA-K11 Trang 44/67

Trong Bước 1 để tính toán ra mảng giá trị hàm nhân của các cặp (xi,xj), ta cần vận dụng tính chất đối xứng của hàm nhân: K(xi,xj) = K(xj,xi), cho nên K sẽ là một ma trận đối xứng. Do đó, không cần tính toán và lưu K ở dạng ma trận hai chiều, mà chỉ cần lưu dưới dạng vector cho ma trận tam giác trên. Giả sử chọn hàm nhân Poly, ta có thuật toán tạo mảng giá trị nhân K như sau:

for (int i = 0; i < nsample; i++) {

for (int j = i; j < nsample; j++) {

k = nsample*i – (i-1)*i/2 + ji; int temp = 1;

for (int t = 0; t < nterm; t++) { temp = temp + x[i,t]*x[j,t]; } K[k] = Math.Pow(temp,d); } }

Thuật toán 3-7: Ví dụ khởi tạo mảng giá trị hàm nhân đa thức (Kernel Poly).

trong đó:

nsample: là tổng số văn bản trong tập dữ liệu huấn luyện.

nterm: tổng số từ khoá của tập đặc trưng (số chiều vector biểu diễn văn bản).

- k = nsample*i – (i-1)*i/2 + j – i: là công thức tính chỉ số của vector biểu diễn ma trận tam giác với ij.

Bước 2 của thuật toán nhằm khởi tạo cho tập biến α0. Chi tiết của quá trình khởi tạo được thiết lập như sau:

1. Khởi tạo giá trị 0 ban đầu cho tất cả các biến (αi, Gi, V1, V2) 2. Tính tập N.

3. Nếu (N = ) thì chuyển sang bước 5.

4. Ngược lại, nếu (N )thì thực hiện quá trình lặp cho đến khi N =:

 Tính Ii

- Nếu yi = 1 thì Ii = 2C+Gi + (C+)2.K(xi,xj).

- Nếu yi = -1 thì Ii = 2C-Gi + (C-)2.K(xi,xj).

 Tìm rN sao cho Ir = min{Ii}, iN.

 Cập nhật giá trị cho biến αr = 

      (t) r r,v V C min 2

 Cập nhật giá trị cho mảng G, V cho lần lặp tiếp theo.

 Cập nhật lại N. 5. Kết thúc.

Thuật toán 3-8: Giải thuật khởi tạo mảng giá trị tham số α0. Ghi chú:

Trong phần trên của báo cáo đã trình bày khá chi tiết các công thức xác định các tập G, V, N, …. Chúng ta có thể xem lại các công thức này để thấy rõ hơn quy trình khởi tạo α0.

Sinh viên thực hiện: Hoàng Thị Nhung – Lớp HTTTA-K11 Trang 45/67

Sau khi khởi tạo thành công các hệ số α0, ta đã có thể tiến hành Bước 3 để giải bài toán tối ưu. Giải thuật cụ thể tiến hành giải bài toán tối ưu tìm các tham số siêu phẳng bα* như sau:

1. Thực hiện giải thuật khởi tạo biến α0. 2. Tại lần lặp thứ k:

 Xác định W+ chứa các cặp chỉ số (p, q) của các văn bản thoả mãn yp =

yq = 1 và ΔG(p,q) > 0.

 Xác định W- chứa tập các cặp chỉ số (p,q) của các văn bản thoả mãn

yp = yq = -1 và ΔG(p,q) > 0.

3. Lặp cho đến khi W+ = hoặc W- = hoặc L = const(L: giá trị hàm Lagrange).

 Tìm cặp chỉ số (p,q) có ΔG(p,q) đạt max.

 Tuỳ thuộc (p,q) thuộc W+ hay W-, xác định lại αp, αq, W+, W-, L, G. 4. Kết thúc.

Thuật toán 3-9: Quy trình giải bài toán tối ưu theo SVMs.

Một phần của tài liệu phân loại văn bản tiếng việt sử dụng phương pháp máy hỗ trợ vector (support vector machine – svms) (Trang 54 - 57)