Thuật toán LARS cải biên để giải quyết bài toán LASSO

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp giải bài toán biểu diễn thưa (Trang 50 - 56)

10 So sánh bước cập nhật vector nghiệm của OMP và LARS trước và sau

2.2 Thuật toán Least Angle Regression (LARS) [1]

2.2.2 Thuật toán LARS cải biên để giải quyết bài toán LASSO

Thuật toán LARS cải biên

Trong một số trường hợp, chúng ta giải bài tốn cực tiểu hóa với tiêu chuẩn`1:

Tìmminx kxk1thỏa mãn điều kiện Ax=y

Bằng cách sử dụng các phương pháp tối ưu hóa trong giải tích lồi. Tuy nhiên, các thuật tốn tối ưu hóa lồi địi hỏi khối lượng tính tốn khổng lồ khi hệ dưới xác định có kích thước rất lớn. Thuật tốn LARS cải biên được đưa ra bởi Tibshirani giải quyết hiệu quả bài tốn cực tiểu hóa tiêu chuẩn`1. Thay vì giải trực tiếp, thuật tốn LARS cải biên

giải bài tốn Lasso tìm cực tiểu hàm bình phương sai số thỏa mãn điều kiện ràng buộc vector nghiệm cần tìm có chuẩn`1nhỏ hơn ngưỡng(q)cho trước:

Tìmmin

x ky−Axk2

2 thỏa mãn điều kiện

kxk1≤q (2.2.26) Bài tốn Lasso (2.2.26) có thể được viết lại tương đương như một bài tốn tối ưu hóa khơng ràng buộc (khơng bị ép buộc): Tìm

min

x ky−Axk22 +λkxk1 (2.2.27) Ở đâyλ∈[0,∞)là một tham số hiệu chỉnh để điều kiển mối quan hệ (chuẩn mực) giữa trung bình bình phương sai số và tiêu chuẩn`1 của vector nghiệmx.

Để nghiệm của bài tốn (2.2.27) là nghiệm của bài tốn cực tiểu hóa tiêu chuẩn

`1, vector nghiệm x được khởi tạo với tất cả các phần tử nhận giá trị 0 và cho giá trị λ

lớn, sau đó tại mỗi lần lặp giá trịλgiảm từ từ . Khiλgiảm dần tới 0, nghiệm của bài toán Lasso sẽ hội tụ tới nghiệm của bài tốn cực tiểu hóa tiêu chuẩn`1

Thuật tốn LARS cải biên với một thay đổi nhỏ so với thuật toán LARS cơ bản được dùng để giải bài toán Lasso nhanh hơn so với các thuật tốn tối ưu hóa lồi tuyến tính truyền thống. Để giải thích cho điều này, chúng ta bắt đầu giải bài toán giống như giải bài toán cực tiểu hóa thơng thường. Để đơn giản, ta ký hiệu:

∂xfλ(x) = −AT(y−Ax) +λ∂x(kxk1)

nên điều kiện0∈∂xfλ(x)trở thành:

−AT(y−Ax) +λ∂x(kxk)1 30 (2.2.28) Bởi vì số dưr =y−Ax, từ (2.2.28) trở thành:

−ATr+λ∂x(kxk1)30 (2.2.29) Nhắc lại, sự tương quan được tính bằng cách:c = ATr, phương trình (2.2.29) có

thể được biểu diễn như sau:

−c+λ∂x(kxk1)30

Hay:

c∈λ∂x(kxk1) (2.2.30)

Do gradient củak x k1 khơng tồn tại bởi vì chuẩn `1 khơng liên tục tại 0, vì vậy thay vì tìm gradient chúng ta có thể tìm subgradient của chuẩn`1 như sau:

