Là một cải tiến của tiếp cận Boosting, AdaBoost sử dụng thêm khái niệm trọng số (weight) để đánh dấu các mẫu nhận dạng. Trong quá trình huấn luyện, cứ mỗi bộ phân loại yếu được xây dựng, thuật toán sẽ tiến hành cập nhật lại trọng số để chuẩn bị cho việc xây dựng bộ phân loại yếu kế tiếp thông qua việc tăng trọng số của các mẫu bị nhận dạng sai và giảm trọng số của các mẫu được nhận dạng đúng bởi bộ phân loại yếu vừa xây dựng. Bằng cách này, các bộ phân loại yếu sau có thể tập trung vào các mẫu mà các bộ phân loại yếu trước nó chưa làm tốt. Sau cùng, các bộ phân loại yếu sẽ được kết hợp tuỳ theo mức độ “tốt” của chúng để tạo dựng nên bộ phân loại mạnh.
Có thể hình dung một cách trực quan như sau: để biết một từ có phải là Danh từ riêng chỉ địa điểm (AM-LOC) hay không, ta hỏi T người (tương đương với T bộ phân loại yếu xây dựng từ T vòng lặp của tăng cường), đánh giá của mỗi người (tương đương với một bộ phân loại yếu) chỉ cần tốt hơn ngẫu nhiên một chút (tỉ lệ sai dưới 50%). Sau đó, ta sẽ đánh trọng số cho đánh giá của từng người (thể hiện qua hệ số α), người nào có khả năng đánh giá tốt các từ khó thì mức độ quan trọng của người đó trong kết luận cuối cùng sẽ cao hơn những người chỉ đánh giá tốt các mẫu dễ. Việc cập nhật lại trọng số của các mẫu sau mỗi vịng tăng cường chính là để đánh giá độ khó của các mẫu (mẫu càng có nhiều người đánh giá sai là mẫu càng khó).
Thuật tốn Adaboost:
1. Cho một tập gồm n mẫu có đánh dấu (x1,y1), (x2,y2),… (xn,yn) với xk ∈ (xk1, xk2, … , xkm) là vector đặc trưng và yk ∈ (-1, 1) là nhãn của mẫu (1 ứng với từ loại, -1 ứng với từ loại khác).
2. Khởi tạo trọng số ban đầu cho tất cả các mẫu: với m là số mẫu đúng (ứng với từ loại và y = 1) và l là số mẫu sai (ứng với từ loại khác và y = -1):
w1,k = 7∗.= ,7∗$= 3. Xây dựng T weak classifiers:
Lặp t = 1, …, T
• Với mỗi đặc trưng trong vector đặc trưng, xây dựng một weak classifier hj với ngưỡng θj và lỗi εj :
εj = '𝑤0,@ |ℎC(𝑥@) − 𝑦@|
@
• Chọn ra hj với εj nhỏ nhất, ta được ht :
• Cập nhật lại trọng số: w0;=,@ = 𝑤0,@ 𝑍 × 𝑒 NOP , ℎ0 𝑥@ = 𝑦0 𝑒OP , ℎ0 𝑥@ ≠ 𝑦0 • Trong đó: ∝0= 1 2 ln( 1 − εC εC )
𝑍𝑡: Hệ số dùng để đưa w𝑡+1về đoạn [0,1] (normalization factor) 4. Strong classifier được xây dựng :
𝐻 𝑥 = 𝑑ấ𝑢 ∝0 ℎ0(𝑥)
] 0N=
Giải thích:
Q trình huấn luyện bộ phân loại được thực hiện bằng một vòng lặp mà ở mỗi bước lặp, thuật toán sẽ chọn ra bộ phân loại yếu ht thực hiện việc phân loại với lỗi εt nhỏ nhất (do đó sẽ là bộ phân loại tốt nhất) để bổ sung vào bộ phân loại mạnh. Mỗi khi chọn được 1 bộ phân loại ht, AdaBoost sẽ tính giá trị εt theo cơng thức ở trên, εt cũng được chọn trên nguyên tắc làm giảm giá trị lỗi εt.
Hệ số αt nói lên mức độ quan trọng của ht : - Trong công thức phân loại H(x):
𝐻 𝑥 = 𝑑ấ𝑢 ∝0 ℎ0(𝑥)
]
0N=
Ta thấy tất cả các bộ phân loại ht đều có đóng góp vào kết quả phân loại của H(x), và mức độ đóng góp của chúng phụ thuộc vào giá trị αt tương ứng: ht với αt càng lớn thì nó càng có vai trị quan trọng H(x).
∝0= 1
2 ln(
1 − εC
εC )
Ta thấy giá trị αt tỉ lệ nghịch với εj. Bởi ht được chọn với tiêu chí đạt εi nhỏ nhất, do đó nó sẽ đảm bảo giá trị αt lớn nhất. Công thức này do Ruend và Schapire đưa ra.
Sau khi tính được giá trị αt, Adaboost tiến hành cập nhật lại trọng số của các mẫu thông qua việc tăng trọng số các mẫu mà ht phân loại sai, giảm trọng số mà các ht phân loại đúng. Bằng cách này, trọng số của mẫu phản ảnh được mức độ khó nhận dạng của mẫu đó và ht+1sẽ ưu tiên học cách phân loại những mẫu này.
Vòng lặp xây dựng bộ phân loại mạnh (strong classifer) sẽ dừng lại sau T lần lặp. Trong thực tế, người ta ít sử dụng giá trị T vì khơng có cơng thức nào đảm bảo tính được giá trị T tối ưu cho q trình huấn luyện. Thay vào đó, người ta sử dụng giá trị max False Positive (tỉ lệ nhận dạng sai tối đa các mẫu positive) hay max False Alarm (tỉ lệ nhận dạng sai tối đa các mẫu negative). Tỉ lệ này của bộ phân loại cần xây dựng không được phép vượt quá giá trị này. Khi đó, qua các lần lặp, tỉ lệ nhận dạng sai các mẫu âm tính (false alarm) của bộ phân loại mạnh Ht(x) xây dựng được (tại lần lặp thứ t) sẽ giảm dần, và vòng lặp kết thúc khi tỉ lệ này thấp hơn tỉ lệ nhận dạng sai tối đa các mẫu âm tính (max false alarm).
2.3. Một số ứng dụng của phương pháp AdaBoost:
Phương pháp học máy AdaBoost được ứng dụng rộng rãi trong lĩnh vực xử lý ảnh số. AdaBoost được sử dụng trong việc nhận dạng ảnh, dữ liệu ảnh sẽ được phân loại dựa trên các đặc trưng ảnh (vd: các đặc trưng Haar-like) kết hợp với việc nâng cao độ chính xác nhờ một lượng dữ liệu huấn luyện lớn (khoảng 3000 ảnh) để thực hiện phân loại ảnh.
2.4. Kết luận chương 2
Nội dung chính của chương là giới thiệu phương pháp phân loại học máy AdaBoost, trình bày những nguyên lý bản nhất về mơ hình Boost và AdaBoost ứng dụng trong gán nhãn dữ liệu dạng chuỗi. Trong chương tiếp theo, tôi xin giới thiệu về bài tốn gán nhãn vai trị ngữ nghĩa theo hướng áp dụng mơ hình AdaBoost và cơng cụ Swirl.
CHƯƠNG 3: ỨNG DỤNG ADABOOST CHO BÀI TỐN GÁN NHÃN NGỮ NGHĨA NƠNG
Nội dung chính của chương này là mô tả bài tốn gán nhãn vai trị ngữ nghĩa theo hướng áp dụng mơ hình phân loại AdaBoost và công cụ Swirl trong gán nhãn chuỗi dữ liệu. Đồng thời, chương này cũng trình bày các kết quả thực nghiệm thu được và hướng nghiên cứu tiếp theo của đề tài.
3.1. Mô tả bài tốn gán nhãn vai trị ngữ nghĩa nơng
Ta có thể quy bài tốn gán nhãn vai trị ngữ nghĩa nông cho các thành phần trong câu về bài toán chunking áp dụng mơ hình AdaBoost. Dựa vào các nhãn đã qua tiền xử lý, ta có thể xác định được ranh giới của từng cụm vai trò ngữ nghĩa đối với một động từ cụ thể trong câu. Các nhãn được tiền xử lý để có định dạng IOB2.
- B-X : nhãn đánh dấu bắt đầu một cụm ngữ nghĩa.
- I- X : nhãn đánh dấu các thành phần bên trong cụm ngữ nghĩa.
- O : nhãn đánh dấu các thành phần bên ngoài tất cả các cụm ngữ nghĩa (dấu chấm).
Trong đó: X là tập các nhãn ngữ nghĩa được quy định theo quy cách ký hiệu của kho ngữ liệu PropBank, gồm 5 nhãn chính A0- A5, 1 nhãn O chứa các từ không nằm trong cụm ngữ nghĩa nào và 13 nhãn chức năng biểu thị thời gian địa điểm, cách thức,.. (TMP, LOC, MNR,...). Như vậy bài tốn gán nhãn vai trị ngữ nghĩa có thể được phát biểu như sau: "Hãy áp dụng mơ hình AdaBoost để
gán nhãn {B-X, I-X, O} cho các thành phần của một câu trong văn bản tiếng Anh."
Việc áp dụng mơ hình cần trải qua các bước thu thập, chuẩn bị dữ liệu và xác định đầu vào đầu ra của mơ hình.
3.2. Thu thập và chuẩn bị dữ liệu
Để sử dụng được công cụ Swirl người dùng cần chuẩn bị hai thư mục tệp chứa các tệp tin tin dữ liệu: dữ liệu huấn luyện và dữ liệu test. Cả hai thư mục đều cần phải có định dạng tương thích với môi trường làm việc của Swirl.
Các file dữ liệu huấn luyện:
Tệp chứa từ (word file): Tệp chứa danh sách các câu đã tách từ, mỗi từ sẽ trên 1 dòng và mỗi câu được ngăn cách bởi 1 dịng trơng. Hình 3.1 mơ tả ví dụ về một tệp chứa từ huấn luyện: