Statistica
Dane Wiedza Sukces

Automatyczne sieci neuronowe

STATISTICA Automatyczne Sieci Neuronowe jest kompletnym, korzystającym z najnowszych technik, szybkim pakietem do analizy danych za pomocą sieci neuronowych. Do najważniejszych jego cech należą:

  • Zintegrowane narzędzia do wstępnego przetwarzania danych i przetwarzania wyników. Narzędzia wyboru zmiennych wejściowych, kodowania wartości nominalnych, skalowania, normalizacji i uzupełniania brakujących wartości. Narzędzia te przystosowane są do problemów z zakresu klasyfikacji, regresji i szeregów czasowych.
  • Wyjątkowa prostota obsługi połączona z niezrównaną mocą analityczną. Przykładowo unikalny Automatyczny projektant sieci, prowadzi użytkownika krok po kroku poprzez proces tworzenia różnych sieci i wybór optymalnej ich architektury (bez takiego kreatora zadanie to sprowadza się do żmudnego poszukiwania metodą ”prób i błędów” i wymaga solidnej wiedzy teoretycznej).
  • Algorytmy uczące zbudowane na bazie najnowszych rozwiązań, w wysokim stopniu zoptymalizowane (w tym algorytm gradientów sprzężonych i BFGS); możliwość wyboru funkcji aktywacji, funkcji błędu i złożoności sieci.
  • Szeroki wybór narzędzi graficznych i statystycznych umożliwiających interakcyjną analizę eksploracyjną.
  • Pełna integracja z systemem STATISTICA, wszystkie wyniki, wykresy, raporty itp. mogą być przetwarzane za pomocą potężnych narzędzi graficznych i analitycznych STATISTICA (np. W celu analizy reszt z wyników prognoz, tworzenia podsumowujących raportów itd.).
  • Pełna integracja z bogatymi narzędziami STATISTICA do automatyzacji analiz; zapis kompletnych makr z całości analizy; możliwość programowania własnych sieci neuronowych i ich zastosowań w środowisku STATISTICA Visual Basic; wywoływanie STATISTICA Automatyczne Sieci Neuronowe z innych aplikacji zgodnych z COM (Component Object Model), np. obliczanie za pomocą sieci neuronowej wyników w arkuszu MS Excel, czy też włączanie sieci do własnych aplikacji pisanych w C, C++, C#, Java itp.).

STATISTICA Automatyczne Sieci Neuronowe - sposób na obliczenia neuronowe

Używanie sieci neuronowych to nie tylko proste podawanie danych na wejście sieci.

STATISTICA Automatyczne Sieci Neuronowe (SANN) może wspomóc użytkownika w realizacji najistotniejszych etapów konstruowania sieci, umożliwia zastosowanie najnowocześniejszych architektur sieci i metod uczenia, jak również posiada nowatorskie rozwiązania w zakresie projektowania struktury sieci przy użyciu odpowiednio dobranych funkcji błędu, ułatwiających interpretację danych wyjściowych. Ponadto programiści i użytkownicy eksperymentujący z dostosowywalnymi aplikacjami, po zbudowaniu i przetestowaniu sieci przy użyciu łatwego i intuicyjnego interfejsu STATISTICA Automatyczne Sieci Neuronowe, mogą włączać ją do innych aplikacji, używając bibliotek funkcji COM STATISTICA,w pełni udostępniających wszystkie możliwości programu, jak i używając kodów C/C++ wygenerowanych przez program by zastosować gotową już sieć (opcja).

Dane wejściowe

STATISTICA Automatyczne Sieci Neuronowe pracuje we wspólnym środowisku STATISTICA, tak więc do dyspozycji użytkownika jest całe bogactwo narzędzi edycji i przygotowania danych (przekształcenia, selekcja przypadków, weryfikacja danych itd.). Jak wszystkie analizy w STATISTICA, również sieci neuronowe ”podłączyć” możemy do zewnętrznych baz danych, korzystając z narzędzi zdalnego przetwarzania (in-place-database processing) czy podłączając dane w sposób aktywny, tak by po zmianie danych model automatycznie, ponownie był uczony albo tylko zastosowany (obliczył nową prognozę czy zaklasyfikował nowe przypadki).

