Thuật toán OMP dựa trên phân tích QR

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

Có một số thủ thuật tính tốn quan trọng được sử dụng khi thực hiện các thuật tốn trên. Phân tích QR trong bước (2c) có thể được giải quyết bằng cách sử dụng phương pháp Modified Gram-Schmidt. Trong bước lặp thứ k cả QSk và RSk được cập nhật sử dụng công thức RSk = " RSk−1 w 0 kq k2 # Và: QSk = [QSk−1;q] (2.1.10) Trong đó w=QTSk−1aj0 q= √ aj0−w kaj0k2−kwk2

Cuối cùng có thể tính đượcxSk bằng phép thế ngược.

Với việc tìm kiếm, cập nhật hệ số QR trong mỗi lần lặp có độ phức tạpO(M+N k)

và mất O(MN) để cập nhật số dư. Do phương pháp này khơng tính tốnytrong mỗi lần lặp, nên y phải được tính tốn sau khi thuật toán đã được dừng lại bằng cách sử dụng phương án thay thế ngược, với độ phức tạp O(k2). Theo cách này, tổng phức tạp của

OMP trong k lần lặp là O(M N +N k) trong quá trình thực hiện OMP khơng tính tốn nghiệm hoặc số dư trong quá trình phân hủy. u cầu bộ nhớ của nó làO(M N+N k+k2)

vì nó khơng cần lưu trữ các Gram.

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

Bây giờ, chúng ta thực hiện trong thuật tốn OMP dựa trên phân tích Cholesky. Ma trận con GramATSkASk được phân tích như sau:

ATSkASk =LSkLTSk (2.1.11) Trong đóLSk ∈Rm×n là một ma trận tam giác dưới.

Phương trình (2.1.5) trở thành:

ATSkASkxSk =LSkLTSkxSk =ATSky (2.1.12) Khi đó thuật tốn trở thành:

1. Khởi tạo: r0 = y, x0 = 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) = minzj k ajzj −rk−1 k22

với tất cả j sử dụng lựa chọn tối ưu zj∗ = a

T jrk−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 LSk sao cho ATSkASk = LSkLTSk, vàLSk là ma trận tam giác dưới. d. Tính nghiệm tạm thời xSk = (ATSkASk)−1ATSky

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

3. Dừng: Nếu k rk k2< ε0 khi đó xSk = (ATSkASk)−1ATSky ngược lại quay về bước 2

4. Đầu ra nghiệm xkS

Có một số thủ thuật tính tốn quan trọng được sử dụng khi thực hiện các thuật tốn trên. Ta có: LSkLTSk =ATSkASk = " ATSk−1ASk−1 ATSk−1aj0 aj0ASk−1 kaj0 k2 # = " LSk−1 0 νT b # " LTSk ν 0 b∗ #

Trong đó: k ν k2 + k b k2=k aj0 k2. Đầu tiên cần giải ν trong hệ tam giác

LSk−1ν = ATSkaj0, sau đó cập nhật hệ số Cholesky trong bước (2c) bằng cách thêm một hàng và cột. LSk = " LSk−1 0 νT pkaj0 k2 − kνk2 #

Do đó, để xác đinh nghiệm tạm thời xSk trong (2d) chúng ta chỉ cần giải hai hệ phương trình đại số tuyến tính với ma trận tam giác bằng phép thế ngược.

LSkZ =ATSky

Và:LTSkxSk =z

Việc giải một hệ tam giác có kích thướck có độ phức tạpO(k2), độ phức tạp của

việc tìm kiếm và cập nhật ma trận tam giác làO(M +k2+k). Cập nhật hệ số Cholesky

với độ phức tạp O(k2), cập nhật số dư và dự báo với độ phức tạp lần lượt là O(Nk) và

O(NM). Vậy tổng độ phức tạp của lần lặpk là O(N M +k2+N k). Yêu cầu bộ nhớ của

