• Nie Znaleziono Wyników

Optymalizacja modeli

W dokumencie Index of /rozprawy2/11269 (Stron 57-60)

3. Sieci neuronowe i możliwości ich zastosowania w medycynie

3.3. Optymalizacja modeli

Konstruowanie modelu neuronowego wiąże się z koniecznością ustalenia wartości szeregu parametrów, które opisują zarówno architekturę sieci jak i algorytmy uczące. Zależnie od rodzaju sieci konieczne może być wybranie:

• liczby warstw ukrytych (MLP),

• liczby neuronów ukrytych (MLP, RBF),

• liczby neuronów w warstwie topologicznej (SOM), • kształtu i parametrów funkcji aktywacji,

• algorytmu uczącego,

• współczynnika uczenia (MLP, SOM) i momentum (MLP), • metody inicjalizacji wag,

• wielkości sąsiedztwa (SOM), • funkcji błędu,

• liczby epok uczenia (MLP, warstwy radialne w RBF i SOM) itd.

Sprawdzenie wszystkich dostępnych kombinacji parametrów zwykle nie jest możliwe, ponieważ wymagałoby zbyt dużo czasu (zresztą w przypadku zmiennych ciągłych np. współczynnika uczenia zbadanie wszystkich opcji jest niewykonalne). Pierwszym rozwiązaniem jest ręczne dobranie wartości parametrów, „metodą prób i błędów”, co może, ale nie musi być skuteczne. Drugą możliwością jest wykorzystanie siatki poszukiwań (ang. grid search). W tej metodzie dla każdego parametru ustala się zbiór akceptowalnych wartości, a następnie bada każdą możliwą kombinację. Jakkolwiek ten sposób prowadzi zazwyczaj do lepszych wyników niż arbitralny dobór wartości [Bergstra i Bengio 2012], to przy większej liczbie zmiennych łatwo osiągnąć ogromną liczbę kombinacji, której nie da się przeanalizować. Przyjmując, że należy zoptymalizować tylko 4 parametry (np. liczby neuronów ukrytych w 2 warstwach sieci MLP, współczynnik uczenia i współczynnik momentum) i każdy z nich może mieć jedną z 10 dozwolonych wartości, otrzymamy 10000 kombinacji. Usprawnieniem tego procesu jest wybranie tylko niektórych, losowych kombinacji (ang. random search) zamiast badania pełnej siatki. W wielu sytuacjach wynik jest równie dobry, a jego uzyskanie wymaga znacząco mniej czasu; prawdopodobnie dlatego, że zwykle wpływają na niego tylko niektóre parametry, podczas gdy inne mogą mieć dowolną wartość [Bergstra i Bengio 2012].

Przy ustalaniu parametrów sieci neuronowych korzysta się także z bardziej rozbudowanych strategii. Możliwe jest zastosowanie optymalizacji opartej o model procesu gaussowskiego, której celem jest wskazanie na podstawie wcześniejszych doświadczeń wartości parametrów, przy których spodziewana poprawa dokładności modelu jest najwyższa [Bergstra i in. 2011].

W przypadku, gdy kilka parametrów jest powiązanych korzysta się niekiedy z algorytmów o strukturze drzewowej (np. tree-structured Parzen estimator, TPE), w których wartość lub nawet obecność jednej zmiennej uzależnia się od wartości innej np. nie ma potrzeby wyznaczania liczby neuronów w drugiej warstwie ukrytej sieci MLP, gdy sieć ma tylko jedną taką warstwę. Ponadto, w optymalizacji modeli neuronowych stosowane są także algorytmy genetyczne, oparte o reguły (odpowiednio uproszczone) podobne do zasad rządzących ewolucją biologiczną. Schemat takiego algorytmu wygląda następująco [Robbins i in. 1993]:

1. Wygenerowanie populacji początkowej sieci o losowo wybranych parametrach. 2. Ocena dokładności modeli (po przeprowadzeniu uczenia).

3. Eliminacja ustalonego odsetka najgorszych osobników (najmniej dokładnych modeli). 4. Wygenerowanie nowych modeli, dziedziczących parametry po parach pozostałych

sieci (część wartości od jednej, inne od drugiej).

5. Opcjonalne wprowadzenie mutacji, czyli zmian wartości pojedynczych parametrów niektórych osobników.

6. Powtórzenie operacji 2.-5. aż do uzyskania zadowalającego wyniku.