∂x(kxk1=       

v(i) = sign(x(i)) nếux(i)6= 0

v ∈Rn :

v(i)∈[−1,1]∈ nếu x(i) = 0

Tại mỗi vòng lặp của LARS, các hệ số của vector nghiệmxtương ứng với tập hỗ trợI là khác 0 (x(i) 6= 0, i ∈ I). Các hệ số khác bằng 0(x(i) = 0, i ∈ Ic). Do đó bằng

cách sử dụng cơng thức trên , phương trình (2.2.30) được biểu diễn

c(I) = λsign(x(I)) (2.2.31)

Đối với các phần tử thuộc tập hỗ trợ và

|c(Ic)|≤λ (2.2.32) Với các phần tử không thuộc tập hỗ trợ.

Như vậy, thuật tốn LARS có thể giải được bài tốn Lasso nếu nó thỏa mãn các ràng buộc bởi phương trình (2.2.31) và (2.2.32) ở mỗi vịng lặp. Nói cách khác, để giải quyết bài toán Lasso, thuật toán LARS cải biên cần thỏa mãn:

1. Sự tương quan tuyệt đối giữa các cột hỗ trợ với vector dư tại mỗi bước lặp bằng vớiλ.

2. Dấu của vector tương quan và vector nghiệm tương thích trên tập hỗ trợ . 3. Giá trị tương quan tuyệt đối của các cột không hỗ trợ với vector dư tại mỗi bước lặp khơng lớn hơnλ.

Thuật tốn LARS cơ sở ln duy trì điều kiện được chỉ ra bởi đẳng thức (2.2.32) ở mỗi vịng lặp bởi vì sự tương quan tuyệt đối của các cột khơng hỗ trợ thì ln ln nhỏ hơnλ. Nếu chúng bằngλ, cột đó cần được cho vào tập hỗ trợ. Ngồi ra, thuật tốn LARS

cơ sở cũng duy trì một phần điều kiện được cho bởi phương trình (2.2.31) đó là sự tương quan tuyệt đối của cột hỗ trợ bằngλ. Tuy nhiên, thuật toán LARS cơ sở không bắt buộc

dấu giữa vector tương quan và vector nghiệm phải tương thích trên tập hỗ trợ. Do đó, một số hệ số của nghiệm gắn với tập hỗ trợ có thể thay đổi dấu trong khi dấu tương ứng của các hệ số tương quan vẫn không thay đổi. Bởi vậy, để thỏa mãn, thuật toán LARS cần được thay đổi để duy trì điều kiện phù hợp về dấu, điều đó thể hiện bởi phương trình sau:

sign(x(I)) =sign(c(I)) (2.2.33) Thuật tốn LARS cơ sở vi phạm điều kiện (2.2.33) khi một trong các hệ số nghiệm liên quan với cột hỗ trợ vượt quá cận dưới 0. Do đó, nếu có bất kỳ hệ số nghiệm liên quan đến tập hỗ trợ là 0 trong q trình thực hiện thuật tốn LARS, các cột tương ứng với các hệ số này nên được loại bỏ khỏi tập hỗ trợ, và hướng cập nhật d cần được tính lại bằng cách giải phương trình (2.2.6). Sau đây, chúng ta cần xác định kích cỡ bước điγ, là

nguyên nhân dẫn đến hệ số nghiệm gắn với tập hỗ trợ về 0 sau bước cập nhật lại nghiệm. Bằng cách sử dụng phương trình (2.2.11), hệ số thứ i của nghiệm được cập nhật theo công thức:

xt(i) =xt−1(i) +γtdt(i)

Giá trị củaxt(i)bằng 0 nếu

γt =−xt−1(i)

dt(i)

Kích thước bước dịch chuyển dương nhỏ nhất là nguyên nhân dẫn đến hệ số thứi

Trong đó miền giá trị nghiệm bài toán chỉ xét trên miền các giá trị dương.

Như vậy, ở mỗi vịng lặp, thuật tốn LARS cải biên để giải bài tốn Lasso cần tính tốn hai giá trị bước dịch chuyển có thể: một bước dịch chuyển để thêm 1 cột vào tập hỗ trợ như phương trình đã cho (2.2.24) và một bước dịch chuyển để loại bỏ một cột ra khỏi tập hỗ trợ được cho bởi phương trình (2.2.34) . Để phân biệt giữa hai giá trị bước dịch chuyển ở đây,γ+ được dùng để gán cho kích thước bước đã được tính bằng (2.2.23), và

γ−được dùng để gán cho kích thước bước đã được tính bằng (2.2.34). Thuật tốn LARS cải biên chọn kích thước bước nhỏ nhất.

γt =mini∈I{γt+, γt−} (2.2.35) Ở đây

γt+=mini∈Ic{λt−ct(i)1−aT

ivt,λt+ct(i) 1+aT

ivt}

γt−=mini∈I{−xt−1(i)dt(i) }

Thuật toán LARS cải biên sử dụng giá trị bước dịch chuyển được tính bởi (2.2.35) thay cho giá trị bước dịch chuyển đã được tính bởi (2.2.24) trong thuật tốn LARS cơ bản. Điều quan trọng, khi cập nhật tập hỗ trợ, nếuγt =γt+cột thứisẽ được thêm vào tập hỗ trợ ở vòng lặp tiếp theot+ 1 như sau:

I =I∪ {i} (2.2.36)

Ngược lại, nếu γt = γt−, cột thứ i sẽ bị loại khỏi tập hỗ trợ ở vòng lặp tiếp theo

t+ 1như sau:

I =I\ {i}

Các bước thực hiện cịn lại tương tự như các bước trong thuật tốn LARS cơ sở. Tuy nhiên, thuật tốn LARS cải biên địi hỏi nhiều vịng lặp hơn LARS cơ sở bởi vì trong thuật tốn LARS cải biên, một số cột được thêm vào hoặc loại bỏ khỏi tập hỗ trợ, trong khi ở thuật toán LARS cơ sở, cột luôn luôn được thêm vào tập hỗ trợ. Độ phức tạp của thuật toán LARS cải biên là0(mnT). Ở đây T là số vịng lặp cần phải có, thơng thường bằng hoặc lớn hơn số phần tử đầu vào khác 0 của vector nghiệmx. Thuật toán LARS cải

biên được coi như 1 thuật toán hiệu quả để giải quyết bài tốn Lasso bởi vì nó địi hỏi độ phức tạp tính tốn ít hơn so với các thuật tốn tối ưu hóa lồi truyền thống.

Input: Vectory ∈ Rm, ma trận A∈ Rm×n, và ngưỡng giới hạn cho số dư

Output: Vector nghiệm thưa x ∈ Rn

Yêu cầu: Xấp xỉ vector y bằng cách sử dụng ít số cột của ma trận Anhất. Các bước của thuật toán bao gồm:

1) Khởi tạo: x0 = 0, r0 = y, I = ∅.

