AI算法落地的一点粗浅思考。 同时发现了一个很好的git库。
AI算法工程师应该具备的能力
AI落地时大概要经过以下阶段:
- 抽象与定义问题;
- 数据理解;
- 反思数据;
- 工程pipeline的建立;
- 回溯与迭代。
抽象与定义问题的能力
李航的《统计学习方法》中,定义了统计学习的三要素:模型(假设空间)、策略(评价准则)、算法(优化步骤)。描述了应用算法解决问题时的三个重要关键点。
作为的第一步,定义模型的假设空间,需要我们能从问题的实际描述之中,抽象与定义出适用于问题的模型。
其实这个能力作为传统算法或者数学建模、工程问题解决等领域,都是极其重要的。只不过当前的AI算法给人无所不能的假象,但又不赋予其可解释性,导致达到商业标准而实际落地还是有一定GAP。
在当前的AI实际应用中,问题的描述是比较高语义的智能应用场景,很多时候使用的是深度学习(不像统计学习、机器学习、概率统计等领域,具有强大的理论支撑),较难以理论分析不同的算法在最终应用效果上的差异(正向:问题到算法再到模型再到最终目标存在多种可能);同时也难以从算法回头明确问题(反向:算法/模型回推问题归属领域)。所以,为了维护形成一个问题->实现->分析的优化迭代过程,必须不断的对问题进行抽象与定义。
而抽象与定义问题的过程,个人认为需要注意以下三点:
- 目标场景;
- 问题边界/标准,或者说测试验收边界;
- 可能的建模方式:分割?检测?分类?
理解数据
AI算法项目相比rule-driven
或theory-driven
,更多的是data-driven
,观察数据,从数据本身出发,与抽象与定义问题形成反馈,获得更多的有用信息。进行场景拆分、细化,问题转移(传感器、语言或视觉?)
反思数据
理解数据在于基于当前问题吃透给定的数据。但在实际项目落地中,不仅仅是接受给定数据,要反思数据:当前数据是否足够,是否可获取其他辅助数据?数据是否可标准,标注是否确切(半监督?弱标注?)
工程pipeline的建立
利于快速迭代验证。
回溯与迭代
进一步定义问题,思考与优化,时间、空间、准确率等指标的trade off。
其他能力要求
论文阅读
思想的源泉,问题阻塞点解决的出路。
分享与讨论
社区、同事