nó làO(M2+M N +N k+k+k2).

Bây giờ, chúng ta đi đánh giá độ phức tạp của hai phương pháp giải hệ đại số tuyến tính trong thuật tốn OMP. Chi phí thực hiện của tht tốn OMP dựa trên phân tích QR và Cholesky được tóm tắt trong bảng sau:

Đối với các ma trận từ điển chưa có cấu trúc và nếu N là đủ nhỏ, cách tiếp cận dựa trên phân tích QR có thời gian nhanh hơn cách tiếp cận dựa trên phân tích Cholesky, tuy nhiên đối với những bài toán lớn hơn, yêu cầu về bộ nhớ trở nên quá lớn và phải áp

Thuật toán Độ phức tạp Yêu cầu bộ nhớ

OMP QR O(N M + N k) O(M N +N k +k2)

OMP Cholesky O(N M +k2 +N k O(M2+ M N +k +k2)

Bảng 5: Đánh giá độ phức tạp của OMP dựa trên phân tích QR và Cholesky.

Phương pháp tiếp cận dựa trên phân tích Cholesky cần bộ nhớ ít hơn nhiều so với phương pháp dựa trên phân tích QR, nhưng nó địi hỏi hai phép nhân vector từ điển bổ sung, mà cho các từ điển khơng có cấu trúc có thể tốn kém. Tuy nhiên cách tiếp cận phân tích Cholesky có thể nhanh hơn nếu sử dụng từ điển có cấu trúc và số lượng các phần tử khác không là nhỏ, trong khi phương pháp dựa trên phân số QR nhanh hơn với các từ điển khơng có cấu trúc có số lượng lớn các phần tử khác 0.

2.1.4 Một số kết quả thực nghiệm

Sử dụng thuật tốn OMP trong bài tốn khơi phục tín hiệu ( tái tạo hình ảnh)

Để chứng minh hiệu quả của OMP, chúng ta tái tạo lại hình ảnh của một ảnh đa cấp xám từ các mẫu nén của chúng bằng cách sử dụng thuật toán OMP. Chúng ta sử dụng bức ảnh có kích thước(256×256)điểm ảnh (pixel) . Đầu tiên, chúng ta chia mỗi bức ảnh thành 1024 miếng vá, mỗi miếng vá có kích thước(8×8)điểm ảnh. Chúng ta tạo lại hình dáng mỗi miếng vá thành một vector có kích thước (64×1)như thể hiện trong hình 2. Mỗi vector được chuẩn hóa thơng qua việc chia phần tử của nó bằng giá trị lớn nhất tìm thấy trong hình 2.

Ma trậnAcó kích thướcn×mthu được bằng cách nhân hai ma trận: ma trận ngẫu nhiênφcó kích thướcn×mvà ma trận chuyển đổiψ có kích thướcn×m:

An×m =φn×m×ψn×m (2.1.13) Trong ví dụ thực nghiệm này chọnn = 32, m= 64. Ma trận ngẫu nhiênφđược tái tạo bằng cách sử dụng phân phối Gausisian, ma trận chuyển đổiψ được tái tạo bằng cách sử dụng biến đổi Cosine rời rạc (DCT)

Để có được vectory, ma trận ngẫu nhiênφ được nhân với mỗi miếng vá của bức ảnh:

Hình 2: Tái tạo lại một bản vá của một hình ảnh từ các mẫu nén của nó bằng cách sử dụng OMP

Vớipiđại diện cho miếng vá thứi, vài= 1,2, ...,1024.

Bây giờ, phương trình tuyến tính dưới xác định được biểu diễn như sau:

A×xi=yi (2.1.15) Trong đóxilà biểu diễn thưa của miếng vápiĐể có đượcxivới mỗii, chúng ta sử

dụng thuật tốn OMP với mỗi hệ phương trình (2.18) như trong hình 1. Sau đó, ma trận chuyển đổiψ được nhân vớixiđể nhận được miếng vá tái tạobpi:

b

pi=ψ×xi (2.1.16) Sau khi khơi phục lại tất cả các miếng vá, chúng ta tạo lại hình ảnh thu hồi được. Hình 2 cho thấy các hình ảnh tương ứng thu được.

Hình 3: Hình ảnh thu được sau khi khơi phục miếng vá

Sau đó, chúng ta tính tốn sai số bình phương trung bình (MSE) giữa miếng vá gốc và miếng vá tái tạo theo công thức:

M SEi= 1 64 64 X j=1 (pi(j)−pbi(j))2 (2.1.17)

Sau khi tính tốn sai số MSE cho tất cả 1024 miếng vá, chúng tơi tính sai số trung bình: M SE = 1 1024 1024 X M SEi (2.1.18)

Hiệu suất của thuật toán phụ thuộc vào giá trị của Peak Signal to Noise Ratio (PSNR) được tính bằng: P SN R= 10 log (M AX(x) M SE ) 10 (2.1.19)

Trong đó M AX(x) là phần tử lớn nhất có thể trong các miếng vá. Trong trường hợp nàyM AX(x) = 1vì các miếng vá của bức ảnh được chuẩn hóa.

Nếu một thuật tốn có PSNR cao, có nghĩa rằng nó có thể tái tạo thành cơng hình ảnh ban đầu với sai số nhỏ. Theo ví dụ trên. Ta tính đượcM SE= 0.0153

VàP SN R= 10 log 1 0.0153

10 = 18.1514

So sánh thời gian thực hiện thuật tốn OMP với phân tích QR và phân tích Cholesky

Bài tốn:

Tạo ma trận ngẫu nhiênA ∈R256×1024 bằng phép biến đổi Fourier rời rạc, vector

x ∈ R1024 có k = 50 các phần tử nhận giá trị khác 0 ở các vị trí ngẫu nhiên và các giá trị được sinh lần lượt theo các phân bố chuẩn..., các phần tử còn lại được đặt giá trị là 0. Chúng ta nhân ma trậnA với vectorxđể tính vector y∈ R256. Bài tốn khơi phục tín hiệu đặt ra như sau:

Input: Cho ma trậnA, vectory

Output: Khơi phục tín hiệu thưax∈R1024ban đầu

Chúng ta sử dụng thuật tốn OMP với phân tích QR và Cholesky cho bài tốn khơi phục tín hiệu với bộ dữ liệu trên, chúng ta thu được một số kết quả sau:Thời gian thực hiện của thuật tốn OMP với phân tích QR Với bộ dữ liệu trên ta khôi phục được tín hiệux ban đầu với sai số trung bìnhM SE = 0.0404và tổng thời gian thực hiện hếtT ime= 0.5543

Kết quả chi tiết xem trong hình sau:

Hình 4: Khơi phục tín hiệu dựa trên phân tích QR với giá trị của phần tử khác0 được sinh theo phân bố chuẩn 0 được sinh theo phân bố chuẩn

Thời gian thực hiện của thuật tốn OMP với phân tích Cholesky

Chúng ta dùng thuật tốn OMP dựa trên phân tích Cholesky, khơi phục được tín hiệu x ban đầu với sai số trung bình M SE = 0.0404, tổng thời gian thực hiện:T ime = 1.0217. Kết quả chi tiết mơ tả trong hình 5.

Hình 5: Khơi phục tín hiệu dựa trên phân tích Cholesky với giá trị của phần tử khác 0 được sinh theo phân bố chuẩn

Nhận xét:Để nhận được tín hiệu khơi phục x với cùng trung bình bình phương sai số, thời gian thực hiên thuật tốn OMP với phân tích QR nhanh hơn so với với phân tích Cholesky.

Sau đây là một số kết quả của thuật tốn OMP khơi phục tín hiệu dựa trên phân tích QR và Cholesky sinh bởi một số hàm.

Hình 6: Các phần tử khác 0 sinh theo phân phối chuẩn.

Hình 8: Các phần tử khác 0 sinh theo hàm dấu.

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

Trước khi, trình bày về thuật tốn LARS cải biên chúng ta trình bày chi tiết về thuật tốn LARS cơ bản

2.2.1 Thuật toán LARS cơ bản.

LARS cơ bản được đề xuất bởi Efron, Hastie, Johnstone và Tibshirani như một mơ hình thuật tốn chọn để giải hệ tuyến tính dưới xác định. Ý tưởng cơ bản của thuật toán như sau:

LARS cơ bản khởi tạo vector nghiệm với tất cả các phần tử bằng 0, vector dư r

bằng vector đo lườngy, và thiết lập tập hỗ trợI là tập rỗng, tại mỗi lần lặp một cột mới được chọn từ ma trậnA, và chỉ số của nó được thêm vào tập hỗ trợ. Tại bước lặp đầu tiên,

LARS cơ bản chọn 1 cột gọiaj, có độ tương quan chặt chẽ với vector dư hiện tại r theo nghĩa vector dưrtạo với vector cộtajmột góc nhỏ hơn các góc được tạo bởirvà các cột khác của ma trậnA.

Sau đó, LARS cơ bản tăng hệ sốx(j)liên kết với cột được chọnaj theo cách phù hợp. Điều này dẫn đến giá trị tương quan tuyệt đối củaaj với số dư hiện tại giảm đi khi

x(j)tăng. LARS cơ bản di chuyển những bước đi nhỏ nhất có thể theo hướngaj cho tới khi xuất hiện một vector cột mới, gọi làak, có giá tương quan tuyệt đối với vector dư hiên

đẳng giác với các cột được chọn(aj, ak) cho tới khi cột thứ 3, gọi làam có giá trị tương quan tuyệt đối với số dư hiện tại nhiều nhưajvàak. Điều này được duy trì để thêm 1 cột cho tới khi khơng cịn cột nào tương quan với vector dư hiện tại. Thuật tốn ln chọn hướng cập nhật tạo với các vector cột có chỉ số trong tập hỗ trợ các góc bằng nhau và nhỏ nhất.

Để minh họa quá trình thực hiện của thuật tốn LARS, chúng ta xét ví dụ sau: Ví dụ 2.1:

Thuật tốn LARS cơ bản khởi tạo vector nghiệm là vector 0 và vector dư ban đầu là vector đo lường y. Như minh họa trong hình 9, thuật tốn LARS cơ bản chọn cột a1

trước tiên bởi vì sự tương quan tuyệt đối giữaa1với vector dư ban đầu (vectory) nhỏ hơn a2(θ1(1) < θ1(2)) ở đâyθt(i)là góc tạo bởi cột ai và số dư hiện tại r tại mỗi vịng lặp t.

Sau đó, thuật tốn LARS cơ bản dịch chuyển theo hướng củaa1 với kích thước bướcγ1,

được chọn thích hợp sao cho a1 và a2 có cùng tương quan tuyệt đối với vector dư hiện tại trong vịng lặp tiếp theo (ví dụθ1(1) = θ1(2)). Khi đó vector nghiệm được cập nhật

và hệ số nghiệmx1(1) = γ1. Ở vịng lặp thứ 2, thuật tốn LARS cơ bản thêm cột thứ 2

vào tập hỗ trợ và tiếp tục di chuyển theo hướng đẳng giác với các cộta1 vàa2. Tại bước

này, thuật toán LARS cơ bản di chuyển với kích thước bước điγ2sinh ra vector y. Thuật

tốn LARS cơ bản kết thúc bởi vì vector dư cịn lại là 0 và các hệ số của nghiệm cần tìm tương ứng vớix2(1) =γ1+γ2d2(1) vàx2(2) =γ2d2(2), ở đây d2 là hướng cập nhật lại ở vòng lặp thứ 2 đẳng giác với các cột hỗ trợ (a1, a2).

Như vậy, thuật toán LARS có hai tham số quan trọng phải được tính toán là vector hướng cập nhật d đẳng giác với các cột hỗ trợ, và kích thước bước dịch chuyểnγ thích hợp là đại lượng vô hướng được nhân với hướng cập nhậtdđể cập nhật vector nghiệmx.

Hình ảnh mơ tả các bước thực hiện của thuật tốn LARS cho ví dụ 2.1

Hình 9: Q trình thực hiện của thuật tốn LARS

Phần tiếp theo sẽ trình bày chi tiết về cách tìm hướng cập nhật và bước dịch chuyển

a. Cách tìm hướng cập nhật

Trong phần này chúng ta sẽ trình bày chi tiết về cách tìm hướng cập nhật đẳng giác với các cột hỗ trợ:

Hướng cập nhật cần tạo với các cột hỗ trợ các góc bằng nhau theo hướng của vector dư r. Chúng ta thực hiện quá trình tìm hướng cập nhật dt ∈ Rn ở vòng lặp thứ t

bằng cách chiếu vector dưr(t−1) lên trên không gian sinh của các vector cột hỗ trợ. Điều này được thực hiện bằng cách giải phương trình chuẩn tắc sau:

Đặt ct = ATIrt−1 khi đó các cột hỗ trợ có vector tương quan được xác định như sau:

ct(I) =ATIrt−1 (2.2.2) Thế (2.2.2) vào (2.2.1) :

ATIAIx=ct(I) (2.2.3)

Ở mỗi vịng lặp của thuật tốn LARS, các cột hỗ trợ có cùng một giá trị tương quan tuyệt đối với vector dư. Giá trị tương quan tuyệt đối này được biểu diễn bằng thơng sốλt. Do đó, chúng ta có thể phân tíchct(I)như sau:

ct(I) =λtsign(ct(I)) (2.2.4) Bằng cách sử dụng phương trình (2.2.4), phương trình (2.2.3) có thể được viết lại như sau:

ATIAIx=λtsign(ct(I)) (2.2.5)

λt là 1 số vơ hướng, chia cả hai vế của phương trình (2.2.5) cho giá trịλt dẫn đến:

ATIAIdt =sign(ct(I)) (2.2.6) Ở đâydt(I) = x/λt là một vector thành phần của vector hướng cập nhậtdt tương ứng, chỉ giữ lại các thành phần tương ứng của tập hỗ trợ I. Mục đích của giải phương trình (2.2.6) là tính các phần tử của vector thành phầndt(I)đảm bảo giá trị tương quan tuyệt đối của cột hỗ trợ sau mỗi bước lặp được giảm một lượng như nhau. LARS thiết lập các phần tử còn lại của vector hướng cập nhật không thuộc trong tập hỗ trợ bằng 0

(dt(Ic) = 0).

b. Tính tốn kích thước bước đi

Ở mỗi vịng lặp, thuật tốn LARS tính tốn kích cỡ bước đi γ thích hợp để cập nhật hệ số của nghiệm tương ứng với tập hỗ trợ cho phép chọn ra một cột từ tập không hỗ trợ kết hợp vào tập hỗ trợ trong vòng lặp tiếp theo. Điều này có thể được thực hiện được bằng cách làm cho các cột hỗ trợ và cột được chọn có cùng giá trị tương quan tuyệt đối với vector dư hiện tại.

Nguồn gốc của biểu thức hình thái đóng (closed-form) để tính kích thước bước đi

đủ, cặn kẽ, tỉ mỉ nguồn gốc của biểu thức hình thái đóng. Giả sử thuật tốn LARS đang thực hiện tại bước lặp thứt và chúng ta cần tính kích cỡ bướcλt phù hợp. Vector dư tại

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