Thuật toán Orthogonal Matching Pursuit (OMP)[2]

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 26 - 30)

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

2.1.2 Thuật toán Orthogonal Matching Pursuit (OMP)[2]

Thuật toán toán OMP

Trong thực tế, thuật tốn MP khơng được áp dụng nhiều, bởi vì độ phức tạp của thuật toán tăng lên tương ứng với số lần lặp để đạt được kết quả cuối cùng. Để khắc phục được hạn chế của MP, cần phải có bước cải tiến đó là hạn chế số lần lặp bằng cách thêm vào một bước trực giao hóa. Thuật tốn MP cải tiến gọi là thuật toán OMP (Orthogonal Matching Pursuit). Thuật toán OMP kế thừa nhiều bước của thuật toán MP. Trong OMP bước cải tiến chính là tại mỗi bước lặp xấp xỉ củayđược tính bằng cách chiếu trực giao

y lên tập các vector cột được chọn bằng cách giải bài tốn bình phương tối thiểu để đạt một xấp xỉ tốt nhất có thể củaydựa trên các cột đã chọn. Tại bướckthuật toán OMP giữ các chỉ số của các cột đã chọn trong một tập được gọi là tập hỗ trợ Sk và các cột được chọn gọi là các cột hỗ trợ.

OMP giống MP ở chỗ là bắt đầu từ một nghiệm hoàn toàn bằng 0, và khởi tạo số dư bằng vectory. Tại mỗi lần lặp, OMP chọn một cột từ ma trậnAcó độ tương quan tốt nhất với vector dưr. Sau đó, OMP gắn chỉ số của cột đã chọn vào tập hỗ trợ Sk. Bước tiếp theo là tìm các phần tử khác 0 (các phần tử tương ứng với tập hỗ trợSk) của vector nghiệmxbằng cách giải bài tốn bình phương tối thiểu trên các cột hỗ trợ và tính sai số của vector dư hiện tại Các bước này được lặp lại cho đến khi sai số của vector dư hiện tại nhỏ hơn một hằng sốεcho trước. Khi OMP kết thúc, vector y được sinh bởi tập các cột hỗ trợ. Điều quan trọng, tại mỗi bước lặp, thuật tốn OMP ln đảm bảo vector dưrtrực giao với tất cả các cột hỗ trợ. Do đó trong OMP, khơng có cột được chọn hai lần.

Tham số đầu vào: Cho một ma trận A, vector y, sai sốε0

Tham số đầu ra: Nghiệm xấp xỉ thưa của bài toán P0

1. Khởi tạo: k = 0 Thiết đặt:

- Khởi tạo nghiệm x0 = 0

- Khởi tạo số dư r0 = y −Ax0 = y

- Khởi tạo nghiệm hỗ trợ S0 = Support{x0}= ∅

2. Lặp chính: tăng k lên 1 và thực hiện các bước sau:

Quét: Tính lỗi (j) = minzj kajzj −rk−1 k22 với tất cả j sử dụng lựa chọn tối ưu

z∗ = a T j rk−1 k aj k2 2 - Cập nhật hỗ trợ: Tìm giá trị nhỏ nhất j0 của ε(j) : ∀j 6= Sk−1, ε(j0) ≤ε(j) và cập nhật Sk = Sk−1 ∪ {j0}

- Cập nhật nghiệm tạm thời: Đặt xk giá trị nhỏ nhất của

k Ax−y k22 phụ thuộc vào Support{x} = Sk

- Cập nhật số dư: tính tốn rk = y −Axk

3. Dừng:nếu k rk k2< ε0 ngược lại quay lại bước 2

4. Kết quả: Nghiệm có được làxk sau khi thực hiệnk lần lặp

Chú ý: (j) = minzj kajzj−rk−1 k22 =k a T jrk−1 kaj k22aj−r k−1k22 =krk−1k22 −2(a T jrk−1)2 kaj k2 2 +(a T jrk−1)2 kaj k2 2 =krk−1k22 −(a T jrk−1)2 kaj k2 2 (2.1.4)