Skalowanie danych i przetwarzanie danych nominalnych

Zastosowanie techniki neuronowej wymaga odpowiedniego przygotowania danych wejściowych jak również właściwej ich interpretacji. STATISTICA Automatyczne Sieci Neuronowe (SANN) umożliwia automatyczne skalowanie wartości wejściowych i wyjściowych (przy zadanych wartościach ekstremalnych lub o zadanej średniej i odchyleniu standardowym), jak również zapewnia odpowiednią reprezentację wartości przedstawianych na skali nominalnej (np. Płeć={mężczyzna, kobieta}), gdzie stosowane jest kodowanie typu jeden z N. Ponadto SANN przeprowadza procedurę szacowania brakującej informacji. Dostępne są w programie również narzędzia do wstępnej obróbki szeregów czasowych i interpretacji wyników. Wiele podobnych narzędzi jest zawartych w programie STATISTICA

Przy problemach klasyfikacyjnych, SANN przypisuje przypadki do odpowiednich klas oraz umożliwia interpretowanie wartości wyjściowych sieci klasyfikujących jako prawdopodobieństw przynależności obiektu do poszczególnych klas. Takie podejście do problemu klasyfikacji jest możliwe dzięki zastosowaniu funkcji aktywacji typu Softmax i funkcji błędu opartej na entropii wzajemnej.

Wybór typu sieci neuronowej; zespoły sieci

Różnorodność istniejących typów sieci neuronowych, a także duża liczba parametrów (wielkość sieci, sposób uczenia) jest często przyczyną trudności przy wyborze najlepszego rozwiązania (oczywiście dostępny jest Automatyczny projektant sieci, który automatycznie przeszukuje wiele architektur sieciowych o różnej złożoności, patrz poniżej). STATISTICA Automatyczne Sieci Neuronowe (SANN) umożliwia konstruowanie sieci neuronowych najważniejszych typów, takich jak:

  • Perceptrony wielowarstwowe (Multilayer Perceptrons)
  • Sieci o radialnych funkcjach bazowych (Radial Basis Function Networks)
  • Samoorganizujące się mapy cech Kohonena (Self-Organizing Feature Maps)
  • Sieci liniowe (Linear Networks)

Wymienione powyżej architektury sieciowe mogą być stosowane w przypadku problemów regresyjnych, klasyfikacyjnych, szeregów czasowych oraz analizy skupień.

Ponadto, Automatyczny projektant sieci wspiera użytkownika w tworzeniu zespołów sieci składających się z różnych typów sieci wymienionych wyżej (odpowiednich dla danego problemu). Szczególnie efektywne w SANN jest łączenie sieci w celu uzyskania zespołowych prognoz, zwłaszcza dla zaszumionych lub małych zbiorów danych.

SANN posiada wiele narzędzi, które ułatwiają wybór właściwej architektury sieci. Pomocne są przy tym generowane automatycznie wykresy (słupkowe, macierzowe, wykresy błędów w rozbiciu na obserwacje lub w postaci sumarycznej), jak również obliczane statystyki (oceniające poprawność klasyfikacji lub błędy regresji).

Przy wizualizacji danych SANN korzysta z wykresów rozrzutu, zaś działanie sieci prezentowane jest przy pomocy trójwymiarowych wykresów powierzchniowych ułatwiających zrozumienie ”zachowania się sieci” dla różnych danych wejściowych.

Te różnorodne informacje mogą być dalej przetwarzane z wykorzystaniem technik analitycznych dostępnych w innych aplikacjach z rodziny STATISTICA, włączane do raportu, analizowane itd.

SANN automatycznie zapamiętuje najlepszą sieć powstałą w trakcie prób. Użyteczność sieci i jej możliwości prognostyczne są automatycznie oceniane poprzez użycie przypadków walidacyjnych, oceniana jest wielkość i efektywność sieci oraz koszt błędnych klasyfikacji.

