So sánh các bước của hai thuật toán OMP VÀ LARS

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

Từ bảng 8, chúng ta thấy rằng hai thuật tốn này có các bước thuật tốn giống nhau, trừ các bước cập nhật tập hỗ trợ và vector nghiệm. Để tìm ra nhiều điểm chung

hơn giữa OMP và LARS, chúng ta xây dựng lại các bước cập nhật tập hỗ trợ và vector nghiệm trong thuật toán OMP.

3.2 Xây dựng lại bước cập nhật tập hỗ trợ

Một trong những điểm khác biệt giữa OMP và LARS là cách chúng cập nhật tập hỗ trợ. Để so sánh bước cập nhật tập hỗ trợ giữa hai thuật toán, ta xây dựng lại bước trong thuật tốn OMP. Ở mỗi vịng lặp, OMP chọn một cột từ tập khơng hỗ trợ Ic có giá trị tương quan tuyệt đối với số dư hiện tại. Điều này có thể được diễn tả bằng biểu thức:

i=argmax

j∈Ic |ct(j)| (3.2.1) Trong đóilà chỉ số của cột được chọn

Để có thể so sánh được bước cập nhật tập hỗ trợ của OMP với bước tương tự trong thuật tốn LARS, ta chia nhỏ bước tìm kiếm chỉ sốitrong phương trình (3.1.3) thành hai bước: Bước 1: Tính giá trị tuyệt đối lớn nhất của vector tương quanλt =kct k∞

Bước 2: Xác định chỉ số của từng cột từ tập khơng hỗ trợ có giá trị tuyệt đối của vector dư hiện tại bằngλt. Điều này có thể được diễn tả bằng phương trình:

i={j ∈Ic :|ct(j)|=λt} (3.2.2) Sau đó,iđược thêm vào tập hợp hỗ trợ như sau:I =I∪ {i}.

Bảng 9 bao gồm bước cập nhật tập hỗ trợ trong các thuật tốn OMP và LARS ở hai dạng đó là dạng chưa cải tiến và đã cải tiến. Điều đáng chú ý là bước cập nhật tập hỗ trợ giống nhau ở cả hai thuật tốn, nếu ở thuật tốn LARS ln có thêm một cột vào tập hỗ trợ. Do đó thuật tốn LARS cơ sở cập nhật tập hỗ trợ tương tự như thuật tốn OMP vì thuật tốn này thường xun thêm các cột mới vào tập hỗ trợ và không loại bỏ bất kỳ cột nào từ tâp hỗ trợ.

OMP LARS

Cập nhật tập hỗ trợ

i = argmax

i∈Ic | ct(j) | λt =kct k∞

I = I ∪ {i} if(γt−1) =γt−1+ ort = 1// thêm cột

