dạng chuỗi
Thuật toán được trình bày trong [3]. Trong đó, với một chuỗi từ w[1:n] và một chuỗi nhãn câu t[1:n], chúng ta sẽ thực hiện việc tính điểm của chuỗi được gán nhãn như sau:
1 nếu <ti-1, ti-2, t> = <D, N, V> 0 trong trường hợp ngược lại
Đầu vào:
- Một tập huấn luyện gồm các câu đã được gán nhãn (wi[1:n], ti[1:n]), với i = 1…n.
- Tham số T là số lần lặp trên tập huấn luyện
- Mỗi đặc trưng cục bộ là một hàm ánh xạ một cặp history/tag đến một vector đặc trưng d chiều. Một biến toàn cục được xác định thông qua theo công thức
Khởi tạo: khởi tạo vectơ tham số = 0.
Thuật toán:
Với t = 1…T, i = 1…n.
Dùng thuật toán Viterbi đế tìm đầu ra của mô hình trên câu huấn luyện thứ
i với tham số hiện thời:
Với là một tập tất cả các chuỗi nhãn có độ dài ni.
Nếu z[1..n] ≠ ti[1:n] thì ta sẽ cập nhật các tham số như sau:
Đầu ra: Vector tham số
Trong đó hi = <ti-1, ti-1, w[1:n], i>. Trong phương pháp này, để tính điểm cho một chuỗi nhãn được gán, chuỗi có điểm cao nhất đối với một câu đầu vào sẽ được tính bằng cách sử dụng thuật toán Viterbi.
Trong thuật toán trên, tập huấn luyện được sử dụng lặp T lần để cập nhật giá trị của tham số . Tất cả các tham số được khởi tạo bằng 0, với mỗi câu đầu vào được giải mã bằng cách sử dụng các tham số được thiết lập hiện thời. Nếu chuỗi có điểm cao nhất trong mô hình hiện thời vẫn chưa là chuỗi đúng thì ta cập nhật giá trị của tham số s theo công thức đã được đưa ra trong thuật toán. Nhận thấy rằng, nếu đặc trưng cục bộ là hàm chỉ định, khi đó đặc trưng toàn cục chính là số lần xuất hiện của đặc trưng cục bộ trong chuỗi word/tag được gán nhãn. Trong trường hợp này giá trị của mỗi tham số s được thêm vào một lượng là cs – ds. Trong đó cslà số lần xuất hiện của đặc trưng thứ s xuất hiện trong chuỗi nhãn đúng,
ds là số lần xuất hiện của đặc trưng thứ s trong chuỗi nhãn được mô hình đoán nhận. Ví dụ, nếu đặc trưng là hàm chỉ định lưu lại tất cả các trigram và cặp từ/nhãn, thì thuật toán huấn luyện chính là thuật toán đã được đưa ra trong mục II.1.2
II.3.4 Biến thể của thuật toán perceptron trong bài toán gán nhãn dữ liệu dạng chuỗi
Phần này sẽ trình bày hai biến thể của thuật toán perceptron là voted- perceptron và averaged perceptron. Kết quả thực nghiệm của hai thuật toán này cho thấy chúng đạt được hiệu năng tốt hơn so với thuật toán perceptron trình bày trong phần II.3.3.
II.3.4.1 Thuật toán voted-perceptron
Thuật toán voted-perceptron do Freund & Schapire [7] đề xuất được phát triển dựa trên thuật toán perceptron đã trình bày ở phần II.3.1. Thuật toán voted- perceptron lưu trữ nhiều thông tin hơn trong quá trình huấn luyện và sau đó sử dụng các thông tin này để đưa ra các đoán nhận tốt hơn trên tập dữ liệu kiểm tra. Thông
tin được giữ trong quá trình huấn luyện là danh sách tất cả các vectơ đoán nhận được sinh ra sau mỗi lỗi trên toàn bộ tập dữ liệu huấn luyện.
Đối với mỗi vectơ này, thuật toán thực hiện đếm số lần lặp mà không phải cập nhật giá trị của vectơ đoán nhận cho đến khi gặp lỗi tiếp theo. Giá trị này còn được gọi là thời gian sống của một vectơ đoán nhận (survives time). Ta gọi giá trị này là trọng số của vectơ đoán nhận.
Hình 9: Thuật toán voted-perceptron
Để tính một đoán nhận, thuật toán thực hiện việc đoán nhận nhị phân trên từng vectơ đoán nhận và tổ hợp tất cả các đoán nhận này bằng cách bỏ phiếu theo đa số được tính dựa trên trọng số của các vectơ. Các trọng số chính là thời gian sống được mô tả như trên. Có thể hiểu là các vectơ đoán nhận tốt thường có thời
Huấn luyện
Đầu vào: Tập dữ liệu huấn luyện đã được gán nhãn {(x1,y1), (x2,y2),…(xm,ym)}.
Số lần lặp T.
Đầu ra: Danh sách các perceptron có trọng số {(v1,c1), (v2,c2),…(vm,cm)}.
Khởi tạo: k = 0; v1 = 0; c1 = 0. Lặp lại T lần: - For i = 1,… ,m: Đoán nhận yˆ = sign (vk . xi) Nếu yˆ = y thì ck = ck + 1; ngược lại vk+1 = vk + yi.xi; ck+1 = 1; k = k+1; Đoán nhận:
Đưa vào: danh sách các perceptron có trọng số {(v1,c1), (v2,c2),…(vm,cm)} Một thể hiện chưa được gán nhãn x
Tính nhãn đoán nhận yˆ như sau:
k i i isignv x c s 1 . ; yˆ = sign(s)
gian sống lâu và vì thế chúng có trọng số lớn hơn trong việc bỏ phiếu dựa trên số đông.
Người ta đã chứng minh được rằng nếu dữ liệu có thể phân tách thì thuật toán perceptron sẽ hội tụ trên một số giả thiết phù hợp [3]. Nếu vectơ đoán nhận không sinh lỗi nữa sẽ trở thành phiếu có trọng số trong thuật toán voted-perceptron. Vì thế, đối với dữ liệu có thể phân tách được, khi T , thuật toán voted- perceptron hội tụ đến trường hợp như thuật toán perceptron tổng quát – thuật toán chỉ sử dụng vectơ đoán nhận cuối cùng.
Phân tích thuật toán trên được dựa trên kết quả của định lý 1 (được trình bày dưới đây) được đề xuất đầu tiên bởi Block (1962) và Novikoff (1962). Kết quả của định lý này cho thấy số lỗi không phụ thuộc vào số chiều của thể hiện, do đó ta có thể tin rằng thuật toán perceptron thực hiện tốt trong không gian nhiều chiều.
Định lý 1: Định lý về giới hạn lỗi trong trường hợp dữ liệu có thể phân tách được.
Cho {(x1,y1), (x2,y2),…(xm,ym)} là một chuỗi mẫu đã được gán nhãn với
R
xi . Giả sử tồn tại một vectơ u sao cho ||u|| = 1 và yi(u.xi) đối với mọi mẫu trong chuỗi. Khi đó số lỗi của thuật toán perceptron trực tuyến (online perceptron algorithm) trên chuỗi này không lớn hơn 2
) / (R .
Chứng minh:
Kí hiệu vk là vectơ đoán nhận được sử dụng trước khi xuất hiện lỗi thứ k. Theo thuật toán ta có
- v1 = 0
- Lỗi thứ k xuất hiện trong (xi, yi) và có yi(vk.xi) 0 và
vk+1 = vk + yixi.
Kết hợp với giả thuyết của định lý ta có:
Suy ra: vk+1.u k (1) Mặt khác, 2 2 2 2 2 1 v 2y v x x v R vk k i k. i i k Do đó ta có: 2 2 1 kR vk (2)
Kết hợp (1) và (2) ta được:
k u v v R k k1 k1. (đpcm).
Tiếp theo là trích dẫn một định lý của Vapnik and Chervonenkis (1974) đối với trường hợp dữ liệu huấn luyện có thể phân tách tuyến tính. Điều thú vị là đối với các trường hợp có thể phân tách tuyến tính, định lý này đều sinh ra giới hạn tương tự nhau.
Định lý 2 (VAPNIK AND CHERVONENKIS)
Giả sử tất cả các mẫu được sinh ra theo thứ tự ngẫu nhiên. Ta thực hiện thuật toán perceptron trực tuyến trên chuỗi {(x1,y1), (x2,y2),…(xm+1,ym+1)} lặp đi lặp lại cho đến khi thuật toán hội tụ. Các lỗi xuất hiện trên k mẫu có số chỉ số là i1, .., ik.
Ta đặt: j i k j x Rmax1 ) . ( min max j j i i k j u y u x 1 1 Giả sử 0.
Tiếp theo, ta thực hiện thuật toán perceptron cho đến khi thuật toán hội tụ trên mẫu huấn luyện {(x ,y ), (x ,y ),…(x ,y )}. Khi đó xác suất (trên tập m+1 mẫu)
mà perceptron cuối cùng không đoán nhận được ym+1 trên thể hiện kiểm tra xm+1 đạt giá trị lớn nhất là:
2 1 1 R k E m min , ,
trong đó, kỳ vọng là của toàn bộ m+1 mẫu.
Định lý 2 cho thấy giá trị k càng lớn thì hiệu quả của thuật toán càng giảm. Mặt khác vì k là số lỗi xuất hiện trong toàn bộ quá trình huấn luyện, nên giá trị của
k trong trường hợp thuật toán thực hiện cho đến khi hội tụ thường lớn hơn trong trường hợp chỉ thực hiện thuật toán một lần trên tập mẫu (tức là trong trường hợp T
= 1). Do vậy có thể lý giải được phần nào kếtquả thực nghiệm của T = 1 tốt hơn so với trường hợp thuật toán hội tụ [7].
Hai định lý trên cho thấy thuật toán voted-perceptron có thể hội tụ và đạt hiệu quả tốt trong trường hợp dữ liệu có thể phân tách tuyến tính được. Tuy nhiên, khả năng phân tách tuyến tính được chính là một điều kiện hạn chế. Để thuật toán có thể đạt hiệu quả tốt hơn, ta có thể thêm vào một số chiều hoặc một số đặc trưng cho không gian đầu vào. Thông thường nếu ta thêm đủ số tọa độ cần thiết thì có thể làm cho dữ liệu là có thể phân tách được. Số lỗi trong trường hợp tổng quát sẽ ít đi, nếu khả năng phân tách đủ tốt.
Tuy nhiên, việc tính toán các giá trị trong trường hợp số tọa độ nhiều rất khó có thể thực hiện. Vấn đề này có thể được giải quyết khá tốt bằng cách sử dụng các hàm nhân (kernel function). Aizerman, Braverman và Rozonoer (1964) [3] đề xuất sử dụng các hàm nhân kết hợp với thuật toán perceptron trong các bài toán có thể phân lớp.
II.3.4.2 Thuật toán averaged perceptron
Tham số trung bình là một sự cải tiến đơn giản dựa trên thuật toán mô tả trong hình 8. Kí hiệu ti
s
,
là giá trị của tham số thứ s sau mẫu huấn luyện thứ i đã qua t lần lặp trên chuỗi huấn luyện. Khi đó tham số trung bình được tính như sau:
, với mọi s = 1...d.
Việc thay đổi cách tính tham số này khá đơn giản và dễ dàng đưa vào trong thuật toán mô tả trong hình 8. Các thí nghiệm trong phần 4 của [3] đã cho thấy rằng tham số trung bình có hiệu quả cao hơn so với việc sử dụng tham số cuối cùng là Tn
s
,
. Lý thuyết được đưa ra trong phần sau sẽ chứng minh tính đúng đắn của phương pháp tham số trung bình.