Tìm sai số nhỏ nhấtε(i)tương đương với tìm giá trị nhỏ nhất của các tích vơ hướng giữa số dưrk−1và các vector chuẩn hóa của ma trậnA.

Trong bước cập nhật nghiệm tạm thời, ta cực tiểu hóa số hạngkAx−yk2

2 đối với biến xtrên tập hỗ trợ Sk. Chúng ta ký hiệu ASk là ma trận với kích thướcn× |Sk |bao gồm các cột từ ma trậnAcó chỉ số thuộc tập hỗ trợ này. Khi đó bài tốn trở thành tìm giá trị nhỏ nhấtk ASkxSk −y k2

2 trong đóxSk là một vector thành phần khác 0 của vectorx.

Nghiệm của bài tốn là nghiệm của phương trình

ATSk(ASkxSk −y) = ASkxSkrk = 0 (2.1.5) Cơng thức tính số dư ở lần lặp thứklà

rk =y−Axk =y−ASkxSk

Công thức trên cho thấy các cột trongAlà một phần tử của tập hỗ trợSk trực giao với số dưrk còn lại, như vậy trong lần lặp tiếp theo các cột này sẽ khơng được chọn lại nữa.

Ví dụ minh họa

Cho Ma trậnA = [a1, a2, ..., an] với ai ∈ Rm. Khơng mất tính tổng qt ta giả sử vector y là tổ hợp tuyến tính của hai cột a1, a2 với các hệ số nghiệm (x1, x2) như sau:

y =x1a1+x2a2. Thuật toán OMP bắt đầu bằng cách xác định cột có giá trị tương quan

cao với số dư hiện tại lớn nhất. Tại bước lặp đầu tiên, vector dư được khởi tạo bằng vector

y. Giả sử giá trị tương quan của vector y với vector a1 lớn hơn giá trị tương quan của vectory với vectora2. Vì vậy, thuật toán OMP sẽ chọn vector a1 trong lần lặp đầu tiên. Sau đó, thuật tốn OMP dịch chuyển một bước lớn nhất có thể theo hướng của vectora1,

x1(1) (đường đậm màu đỏ trong hình 1). Sau đó, vector dư được ký hiệu làr1. Vector dư r1 trực giao với vectora1 có chỉ số đại diện cho tập hỗ trợSk. Tại lần lặp thứ 2, một cột mới được lựa chọn, có giá trị tương quan vớir1. Bây giờ a2 được chọn và chỉ số của nó được thêm vào tập hỗ trợSk. Tiếp theo, vector yđược chiếu lên không gian sinh bởi các cộta1 và a2 để có được các hệ số nghiệm hiện tạix2(1) vàx1(2) (đường màu xanh đậm trong hình 1). Sau lần lặp thứ 2, vector dư được ký hiệu làr2 = 0do vectorythuộc khơng gian sinh bởi các vectora1 vàa2. Khi đó, thuật tốn OMP kết thúc và trả về vectorx2 là nghiệm cuối cùng.

Đường đậm màu đỏ đại diện cho xấp xỉ với vector y tại lần lặp đầu tiên; còn đường kẻ đậm màu xanh tượng trưng cho xấp xỉ ở lần lặp lại thứ hai.

Hình 1: Ví dụ minh họa thuật tốn OMP

Cho H là một không gian Hilbert, A là một ma trận có các vector cột thứ j là aj ∈ H

được chuẩn hóa (thoả mãn (k aj k2= 1, j ∈ {1,2, ..., m}), ký hiệu V là không gian sinh của các vector cột của ma trậnA. Chúng ta nói rằng ma trậnAlà một từ điển đầy đủ nếu và chỉ nếuV =H,W là phần bù trực giao củaV trongH. Các phép chiếu trực giao lên V vàW tương ứng được ký hiệu là nhưPV vàPw, khi đó chúng ta có định lý sau về sự

hội tụ của thuật tốn OMP:

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 26 - 30)