Analizator N-Expert
W stronę sztucznej inteligencji
N-Expert jest zaawansowanym narzędziem służącym do analizowania i prognozowania przebiegu różnych zjawisk, dla których zbudowanie ścisłych modeli matematycznych jest bardzo trudne lub wręcz niemożliwe. Mogą to więc być zjawiska społeczne, ekonomiczne lub nawet przyrodnicze, czy techniczne, o dużym stopniu złożoności.
Oprogramowanie stanowi efekt naszych kilkunastoletnich doświadczeń w dziedzinie prognozowania przy użyciu sztucznych sieci neuronowych i jest bezpośrednim rezultatem projektu "System kognitywny wspomagający tworzenie prognoz, w oparciu o technologię sztucznych sieci neuronowych", realizowanego w ramach Sektorowego Programu Operacyjnego Wzrost konkurencyjności przedsiębiorstw, lata 2004-2006, Priorytet 1 Rozwój przedsiębiorczości i wzrost innowacyjności poprzez wzmocnienie instytucji otoczenia biznesu, Działanie 1.4 Wzmocnienie współpracy między sferą badawczo-rozwojową a gospodarką.
Pierwowzór systemu N-Expert stanowił wcześniejszy N-Predictor, za którego stworzenie zostaliśmy zakwalifikowani do ścisłego finału konkursu "Innovator Małopolski 2006", zorganizowanego przez Centrum Transferu Technologii przy Politechnice Krakowskiej. W rezultacie przeprowadzonych w ramach konkursu audytów uzyskaliśmy "Opinię o Innowacyjności Technologii". Doceniono przede wszystkim możliwość praktycznego wykorzystania N-Predictora do prognozowania i modelowania procesów, dla których nie ma analitycznych modeli matematycznych.
Prezentacja wyników prognozowania
Opis systemu
N-Expert wykorzystuje technologię sztucznych sieci neuronowych typu perceptronowego, uczonych wieloetapowo, przy użyciu zmodyfikowanej metody wstecznej propagacji błędów. Trenowane sieci zostały opisane kilkoma istotnymi parametrami, które są na bieżąco wyliczane i służą do sterowania procesem treningu.
System daje użytkownikowi stosunkowo niewielkie możliwości wyboru architektury sieci neuronowych, metod ich uczenia oraz parametrów pracy. Nie jest to jednak wcale jego wadą, gdyż duża swoboda manewru, jaką oferują niektóre z rozwiązań dostępnych na rynku, wynika zwykle z niemożności zaproponowania poprawnych wartości parametrów, zapewniających skuteczne działanie sieci. N-Expert ustala je automatycznie dzięki specjalnie przez nas opracowanemu i sprawdzonemu w praktycznych zastosowaniach algorytmowi RDO (Reduced Data Optimization).
Schemat uczenia sztucznych sieci neuronowych
Z uwagi na to, że proces uczenia sieci neuronowych jest zazwyczaj długotrwały i - w zależności od stopnia złożoności problemu - może trwać nawet setki godzin, skuteczne wykorzystywanie oprogramowania neuronowego wymaga nierzadko użycia bardzo szybkich komputerów, co oczywiście wiąże się z wysokimi kosztami. Z tego względu w systemie N-Expert zastosowano specjalną technologię rozdzielania obliczeń pomiędzy zwykłe komputery klasy PC, pracujące w sieci lokalnej (grid computing). Tak jak obrazuje to poniższy schemat, specjalny moduł nadzorujący, który komunikuje się bezpośrednio z bazą danych, dystrybuuje obliczenia pomiędzy poszczególne stacje robocze, gdzie pracują tzw. klienci NNA (Neural Network Advisor). Otrzymują oni odpowiednie zadania do wykonania i są ustawicznie kontrolowani przez moduł nadzorujący, przy czym cała komunikacja opiera się na technologii D-COM.
Architektura systemu
Wbrew niektórym obiegowym opiniom nie jest wcale tak, że do prognozowania wystarczy sam, lepszy lub gorszy, symulator sieci neuronowych. W istocie niezwykle ważne jest to, czego używa się do ich uczenia, a także to, co robi się potem z uzyskanymi wynikami. Dlatego N-Expert zawiera rozbudowane narzędzia przetwarzania wstępnego oraz analizowania rezultatów przewidywań.
Schemat przetwarzania danych
Korekcja danych
Jakość prognoz w ogromnym stopniu zależy od wiarygodności danych, które zostały użyte w procesie uczenia sieci. Wydaje się więc, że dane te powinny być po prostu prawdziwe. W praktyce sytuacja nie jest jednak tak jednoznaczna. Po pierwsze, dane na ogół obarczone są różnymi błędami pomiarowymi, wobec czego nie oddają wiernie rzeczywistości. Po drugie, procesy rzeczywiste zawierają zazwyczaj pewne elementy przypadkowości, które z definicji nie podlegają prognozowaniu, ale też nie powinny być używane do trenowania sieci neuronowych, gdyż niczego nie uczą, a jedynie wprowadzają niepotrzebny zamęt. Tego rodzaju nieprawidłowości niwelowane są tak, by odpowiadały one raczej „temu, co powinno być”, a niekoniecznie „temu, co było” (jeśli oczywiście mechanizm nieprawidłowości jest znany i wykracza poza stosowany paradygmat).
Korekcja danych
Analiza składowych głównych
Dane, które podaje się na wejścia sieci neuronowych, na ogół są ze sobą w pewnym stopniu skorelowane. Stosując dobrze znaną statystykom metodę składowych głównych, można zbudować z nich nowe zmienne, nie wykazujące już korelacji. Operacja ta polega de facto na wyborze w odpowiedniej przestrzeni wektorowej nowej bazy, ortogonalnej w sensie iloczynu skalarnego wykorzystywanego do obliczania korelacji. Użycie nowych zmiennych poprawia jakość prognoz, jednak przede wszystkim operowanie składowymi głównymi pozwoli uporządkować je od najbardziej do najmniej znaczących. Ponieważ podawanie na wejścia sieci neuronowych zbyt wielu danych niejednokrotnie pogarsza jakość prognoz, można odrzucać te składowe, które wnoszą relatywnie mało informacji, powodując jedynie zbędny szum.
Analiza składowych głównych
Transformaty Fouriera i falkowa
Prognozowany proces z założenia daje się opisać przy pomocy funkcji czasu, której dokładna postać jest oczywiście nieznana. Jeżeli spełnione są pewne dość naturalne założenia o charakterze matematycznym, funkcję taką można przedstawić w postaci szeregu funkcji stanowiących bazę ortonormalną w odpowiedniej przestrzeni Hilberta. Doskonale znanym przykładem jest tu oczywiście rozwinięcie w szereg Fouriera. W przypadku, gdy prognozowana wielkość wykazuje pewną periodyczność, która z kolei (znacznie wolniej) ewoluuje w czasie, można wyliczyć współczynniki szeregu dla przeszłych okresów i prognozować zachowanie tych współczynników. W fizyce podejście takie nazywa się przybliżeniem adiabatycznym. Oczywiście, w zależności od problemu, należy tak dobrać funkcje (mogą to być zwykłe funkcje trygonometryczne, ale także np. falki), by cały szereg był możliwie szybko zbieżny.
Transformata falkowa
Uczenie sieci
Stworzona przez naszą firmę metoda uczenia sieci neuronowych RDO stanowi udoskonalenie algorytmów: propagacji wstecznej ze zmiennymi współczynnikami oraz Parka-Yuna-Kima, polegające na tym, że do dostrajania parametrów używa się błędów popełnianych przez sieć nie tylko na zestawach uczących, lecz również na zestawach służących do jej testowania. Nie przyspiesza to wprawdzie procesu, jednak znacznie poprawia możliwości predykcyjne układu, o czym wyraźnie świadczą rezultaty uzyskiwane przez nas w praktyce. Oprócz tego uczenie jest przez cały czas automatycznie monitorowane przez analizę dwóch parametrów charakteryzujących proces: tzw. niedoskonałość i zgodność sieci. Jeśli ich wartości zaczynają się zachowywać w sposób wysoce nieprawidłowy, sieć jest likwidowana, a w jej miejsce generuje się nową.
Konfiguracja parametrów uczenia
Analiza błędów, ryzyko i korekcja wyników
Jak wiadomo, przewidywania nie przedstawiają żadnej wartości, jeśli nie jest znana ich dokładność. W przypadku używania sieci neuronowych można wprawdzie stosukowo łatwo oszacować metodami statystyki matematycznej błąd prognozy, lecz na ogół nie przekłada się on w prosty sposób na najbardziej interesującą dla użytkownika wielkość, to znaczy realny koszt, który musi on ponieść w efekcie nietrafności przewidywań. Wprowadza się zatem tzw. funkcję kary, która mierzy ów koszt, a następnie koryguje się prognozę minimalizując karę. Korekcja taka ma miejsce oczywiście tylko wtedy, gdy funkcja kary jest niesymetryczna.
Funkcja kary
Aby dowiedzieć się więcej, zobacz również stronę poświęconą sieciom neuronowym oraz nasze publikacje. Jeśli jesteś zainteresowany zakupem oprogramowania, skontaktuj się z Działem Sprzedaży.
Rozwój oprogramowania N-Expert został częściowo sfinansowany z funduszu Unii Europejskiej SPO WKP 1.4.1.