i = {j ∈ Ic :| ct(j) |= λt} I = I ∪ {i} if(γt−1 = γt−1− // loại bỏ cột i = {j ∈ I : xt−1(j) = 0} I = I − {i} Cập nhật tập hợp hỗ trợ (Sau khi chỉnh lại) λt =kct k∞ λt =kct k∞ thêm cột if (γt−1 = γt−1+ ort = 1)// loại bỏ cột i = {j ∈ Ic :| ct(j) |= λt} i = {j ∈ Ic :| ct(j) |= λt} I = I ∪i I = I ∪i if (γt−1 = γt−1− ) // loại bỏ cột i = {j ∈ I : xt−1(j) = 0} I = I − {i}

Bảng 9: Bước cập nhật tập hỗ trợ trong các thuật toán OMP và LARS dạng cải tiến và dạng chưa cải tiến.

3.3 Xây dựng lại bước cập nhật vector nghiệm

Một khác biệt giữa OMP và LARS là bước cập nhật vector nghiệm. Để so sánh chúng một cách rõ ràng, ta xây dựng bước cập nhật vector nghiệm trong OMP để có thể so sánh nó với bước tương ứng trong thuật tốn LASR. Điều này có thể giải thích như sau: GọiI

là tập hỗ trợ ở vòng lặpt, vàI là tập hỗ trợ ở vòng lặpt−1. Giả sử OMP hiện tại ở vòng

lặpt. Các phần tử hỗ trợ của vector nghiệmxđược tính tốn bằng việc giải phương trình (3.1.1)

ATIAIxt(I) = ATIy (3.3.1) Chúng ta có được vector dư tại vịng lặpt−1bằng:

Bởi vì các phần tử hỗ trợ củaxt−1là khác 0, nên chúng ta có thể viết lại (3.1.6) như sau:

rt−1 =y−AIxt−1(I)

y =AIxt−1(I) +rt−1 (3.3.3) Thếytrong (3.1.7) vào phương trình (3.1.5), chúng ta có:

ATIAIxt(I) =ATI(AIxt−1(I) +rt−1)

Rút gọn phương trình này chúng ta có:

ATI(AIxt(I)−AIxt−1(I)) =ATIrt−1

Sử dụng phương trình (3.1.2) để tính các phần tử hỗ trợ của vector tương quanct(I) = ATIrt−1. Ta có:

ATI(AIxt(I)−AIxt−1(I)) = ct(I) (3.3.4) Tại mỗi vịng lặp của OMP, có một cột được thêm vào tập hỗ trợ. Do đó, tập hỗ trợI tại vịng lặpt có một cột khơng nằm trong trong tập hỗ trợI của vịng lặp(t−1)trước đó. Hệ số củaxt−1 tương ứng với cột này bằng khơng. Do đó, ta có:

AIxt−1(I) =AIxt−1 (3.3.5) Thay (3.1.9) vào (3.1.8), ta có phương trình:

ATI(AIxt(I)−AIxt−1(I)) = ct(I)

Hay:

ATIAI(xt(I)−xt−1(I)) =ct(I) (3.3.6) Đến đây, chúng ta xác định vector 4xt ∈ Rn trong đó 4xt(I) = xt(I) − xt−1(I) và

4xt(Ic) = 0Do đó, phương trình (3.1.10) có thể được viết như sau:

ATIAI 4xt(I) =ct(I) (3.3.7) Có thể tìm được phần tử hỗ trợ của vector 4xt bằng cách giải phương trình (3.1.11), trong khi các phần tử còn lại của vector bằng 0 (tức là 4xt(I) = 0). Cơng thức để cập

Do đó, bước cập nhật vector nghiệm được thể hiện bằng phương trình (3.1.1) trong thuật tốn OMP thành hai bước nhỏ:

Bước 1- Tính tốn các tập hỗ trợ của vector4xtrong công thức (3.1.11), và đặt các phần tử cịn lại bằng khơng.

Bước 2 - Cập nhật các vector nghiệmxtrong phương trình (3.1.12).

Ở thuật tốn LARS, vector 4xcó thể được tính bằng cách sử dụng phương trình (2.11) như sau:

4xt =γtdt (3.3.9) Bước cập nhật vector nguyên bản và bước tin chỉnh của nó được liệt kê cho OMP và LARS trong Bảng 10:

Sử dụng các công thức cập nhật ở trên, ta có thể viết lại các bước thuật toán của OMP và LARS như trong Bảng 11 sau:

OMP LARS Cập nhật nghiệm (nguyên thủy) ATIAIxt(I) = ATI y ATI AIdt(I) = sign(ct(I) xt(Ic) = 0 dt(Ic) = 0 vt = AIdt(I) γt+ = min i∈Ic λt −ct(i) 1−aTi vt , λt+ct(i) 1 +aTi vt γt− = min i∈I xt−1(i) dt(i) γt = min{γt+, γt−} xt = xt−1 +γtdt cập nhật nghiệm (Sau khi chỉnh lại) ATI AI 4xt(I) = ct(I) ATIAI 4dt(I) =sign(ct(I)) 4xt(Ic) = 0 dt(Ic) = 0 vt = AIdt(I) γt+ = min i∈I λt −ct(i) 1−aTi vt , λt+ct(i) 1 +aTi vt γt− = min i∈I −xt−1(i) dt(i) xt = xt−1 +4xt xt = xt−1 +4xt

Bảng 10: So sánh bước cập nhật vector nghiệm của OMP và LARS trước và sau khi chỉnh lại cập nhật.

Từ Bảng 11, chúng ta thấy rằng các bước thuật tốn của OMP và LARS hầu như khơng hề khác biệt; sự khác biệt duy nhất là cách chúng cập nhật các tập hỗ trợ và tính tốn vector cập nhật nghiệm (vector4x). Để cập nhật tập hỗ trợ, OMP luôn thêm một

cột vào tập hỗ trợ ở mỗi vòng lặp và cột này sau đó vẫn được giữ nguyên. Mặt khác, ở thuật toán LARS, một cột được thêm vào hoặc xố khỏi tập hỗ trợ ở mỗi vịng lặp. Để tính vector4x, cả OMP và LARS giải bài tốn bình phương tối thiểu được đưa ra trong

phương trình (3.3.7) và (3.3.6). Tuy nhiên, mỗi thuật toán dựa vào các tham số khác nhau để thực hiện điều này. OMP sử dụng các phần tử hoạt động của vector tương quanc, trong

OMP LARS . Khởi tạo x0 = 0, r0 = y, t = 1, x0 = 0, r0 = y, t = 1, I = ∅ I = ∅ . Tính tốn vector ct = ATrt−1 ct = ATrt−1 tương quan λt =kct k∞ λt =k ct k∞ thêm cột if(γt−1 = γt−1+ ort = 1) //thêm cột i = {j ∈ Ic :| ct(j) |= λt} i = {j ∈ Ic :| ct(j) |= λt} I = I ∪ {i} I = I ∪ {i} ifγt−1 = γt−1− // loại bỏ cột i = {j ∈ I : xt−1(j) = 0} I = I − {i} Tính tốn ATI AI 4xt(I) = ct(I) ATI AI 4xt(I) = sign(ct(I)) vector nghiệm cập nhật 4xt(Ic) = 0 dt(Ic) = 0 vt = Atdt(I) γt+ = min i∈I −xt−1(i) dt(i) γt = min{γt+, γt−} 4xt = γtdt Cập nhật nghiệm xt = xt−1 +4xt xt = xt−1 +4xt Tính tốn số dư rt = y −Axt rt = y −Axt Điều kiện dừng k rt k2< krt k2< Tăng biến đếm t = t+ 1 t = t+ 1

(3.3.7). Ngược lại, trong LARS, vector4xđược tính bằng các bước sau:

2. Tính tốn kích thước bướcγ bằng phương trình (3.3.5).

3. Nhânγ vớidđể lấy vector4xnhư thể hiện trong phương trình (3.3.9).

3.4 Phân tích Hiệu suất

Để phân tích hiệu suất của OMP và LARS, chúng ta so sánh hai thuật toán này về các yếu tố thời gian hội tụ và độ chính xác của nghiệm cuối cùng.

3.4.1 Thời gian hội tụ

OMP có thời gian hội tụ đến nghiệm nhanh hơn LARS vì:

1. Nhìn chung, OMP cần một số vịng lặp ít hơn LARS để hội tụ đến nghiệm. Điều này là do OMP luôn thêm cột vào tập hỗ trợ, trong khi LARS thêm vào hoặc bớt cột từ tập hỗ trợ.

2. Ở mỗi vòng lặp, OMP tính tốn vector 4x trong một bước bằng cách giải bài tốn bình phương tối thiểu (3.3.7). Trong khi ở thuật tốn LARS, việc tính tốn vector

4xđịi hỏi rất nhiều bước. Các bước này địi hỏi khối lượng tính tốn nhiều hơn so với giải bài tốn bình phương tối thiểu.

3.4.2 Độ chính xác

Về nghiệm thưa được phục hồi, OMP được xem là kém chính xác hơn LARS khi một số cột của ma trận A có độ tương quan lớn. OMP sử dụng bước đi lớn nhất có thể theo hướng bình phương tối thiểu của các cột hỗ trợ bằng cách giải bài tốn bình phương tối thiểu để cập nhật vector nghiệm x. Kết quả là, vector dư sẽ trực giao với tất cả các

cột hỗ trợ tại vòng lặp tiếp theo. Nói cách khác, vector dư sẽ khơng tương quan với tất cả các cột hỗ trợ. Do đó, các cột có độ tương quan cao với các cột hỗ trợ sẽ có độ tương quan nhỏ với số dư hiện tại. Ở mỗi vịng lặp, OMP chọn một cột có độ tương quan tuyệt đối lớn nhất với số dư hiện tại. Vì vậy, OMP khơng chọn những cột này mặc dù chúng rất quan trọng để phục hồi nghiệm thưa. Mặt khác, LARS khơng gặp phải vấn đề này vì nó sử dụng bước nhỏ hơn so với OMP, và làm các tăng hệ số của vector nghiệm có liên quan tới tập hỗ trợ ở mức nhiều nhất có thể. Vì lý do này, LARS chọn các cột quan trọng

tập hỗ trợ. Để chứng minh điều này, chúng ta xét ví dụ sau:

Ví dụ 4.1: Giả sử ma trận A chứa ba cột(a1, a2, a3), trong đó các cột a1 vàa2 có giá trị tương quan vớiy lớn. Ta tạo ra vector x ∈ R3 với các giá trị đầu tiên và thứ hai của nó khác 0, và giá trị thứ ba là khơng: x=    0.9613 0.2757 0   

Chúng ta có vector đo lường y bằng cách nhân ma trận A với vector x (ví dụ:

y=Ax).

Kết quả là, vectory sẽ là sự kết hợp tuyến tính của các cộta1vàa2.

Hình 11: Các Cột của ma trận Avà vector đo lường y.

Chúng ta sử dụng cả thuật toán OMP và LARS để tìm vectorbxđại diện cho vector

chúng tơi minh họa sự thay đổi tương đối đối với vector y được thực hiện bởi OMP và LARS tại mỗi vòng lặp. Lưu ý rằng sự thay đổi tương đối được tính bằng cách nhân ma trậnAvới vector4xt để cập nhật nghiệm hiện tại.

OMP bắt đầu bằng cách chọn một cột từ ma trậnAcó độ tương quan tuyệt đối tối đa với số dư ban đầu (nghĩa là vectory). Trong ví dụ này, cộta1 được chọn ở vịng lặp đầu tiện bởi vì nó tương quan cao với số dư ban đầu và được thêm vào tập hỗ trợ. Sau đó, OMP sử dụng bước đi lớn nhất có thể theo hướng cộta1 bằng cách chiếu vectory vào cộta1 . Điều này để lại một số sai số có thể thấy được qua vector dưr trực giao với a1. Tại lần

lặp lại thứ hai, cộta2 sẽ ít tương quan với vector dư hơn vì nó có tương quan cao với cột

a1. Trong trường hợp này, cộta3 có độ tương quan tuyệt đối lớn nhất với số dư hiện tại. Vì vậy, cộta3 được chọn và thêm vào tập hỗ trợ. Sau đó, OMP sử dụng bước lớn nhất có thể trong khơng gian được kéo dài bởi các cột (a1, a3) về phía vectory. Sau khi cập nhật

vector nghiệm, số dư sẽ bằng không và OMP kết thúc. Lưu ý rằng cộta2 không bao giờ được chọn ngay cả khi rất cần khôi phục vector ban đầux.

Mặt khác, tương tự như OMP, LARS bắt đầu bằng cách thêm cộta1vào tập hỗ trợ tại vòng lặp đầu tiên. Tuy nhiên, LARS di chuyển theo hướng cộta1 cho đến khi cộta2

có mối tương quan tuyệt đối với số dư hiện tại nhiều nhưa1. Ở vòng lặp thứ hai, LARS

thêm cộta2vào tập hỗ trợ, và di chuyển theo hướng đẳng giác với cả haia1vàa2về phía vectory. Số dư sẽ bằng 0 sau khi cập nhật vector nghiệm. Do đó, LARS chấm dứt ở vịng

lặp thứ hai. Lưu ý rằng LARS chọn cột a2, đây là điều cần thiết để xây dựng lại vector

ban đầux, trong khi điều này là khơng cần thiết ở OMP.

Hình trên cho thấy các hệ số của vector nghiệm x qua các lần lặp của OMP và LARS. Như có thể thấy trong hình, LARS có chuẩn sai số rất nhỏ (gần bằng khơng), trong khi OMP có chuẩn sai số cao. Lưu ý rằng sai số được tính bằng phương trình sau:

error =x−bx (3.4.1)

Trong đóxlà vector thưa ban đầu, vàbxđược xây dựng lại bằng các thuật tốn Do đó, điều này chỉ ra rằng LARS có thể tái tạo lại vector thưa thớtxkhi hai cột hoặc nhiều hơn của ma trận A có mối tương quan cao, trong khi OMP không thể làm được điều này. Tuy nhiên, LARS chậm hơn OMP.

Hình 12: Các bước lựa chọn và cập nhật ở vòng lặp đầu tiên của OMP và LARS. Sự thay đổi tương đối thu được bằng cách nhân ma trận A với vector cập nhật nghiệm hiện tại

Hình 13: Các bước lựa chọn và cập nhật ở vòng lặp thứ hai (cuối cùng) của OMP và LARS. Sự thay đổi tương đối thu được bằng cách nhân ma trận A với vector cập nhật nghiệm hiện tại

Hình 14: Hệ số nghiệm của vector được xây dựng lại trên các vòng lặp của OMP và LARS, và chuẩn sai số của Euclide giữa vectorxvà vector xây dựng lại sau khi các thuật toán chấm dứt

3.5 Mối liên hệ giữa kích thước ma trận độ đo và độ thưa dựa trêntrung bình bình phương sai số trung bình bình phương sai số

Chúng ta đánh giá hiệu suất của cả hai thuật toán OMP và LARS cải biên về trung bình bình phương sai số (MSE) theo kích thước đon. Ta xét hệ phương trình tuyến

tính dưới xác định có kích thước độ đon và độ thưak. Giá trị n cố định là 256. Ta tạo ngẫu nhiên ma trận Avới kích thước n×256, các cột của Ađược chuẩn hóa theo chuẩn

`2. Chúng ta tạo vectorx∈R256cók phần tử khác 0 ở các vị trí ngẫu nhiên, các phần tử khác 0 của vectorxđược tạo sử dụng phân bố Gausian, tất cả các phần tử khác được đặt bằng 0, các vectorxcũng được chuẩn hóa. Ta nhân ma trậnA với vecorxđể tính vector

y:

y=A×x (3.5.1) Sau đó chúng ta sử dụng hai thuật tốn OMP và LARS để tái tạo nghiệm thưa ban đầu của phương trình (3.1). Ta tính tốn MSE giữa vector thưa ban đầu và vector tái tạo như sau: M SE = 1 m m X j=1 (x(j)−bx(j))2 (3.5.2)

Vớibxlà vector thưa tái tạo lại theo thuật toán Kết quả được mơ tả bởi hình sau:

Giá trị trung bình của MSE sau 100 lần thử nghiệm được minh họa dưới dạng một hàm của n với các giá trị khác nhau của k(k = 30,50,70). Với mỗi giá trị của k, chúng

ta quan sát cả hai thuật toán OMP và LARS cải biên, cả hai ta đều thấy MSE trung bình giảm khi giá trị củantăng lên, cho đến khi đạt tới một giá trị rất nhỏ với giá trị cụ thển,

với giá trị trung bình MSE nhỏ như vậy thì thuật tốn tái tạo lại thành cơng vector thưa ban đầu.

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