Dla poprawy wydajności sieci, STATISTICA Automatyczne Sieci Neuronowe umożliwia jej dostosowywanie. Na przykład w modelach regresyjnych możliwe jest użycie w warstwie wyjściowej neuronów o liniowej funkcji aktywacji, zaś przy rozwiązywaniu problemów z zakresu klasyfikacji można zastosować funkcję Softmax do oceny prawdopodobieństwa przynależności obiektu do danej klasy. Dostępne są również funkcje błędu oparte na entropii wzajemnej oraz specjalizowane funkcje aktywacji: wykładnicza, tangens hiperboliczny, logistyczna oraz sinus. Mogą one być stosowane dla neuronów zarówno w warstwie ukrytej jak i wyjściowej.

Automatyczny projektant sieci (automatyczna ocena i wybór architektury sieci)

W STATISTICA Automatyczne Sieci Neuronowe dostępny jest Automatyczny projektant sieci, który automatycznie ocenia dużą liczbę różnych architektur sieci o różnym stopniu złożoności, wybierając zbiór tych, które najbardziej odpowiadają danemu problemowi.

Znaczną część czasu budowy sieci neuronowej zajmuje zwykle dobór zmiennych i optymalizacja, na drodze heurystycznych poszukiwań, architektury sieci. SANN znacznie ułatwia rozwiązanie tego problemu automatycznie realizując proces heurystycznego poszukiwania obejmującego typy sieci, rozmiar oraz architektury sieci, funkcje aktywacji a nawet funkcje błędu.

Automatyczny projektant sieci to narzędzie nadzwyczaj efektywne, które w poszukiwaniu najlepszej architektury sieci wykorzystuje wyrafinowane techniki optymalizacji. STATISTICA Automatyczne Sieci Neuronowe oszczędza w ten sposób wiele godzin pracy analityka testującego samodzielnie różne architektury sieci.

Uczenie sieci neuronowej

Możliwość przeprowadzania eksperymentów z różnymi architekturami i typami sieci jest w dużym stopniu uzależniona od jakości i szybkości stosowanych metod uczenia sieci. Zaimplementowane w STATISTICA Automatyczne Sieci Neuronowe metody uczenia to najlepsze, znane algorytmy, wykorzystujące najnowsze osiągnięcia w tym zakresie.

SANN oferuje użytkownikowi dwa szybkie algorytmy uczenia bazujące na drugich pochodnych: algorytm gradientów sprzężonych i algorytm BSFGS. Ponadto dostępna jest wersja algorytmu BFGS, która nie wymaga tyle pamięci i którą program SANN automatycznie wykorzystuje w przypadku, gdy ilość pamięci w komputerze sięga krytycznego poziomu. Takie algorytmy osiągają zbieżność zazwyczaj dużo szybciej niż inne algorytmy jak np. metoda najszybszego spadku.

Iteracyjne procedury uczące STATISTICA Automatyczne Sieci Neuronowe są w trakcie pracy monitorowane poprzez wykreślanie błędu dla ciągu uczącego i niezależnego ciągu walidacyjnego. Procedura uczenia może być w dowolnej chwili przerwana przez użytkownika poprzez kliknięcie odpowiedniego przycisku. Można też podać warunki przerwania algorytmu uczącego; na przykład po obniżeniu się wartości błędu uczenia poniżej określonego poziomu lub gdy błąd dla ciągu walidacyjnego zwiększa swą wartość przez określoną liczbę epok (wystąpienie tego zjawiska wskazuje na przeuczenie sieci). Wystąpienie zjawiska przeuczenia nie jest problemem, gdyż SANN automatycznie zachowuje kopię najlepszej sieci, która jest później stosowana jako najlepsze rozwiązanie. Po zakończeniu uczenia przeprowadza się ostateczną ocenę sieci za pomocą niezależnego zbioru testowego.

STATISTICA Automatyczne Sieci Neuronowe oferuje również szereg algorytmów uczących wykorzystywanych do analizy skupień, opierających się na znanym algorytmie Kohonena dla samoorganizujących się map cech.

