Implementacja sieci neuronowych w C++

0

Witam.
Czy ktoś z Was pisał już kiedyś coś w C / C++ implementujące mechanizmy znane ze sztucznej inteligencji ? Alogorytmy genetyczne, sieci neuronowe, automaty komórkowe ? Szukam pomysłów i uwag a nie konkretnych pełnych rozwiązań (w końcu sam mam głowę powysilać :d ) Dopiero zaczynam ten temat i chciałbym się dowiedzieć np. jakie struktury czy algorytmy mogą być pomocne w pisaniu tego typu programów. Z góry dziękuję za wszelką pomoc i uwagi.
Pozdrawiam

0

nie znam sie na tym , ale wiem że do sztucznej inteligencji bardzo przydatne są grafy , algorytmy przeszukiwania grafów ( w głąb , wszerz ) , Roy-Warshall ( obliczanie domknięcia przechodniego grafu ) , Floyd ( szukanie optymalnej drogi ) , grafy można "trzymać" w tablicy 2-wymiarowej lub za pomoca slownika węzłów . Wszystko to i wiele więcej jest w książkach o grafach , które jak chcesz sie tymi rzeczami zajmowac chyba warto przeczytać .

0

Siec neuronowa realizowana przez nature wszyskie do wszystkich, matematycznie, jeden do są siadow, bliskich dalszych, róźne typy Widać ze masz blade pojęcie na ten temat bo realizacja matematyczna znacznie się róźni od tej którą znamy z biologi, nauka sieci polega na dokonywaniu kolejnych przybliżeń, jeśli sieć sie nie myli to uchyb błędu = 0 jeśli jest wbłędzie zawiera sie w przedziale

0

Dziękuję bardzo za pomoc... przydadzą mi się uwagi (szczególnie dotyczące "lektur"). Na samej teorii sieci nauronowych, algorytmów genetycznych itp trochę się znam (w końcu egzamin za pierwszym podejściem zmęczyłem :-) ) ale chodziło mi właśnie o praktykę implementacji założeń teoretycznych. W tym momencie jestem na etapie przygotowywania sobie materiałów do pracy inżynierskiej dotyczącej sytezy układów kombinacyjnych za pomocą algorytmów genetycznych i na pewno będę musiał skrobnąć jakiś programik ilustrujący działanie tychże algorytmów... dlatego szukam pomysłów na implementację..

0

jesli jestes zainereswany praktyczna implementacja to napisz do mnie, zrobilem ja co prawda w Delphi ale chyba uda ci sie cos podejrzec wzglednie przetworzyc na C...

ps. mowie o sieci wielowarstwowej, nieliniowej uczonej metoda delta według algorytmy backpropagation

0

Poszykaj w starych ENTERAch tam jes w basicu

0

UnDe@D
jak walniesz faq to daj na serwis - mam wrazenie, ze wiecej osob bylo by tym zainteresowanych (ja tez)

0

na początek
http://alphas.if.uj.edu.pl/~pbialas/NN/nn.html

ok to wezmne sie ale po sesji czyli za 2, 3 tyg

0

Jesli chodzi o tego typu klimaty to juz od dawna chodzi mi po glowie (pomalu dojrzewa) projekt symulujacy ewolucje. Ogolne zalozenia sa takie zeby wpuscic w jakies okreslone srodowisko kilka gatunkow (takie tam sobie mikrobki) i zeby walczyly o przetrwanie + rozmnazaly sie przekazujac swoje cechy potomkom , jest ktos zainteresowany ??
jak tak to ponizej moje GG :)

0

Ogolne zalozenia sa takie zeby wpuscic w jakies okreslone srodowisko kilka gatunkow (takie tam sobie mikrobki) i zeby walczyly o przetrwanie + rozmnazaly sie przekazujac swoje cechy potomkom...

... jesli jeszcze kogos interesuja takie klimato-zabawy :-) to polecam rzucic okiem na to :
http://sourceforge.net/projects/aiplanet/
... projekt planety i zycia na niej :-) [glowa] :-[ zabija

0

możesz przeglądnąć ten kod do rozpoznawania liter za pomocą jednokierunkową wielowarstwową siecią neuronową MLP z sigmoidalnym modelem neuronu: kod

0

Heh, nie wiem czy zwróciłeś uwagę na datę ostatniego postu 25-06-2003 01:51 mineły jakieś hmm? trzy lata.

0

ale ten czas leci nie? :>
a tak serio to:

  1. zdaje sobie sprawe ile wynosi różnica: 2006-2003=?
  2. osoba zakładająca wątek z pewnością znalazła to czego szukała, jednak następna osoba może szukać tego samego więc nic nie stoi na przeszkodzie żeby coś dopisać :)
0
czarownik napisał(a)

ale ten czas leci nie? :>
a tak serio to:

  1. zdaje sobie sprawe ile wynosi różnica: 2006-2003=?
  2. osoba zakładająca wątek z pewnością znalazła to czego szukała, jednak następna osoba może szukać tego samego więc nic nie stoi na przeszkodzie żeby coś dopisać :)

Odkopuje ten jakże stary temat zarazem spełniając wróżbę przedmówcy ;)