W początkowym etapie to podejście ma charakter losowego przeszukiwania przestrzeni parametrów (krok 1.), jednak później najmniej korzystne kombinacje parametrów są stopniowo eliminowane. W stosunku do poszukiwania całkowicie losowego algorytmy genetyczne i zaawansowane optymalizatory mają tą przewagę, że w kolejnych iteracjach skupiają się na dokładniejszym zbadaniu tylko tych części przestrzeni parametrów, w których wcześniej znajdowały się stosunkowo dobre rozwiązania.

Osobnym zagadnieniem, które również można zaliczyć do optymalizacji modeli jest redukcja wymiarowości zbioru wejściowego, mająca na celu usunięcie z niego informacji nadmiarowych lub zbędnych. Ograniczając ilość danych wejściowych można zastosować dwa różne podejścia: wyeliminować niektóre zmienne lub poddać cały zbiór przekształceniu redukującemu jego wymiarowość, przy czym w obu grupach istnieje wiele różnych metod [May i in. 2011]. Przekształcenia zmniejszające wymiarowość obejmują m.in. liniową lub nieliniową analizę składowych głównych albo zastosowanie algorytmów klasteryzujących np. map samoorganizujących. Do ich podstawowych założeń należy eliminacja redundancji w danych, wynikającej np. z korelacji między zmiennymi. Dzięki temu można skutecznie zredukować liczbę zmiennych, przy niewielkiej utracie informacji. W kontekście badanego problemu predykcji skuteczności leczenia, wadą takiego rozwiązania byłoby przekształcenie zmiennych posiadających konkretne biologiczne znaczenie na zmienne „sztuczne”, które z punktu widzenia medycznego nie mają jasnej interpretacji.

Druga możliwość, polegająca na eliminacji zmiennych, pozwala nie tylko na uproszczenie modelu, ale również na wskazanie, które ze zmiennych wejściowych rzeczywiście są matematycznie powiązane z wyjściem. Sam ten fakt nie oznacza automatycznie, że istnieje

wpływ parametrów wejściowych na wyjście (powiązaniem może być również zupełnie inna wspólna przyczyna zmian), ale może prowadzić do takiego wniosku, jeśli korzystając z posiadanej wiedzy o problemie da się znaleźć uzasadnienie przyczynowo-skutkowe zauważonej zależności. Od strony technicznej eliminację zmiennych można przeprowadzić na wiele sposobów. Wśród nich można wyróżnić grupy metod opartych o model oraz tych, które pozostają od niego niezależne [May i in. 2011]. Eliminacja zmiennych niezależna od modelu korzysta tylko z charakterystyki danych, usuwając zbędne zmienne na podstawie miar korelacji lub zawartej w nich informacji, przy czym pierwsze rozwiązanie bada zwykle tylko zależności liniowe i niekoniecznie będzie optymalne dla sieci neuronowych, które są nieliniowe.

Wybór wejść w oparciu o model również może być realizowany na wiele sposobów. Podobnie jak w przypadku optymalizacji parametrów, teoretycznie można rozważać sprawdzenie wszystkich możliwych kombinacji wejść, ale przy m wejść będzie ich 2m, co przy już 10 zmiennych daje 1024 możliwości, a przy 20 ponad milion. Szczególnie po uwzględnieniu jeszcze doboru wartości parametrów sieci i uczenia jest to podejście zdecydowanie niepraktyczne. Nadające się do zastosowania schematy będą opierać się raczej na stopniowym usuwaniu mało znaczących zmiennych z modelu (ang. backward elimination) lub ich kolejnym dołączaniu i weryfikacji, czy ich obecność podnosi jakość modelu (ang. forward

selection). Wybór miary istotności poszczególnych zmiennych wydaje się w przypadku sieci

neuronowych nadal kwestią otwartą i przedstawiane są różne propozycje, dające często znacząco odmienne wyniki [Satizábal M. i Pérez-Uribe 2007].

Podsumowując, trzeba stwierdzić, że zagadnienie optymalizacji modelu neuronowego jest bardzo złożone i nie istnieje żaden sposób dający pewność, że uzyskany model jest najlepszym z możliwych. Należy przy tym dodać, że wynik zależy nie tylko od parametrów sieci i uczenia, ale również od losowej internalizacji wag sieci, stąd nie da się uniknąć pewnego elementu przypadkowości. Ponadto same algorytmy optymalizujące też często posiadają pewne parametry, których wartości musimy wybrać (np. ilość iteracji w algorytmie genetycznym), znów bez całkowitej pewności czy inne wartości nie dałyby lepszego wyniku. Wydaje się zatem zasadne stwierdzenie, że wyboru technik optymalizacji modelu neuronowego należy dokonywać zawsze biorąc pod uwagę cele badań i dostępne środki.

W dokumencie Index of /rozprawy2/11269 (Stron 57-60)