Aproksymacja funkcji a regresja symboliczna

Transkrypt

Aproksymacja funkcji a regresja symboliczna
Aproksymacja funkcji a regresja symboliczna
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ą.
Aproksymacja funkcji a regresja symboliczna
Aproksymacja funkcji a regresja symboliczna
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.
Aproksymacja funkcji a regresja symboliczna
Potrzeba przeprowadzenia procesu aproksymacji pojawia się, na przykład:
Aproksymacja funkcji a regresja symboliczna
Potrzeba przeprowadzenia procesu aproksymacji pojawia się, na przykład:
w analizie wyników badań eksperymentalnych,
Aproksymacja funkcji a regresja symboliczna
Potrzeba przeprowadzenia procesu aproksymacji pojawia się, na przykład:
w analizie wyników badań eksperymentalnych,
w problemach modelowania zjawisk fizycznych,
Aproksymacja funkcji a regresja symboliczna
Potrzeba przeprowadzenia procesu aproksymacji pojawia się, na przykład:
w analizie wyników badań eksperymentalnych,
w problemach modelowania zjawisk fizycznych,
w analizie obserwacji statystycznych.
Aproksymacja funkcji a regresja symboliczna
Aproksymacja funkcji
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),
gdzie φ0 , φ1 , ... , φn są funkcjami bazowymi n + 1 wymiarowej
podprzestrzeni liniowej Xn+1 przestrzeni X.
(1)
Aproksymacja funkcji a regresja symboliczna
Aproksymacja funkcji
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 ||F (x) − f (x)||. Gdy
funkcja F(x) jest określona na dyskretnym zbiorze wartości, rozpatruje się
normę:
n
X
1
(2)
||F || = ( [F (xi )]2 ) 2
i=0
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:
||F (x) − (a0 φ0 (x) + a1 φ1 (x) + ... + an φn (x))||
(3)
Aproksymacja funkcji a regresja symboliczna
W zależności od przyjętego sposobu oszacowania błędów aproksymacji
wyróżnia się trzy rodzaje aproksymacji:
Aproksymacja funkcji a regresja symboliczna
W zależności od przyjętego sposobu oszacowania błędów aproksymacji
wyróżnia się trzy rodzaje aproksymacji:
aproksymację interpolacyjną,
Aproksymacja funkcji a regresja symboliczna
W zależności od przyjętego sposobu oszacowania błędów aproksymacji
wyróżnia się trzy rodzaje aproksymacji:
aproksymację interpolacyjną,
aproksymację jednostajną,
Aproksymacja funkcji a regresja symboliczna
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ą.
Aproksymacja funkcji a regresja symboliczna
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.
Aproksymacja funkcji a regresja symboliczna
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.
Aproksymacja funkcji a regresja symboliczna
Regresja symboliczna
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 ) + ,
(4)
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.
(5)
Aproksymacja funkcji a regresja symboliczna
Regresja symboliczna
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 )))
Oczywiście dopuszczalna jest każda inna poprawna kombinacja
zmiennych i funkcji.
(6)
Aproksymacja funkcji a regresja symboliczna
Regresja symboliczna
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 ) ∗ sinx1 )
(7)
Aproksymacja funkcji a regresja symboliczna
Regresja symboliczna
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.
Aproksymacja funkcji a regresja symboliczna
Regresja symboliczna
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.
Aproksymacja funkcji a regresja symboliczna
Istnieje wiele miar dopasowania, wśród których można znaleźć:
Aproksymacja funkcji a regresja symboliczna
Istnieje wiele miar dopasowania, wśród których można znaleźć:
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 =
N
X
i=1
|Fi − fi k |
(8)
Aproksymacja funkcji a regresja symboliczna
Istnieje wiele miar dopasowania, wśród których można znaleźć:
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 =
N
X
|Fi − fi k |
(8)
i=1
błąd kwadratowy:
N
X
fP 0 =
(Fi − fi k )2
i=1
(9)
Aproksymacja funkcji a regresja symboliczna
Istnieje wiele miar dopasowania, wśród których można znaleźć:
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 =
N
X
|Fi − fi k |
(8)
i=1
błąd kwadratowy:
N
X
fP 0 =
(Fi − fi k )2
(9)
i=1
średni błąd procentowy:
APE =
N
1 X Fi − fi k
|
| ∗ 100%,
N
Fi
(10)
i=1
gdzie N jest liczbą przypadków testowych w zbiorze wejściowym.
Aproksymacja funkcji a regresja symboliczna
Regresja symboliczna
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:
Aproksymacja funkcji a regresja symboliczna
Regresja symboliczna
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,
Aproksymacja funkcji a regresja symboliczna
Regresja symboliczna
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.
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}
Programowanie genetyczne
Podsumowując podstawowe cechy algorytmów genetycznych można
powiedzieć że:
Programowanie genetyczne
Podsumowując podstawowe cechy algorytmów genetycznych można
powiedzieć że:
nie przetwarzają bezpośrednio problemu, lecz jego zakodowaną
postać,
Programowanie genetyczne
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),
Programowanie genetyczne
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,
Programowanie genetyczne
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,
Programowanie genetyczne
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.
Programowanie genetyczne
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.
Programowanie genetyczne
Koza określił pięć wstępnych kroków, jakie należy wykonać, by rozwiązać
problem stosując programowanie genetyczne:
Programowanie genetyczne
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),
Programowanie genetyczne
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),
Programowanie genetyczne
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,
Programowanie genetyczne
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,
Programowanie genetyczne
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ń.
Programowanie genetyczne
Programowanie genetyczne
Tablica: Wartości poszukiwanej funkcji (zbiór trenujący)
Nr
1
2
3
4
5
6
7
8
9
10
Wejście (x)
0,2
0,4
0,6
0,8
1,0
1,2
1,4
1,6
1,8
2,0
Wyjście (y =
x 2 +x
2 )
0,12
0,28
0,48
0,72
1,00
1,32
1,64
2,08
2,52
3,00
Programowanie genetyczne
Programowanie genetyczne
Rysunek: Populacja początkowa dla przykładu programowania genetycznego
Programowanie genetyczne
Programowanie genetyczne
Tablica: Wartości funkcji dopasowania osobników populacji początkowej
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
0,40
0,80
1,20
1,60
2,00
2,40
2,80
3,20
3,60
4,00
8,80
yb
1,04
1,16
1,36
1,64
2,00
2,44
2,96
3,56
4,24
5,00
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
Programowanie genetyczne
Programowanie genetyczne
Rysunek: Zbiór osobników po selekcji populacji początkowej
Programowanie genetyczne
Programowanie genetyczne
Rysunek: Zmutowany osobnik b
Rysunek: Wynik skrzyżowania osobników c oraz d
Programowanie genetyczne
Programowanie genetyczne
Tablica: Wartości funkcji dopasowania osobników populacji 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
0,40
0,80
1,20
1,60
2,00
2,40
2,80
3,20
3,60
4,00
8,80
yb
1,04
1,16
1,36
1,64
2,00
2,44
2,96
3,56
4,24
5,00
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
Programowanie genetyczne
Programowanie genetyczne
Rysunek: Populacja nr 1
Programowanie genetyczne
Programowanie genetyczne
Tablica: Wartości funkcji dopasowania osobników populacji nr 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
0,20
0,40
0,60
0,80
1,00
1,20
1,40
1,60
1,80
2,00
3,00
yb
-0,60
-0,20
0,20
0,60
1,00
1,40
1,80
2,20
2,60
3,00
2,00
yc
0,12
0,28
0,48
0,72
1,00
1,32
1,68
2,08
2,52
3,00
0,00
yd
4,20
1,90
1,27
1,05
1,00
1,03
1,11
1,23
1,36
1,50
11,19
Programowanie genetyczne
Programowanie genetyczne
Rysunek: Populacja nr 8

Podobne dokumenty