Pracując nad eksploracyjną analizą danych i opracowując algorytmy, stwierdzam, że większość mojego czasu spędzam na cyklu wizualizacji, pisania kodu, uruchamiania na małym zbiorze danych, powtarzania. Dane, które posiadam, są zwykle typu wizji komputerowej / fuzji czujników, a algorytmy są ciężkie dla wzroku (na przykład wykrywanie i śledzenie obiektów itp.), A algorytmy gotowe nie działają w tym kontekście. Uważam, że wymaga to wielu iteracji (na przykład, aby wybrać typ algorytmu lub dostroić parametry w algorytmie lub uzyskać właściwą wizualizację), a także czasy uruchamiania nawet na małym zestawie danych są dość długie, więc wszystko razem zajmuje trochę czasu.
Jak można przyspieszyć rozwój samego algorytmu i uczynić go bardziej skalowalnym?
Niektóre szczególne wyzwania:
Jak można zmniejszyć liczbę iteracji? (Zwłaszcza gdy jakiego rodzaju algorytm, nie mówiąc już o jego specyfice, nie wydaje się być łatwym do przewidzenia bez wypróbowania różnych wersji i zbadania ich zachowania)
Jak korzystać z większych zestawów danych podczas programowania? (Często przejście z małego na duży zestaw danych ma miejsce, gdy widać wiele nowych zachowań i nowych problemów)
Jak można szybciej dostroić parametry algorytmu?
Jak zastosować narzędzia typu uczenie maszynowe do samego rozwoju algorytmu? (Na przykład zamiast ręcznie pisać algorytm, napisz kilka prostych elementów konstrukcyjnych i połącz je w sposób wyuczony z problemu itp.)