Wątek przeniesiony 2014-05-08 19:10 z C/C++ przez Shalom.

Sieć neuronowa i pierwistkowanie.

0

Witam wszystkich,
mam za zadanie napisać sieć neuronową, która potrafiła będzie liczyć pierwiastek. Bez większego problemu udało mi się napisać perceptron wielowarstwowy, który umiem nauczyć mnożenia, czy też dzielenia, wykorzystuję wtedy funkcję liniową i jej pochodną jako funkcje aktywacji. Jakiej funkcji powinienem użyć by nauczyć moją sieć pierwiastkować? Liczby przedstawiam w postaci dziesiętnej jako wejście i wynik w procesie nauki. Sieć ma trzy warstwy i po jednym neuronie w warstwie wejściowej i wyjściowej, oraz dowolną liczbę neuronów w warstwie ukrytej.

1

Pamiętam że mój prowadzący ze studiów jara się tym tematem, może to Ci pomoże?
http://home.agh.edu.pl/~horzyk/pracedoktorskie/adrianhorzykpracadoktorska.pdf
Strona 44

0

Dzięki za odpowiedź, przeczytałem o ciekawych rzeczach w tym dokumencie, ale zapomniałem dodać, że moja sieć to musi być MLP, czyli perceptron wielowarstwowy, muszę użyć treningu z nauczycielem oraz muszę użyć wstecznej propagacji błędu. Mimo wszystko próbowałem zastosować przedstawioną funkcję, ale niestety wagi bardzo szybko uciekają do nieskończoności, dobór współczynnika nauki nie pomaga.

0

Udało mi się rozwiązać ten problem, wystarczy użyć liniowych funkcji aktywacji.

0
limac92 napisał(a):

Udało mi się rozwiązać ten problem, wystarczy użyć liniowych funkcji aktywacji.

Ale to jest bez sensu, bo żeby sieć coś zwróciła musisz przemnożyć dane wejściowe przez wag. Czyli innymi słowy, żeby "nauczyć" sieć mnożyć musisz wcześniej już tą operację umieć wykonać i ją zastosować.

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