Analiza i testowanie sieci neuronowej

Po zakończonym uczeniu sieci neuronowej przechodzi się do fazy jej testowania i badania charakterystyk. STATISTICA Automatyczne Sieci Neuronowe prezentuje szeroki zakres statystyk i narzędzi analizy graficznej.

Jeżeli wybrano wiele modeli (sieci i ich zespołów), to wszędzie gdzie to możliwe STATISTICA Automatyczne Sieci Neuronowe wyświetlać będzie wyniki tak, by umożliwić łatwe ich porównywanie (np. rysując krzywe odpowiedzi na jednym wykresie czy umieszczając predykcje z różnych modeli w jednym arkuszu). Jest to szczególnie przydatne do porównywania różnych modeli uczonych na tym samym zbiorze danych.

Wszystkie statystyki generowane są niezależnie dla ciągu uczącego, testowego i walidacyjnego lub też dla ich dowolnej, zadanej przez użytkownika, kombinacji.

Automatycznie obliczane są następujące statystyki: średni błąd sieci, tzw. macierz pomyłek dla klasyfikacji, która podsumowuje ilość prawidłowych i błędnych klasyfikacji, oraz korelacja dla regresji. Sieć Kohonena wyświetlana jest w postaci mapy topologicznej prezentującej aktywacje neuronów podczas wykonywanej analizy.

Wbudowane rozwiązania (własne aplikacje używające STATISTICA Automatyczne Sieci Neuronowe)

Skuteczny i prosty interfejs programu STATISTICA Automatyczne Sieci Neuronowe pozwala na szybkie zbudowanie sieci dla danego problemu.

w niektórych sytuacjach może pojawić się potrzeba wbudowania sieci w inny system (np. W system komputerowy firmy, tak by mógł korzystać z sieci neuronowych).

Nauczona sieć neuronowa może być zastosowana do nowych danych (w celu wyznaczenia przewidywanych wartości) na kilka sposobów: można zachować nauczoną sieć lub zespół sieci, by w przyszłości pobrać ją i wykonać obliczenia na nowych danych (do przewidywania wartości, klasyfikacji i prognozy szeregu czasowego). Można również użyć (opcjonalnego) generatora kodu w języku C czy Visual Basic i obliczenia wykonać używając standardowego środowiska programistycznego, czyli włączyć gotową, nauczoną sieć do własnej aplikacji. Ponadto, pełna funkcjonalność STATISTICA Automatyczne Sieci Neuronowe dostępna jest z innych aplikacji (Java, MS Excel itp.) jjako funkcje COM (Component Object Model). Można na przykład włączyć zautomatyzowaną analizę w STATISTICA Automatyczne Sieci Neuronowe do arkusza MS Excel.

Zestawienie algorytmów uczących

  • metoda najszybszego spadku,
  • metoda gradientów sprzężonych,
  • BFGS,
  • metoda Kohonena,
  • metoda k - średnich dla sieci RBF,

Podręcznik elektroniczny

STATISTICA Automatyczne Sieci Neuronowe zawiera elektroniczny podręcznik obejmujący obszerne omówienie pojęć z zakresu sieci neuronowych (wraz z przykładami). Program wyposażony jest również w obszerny system pomocy kontekstowej dostępnej z każdego okna programu.

Przykładowe zastosowania

Sieci neuronowe mogą być stosowane praktycznie w każdej sytuacji, w której celem jest oszacowanie wartości zmiennej lub dokonanie grupowania na podstawie zaobserwowanych wartości cech lub pomiarów (to znaczy w regresji, klasyfikacji i analizie szeregów czasowych). Warunkiem niezbędnym do stosowania sieci neuronowych jest posiadanie odpowiedniej liczby danych historycznych i istnienie rzeczywistej zależności lub zespołu zależności. Na podkreślenie zasługuje przy tym względna odporność sieci na szumy. Ponadto sieci neuronowe mogą być użyteczne w analizie eksploracyjnej przeprowadzanej w celu poszukiwania grup obiektów (sieci Kohonena).