2) Tính vector tương quan: ct = ATrt−1

3)Tính giá trị tuyệt đối lớn nhất trong vector tương quan: λt =k ct k∞

4) Nếu λt = 0 hoặc gần như rất nhỏ, LARS kết thúc và vectorxt

là kết quả trả về cuối cùng. Nếu khơng thì thực hiện các bước sau đây. 5)Tìm tập hỗ trợ I = {j : ct(j) =λt

6) ATI AIdt(I) =sign(ct(I)) Ở đây sign(ct(I)) trả về dấu của hỗ trợ đầu vào của vector ct

7) Đặt đầu vào không hỗ trợ của hướng cập nhật là 0: dt(Ic) = 0 8)Tính tốn kích thước bước:

λt γt = min{γt+, γt−} γt+ = mini∈Ic{λt−ct(i)1−aT

ivt, λt+ct(i)1+aT i vt}

và γt− = mini∈I{−xt−1(i)dt(i) }ở đây vt = AIdt(I) Nếu γt = γt+ thìI = I ∪ {i}

Nếu γt = γt− thìI = I \ {i}

9) Cập nhật vector nghiệm xt = xt−1 +λtdt

10) Tính tốn vector dư mới: rt = y −Axt

11)Nếu k rt k2< kết thúc và trả vềx = xt là nghiệm cần tìm. Ngược lại tăng biến lặp t = t+ 1và quay lại bước 2.

Phần tiếp theo, chúng tơi trình bày định lý chỉ ra mối liên hệ giữa nghiệm của bài tốn Lasso và nghiệm cần tìm của bài tốn biểu diễn thưa trong một số trường hợp.

Một phần của tài liệu (LUẬN văn THẠC sĩ) phương pháp giải bài toán biểu diễn thưa (Trang 50 - 56)