Thuật toán COREG

Một phần của tài liệu Phương pháp đồng huấn luyện và ứng dụng (Trang 76)

3. 5 Kết luận

3.4.3.Thuật toán COREG

Như đã trình bày, với phương pháp co-training điều kiện lý tưởng đặt ra là hai bộ học phải được thiết lập trên hai khung nhìn khác nhau, nên trong bài toán này ta có thể tạo ra sự khác nhau giữa hai bộ học nhờ vào việc sử dụng các giá trị k khác nhau, hoặc sử dụng khoảng cách metric khác nhau. Trong [49], các tác giả có đưa ra 3 mô hình kết hợp giữa hai giá trị tham số k và khoảng cách metric D.

Khi sử dụng hai bộ giá trị (ki,Di) (với i=1,2) khác nhau này, hai bộ học sẽ đưa ra dự đoán “nhãn” cho các dữ liệu một cách độc lập. Bằng việc sử dụng hai bộ giá trị khác nhau này, hai bộ học sẽ có những dự đoán khác nhau về lớp của các dữ liệu chưa gán nhãn cho dù tập dữ liệu gán nhãn ban đầu là giống nhau. Tuy nhiên trong thực tế, để biết được việc sử dụng bộ giá trị (ki,Di) (với i=1,2) với giá trị k, D nào là tốt, hay sự

kết hợp nào giữa hai tham số k và D có thể mang lại hiệu quả cao hơn cho bài tóan, đó là cả một vấn đề lớn và cần thêm nhiều nghiên cứu nữa.

Như đã biết, để gán nhãn cho các dữ liệu huấn luyện cần đánh giá được độ tin cậy nhãn trên mỗi bộ học khi tham gia phân lớp. Trong học máy cả ở học tích cực (active learning) lẫn học bán giám sát, việc lựa chọn các mẫu huấn luyện trung gian có độ tin cậy cao có một ý nghĩa rất quan trọng. Trong học tích cực, các dữ liệu chưa gán nhãn sau khi được gán nhãn, nó sẽ được chọn nhờ vào việc kiểm tra bằng một bộ đoán (oracle) cho tính xác thực của nhãn, và dựa vào kết quả này người ta có thể đánh giá xem nó có thực sự có ý nghĩa cho bộ học không và nó có thể được chọn để thêm vào tập mẫu huấn luyện không. Nhưng đối với học bán giám sát khi không có bộ đoán nào tham gia vào việc xác định độ tin cậy nhãn của các dữ liệu mới được gán nhãn, thì nó được chính bộ học chọn thông qua việc đánh giá độ tin cậy của nó trên một ngưỡng đạt được nào đó trên bộ học đó.

Đối với bài toán phân lớp, thì việc đánh giá độ tin cậy gán nhãn là dễ dàng hơn vì mỗi bộ học có thể đưa ra một dự đoán xác suất riêng cho việc phân lớp. Ví dụ như phương pháp naïve Bayes, nó sẽ dựa vào xác suất trước đó mà đưa ra kết luận phân lớp. Hay, như bộ phân lớp mạng noron Backpropagation sẽ trả về một ngưỡng cho sự phân lớp. Do đó việc đánh giá độ tin cậy gán nhãn các dữ liệu để trở thành mẫu huấn luyện trung gian sẽ được đưa ra thông qua các đánh giá xác suất thống kê từ các bộ học khác nhau trong quá trình học. Ví dụ, một mẫu a được phân lớp với nhãn c1 là 0.9, với nhãn c2là 0.1, mẫu b được phân lớp với nhãn c1 là 0.6, với nhãn c2là 0.4, vậy mẫu

a sẽ được kết luận mang nhãn c1. Nhưng khác bài toán phân lớp hữu hạn này, khi số nhãn của mẫu là hạn chế, còn với bài toán hồi quy nhãn của mẫu là vô hạn, nhãn là vô hạn. Bởi vậy vấn đề mấu chốt của COREG là tìm ra kỹ thuật đánh giá độ tin cậy của việc gán nhãn.

Về trực quan, rõ ràng các dữ liệu được gán nhãn mà có độ tin cậy càng cao trong một bộ học hồi quy thì nó càng có giá trị, hay lỗi của bộ học hồi quy luôn tỷ lệ nghịch với độ tin cậy gán nhãn. Việc chọn và sử dụng được các dữ liệu trung gian làm mẫu huấn luyện với độ tin cậy cao sẽ làm cho bộ học hồi quy tương thích với tập mẫu huấn luyện đã gán nhãn ban đầu. Do đó sai số bình phương trung bình (Mean Squared Error - MSE) của bộ học hồi quy trên tập mẫu đã gán nhãn sẽ là quan trọng và được

đánh giá đầu tiên. MSE của bộ học hồi quy có thể sử dụng thông tin từ các bộ (xu, ŷu), trong đó ŷu là nhãn của xu khi dùng bộ học hồi quy giám sát ban đầu để gán nhãn. Nếu đặt Δu = MSE đầu – MSE cuối thì rõ ràng (xu, ŷu) với trường hợp Δu lớn nhất có thể sẽ trở thành mẫu được gán nhãn với độ tin cậy cao nhất.

