Kontynuując poprzedni temat chciałbym podzielić się
odkryciem, którego dokonałem podczas przeglądania dokumentacji SPSS Modeler i Python.
Odkrycie to
sprowadza się do wniosku, iż w narzędziu IBM
SPSS Modeler istnieją dwa węzły do budowy sztucznych sieci neuronowych.
Jeden z węzłów dostępny jest standardowo w palecie węzłów na karcie modele, natomiast drugi, a właściwie pierwszy, można wywołać
jedynie korzystając ze skryptu, np.:
import modeler.api
stream =
modeler.script.stream()import modeler.api
stream.create("neuralnet", "Neural Net")
Ukryty węzeł
pochodzi z czasów, gdy program IBM SPSS
Modeler nazywał się jeszcze Clementine.
Następnie po akwizycji przez (jeszcze wtedy nie IBM) SPSS nastąpił proces standaryzacji procedur analitycznych, podczas
którego stary węzeł został zastąpiony nowym. Pierwotny węzeł nie został jednak
całkowicie usunięty, co miało zapewnić, że strumienie danych napisane we wcześniejszych
wersjach programu nie przestaną działać.
Tyle tytułem
wprowadzenia. Między starym, a nowym węzłem występują dość duże różnice jeśli
chodzi o funkcjonalności. Pierwotny węzeł dostarcza więcej opcji budowy sieci oraz pozwala zachować większą kontrolę nad
procesem uczenia. Dodatkowo, stary węzeł pozwalał na zapisywanie raportu z
procesu uczenia sieci.
Po otwarciu
węzła, w karcie model, użytkownik może wybrać jedną z sześciu opcji budowy sieci:
- Szybka - zbliżona do opcji dostępnych w nowym węźle, czyli budowa sieci o wyspecyfikowanej topologii.
- Dynamiczna – działa podobnie jak szybka, ale w procesie uczenia dodaje lub odejmuje neurony warstwy ukrytej w zależności od wartości błędu.
- Wieloraka – buduje wiele sieci o różnej topologii, i wybiera najlepszą.
- Przycinanie – proces w wyniku którego budowana i trenowana jest relatywnie duża sieć. Następnie przeprowadzona jest analiza wrażliwości i usuwane są najmniej istotne neurony warstwy wejściowej i ukrytej, a proces uczenia jest kontynuowany. Podejście to wydaję się bardzo efektywne, ale zajmuje też bardzo dużo czasu.
- RBFN – tworzy sieć o radialnej funkcji bazowej. Metoda jest analogiczna do metody stosowanej obecnie.
- Przycinanie wyczerpujące - działa podobnie jak przycinanie tylko staruje od największej możliwej sieci, co czyni proces jeszcze bardziej czasochłonnym.
- Powyższe fajnie ilustruje karta zaawansowane, która zmienia się dynamicznie w zależności od wybranego modelu sieci.
Karta zaawansowane dla metody szybka:
Karta zaawansowane dla metody przycinanie:
Karta zaawansowane dla metody przycinanie wyczerpujące:
Jak widać, w zależności od metody możemy wyspecyfikować parametry uczenia, topologię
sieci oraz właściwości typowe dla poszczególnych metod. W zakładce Opcje
znajduje się kolejna ciekawa opcja: Pokaż
wykres sprzężenia zwrotnego, który pokazuje jak wygląda trafność modelu
najlepszego w porównaniu z trafnością modelu obecnego. Oprócz oglądania modelu użytkownik ma też
możliwość zatrzymania procesu uczenia w dowolnym momencie.
Zachęcam do testowania węzła!
Brak komentarzy:
Prześlij komentarz