Temat mojej pracy dyplomowej: Aplikacja Internetowa do archiwizacji i weryfikacji multimedialnych danych osobowych.

Ta weryfikacje danych osobowych chciałbym zaimplementować za pomocą sieci neuronowych.

Potrzebuje jakiś przykładów rozpoznawania obrazów i dźwięków.

Ktoś coś pomoże?

Byłbym wdzięczny.

P.S. to co już tutaj zostało zamieszczone sobie przestudiuje.

0

A nie mówiłem? ;)
Ale nie mam satysfakcji... :P

Ja na swoją pracę dyplomową pisałem "Rozpoznawanie przemieszczających się osób na podstawie sygnału wideo".
Używałem sieci neuronowych to klasyfikacji kształtu.

0

Czemu sieci neuronowe? Do klasyfikacji lepiej wziąć SVM. Skutecznością miażdży sieci neuronowe, choć trochę trudniejsza matematyka.

0

wydaje mi się że jeżeli masz gotową strukturę sieci i wyznaczone współczynniki to sama implementacja
jest bardzo prosta bo sprowadza się do kilku równań wchodzących na jakąś funkcję,
sieć możesz nauczyć (czyli wyznaczyć współczynniki) w jakimś pakiecie matematycznym np. matlab (jest też jakiś darmowy odpowiednik),
bardzo dobry prosty i techniczny wstęp do sieci jest w pomocy do matlaba,
jeżeli chcesz uczyć sieć w C++ to sori, ja odpadam, nie jestem matematykiem

0

Witam wszystkich. Mnie dzisiaj natchło i napisałem w C++ programik w którym na wejście podajemy max 128 wejść (żeby podać więcej niż 2 trzeba zmieniać kod, bo mi się nie chciało tego pisać [green] ) i tyle samo wag. Jak przejrzysz kod, wszystko będzie wiadome (przynajmniej tak myślę, starałem się pisać elegancko :P)

LINK: http://www.eupload.pl/pfiles/310/artificial%20neuron.zip
Zapraszam do pobierania ;)

PS. Tak, wiem że temat ma pięć lat, ale komuś innemu szukającemu w google lub przeglądającemu forum może się przydać.

Pozdrawiam, oskar1233

0

spoko, przejrze kodzik i za dwa lata odpisze Ci ze buga znalazlem ;)))

0

Ok, nie ma sprawy ;]

0

A kurde, ale się popisałeś.
Od policzenia średniej ważonej do sieci neuronowej jeszcze daleko.
Nie, żebym potępiał, ale po co ten post ? (zwłaszcza w tym dziale)

0
oskar1233 napisał(a)

Witam wszystkich. Mnie dzisiaj natchło i napisałem w C++ programik w którym na wejście podajemy max 128 wejść (żeby podać więcej niż 2 trzeba zmieniać kod, bo mi się nie chciało tego pisać [green] ) i tyle samo wag. Jak przejrzysz kod, wszystko będzie wiadome (przynajmniej tak myślę, starałem się pisać elegancko :P)

LINK: http://www.eupload.pl/pfiles/310/artificial%20neuron.zip
Zapraszam do pobierania ;)

PS. Tak, wiem że temat ma pięć lat, ale komuś innemu szukającemu w google lub przeglądającemu forum może się przydać.

Pozdrawiam, oskar1233

Witam,
bylbym wdzieczny za ponowne umieszczenie kodu prosze :D

0

Jeśli mowa o sieciach neuronowych i C++, to można jak najbardziej. Sam nie tak dawno robiłem na zaliczenie: http://www.sxar.pl/?p=programy_naukowe w dodatku z wizualizacją w QT.
Struktura danych jest w tym przypadku banalna: sieć składa się z warstw neuronów będących zwykłymi alokowanymi tablicami, każdy neuron zaś posiada tablicę wejść oraz 1 wyjście. Do tego dochodzą jeszcze specyficzne dla tej sieci miary sąsiedztwa i ocena poprawności bodźców. Jestem zdania, że najlepiej najpierw zrobić coś maksymalnie prostego, ale sprawnego, a dopiero potem można się zastanawiać nad ulepszaniem :)
</url>

0

Witam.

Wytrenowałem sieć neuronową (feed-forward backpropagation network) w Matlab 7.1
i chciałbym użyć jej w programie C++.

Próbowałem zaimplementować taką sieć samemu odwzorowując bloczki simulinka i kopiując wartości wag i biasów:

  • dla sieci złożonej z 5 neuronów odpowiedzi są prawidłowe,
  • ale dla sieci na przykład z 20 neuronów odpowiedzi są całkowicie błędne.

Zrobiłem to w ten sposób:
Dla neuronu w warstwie pierwszej obliczm sumę wektora wag razy wektor wejść, do tego dodaję bias, i funkcja aktywacji sigmoidalna = 1 / (1 + exp(-S)).
Dla neuronu w wartswie drugiej obliczm sumę wektora wag razy wektor wyjść z warstwy pierwszej, dodaję bias i ponownie do funkcji aktywacji.

Czy zna ktoś sposób aby zaimplementować taką sieć z Matlaba do C++ (ewentualnie innego języka programowania)

Będę wdzięczy za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1