机器学习|AI Insight:放弃幻想,搞 AI 必须过数学关( 二 )


可能正是因为数学是一只拦路虎 , 最近我们看到了不少鸡汤文章出来安慰说数学不好也可以学 AI 。 这些文章 , 大多只是标题党 , 你以为他给你指了一条方便法门 , 其实打开一看 , 只不过是舒缓你的畏难情绪 , 推荐几本寓教于乐的数学书 , 给你做做心理按摩 , 本质上还是一句话:想搞 AI , 就得把数学拿下 。 但是很多人现在看文章只看标题啊 , 所以就产生了幻想 , 是不是不学数学也能搞 AI呢?有没有可能把数学都交给封装好的框架和程序库 , 我只做调用和调试的工作呢?未来会不会达到 AI 工具化、AI 工具傻瓜化的程度呢?
AI 工具化可能性是有的 , 而且是必然 , 趋势很明显 。 比如著名的机器学习框架 scikit-learn , 把多种机器学习算法包装成他们所说的“黑盒子” , 使用时只需要选择算法 , 设置合适的参数进行初始化 , 然后灌数据训练模型 , 得到模型以后就可以进行分析和预测了 , 大多数复杂性都被包装在后面 。 而现在当红的深度学习 , 这个趋势更加明显 。 在张重生所著的《深度学习——原理与应用实践》一书中 , 作者援引周志华教授的一段话 , 吐槽当前深度学习现状说:
“有点幽默 , 但很朴实 , 深度学习现在差不多就是民工活 , 调来调去 , 刷来刷去 。 文章发得飞快 , 貌似热闹 , 但有多少是能沉淀下来的实质真进展、真原理、真算法、真技术 , 又有多少是换个数据就不靠谱了的蒙事撞大运?既缺乏清澈干净的内在美感 , 又不致力于去伪存真、正本清源 , 只图热闹好看 , 迟早把 arXiv 变成废纸堆 。 ” 通过这段吐槽 , 我们侧面了解到深度学习这个领域当前的局面 , 极少人做核心理论研究 , 一小部分人开发框架和程序库 , 大多数人只是把黑盒子拿来刷参数、攒论文 。 我们从正面的意义上来理解这件事情 , 这恰恰表明深度学习的工具化做得比较好 , 初步形成了一个金字塔模型 。 专家们批评的 , 只不过是现在很多金字塔底层的“深度学习民工”在利用 AI 的热潮和外界对这个领域的不了解沽名钓誉 , 导致某些 AI 人士所说的“深度学习泡沫” 。 批评归批评 , 这个人员分布结构是合理的 , AI 工具化是有效的 。
所以 , 是的 , 机器学习和 AI 领域的软件工具也会逐渐走向成熟 , 也会像黑盒子一样把很多复杂性包装起来 , 把很多今天需要较深数学理解才能做到的事情简化为调参 。 但是这是否就能让我们得出结论说 , 未来的 AI 工程师可以不懂数学呢?
当然不能 。 首先 , 数学不过关的人在 AI 这个圈子里是无法参与交流的 , 或者说得直白一点 , 是被人瞧不起的 , 根本无法被接纳成为AI 圈子里的人 。 其次 , 数学不过关而只能调参数的人 , 实践当中并不好用 。 我接触过几个 AI 创业企业 , 他们都疯狂的缺人 , 但是对于不懂数学只会使用工具的“人才” , 他们却大门紧闭 。 什么原因?沟通效率低 , 出活慢 , 遇到问题无法解决 , 一句话 , “不好用” 。 第三 , 即便是调参这件事情本身 , 懂不懂数学也是有很大差别的 。 因为调参是一个跟自己较劲的过程 , 不断地划分训练数据集和验证数据集 , 调整参数 , 追求更高的准确率 , 又要防范过拟合 , 一遍又一遍 , 本身就是非常繁琐和枯燥的工作 。 如果你数学不过关 , 对参数的意义和相关关系理解不深 , 方向感不强 , 只能半随机的去刷参数 , 那么工作的单调性和烦琐性还会大大上升 , 很难坚持到做出好的模型来 。
就这三点 , 决定了不懂数学的“AI框架调参工”不会是一个令人向往的工作 。 我绝不相信一个年轻人满怀 AI 梦想走进这个行业 , 会满足于做一个“以其昏昏使人昭昭”的调参工 。
所以 , 结论已经很清楚 , 想搞 AI , 数学必须过关 。 一切与这个结论有冲突的说法 , 都是耍流氓 。
当然 , 请注意我在这里说的是“数学必须过关” , 只要求过关 , 并不是要求你为了搞 AI 而先要变成一个数学家 , 那既不现实也不必要 。 为什么只要求过关呢?为什么不是数学越棒越好呢?因为 AI 要在数学上形成重大的突破 , 可能是十年甚至几十年一遇的 。 今天机器学习中有效的数学方法 , 绝大多数都是几十年前做出来的成果 。 因此做 AI 工程 , 重点是充分理解、熟练掌握和运用这些成熟的数学工具 , 尊重分工 , 把数学领域的创新交给数学家和应用数学家 。