Aktualności:

Czy uczestniczysz w Projekcie miesiąca?

Menu główne

Impact Earth

Zaczęty przez goofyx, 24 Luty 2017, 23:04

goofyx

Czołem kamraci.
Od jakiegoś czasu wgłębiam się w symulację uderzenia komety/asteroidy w Ziemię i dokumentacji do niej:  http://purdue.edu/impactearth/Content/pdf/Documentation.pdf
Nie ukrywam, że przydałoby mi się wsparcie kogoś mądrzejszego w "tłumaczeniu" naukowego prawie bełkotu na zwykły prosty język polski ( może być C++ ;) ).
Jest ktoś na pokładzie o takich zdolnościach i możliwościach?

Rysiu

Ahoj!

Podbiję temat, bo szkoda aby spadł.
Jak widzisz może być ciężko z czasem, bo trzeba by się wgłębić.
Na jakie potrzeby tego potrzebujesz? Tak jak dział sugeruje chodzi coś o projekt BOINC?

goofyx

Cytat: Rysiu w 26 Luty 2017, 11:44
Ahoj!

Podbiję temat, bo szkoda aby spadł.
Jak widzisz może być ciężko z czasem, bo trzeba by się wgłębić.
Na jakie potrzeby tego potrzebujesz? Tak jak dział sugeruje chodzi coś o projekt BOINC?
Mam taki pomysł aby temat "Impact Earth" był podzielony na 2 boincowe części:
1. NCI - która przeliczy kilka milionów zestawów rożnych parametrów wejściowych i da wyniki zgodne/porównywalne z symulatorem na stronie autorów
2. CPU - która będzie siecią neuronową uczącą się na podstawie wyników z NCI.
Dzięki temu, że będzie stały dopływ danych z NCI będzie się czego uczyć i na czym sprawdzać wyniki sieci neuronowej.
Dodatkowo plan jest taki, aby aplikacja CPU (czyli sieć neuronowa) mogła przetestować tyle różnych konfiguracji ile się da w tym temacie,czyli np.: :
- ilość warstw ukrytych
- ilość neuronów w powyższych warstwach
- różne funkcje aktywacji dla każdej warstwy
itp

Docelowo chciałbym uzyskać 2 zestawienia danych/wykresów:
1. NCI - co nas zniszczy a co nie itp
2. CPU - jaka sieć i w jakiej konfiguracji najlepiej i najszybciej poradziła sobie z tym problemem

Jeśli uda się to zrobić w ten sposób to nie ukrywam, że następne pomysły z takim kierunku.

Rysiu

Rozumiem. Nie jestem jednak czy będzie idealnie jak trzeba :attack:

1. Dlaczego pierwsza faza to NCI? Przecież możesz lokalnie (ewentualnie na kilku komputerach) z pełnym wykorzystaniem CPU policzyć co trzeba i ją całkowicie wyeliminować nawet z BOINC.

2. Z siecią neuronową może się udać. Nie jestem pewny ile danych na wejściu tej sieci będziesz podawać (Ty pewnie już wiesz?).

Zauważ jednak, że przynajmniej z tego co ja rozumiem to aby rozpocząć punkt 2 musisz mieć przynajmniej jakoś na oko ukończony punkt 1, bo chyba chcesz sieć neuronową uczyć tym co trzeba, a nie "częścią" tego co trzeba.

Tutaj jest też taki zonk, że de facto uczysz sieć neuronową algorytmem i za bardzo znaczenia praktycznego to chyba nie ma (?). Ta sieć może jedynie zbliżyć się do wyników algorytmu klasycznego. Na dodatek wyciąganie jakichkolwiek informacji o problemie z sieci neuronowej jest mega trudne (jakieś metody co prawda istnieją). W takim algorytmie jak opisano w tej publikacji to zmienisz jeden warunek IF, przez co algorytm może dawać znacznie lepsze (tj. bardziej rzeczywiste) wyniki - masz znacznie lepsze możliwości modelowania. W sieci neuronowej X, którą trenowano danymi D na podstawie algorytmu A (gdzie jest IF nie zmieniony) jednak nie dojdziesz co zrobić aby dostosować tą sieć aby działała maksymalnie dobrze na bazie danych D' (z algorytmu A' gdzie IF zmieniono).

Zalinkowałeś też jedną publikację i nie wiadomo czy ktoś nie zrobił tego lepiej. Nie wczytywałem się za głęboko. Warto obadać (może już to zrobiłeś?) czy nie ma innych/lepszych publikacji.

Myślę z chęcią pomogę  :parrrty:. Co tam dalej z tym chciałbyś zadziałać (dość tajemniczo wspomniałeś)?  :attack:

goofyx

ad <- 1 dlaczego pierwszy etap to NCI?
W zasadzie dlaczego nie. W tej chwili mój serwer serwuje tylko aplikacje nci <- planuje podział na dwa projekty, w jednym będą aplikacje NCI a w drugim CPU. Niestety puszczenie razem NCI i CPU wygląda na baardzo problematyczne <- jeśli NCI jest więcej niż jedna sztuka.
W tej chwili średni przerób u mnie w NCI to 15-16k (czasami 20k) WU dla jednej apki co powinno spokojnie starczyć.

ad <-2
a) jeśli ja dobrze rozumiem to wcale nie muszę mieć ukończonego pkt.1 aby uczyć pkt.2 <- ja to chciałbym zrobić w ten sposób, że jeśli np.: 1kk wyników NCI da wyniki w NN z rozbieżnością (strzelam) 30%  to NN dostanie kolejną porcję 1kk (oczywiście stopniowane po np.:1k) materiałów do nauki.
b)Ja wiem, że nie uzyskam z NN identycznych wyników i nawet o tym nie myślę. Ale jeśli wyniki będą zbliżone do tych z symulacji to będzie nie lada sukces.
c) oczywiście, że nie wiem czy ktoś tego nie zrobił (lepiej, szybciej itp itp), ale powiedzmy sobie szczerze, że z każdym problemem obliczeniowym tak jest (czy to matematyka, fizyka, medycyna itp)... nigdy nie wiemy czy ktoś tego nie zbił. A po za tym, ja osobiście chciałbym spróbować
d) co do nauki NN algorytmem to podobno mogą być różnice w szybkości nauczania, a później w trafności wyników <- w zasadzie w całej dziedzinie NN i ML chodzi raczej o to aby znaleźć sposób, aby dana sieć NN rozwiązywała dany problem jak najlepiej i szybciej od pozostałych rozwiązań. Także nawet zmiana funkcji aktywacji, albo dodanie 1-2 neuronów w wartwie ukrytej może mieć znaczenie... a ja chciałbym znaleźć to znaczenie