Tworzę narzędzie do przewidywania czasu i kosztu projektów oprogramowania na podstawie danych z przeszłości. Narzędzie wykorzystuje do tego sieć neuronową i jak dotąd wyniki są obiecujące, ale myślę, że mogę znacznie więcej optymalizować, zmieniając właściwości sieci. Wydaje się, że nie ma żadnych zasad ani nawet wielu dobrych praktyk, jeśli chodzi o te ustawienia, więc jeśli ktoś z doświadczeniem mógłby mi pomóc, bardzo bym to docenił.Ustawienia sieci neuronowej do szybkiego szkolenia
Dane wejściowe składają się z szeregu liczb całkowitych, które mogą wzrosnąć tak wysoko, jak użytkownik chce jechać, ale większość z nich będzie mniejsza niż 100 000 osób. Niektóre będą miały zaledwie 1. Są to dane, takie jak liczba osób na projekcie i koszt projektu, a także szczegóły dotyczące jednostek baz danych i przypadków użycia.
Zawiera 10 wejść i 2 wyjścia (czas i koszt). Używam Resilient Propagation do szkolenia sieci. Obecnie ma: 10 węzłów wejściowych, 1 ukrytą warstwę z 5 węzłami i 2 węzły wyjściowe. Trenuję, aby uzyskać poniżej 5% wskaźnika błędu.
Algorytm musi działać na serwerze internetowym, więc włożyłem środek, aby przerwać trening, gdy wygląda na to, że nigdzie się nie wybiera. Jest to ustawione na 10 000 iteracji szkoleniowych.
Obecnie, gdy próbuję go trenować z pewnymi danymi, które są nieco zróżnicowane, ale mieszczą się w granicach tego, czego oczekujemy od użytkowników, potrzeba dużo czasu, aby trenować, osiągając limit 10.000 powtórzeń. i jeszcze raz.
Po raz pierwszy użyłem sieci neuronowej i nie wiem, czego się spodziewać. Jeśli mógłbyś podać mi jakieś wskazówki dotyczące tego, jakich ustawień powinienem używać dla sieci i dla limitu iteracji, bardzo bym to docenił.
Dziękujemy!
Dzięki za wszystkie informacje! 1. Myślałem o normalizacji wejść, ale nie wiem jak to zrobić, gdy wartość nie ma maksimum, a niektóre wartości mogą się tak bardzo różnić. 2. Próbowałem z 20 ukrytymi neuronami i dla niektórych danych trwało ponad 5 godzin zamiast sekund. Wyglądało na to, że ponad 10 nie było dobrze. 4. Liczba zestawów danych zależy od liczby użytkowników. Używamy około 5. 5. Używamy szkieletu sieci neuronowej o nazwie Encog, przyjrzę się zmianie pędu, ale nie wiem Jeśli jest to możliwe. – danpalmer
6. Ponownie, nie wiem, w jaki sposób ramy zajmują się szkoleniami online, zajrzę się tym. 7. Dane są ciągłe i ustawiłem Linearne aktywacje we wszystkim, ponieważ wyobrażam sobie, że wyniki powinny się różnić w zależności od wyników. 8. Podobnie jak w punkcie 2, stwierdziłem, że przy dwóch warstwach uderzał on w mój nałożony limit o wiele więcej i zabierał więcej czasu na bieganie. – danpalmer
Lol. Powinienem też być w łóżku, jutro w College. Dodałem trochę normalizacji. Nie jest świetny, ale wszystkie wartości zestawu danych będą zawierać się w przedziale od 0 do 1, a prognozy nie będą dużo wyższe. Z jednej strony zwiększyłem prędkość treningu o 18 000%. Będę kontynuował testowanie i spróbuję wprowadzić inne środki, ale na razie jest to świetny wynik. Bardzo ci dziękuje za pomoc! – danpalmer