Cơ sở giải thuật Boosting

Một phần của tài liệu tìm hiểu các phương pháp và xây dựng ứng dụng phát hiện khuôn mặt người dựa trên adaboost (Trang 32 - 33)

Boosting là một phương pháp chung nhằm cải thiện độ chính xác của bất kỳ giải thuật học máy nào.

Boosting sử dụng cơ chế đa tầng. Ở mỗi tầng, một bộ học yếu (những bộ học có độ chính xác chỉ lớn hớn lựa chọn ngẫu nhiên) được huấn luyện với bộ dữ liệu. Đầu ra của bộ học yếu sau đó sẽ được kết hợp vào hàm học với một trọng số (tỷ lệ với độ chính xác của bộ học đó). Sau đó, bộ dữ liệu được đánh lại trọng số theo nguyên tắc: những mẫu dữ liệu mà hàm học ở tầng hiện tại trả về kết quả sai sẽ được tăng về mức độ quan trọng, nhờ đó những bộ học yếu sau này sẽ được tập trung tìm cách sửa chữa lỗi sai này.

Có nhiều giải thuật boosting khác nhau, tùy theo cách thức xác định trọng số của các bộ học yếu và cách đánh lại trọng số cho các mẫu sau mỗi tầng. Trong số đó, giải thuật AdaBoost là phổ biến và có ý nghĩa hơn cả. Tuy nhiên, một số giải thuật gần đây như LPBoost hay TotalBoost đang dần thay thế cho AdaBoost do chúng hội tụ nhanh hơn và cho ra những trọng số giả thuyết thưa.

Lĩnh vực học máy nghiên cứu những kỹ thuật cho việc học để đưa ra được những dự đoán chính xác dựa trên những quan sát trước đó. Chẳng hạn chúng ta muốn xây dựng một bộ lọc thư có khả năng phát hiện ra spam khỏi những thư thông thường. Hướng tiếp cận học máy để giải quyết bài toán này sẽ như sau:

Giai đoạn chuẩn bị dữ liệu: thu thập càng nhiều mẫu ví dụ càng tốt, bao gồm cả những thư spam và mail thông thường. Chất lượng tập mẫu lựa chọn sẽ ảnh hưởng nhiều đến chất lượng của bộ phân loại thu được.

Giai đoạn học: tập mẫu này cùng với nhãn cho biết chúng là thư spam hay thư thông thường vào một giải thuật học máy, giải thuật này sẽ tự động sinh ra những luật phân lớp.

Giai đoạn thử nghiệm: đưa vào những thư mới chưa được đánh nhãn, những luật ở trên sẽ tìm cách dự đoán xem thư đó là spam hay không.

Mục tiêu là phải sinh ra được những luật cho phép dự đoán chính xác nhất trên tập kiểm tra bất kỳ.

Việc xây dựng những luật dự đoán có độ chính xác cao là một nhiệm vụ rất khó khăn. Trong khi đó, việc phát hiện ra những luật thô có độ chính xác trung bình không phải là khó. Chẳng hạn trong bài toán trên, ta có thể sử dụng luật: “Nếu thuật ngữ ‘buy now’ xuất hiện trong thư thì thư đó sẽ được dự đoán là spam”. Những luật như vậy không thể đúng cho tất cả các thư spam, chẳng hạn như với những thư không chứa thuật ngữ ‘buy now’. Độ chính xác của chúng chỉ tốt hơn việc lựa chọn ngẫu nhiên bất kỳ.

Giải thuật boosting được dựa trên nhận định cho rằng việc tìm ra những luật thô dễ hơn rất nhiều việc xác định một luật đơn có độ chính xác cao. Để ứng dụng hướng tiếp cận boosting, ta sẽ bắt đầu với một phương pháp hay một giải thuật tìm ra những luật thô. Giải thuật boosting gọi những luật yếu (hay những luật cơ sở) này lần lượt, mỗi lần với một tập khác nhau trong bộ mẫu (hay chính xác hơn là một phân bố - hay trọng số trên tập mẫu). Mỗi lần gọi, giải thuật sinh ra một luật dự đoán yếu mới, và sau nhiều vòng, giải thuật boosting phải kết hợp những luật yếu này thành một luật đơn có độ chính xác được hy vọng là tốt hơn những luật yếu. Hai vẫn đề chính cần được giải quyết:

• Thứ nhất, làm cách nào để chọn ra được một luật tốt nhất ở mỗi vòng?

• Thứ hai, cách thức kết hợp những luật yếu thành một luật đơn mạnh như thế nào?

Dù lựa chọn phân bố như thế nào, kỹ thuật được sử dụng phải bảo đảm nguyên tắc: mẫu thường bị những luật yếu phân lớp sai phải được đánh trọng số lớn. Điều này có tác dụng bắt buộc những bộ học yếu phải tập trung chú ý phân loại những mẫu khó nhất. Việc kết hợp những luật yếu thường chỉ đơn giản là việc xác định một trọng số dựa vào độ chính xác trong dự đoán mỗi luật yếu.

Boosting là một phương pháp hiệu quả trong việc sinh ra một luật dự đoán rất chính xác bằng việc kết hợp nhiều luật thô có độ chính xác trung bình.

Một phần của tài liệu tìm hiểu các phương pháp và xây dựng ứng dụng phát hiện khuôn mặt người dựa trên adaboost (Trang 32 - 33)

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

(88 trang)
w