:COO、执行总编、主编、高级编译、主笔、运营总监、客户经理、咨询总监、行政助理等 9 大岗位全面开放。 简历投递:j[email protected] HR 微信:13552313024 新智元为COO和执行总编提供最高超百万的年薪激励;为骨干员工提供最完整的培训体系、高于业界平均水平的工资和奖金。 加盟新智元,与人工智能业界领袖携手改变世界。 【新智元导读】机器学习的“难”通常不在于数学,因为机器学习本身不需要很高强度的数学计算,而在于 debugging 难的问题。机器学习 debug 要比普通计算机程序难得多:出现问题的情形多,而且调试周期长。本文深入讨论了这个难题,提出了在 debug 时需要注意的要点。 在过去的几年里,机器学习便捷化方面的技术已经取得了显著的发展:出现了很多相关的网络在线课程、精编书籍和架构理论。这些精编课程对前沿科技研究分析,分解成通俗易懂的语言。而架构理论方面则将普通问题抽象化,与构建机器学习系统相结合形成理论系统。这些发展某种程度上能够使人们打破已有的认知图示,加强对算法工作原理和计算代码的理解。
机器学习之难在于debug 尽管如此,机器学习仍是一个相对“难”的问题。毫无疑问,提高机器学习算法是一项艰难的科研课题,需要不断的创新、反复的试验、不懈的韧性。而将现有算法和模式与机器学习贯通运用则更难,这也解释了为什么机器学习方面的专业工程师的工资相比普通软件工程师要高出很多的原因。 这里的难通常不在于数学计算,机器学习应用本身不需要高强度的数学计算,而在于前面提到的构建系统,包括如何为工具建立图式以解决实际应用中的问题,这就要对现有算法和模式,两者权衡以及使用限制充分熟悉。机器学习技术是通过对不同类型的模式(比如课程、课本和论文等)进行应用的过程中,对这些模式进行检测。当然,这种知识构建形式存在于计算机科学的所有领域,而不仅仅是机器学习领域。一般的软件工程项目都需要对其他的框架、工具、技术以及设计决策几方面进行权衡。 机器学习的难点在于根本性的调试(debug)难题。机器学习的调试一般发生在以下两种情况:1)算法无法运行,或者2)算法运行不太完美。机器学习“难”的独特性在于,当运行效果不如预期时,想要检测出哪里出了问题极其困难。如果这两种困难同时发生,那么应用修复、升级以及结果显示方面的调试周期将会延长。很少会发生计算运行从一开始直到最后,占用大部分时间去做构建算法的情况。 机器学习相比传统软件,调试困难增加了两个维度 标准的软件工程中,遇到问题解决方案效果不如预期的情况时,一般有两种可能:算法问题和实施问题。举一个简单的递归算法的例子。
通过这种方法,列举出运行效果不好的故障分析图,如下:
横轴列出的是算法设计上可能会出现的问题,纵轴是在算法应用上可能会出现的问题。两个维度上都有可能出现问题(如多重应用bug),只有保证算法和应用两方面都精确无误,才能制定出正确的调试解决方案。 调试过程中,需要凭借直觉,结合不同的bug(如编译错误提示,程序输出结果等)信息,去准确判断问题所在。这些信息和启发式方法能帮助缩短锁定范围,快速处理问题。 机器学习有两个方面的常见bug:实际模式和数据。最简单的例子,就如用随机梯度下降算法训练逻辑回归。这里,算法准确包含梯度下降更新方程式,应用准确包括对特性和参数更新的精确计算。数据方面的bug包括嘈杂标签(noisylabels)、预处理过程中由于缺乏监控信号或数据不足导致的错误。模式bug包括建模能力的实际限制。比如,下图展示了在非线性决策边界中使用线性分类器。 (责任编辑:本港台直播) |