至于成为深度学习框架的 committer,我最先开始参与的是 MXNet,当时只是业余时间做了一些小的深度学习的项目,发现这个开源项目还在初期,有很大的发展空间,然后又刚开始在其他项目中使用 Scala,在刘忆智的邀请和鼓励下,我们一起合作做了 MXNet Scala 语言包。又是机缘巧合,觉得 TensorFlow 的低阶 API 太难学也太难用,于是和谷歌的朋友合作建立了高阶的 API,也就是早期的 Scikit Flow, 类似数据科学领域中很热门的 Scikit-learn, 现在由于在 Google 内部和外部都需求特别大,也成为了 TensorFlow 中重要的一部分。 深度学习、机器学习的正确姿势 CSDN:机器学习在 Uptake 数据科学引擎的工作流程中扮演什么样的角色? 唐源:数据科学是 Uptake 的核心,我们成功地和大型工业界的巨头,比如说 Catepillar,来合作建立比较有需求的产品,帮助解决传统工业上的一些痛点,比如 24 小时对火车每个重要部件进行条件和健康监控,帮助维修工程师找到问题所在,推荐高效的解决方式,新部件的自动下单订购,等等。机器学习在这个过程中起到非常重要的角色,我们需要用机器学习来建立很多有效的预测模型,由于数据量的庞大,数据性质的特别,以及出于物联网数据在传统大型工业领域还没怎么被深度探索的原因,我们也不能仅仅依赖于现有的技术,我们有着非常优秀的研发团队来支撑这一整个技术链。 CSDN:对于数据科学团队来说,您认为他们需要对深度学习了解到什么样的程度? 唐源:深度学习并不是万能钥匙,很多问题往往用传统的机器学习算法就足够了。如果设计到很多图像,语音,文本这样的数据,深度学习的算法当然更加适用,基本上能大概清楚有一些什么样的算法以及他们适用于什么样的问题,就能实现一些简单的应用了。但是往往很多问题不是简单的分类和回归模型就能解决的,这中间可能涉及到多个值得研究和仔细设计的步骤,来让模型更加精确,这时候对深度学习扎实的功底就派上用场了,因为需要自己设计一些特殊的模型架构来解决这些问题,比如说涉及时间序列的应用,更需要仔细推敲和设计出最理想的算法,这涉及到对现有的多种类型的模型进行结合和改动,需要对这些已有模型有非常深的理解才行。 CSDN:对于数学功底不是很好的程序员,如果想掌握深度学习,甚至成为数据科学家,您有什么好的建议? 唐源:深度学习其实一开始也就是从一个简单的神经网络发展来的。如果想扎扎实实做这一方面的研究,当然数学越好以及知识越广能够带你走的更远。但是如果没有很好的数学功底,走应用的路线也是非常好的,毕竟也不是所有的研究都有很大的影响力或者用到了很高深的数学,很多时候只要能够读懂大概的算法思路,知道这个算法在什么样的应用中适用就行了。现在数据科学家的门槛其实也是越来越低,以前是有 Scikit-learn 的帮助,现在是有着各种深度学习框架,甚至最近 TensorFlow 在机器学习应用方面的侧重,比如说大力研发高阶的 Estimator API,也更是让更多人能够更有效地学习和更快地进入到这个行业当中。 CSDN:如果没有数学基础的限制,能否给刚入门深度学习的开发者提供一些学习和实践经验? 唐源:可以对这些深度学习的算法和架构都进行了解,要知道每个算法都适用于哪些类型的运用,基础好的话可以直接读一些好的会议以及期刊论文,关注一下前沿的研究。一定要多积累实战经验,可以多参与项目,参与像 Kaggle 这样的竞赛,最近的 Data Science Bowl 就是个很好的切入点,可以多融入到论坛中的讨论,来学习学习大家的思路和方法。如果对模型具体的实现感兴趣的话,可以尝试着读一读源代码,因为这不仅能帮助理解模型,也能了解到对于这个模型的实现,具体有哪些需要注意的地方,比如说性能上为什么这样处理会更好,API 为什么这样设计,等等。 CSDN:在忙碌的工作之余,您把大量的时间都贡献给了开源社区以及图书编写,但您是否有其他兴趣爱好(除了爬山和烧烤:))? 唐源:没错,爬山和烧烤!我还喜欢 K 歌,认识新的朋友,旅游,以及各种运动,比如说乒乓球,羽毛球,篮球,滑冰,游泳,等等。 业务场景下的深度学习实现 (责任编辑:本港台直播) |