Wyczerpująca dyskusja teoretyczna celowości zastosowania sieci neuronowych zawarta jest w rozdziale dotyczącym sieci neuronowych w Elektronicznym podręczniku statystyki, dostępnym na serwerze WWW firmy StatSoft. Zamieszczona poniżej lista zawiera wybór reprezentatywnych przykładów. W żaden sposób nie wyczerpuje ona jednak wszystkich dziedzin, w których możliwe jest zastosowanie sieci neuronowych.

  • rozpoznawanie liter a także rozpoznawanie podpisów (np. istnieją urządzenia rozpoznające podpis na podstawie nie tylko wyglądu ale również szybkości ruchu pióra w trakcie składania podpisu, co znacznie utrudnia oszustwa),
  • przetwarzanie obrazów (np. zaprojektowano system monitorujący stacje metra w Londynie i określający stopień zatłoczenia peronów; system działa poprawnie niezależnie od warunków oświetlenia i obecności pociągu),
  • prognozowanie finansowych szeregów czasowych (np. jedna z firm twierdzi, że zwiększyła skuteczność swoich działań w wyniku zastosowania perceptronów wielowarstwowych do prognozowania cen akcji),
  • ocena wiarygodności kredytowej (klasyczny problem oceny ryzyka kredytowego na podstawie danych umieszczonych we wniosku),
  • wybór osób do których kierowana jest akcja reklamowa (np. identyfikacja - na podstawie informacji zgromadzonych w bazie danych - osób skłonnych do pozytywnej odpowiedzi na nadsyłane oferty),
  • rozpoznawanie i ocena jednostek chorobowych (np. rozpoznawanie napadów padaczkowych, ocena wielkości nowotworu prostaty),
  • monitorowanie stanu urządzeń (np. rozpoznawanie sytuacji awaryjnych na podstawie wibracji lub sygnałów akustycznych, co umożliwia przedsięwzięcie działań zaradczych),
  • generowanie mowy na podstawie tekstu pisanego (np. słynny projekt Nettalk, który polegał na nauce tworzenia fonemów na podstawie tekstu pisanego),
  • prognozowanie ”chaotycznych” szeregów czasowych (wielu badaczy potwierdziło dobre możliwości prognostyczne w oparciu o dane w postaci chaotycznych szeregów czasowych),
  • sterowanie procesami (np. monitorowanie urządzeń produkcyjnych i regulowanie na bieżąco parametrów procesu),
  • sterowanie pracą silnika (określanie zużycia paliwa na podstawie wskazań czujników oraz przeprowadzanie regulacji - jest to forma sterowania procesem),
  • analiza języka (np. użycie sieci uczonych bez nadzoru w celu identyfikacji fraz kluczowych oraz słów w lokalnych językach południowoamerykańskich).
  • systemy czasu rzeczywistego wyzwalające komory pęcherzykowe przy detekcji cząstek elementarnych wysokiej energii. Sieci neuronowe dobrze znoszą szum i nadają się do zastosowań z dużym poziomem szumu losowego (poissonowskiego).

Opcjonalne rozszerzenie - Generator kodu

Generator kodu to opcjonalne rozszerzenie programu pozwalające na włączanie do własnych programów rozwiązań otrzymanych w STATISTICA Automatyczne Sieci Neuronowe (SANN). Otrzymuje się tu sieć neuronową w postaci kodu w standardowym języku programowania C, który można kompilować i dołączać do własnych programów. Rozszerzenie przeznaczone dla użytkowników, którzy chcieliby wysoce zoptymalizowane procedury otrzymane za pomocą STATISTICA Automatyczne Sieci Neuronowe wykorzystać na własny użytek w istniejących aplikacjach rozwiązujących rutynowe zadania analityczne.

 
ContentKontakt

StatSoft Polska Sp. z o.o.
ul. Kraszewskiego 36,
30-110 Kraków,
Telefon: +48 12 428 43 00
Telefon: +48 (601) 41 41 51
Faks: +48 12 428 43 01
e-mail: info@statsoft.pl