Regularyzacja Tichonowa

Z testwiki
Wersja z dnia 20:25, 29 sty 2024 autorstwa imported>SiabaLaba (growthexperiments-addlink-summary-summary:3|0|0)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania

Regularyzacja Tichonowa – metoda regularyzacji zagadnień nie postawionych poprawnie opracowana niezależnie przez Andrieja Tichonowa[1] i Davida Phillipsa[2], jednak nazwana od nazwiska rosyjskiego matematyka.

Regularyzacja za pomocą parametru regularyzacyjnego

Rozważmy układ równań typu:

A𝐱=𝐛,

gdzie A to macierz układu (macierz przekształcenia), 𝐱 wektor niewiadomych, 𝐛 wektor wyjściowy. Jeśli zagadnienie to jest źle postawione (np. rozwiązanie nie istnieje, lub jest niejednoznaczne) wtedy standardowym podejściem jest rozwiązanie w sensie najmniejszych kwadratów. Oznacza to poszukiwanie minimum następującego funkcjonału Π[3]:

Π={A𝐱𝐛}T{A𝐱𝐛}.

Aby poprawić właściwości funkcjonału Π (np. żeby wyeliminować niefizyczne oscylacje w rozwiązaniu) do powyższej postaci dodaje się człon regularyzacyjny α𝐱T𝐱:

Π={A𝐱𝐛}T{A𝐱𝐛}+α𝐱T𝐱.

Wyrażenie 𝐱T𝐱 to kwadrat długości wektora 𝐱, zaś α to parametr regularyzacyjny zwany również współczynnikiem tłumienia.

Szukanie minimum funkcjonału Π oznacza rozwiązanie równania:

Πx=0,

co daje:

2AT{𝐛A𝐱}+2α𝐱=0

i po przekształceniu:

AT𝐛=[ATA+α𝐈]𝐱,

gdzie 𝐈 to macierz jednostkowa.

Macierz stojąca po prawej stronie powyższego równania jest macierzą symetryczną, ponadto dzięki obecności członu α𝐈 jest również odwracalna. Poza tym parametr regularyzacyjny wpływa na określoność macierzy i poprawia jej uwarunkowanie. W związku z tym rozwiązanie wyjściowego równania może być wyznaczone za pomocą:

𝐱=[ATA+α𝐈]1AT𝐛.

Dobór parametru regularyzacyjnego może być wykonany za pomocą tzw. metody L-curve[4].

Regularyzacja za pomocą macierzy regularyzacji

Jeśli dana jest informacja a priori na temat wektora niewiadomych 𝐱 może ona zostać uwzględniona w funkcjonale Π w następujący sposób:

Π={A𝐱𝐛}T{A𝐱𝐛}+α[R𝐱]T[R𝐱],

gdzie R to macierz regularyzacji oraz α kontroluje stopień regularyzacji.

Pochodna funkcjonału Π względem wektora 𝐱 wynosi:

Πx=2AT{𝐛A𝐱}+2αRTR𝐱.

Co daje:

AT𝐛=[ATA+αRTR]𝐱.

Ponownie macierz stojąca po prawej stronie jest symetryczna i w większości przypadków odwaracalna. Postać macierzy regularyzacji zależy od rodzaju informacji, który jest wprowadzany do zagadnienia. Na przykład jeśli rozwiązaniem zagadnienia powinny być w przybliżeniu stałe wartości i-ty wiersz macierzy R powinien wynosić:

ri=[0,,0,1i1,1i,0,,0].

Inne przykłady sformułowania macierzy R w zależności od informacji, która ma być w niej zawarta można odnaleźć w literaturze[3].

Przykład

Przykład zastosowania regularyzacji Tichonowa. Szczegóły w tekście.

Rozpatrzmy następujący przykład:

A=[123413151,999999993,999999996,000000018,00000017531],
𝐱=[1221].

Wtedy 𝐛 wynosi:

𝐛=A𝐱[151430,0000000924].

Załóżmy teraz, że na podstawie A i 𝐛 chcemy wyznaczyć 𝐱. Ze względu na fakt, że wyznacznik macierzy jest bliski zera (det(A)=3,6106) i wskaźnik uwarunkowania macierzy wynosi w przybliżeniu 909460299 wyznaczenie macierzy odwrotnej może nastręczać kłopotów, dlatego rozwiązanie poszukiwane jest za pomocą metody najmniejszych kwadratów. Na wykresie obok zielonym kolorem naniesiono przykładowy wynik rozwiązania tą metodą. Widać duże odstępstwa od założonych wcześniej wartości 𝐱 oznaczonych za pomocą niebieskich kółek. Dodanie członu regularyzacyjnego zgodnie ze schematem przedstawionym we wcześniejszej części artykułu zdecydowanie poprawia uzyskane rozwiązanie (czerwona linia na wykresie obok). Przy czym parametr regularyzacyjny w tym przypadku wynosi α=0,00000007. Poniżej znajduje się kod źródłowy w pakiecie MATLAB z omawianym przykładem:

a = 0.00000007;% parametr regularyzacyjny
%macierz A
A=[1 2 3 4; 1 3 1 5; 1.99999999 3.99999999 6.00000001 8.0000001;7 5 3 1];
%wektor x
x = [1;2;2;1];
% wektor b
b = A*x;
% uchwyt do funkcji bez regularyzacji
fun = @(xx)(A*xx-b)*(A*xx-b)';
% uchwyt do funkcji z regularyzacją
fun2 = @(xx)(A*xx-b)*(A*xx-b)'+a*xx*xx';
%rozwiązanie metodą najmniejszych kwadratów
x1 = lsqnonlin(fun,0*x);
x2 = lsqnonlin(fun2,0*x);
hold all
plot(x,'o')
plot(x1)
plot(x2)
grid on
legend('szukane wartości','rozwiązanie bez regularyzacji',...
'rozwiązanie z regularyzacją')

Zobacz też

Przypisy

Szablon:Przypisy

Linki zewnętrzne

Szablon:Kontrola autorytatywna

  1. A. N. Tikhonov, Solution of incorrectly formulated problems and the regularization method, Soviet Math. Dokl., 4 (1963), s. 1035–1038; English translation of Dokl. Akad. Nauk. SSSR, 151 (1963), s. 501–504.
  2. D. L. Phillips, A technique for the numerical solution of certain integral equations of the first kind, J. Assoc. Comput. Mach., 9 (1962), s. 84–97.
  3. 3,0 3,1 Szablon:Cytuj książkę
  4. D. Calvetti, S. Morigi, L. Reichel, F. Sgallari, Tikhonov regularization and the L-curve for large discrete ill-posed problems, Journal of Computational and Applied Mathematics, Volume 123, Issues 1–2, 1 November 2000, Pages 423-446, ISSN 0377-0427, http://dx.doi.org/10.1016/S0377-0427(00)00414-3.