Próbuję przybliżyć funkcję sinus() za pomocą sieci neuronowej, którą sam napisałem. Przetestowałem moją sieć neuronową na prostym problemie OCR i zadziałało, ale mam problem z zastosowaniem go do przybliżonego sinusa(). Mój problem polega na tym, że podczas treningu mój błąd zbiega się dokładnie na 50%, więc domyślam się, że jest całkowicie losowy.Funkcja aproksymująca z siecią neuronową
Używam jednego neuronu wejściowego dla danych wejściowych (od 0 do PI) i jednego neuronu wyjściowego dla wyniku. Mam jedną ukrytą warstwę, w której mogę zmieniać liczbę neuronów, ale obecnie próbuję około 6-10.
Mam wrażenie, że problem polega na tym, że używam funkcji transferu sigmoidowego (która jest wymagana w mojej aplikacji), która wyprowadza tylko od 0 do 1, podczas gdy wynik dla sinusa() wynosi od -1 do 1. Aby spróbować rozwiązać ten problem, próbowałem pomnożyć wynik przez 2, a następnie odjąć 1, ale to nie rozwiązało problemu. Myślę, że muszę przeprowadzić jakąś konwersję gdzieś, żeby to zadziałało.
Wszelkie pomysły?
Osoby zainteresowane zapoznaniem się z wdrożeniami badawczymi aproksymacji opartej na NN, zobacz mój [artykuł badawczy na temat obliczeń przybliżonych] (https://www.academia.edu/20201007/A_Survey_Of_Techniques_for_Approximate_Computing), które mogą szczegółowo odpowiedzieć na twoje pytanie. – user984260