Witam,
chciałbym samodzielnie zaimplementować sztuczną sieć neuronową obiektowo w C++. Podstawy teoretyczne (w tym obliczanie pochodnych etc.) mam opanowane bardzo dobrze. Niestety w programowaniu nie jestem już tak mocny jak w matematyce i dlatego mam prośbę do was o pomoc. Chodzi mi jak najlepiej byłoby zrobić? Jakie zrobić klasy, co dana klasa powinna zawierać, jak je połączyć, jakich mechanizmów użyć? etc.
W necie znalazłem kilka bibliotek open source ale one są strasznie rozbudowane i ciężko mi je analizować :(. Chciałbym zrobić coś swojego ale znacznie mniej rozbudowanego.
Czy miałby może ktoś dostęp do jakiś materiałów etc. które opisują tylko sam sposób takiej implementacji niekoniecznie z kodem - chociaż to byłoby również bardzo pomocne w analizie :).
Ważne jest również, żeby było to opisane w C++ bo póki co nie znam innego języka programowania (poza C, które niewiele się różni od C++ poza obiektowością).
Póki co mam tylko wstępną koncepcję jak zrobić klasę pojedynczego neuronu :) która przechowywałaby wskaźnik do tablicy z wagami, bias, wynik wyjścia neuronu (czyli f(z sumy wag*wejście+bias)) -> oczywiście byłoby kilka wzorów na funkcję aktywacji (liniowa, sigmoidalna, bipolarna, sin/cos etc.) i odpowiednio pochodne do nich.
Nie wiem natomiast jak połączyć te wszystkie neurony w danej warstwie i w całej sieci :(. Nie wiem w którym miejscu napisać funkcję, która by modyfikowała wagi (uczyła sieć) i jak ją zorganizować itd.
Potrzebuję jakiegoś planu na zrobienie tego :/
Znalazłem jakąś pracę, że należałoby zrobić klasę neuron, warstwa i sieć ale bez większych szczegółów :(.
Bardzo proszę o pomoc osoby, które już robiły podobne projekty lub wiedzą jak mi pomóc.
pozdrawiam i z góry dziękuję!