Sieci neuronowe

Własne projekty oraz implementacje.

Moderator: xxSlayeRxx

Sieci neuronowe

Sponsor

Sponsor
 

Sieci neuronowe

Postprzez DariuszR » So paź 05, 2013 4:00 pm

Witam,

Pragnę przedstawić Państwu jeden z własnych projektów. Dla własnych potrzeb napisałem sobie 3 warstwową sieć neuronową z algorytmem uczenia back propagation. Sieć ta odwzorowuje poniższy rysunek:

Obrazek

Projekt ten jest hostowany na sourceforge.net i jest na licencji GNU LGPL v. 2. A oto adres:
https://sourceforge.net/projects/neurallibs/

Bibliotekę napisałem z myślą o realizacji programów opartych o sztuczną inteligencję. Zastosowana sieć neuronowa składa się z trzech warstw: wejściowa, ukryta i wyjściowa. Biblioteka dostępna w C# (.NET 3.5), JAVA oraz Free Pascal. Zadbałem o czytelność kodu oraz zgodność z SOLID. Stąd też podział na klasy: data reader, sieć neuronowa, trener. Sieć obsługuje funkcje aktywacji: liniowa, sigmoidalna unipolarna oraz sigmoidalna bipolarna. Można zapisywać nauczoną sieć neuronową za pomocą serializacji binarnej (C# i JAVA), w przypadku FPC sieć zapisuje wagi do pliku CSV. Dane treningowe przechowywane są również w CSV.

Biblioteka obsługuje zestawy danych: treningowy (do uczenia sieci), walidacyjny (sprawdzanie generalizacji) oraz testowy (do ogólnej oceny sieci). Narazie brak dokumentacji ale dołączyłem przykładowe demo XOR. Zastosowana trzy warstwowa sieć neuronowa powinna wystarczyć do rozwiązania większości postawionych problemów. Może sprawdzić się do rozwiązywania problemu aproksymacji funkcji wielu zmiennych, predykcji szeregów czasowych czy rozpoznawania wzorców.

W przyszłości zamierzam zaimplementować jeszcze sieci SOM, RBF oraz Hopfielda.

Pozdrawiam i życzę miłej zabawy.
DariuszR
Member
 
Posty: 43
Dołączył(a): So paź 05, 2013 3:38 pm

Sieci neuronowe cz. 2

Postprzez DariuszR » So paź 12, 2013 3:24 pm

Do stworzonej przeze mnie biblioteki postanowiłem napisać jeszcze program do symulacji sieci neuronowych MLP. Program ten jest dostępny pod tym adresem:

https://sourceforge.net/projects/neural ... simulator/

Dostępny razem ze źródłami C# dla SharpDevelop 3.2 i jest na licencji GNU GPL v. 2.

Normalnie do pracy z siecią neuronową MLP należy używać znormalizowanych danych wejściowych w przedziale od -1 do 1, dotyczy to również danych wyjściowych, te jednak mogą zostać znormalizowane do przedziału od -1 do 1 lub 0 do 1. Ta normalizacja ma związek z zastosowanymi funkcjami aktywacji: sigmoidalna oraz sigmoidalna bipolarna.

Przedstawiony przeze mnie program umożliwia wprowadzenie dowolnych danych, które następnie zostaną znormalizowane automatycznie i później zdenormalizowane, można również opisywać wejścia i wyjścia, co jest dużym ułatwieniem i czyni program uniwersalnym do wielu zastosowań.

Dysponując odpowiednimi danymi treningowymi można symulować wielkości zależne od wielu zmiennych, przy czym wymagany jest zestaw treningowy, walidacyjny i testujący służą sprawdzeniu poprawności prognoz. Nie przewiduję rozbudowy programu o sieć neuronową z więcej niż jedną warstwą ukrytą.
DariuszR
Member
 
Posty: 43
Dołączył(a): So paź 05, 2013 3:38 pm

Sieci neuronowe cz. 2

Sponsors

Sponsor
 


Powrót do Projekty i kody źródłowe

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości