Nel lavorare sull'analisi dei dati esplorativi e nello sviluppo di algoritmi, trovo che la maggior parte del mio tempo è trascorso in un ciclo di visualizzazione, scrittura di codice, esecuzione su piccoli set di dati, ripetizione. I dati che ho tendono ad essere roba di tipo computer vision / sensor fusion e gli algoritmi sono pesanti per la visione (ad esempio rilevamento e tracciamento di oggetti, ecc.) E gli algoritmi standardizzati non funzionano in questo contesto. Trovo che questo richieda molte iterazioni (ad esempio, per comporre il tipo di algoritmo o ottimizzare i parametri nell'algoritmo, o per ottenere una visualizzazione corretta) e anche i tempi di esecuzione anche su un piccolo set di dati sono piuttosto lunghi, quindi tutti insieme ci vuole un po '.
Come può lo sviluppo dell'algoritmo stesso essere accelerato e reso più scalabile?
Alcune sfide specifiche:
Come si può ridurre il numero di iterazioni? (Esp. Quando quale tipo di algoritmo, figuriamoci i dettagli di esso, non sembra essere facilmente prevedibile senza provare versioni diverse ed esaminarne il comportamento)
Come eseguire set di dati più grandi durante lo sviluppo? (Spesso il passaggio da un set di dati di piccole a grandi dimensioni avviene quando si notano un sacco di nuovi comportamenti e nuovi problemi)
Come si possono sintonizzare i parametri dell'algoritmo più velocemente?
Come applicare gli strumenti del tipo di apprendimento automatico allo sviluppo dell'algoritmo stesso? (Ad esempio, invece di scrivere manualmente l'algoritmo, scrivere alcuni semplici blocchi e combinarli in un modo appreso dal problema, ecc.)