Aproksymacja funkcji a regresja symboliczna Problem aproksymacji

Transkrypt

Aproksymacja funkcji a regresja symboliczna Problem aproksymacji
Aproksymacja funkcji a regresja symboliczna
Problem aproksymacji funkcji polega na tym, że funkcję F (x), znaną
lub określoną tablicą wartości, należy zastąpić inną funkcją, f (x), zwaną
funkcją aproksymującą lub przybliżeniem funkcji F (x). Przybliżenie takie powoduje pojawienie się błędów i problem oszacowania tych błędów
oraz ich wielkość mają istotny wpływ na wybór metody aproksymacji.
Gdy zbiór, na którym jest mierzony błąd aproksymacji, jest zbiorem dyskretnym, aproksymacja jest nazywana punktową, gdy jest to przedział —
jest nazywana integralną.
Klasyczne metody aproksymacji funkcji zakładają określony zbiór funkcji bazowych, z których jest budowana poszukiwana funkcja oraz sposób
ich wykorzystania (na przykład zbudowanie z nich tak zwanego wielomianu uogólnionego). Z kolei regresja symboliczna jest procedurą indukcji symbolicznej postaci funkcji, która dopasowuje się do danych wejściowych określonych tablicą wartości. Poszukiwana funkcja jest budowana
z symboli zdefiniowanych przez badacza bez założenia jej modelu.
Potrzeba przeprowadzenia procesu aproksymacji pojawia się, na przykład:
• w analizie wyników badań eksperymentalnych,
• w problemach modelowania zjawisk fizycznych,
• w analizie obserwacji statystycznych.
1
Aproksymacja jest problemem przybliżania funkcji, polegającym na
wyznaczaniu dla danej funkcji F (x) takich funkcji f (x), które w określonym sensie najlepiej przybliżają funkcję F (x) dla danego zbioru wejściowego.
Podstawowym problemem aproksymacji funkcji jest określenie jej postaci. Najczęściej przyjmuje się, że poszukiwana funkcja ma postać wielomianu uogólnionego:
f (x) = a0ϕ0(x) + a1ϕ1(x) + . . . + anϕn (x)
(1)
gdzie ϕ0, ϕ1, . . . , ϕn są funkcjami bazowymi n + 1 wymiarowej podprzestrzeni liniowej Xn+1 przestrzeni X. Przy zadanych funkcjach bazowych
należy więc wyznaczyć takie wartości współczynników a0, a1, . . . , an, aby
funkcja f (x) spełniała określone warunki, na przykład minimalizowała
normę różnicy kF (x) − f (x)k. Gdy funkcja F (x) jest określona na dyskretnym zbiorze wartości, rozpatruje się normę:

