Thuật toán ORTHOGONAL MATCHING PURSUIT (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 - 31)

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:

a) Vector dưrk của thuật toán OMP thỏa mãn:

limk−→+∞ krk−Pwyk= 0 (2.1.6)

b) Xấp xỉ tại bước thứk của vectoryđược ký hiệuybk và được xác định như sau:

b

yk =PVyvới k=0,1,2,...

Đối với thuật toán OMP, với mỗi vector y và ma trận A có một xác suất cao để phục hồi một tín hiệuk thưa (chỉ bao gồmk các phần tử khác 0) sử dụng tối đa k bước lặp. Do đó sự phức tạp tính tốn của OMP sẽ làO(mnk). Vì vậy, thuật tốn OMP là một

thuật tốn hiệu quả để tìm ra một nghiệm thưa của một phương trình tuyến tính dưới xác định khi độ thưaklà tương đối nhỏ.

2.1.3 Các phương pháp giải phương trình đại số tuyến tính trong thuậttốn OMP tốn OMP

Tìm hướng trong thuật tốn OMP dựa trên phân tích QR

Trong thuật tốn OMP, một cột được chọn và thêm vào tập hỗ trợ chỉ một lần, còn thuật tốn MP một cột có thể được chọn nhiều lần trong q trình tính tốn. Vì vậy, thuật tốn MP u cầu số lần lặp nhiều hơn thuật tốn OMP để hội tụ và tìm nghiệm cuối cùng. Tuy nhiên, mỗi bước lặp của thuật tốn OMP địi hỏi chi phí tính tốn cao hơn so với mỗi bước lặp của thuật toán MP.

Hiện tại, thuật toán OMP thực hiện hiệu quả nhất dựa trên phân tích QR. Trong q trình thực hiện phân tích QR, ma trậnASk được phân tích như sau:

ASk =QSkRSk (2.1.7) Trong đóQSk ∈Rn×mlà một ma trận unitary vàRSk là một ma trận tam giác trên. Phương trình (2.1.6) trở thành:

ATSkASkxSk = (QSkRSk)TQSkRSkxSk =ATSky (2.1.8) và xấp xỉ thứk củay

b

ySk =ASkySk =QSkRSkySk (2.1.9) Nếu chúng ta đặt zSk = RSkySk thì việc thực hiện thuật tốn OMP rất hiệu quả khơng cần phải tính tốnx trong mỗi lần lặp. Khi đó thuật tốn trở thành:

1. Khởi tạo: r0 = y, z0 = 0, S0 = ∅, k = 1

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

a. Quét: Tính tập sai số cực tiểu (j) = minzjk ajzj −rk−1 k22 với tất cảj sử dụng lựa chọn tối ưu zj∗ = a

T j rk−1 k aj k2 2 b. Cập nhật hỗ trợ: tìm giá trị nhỏ nhất, j0 của ε(j):∀j 6= Sk−1 và ε(j0) ≤ ε(j) cập nhât Sk = Sk−1∪ {j0} c. Cập nhật QSk vàRSk sao choASk = QSkRSk,QTSk = QSk = I vàRSk là ma trận tam giác trên.

d. Tính nghiệm tạm thời zSk = [zSk−1;zk] e. Cập nhật số dư: tính tốn rk = rk−1 = zkq

3. Dừng: Nếu k rk k2< ε0 khi đó xSk = (RSk)−1zSk ngược lại quay về bước 2 4.Đầu ra nghiệm xk

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 - 31)

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

(77 trang)