Do đó thay vì ta đánh giá sai số bình phương tối thiểu MSE thì ta đánh giá sai số thông qua sử dụng bộ học hồi quy k-NN trên toàn bộ mẫu huấn luyện sau mỗi vòng lặp. Với mỗi xu, COREG xác định trong tập dữ liệu huấn luyện (đã gán nhãn) k láng giềng gần nó nhất và sử dụng chúng để tính MSE. Với mỗi xu ta đặt u là tập các láng giềng của nó trong tập L, từ đó ta xác định được có độ tin cậy cao nhất trong U‟ để thêm vào tập mẫu L thông qua việc tìm giá trị cực đại của biểu thức sau :

(3.15)

Thuật toán huấn luyện COREG được viết giả mã trong hình dưới đây (xem hình 30).

Hình 30 . Sơ đồ giả code của thuật toán COREG

ALGORITHM: COREGk

INPUT:

Tập đã gán nhãn: L, tập chưa gán nhãn: U, Lặp tối đa T vòng lặp,

Hai tham số trong thuật toán k láng giềng k1; k2

Hai khoảng cách metrics D1;D2

PROCESS:

L1← L; L2← L

Create pool U’ of size s by randomly picking examples from U h1← kNN(L1; k1, D1); h2← kNN(L2; k2, D2)

Repeat for T rounds: //Thuật toán được thiết lập với T vòng lặp for j {1, 2} do

for each xu U’ do //với mỗi điểm dữ liệu chưa được gán nhãn

u ← Neighbors (xu, Lj , kj, Dj) //xác định kj láng giềng của xu và lưu vào u

ŷu← hj(xu) //Xác định nhãn theo bộ học hồi quy nhận được từ vòng lặp trước

h’j ← kNN(LJ {(xu, ŷu)}, kj, Dj) //Thêm điểm mới gán nhãn vào Lj và train lại bộ học hj

//xác định giá trị  cho xu

end of for

if there exists an > 0 //nếu xu có  thỏa mãn thì được thêm vào tập j tương ứng then j ← ; j ←hj( j)

{( j, j)}; U’←U’ –{ j }

else // nếu xu không có  thỏa mãn thì không được thêm vào j

end of for (adsbygoogle = window.adsbygoogle || []).push({});

L1 L1 ; L2 L2 //1 được cập nhật vào L2, ngược lại, 2 được cập nhật vào L1

If neither of L1 and L2 changes then exit //Thuật toán có thể kết thúc nếu U‟ không có một xu nào

//thỏa mãn để thêm mới vào L1, hoặc L2.

else //Nếu có sự thay đổi trên L1 hoặc L2 thì h1 và h2 được xác định lại

h1 ←kNN( L1, k1, D1); h2←kNN(L2, k2, D2)

Replenish U‟to size s by randomly picking examples from U. //U‟ được lấy ngẫu nhiên từ L

end of Repeat

f1 ←Regressor (L1); f2 ←Regressor (L2) //f1, f2là hai bộ học có giám sát được sinh ra từ hai tập L1, L2 OUTPUT:

Trong đó, hàm kNN(Li, ki, Di) là hàm hồi quy nhận được từ tập đã có nhãn Li với thuật toán ki láng giềng gần nhất khi xét với khoảng cách metric là khoảng cách Di={euclidean, Mahalanobis) (i={1, 2}). Thuật toán COREG dừng khi thực hiện đủ T vòng lặp hoặc khi không có một dữ liệu mới nào được thêm vào một trong hai tập dữ liệu huấn luyện L1, L2. Theo Blum và Mitchell [11] thì thay vì ta sử dụng một lần tập rộng lớn U, ta sẽ sử dụng nhiều lần (lặp) một tập con U‟ được lấy ngẫu nhiên từ tập U. Ở mỗi lần lặp, nếu một mẫu mới được gán nhãn đã được thêm vào một trong hai bộ học thì nó không được thêm vào bộ học còn lại, ví dụ (x*, y*) đã thỏa mãn có h1 dương và mang giá trị lớn nhất mà được thêm vào L1 thì nó không được thêm vào L2 cho dù h2 cũng thỏa mãn điều kiện thêm. Chính vì có sử dụng kỹ thuật này nên hai bộ học h1 và h2 dù được huấn luyện dựa trên hai tham số k khác nhau, tương tự giống nhau nhưng kết quả gán nhãn dữ liệu mới vẫn luôn khác nhau, do vậy bộ học này có thể sử dụng kết quả gán nhãn của bộ học kia và ngược lại, đảm bảo tính chất học độc lập của phương pháp học co-training. Trong mỗi vòng lặp thì việc quan trọng nhất của hàm COREG là xác định các láng giềng gần nhất của xu. Khi các láng giềng của các ví dụ huấn luyện đã được xác định và ghi lại, độ lân cận với các dữ liệu chưa gán nhãn được tính toán thì cuối cùng tập mẫu huấn luyện đã gán nhãn ban đầu được cập nhật. Độ lân cận đã được xác định của các dữ liệu chưa gán nhãn sẽ còn được sử dụng trong các vòng lặp sau.

Một phần của tài liệu Phương pháp đồng huấn luyện và ứng dụng (Trang 76)