kF k = 
n
X
[F (xi)]
i=0
1
2
2
Zagadnienie najlepszej aproksymacji przy wybranych funkcjach bazowych ϕk (x) sprowadza się do znalezienia wartości współczynników ak
takich, aby otrzymać minimum wyrażenia:
kF (x) − (a0ϕ0(x) + a1ϕ1(x) + . . . + an ϕn(x))k
W zależności od przyjętego sposobu oszacowania błędów aproksymacji
wyróżnia się trzy rodzaje aproksymacji:
• aproksymację interpolacyjną,
• aproksymację jednostajną,
• aproksymację średniokwadratową.
W przypadku aproksymacji interpolacyjnej, podobnie jak w zagadnieniu interpolacji, wymaga się, aby dana funkcja, f (x), i funkcja szukana,
F (x), przyjmowały dokładnie te same wartości na danym, dyskretnym
zbiorze argumentów X.
2
Regresja symboliczna
Zadaniem regresji symbolicznej jest znalezienie symbolicznej postaci
wyrażenia matematycznego (funkcji), która dokładnie (lub w zadowalającym stopniu) odzwierciedla określone wartości zmiennej zależnej dla
podanego zbioru wartości zmiennych niezależnych. Jest to więc, w istocie, zadanie punktowej aproksymacji funkcji, z tym, że w tym przypadku
poszukuje się nie tylko zbioru parametrów (współczynników) dla założonego modelu funkcji, lecz również samego modelu. Tym właśnie regresja
symboliczna różni się od konwencjonalnej liniowej, kwadratowej, wielomianowej, czy trygonometrycznej aproksymacji funkcji. W odróżnieniu
od metod konwencjonalnych, gdzie zakłada się postać modelu rozwiązania, a zadaniem procesu jest znalezienie zbioru warości odpowiednich
współczynników modelu, regresja symboliczna znajduje zarówno model,
jak i odpowiednie wartości jego parametrów.
Tak sformułowane zadanie aproksymacji można zdefiniować poprzez
zbiór niezależnych zmiennych wejściowych, Z, oraz zależną zmienną wynikową, y. Celem jest więc przybliżenie wartości zmiennej y używając
zmiennych niezależnych Z oraz współczynników W , w taki sposób, aby:
x = f (Z, W ) + ǫ
gdzie ǫ reprezentuje szum. W standardowych metodach aproksymacji postać funkcji f jest predefiniowana. Przykładowo, dla aproksymacji liniowej, funkcja f ma założoną postać:
f (Z, W ) = w0 + w1 · x1 + . . . + wn · xn
gdzie W jest poszukiwanym zbiorem wartości współczynników.
W przeciwieństwie do technik klasycznych metody takie, jak Programowanie Genetyczne, niektóre podejścia probabilistyczne, czy Programowanie Mrowiskowe nie zakładają predefiniowanego modelu rozwiązania.
Używają za to zbioru funkcji elementarnych, których kombinacja daje w
rezultacie pełną postać poszukiwanej funkcji. Na przykład, mając dane
funkcje 1-argumentowe h1, . . . , hu oraz 2-argumentowe g1, . . . , gb , można
z ich kombinacji utworzyć wiele różnych wyrażeń, przykładowo:
f (Z, W ) = h1(g2(g1(x3, w1), h2(x1)))
3
(2)
Oczywiście dopuszczalna jest każda inna poprawna kombinacja zmiennych i funkcji.
Zbiory H oraz G zwykle zawierają standardowe funkcje (lub operatory) arytmetyczne (dodawanie, odejmowanie, mnożenie, dzielenie), trygonometryczne (sinus, cosinus, tangens, itd.), logiczne (not, lub, i) czy
logarytmiczne. W związku z tym zastąpienie symboli h i g w funkcji (2)
może dać wyrażenie:
f (Z, W ) = log((x3 + w1) · sin x1)
Tak więc w tym podejściu do aproksymacji funkcji poszukuje się kombinacji zmiennych, funkcji i współczynników tak, aby zminimalizować
błąd funkcji dla danego zbioru danych wejściowych. Przy tym zarówno
postać i wielkość funkcji, jak i wszystkie jej elementy składowe — funkcje
elementarne oraz liczba i wartości współczynników — są automatycznie
znajdowane przez algorytm. Regresja symboliczna ma więc tę przewagę
nad podejściem klasycznem do aproksymacji funkcji, że równolegle poszukuje tak postaci funkcji jak i jej parametrów, co jest często kluczowym problemem w analizie danych eksperymentalnych, gdzie określenie
z góry poszukiwanego modelu jest bardzo trudne, czy wręcz niemożliwe.
Dodatkowo, zbiór funkcji elementarnych może być rozszerzony o zbiór instrukcji dowolnego języka programowania, dzięki czemu problem regresji
symbolicznej można uogólnić na zadanie automatycznego programowania — automatycznego znajdowania programu, który będzie realizował
czynności zdefiniowane w jego specyfikacji.
Można więc powiedzieć, że regresja symboliczna jest procedurą indukcji równania symbolicznego, funkcji lub programu, które dopasowują się
do danych wejściowych. Poszukiwane wyrażenia są budowane z symboli
zdefiniowanego przez badacza alfabetu. Mogą to być symbole matematyczne, lub instrukcje dowolnego języka programowania. Dobór alfabetu
jest ściśle związany z rodzajem stawianego problemu. System przeprowadzający regresję symboliczną w każdej iteracji generuje wiele kandydujących rozwiązań f k , które podlegają ocenie na podstawie zbioru danych
wejściowych. Istnieje wiele miar dopasowania, wśród których można znaleźć:
4
• błąd bezwzględny będący sumą modułów różnic wartości funkcji w
zbiorze wejściowym (funkcji poszukiwanej F ) i wartości wyliczonej
przez bieżące rozwiązanie f k :
fP =
• błąd kwadratowy:
fp′
=
N X
i=1
N X
i=1
Fi −
Fi −
fik k 2
fi
• średni błąd procentowy:
1
APE =
N
N X
i=1 Fi − fik · 100%
Fi gdzie N jest liczbą przypadków testowych w zbiorze wejściowym. Tak
więc regresja symboliczna może być traktowana jako próba (re)konstrukcji
lub przybliżenia funkcji na podstawie danej tabeli wartości zakładając:
• zbiór operatorów, funkcji i stałych,
• funkcję oceny jakości przybliżenia.
5
Programowanie genetyczne
Struktura elementarnego algorytmu genetycznego jest taka sama, jak
typowego programu ewolucyjnego. Przebieg tego algorytmu:
Algorytm 1: Elementarny algorytm genetyczny
t := 0
Utwórz populację początkową(P (t))
Oceń(P (t))
while (not warunek końca) do
begin
t := t + 1
P (t) := Selekcja(P (t − 1))
Krzyżuj(P (t))
Mutuj(P (t))
Oceń(P (t))
end
{ Koniec algorytmu }
Podsumowując podstawowe cechy algorytmów genetycznych można
powiedzieć że:
• nie przetwarzają bezpośrednio problemu, lecz jego zakodowaną postać,
• operują na dużej liczbie rozwiązań (osobników),
• poszukują rozwiązania metodą próbkowania,
• korzystają tylko z funkcji celu, a nie z innych pomocniczych informacji,
• opierają się na probabilistycznym a nie deterministycznym modelu
działania.
Cechy te odróżniają algorytmy genetyczne od konwencjonalnych technik
optymalizacji.
6
Koza określił pięć wstępnych kroków, jakie należy wykonać, by rozwiązać problem stosując programowanie genetyczne:
1. wybór końcówek (symboli terminalnych),
2. wybór funkcji operujących na końcówkach (dokładniej — operatorów, funkcji i instrukcji),
3. określenie funkcji dopasowania,
4. ustalenie wartości parametrów,
5. zdefiniowanie kryterium zakończenia obliczeń.
7
Nr
1
2
3
4
5
6
7
8
9
10
2
Wejście (x) Wyjście (y = x 2+x )
0,2
0,12
0,4
0,28
0,6
0,48
0,8
0,72
1,0
1,00
1,2
1,32
1,4
1,68
1,6
2,08
1,8
2,52
2,0
3,00
Tablica 1: Wartości poszukiwanej funkcji (zbiór trenujący)
a)
b)
+
+
x
x
1
*
2x
x
x
x2+1
c)
d)
/
+
+
+
x
x
+
1
*
1
x
x
x
3x
2
0
x
Rysunek 1: Populacja początkowa dla przykładu programowania genetycznego
8
Nr
1
2
3
4
5
6
7
8
9
10
x
0,2
0,4
0,6
0,8
1,0
1,2
1,4
1,6
1,8
2,0
fi
ya
yb
0,40 1,04
0,80 1,16
1,20 1,36
1,60 1,64
2,00 2,00
2,40 2,44
2,80 2,96
3,20 3,56
3,60 4,24
4,00 5,00
8,80 12,20
yc
0,30
0,60
0,90
1,20
1,50
1,80
2,10
2,40
2,70
3,00
3,30
yd
0,20
0,40
0,60
0,80
1,00
1,20
1,40
1,60
1,80
2,00
3,00
Tablica 2: Wartości funkcji dopasowania osobników populacji początkowej
a)
b)
+
+
x
x
*
x
*
x
0
0
x
x
c)
d)
+
/
+
x
+
1
*
x2+1
x
+
x
x
x
1
1
3x
2
Rysunek 2: Zbiór osobników po selekcji populacji początkowej
9
b’)
+
x
+
x
0
2x
Rysunek 3: Zmutowany osobnik b
c’)
d’)
+
/
x
x
+
x
1
1
x2
2
3x+1
x
+
*
1
+
x
Rysunek 4: Wynik skrzyżowania osobników c oraz d
Nr
1
2
3
4
5
6
7
8
9
10
x
0,2
0,4
0,6
0,8
1,0
1,2
1,4
1,6
1,8
2,0
fi
ya
yb
0,40 1,04
0,80 1,16
1,20 1,36
1,60 1,64
2,00 2,00
2,40 2,44
2,80 2,96
3,20 3,56
3,60 4,24
4,00 5,00
8,80 12,20
yc
0,30
0,60
0,90
1,20
1,50
1,80
2,10
2,40
2,70
3,00
3,30
yd
0,20
0,40
0,60
0,80
1,00
1,20
1,40
1,60
1,80
2,00
3,00
Tablica 3: Wartości funkcji dopasowania osobników populacji nr 1
10
a)
b)
+
+
x
x
*
x
x
0
2x
c)
d)
+
/
+
*
1
x
x
1
x
1
x2
2
3x+1
x
0
x
+
+
+
x
Rysunek 5: Populacja nr 1
Nr
1
2
3
4
5
6
7
8
9
10
x
0,2
0,4
0,6
0,8
1,0
1,2
1,4
1,6
1,8
2,0
fi
ya
yb
yc
yd
0,20 -0,60 0,12 4,20
0,40 -0,20 0,28 1,90
0,60 0,20 0,48 1,27
0,80 0,60 0,72 1,05
1,00 1,00 1,00 1,00
1,20 1,40 1,32 1,03
1,40 1,80 1,68 1,11
1,60 2,20 2,08 1,23
1,80 2,60 2,52 1,36
2,00 3,00 3,00 1,50
3,00 2,00 0,00 11,19
Tablica 4: Wartości funkcji dopasowania osobników populacji nr 8
11
a)
b)
*
/
_
x
+
*
x
0
*
1
x
0
2x-1
x
x
1
d)
c)
_
/
+
+
x
*
x
x
1
+
*
1
x
x2+x
2
1
x
x
Rysunek 6: Populacja nr 8
12
1
1 +x-1
x
1