在进行探索性数据分析和开发算法的过程中,我发现大部分时间都花在可视化,编写代码,在小型数据集上运行,重复的周期中。我拥有的数据往往是计算机视觉/传感器融合类型的东西,而算法则是视觉密集型的(例如,对象检测和跟踪等),而现有算法在这种情况下不起作用。我发现这需要很多次迭代(例如,拨入算法的类型或调整算法中的参数或获得正确的可视化效果),而且即使在较小的数据集上,运行时间也很长,因此总共需要一段时间。
如何加速算法开发本身并使其更具可扩展性?
一些特定的挑战:
如何减少迭代次数?(尤其是在不尝试不同版本并检查其行为的情况下,似乎很难预见哪种算法,更不用说算法的细节了)
在开发过程中如何在更大的数据集上运行?(通常是从小型数据集到大型数据集,是当看到一堆新行为和新问题时)
如何更快地调整算法参数?
如何将机器学习类型工具应用于算法开发本身?(例如,不要手工编写算法,而是编写一些简单的构建基块并以从问题中学习的方式将它们组合起来,等等)