不一样的程序猿■如何使用这项技术?,机器学习到底是什么

1.人工智能与机器学习
一个常常让大众感到困惑的问题是:人工智能(AI) , 机器学习(ML) , 深度学习(DL) , 机器视觉(CV)以及自然语言处理(NLP)之间是什么关系?
从科普角度粗略地说 , 人工智能涵盖了其他所有概念[图1] , 而机器学习是人工智能的一个子方向 , 而深度学习又是机器学习中的一类方法 。 至于机器视觉与自然语言处理 , 它们是人工智能领域的两个具体应用 , 而且往往会用到深度学习 。
不一样的程序猿■如何使用这项技术?,机器学习到底是什么
文章图片
图1.人工智能与相关概念间的关系
2.什么是机器学习?
越是简单的概念其实越难解释 。 比如有人提到机器学习问题事实上是一个「优化问题」 , 有人认为是机器学习是一个「编程概念」 , 也有人认为现阶段的机器学习是「统计推断」 。
从不同的角度看 , 这些说法都有道理 。 我个人比较喜欢TomMitchell对于「学习任务」的定义[1]:每个机器学习都可以被精准地定义为:1)任务T;2)训练过程E;3)模型表现P 。 而学习过程则可以被拆解为「为了实现任务T」 , 我们「通过训练过程E」 , 逐步「提高表现P」的一个过程 。
比如我们想要做一个模型来判断一张图片是猫还是狗(任务T) 。 为了提高模型的准确度(模型表现P) , 我们不断给模型提供图片让其学习猫与狗的区别(训练过程E) 。 在这个学习过程中 , 我们所得到的最终模型就是机器学习的产物 , 而训练过程就是学习过程 。 「机器学习」和「人类学习」是可以做类比的 。 套用刚才的公式:为了在高考中得到高分(任务T) , 小王每天做10套模拟题(训练E) , 并不断参加模考检测自己的错误率(评估P) 。
但除了相似性以外 , 机器与人类在学习过程中也有很多差异:
"机器可以标准化学习过程 , 并提取出了学习结果(模型) , 使得结果可迁移可复制 。 而人类的知识往往迁移成本更高 , 比如小王高考得到了高分 , 即使可以培训 , 但他没法把这个秘诀直接传授给小张 。
【不一样的程序猿■如何使用这项技术?,机器学习到底是什么】机器可以从大量数据中进行学习 , 而人类则有更大的限制 。 随着硬件发展和数据量累计 , 机器学习模型可以从海量数据中学习 , 而人类的大脑并不能做到这一点 。 但换个角度看 , 人类最擅长的就是小样本学习并进行举一反三 , 比如看两张猫狗图片就能大致有个概念 , 而机器则往往需要海量数据才能做到 。
机器更加擅长准确定义问题 , 而人类更擅长复杂且模糊问题 。 因为现阶段模型的限制 , 机器学习更擅长定义清晰的问题 , 比如是猫还是狗 , 是高还是矮 , 在局部问题上表现出众 。 而人类更擅长是做出复杂情况下判断 , 拥有更好的“全局观” 。
值得一提的是对于同一任务 , 机器和人类的解决思路不同 。 比如分辨猫与狗 , 人类可能会依靠舌头的位置 , 而机器从数据中可能学到的显著差别是瞳距鼻形等(只是假设) 。
机器与人类的学习过程中有很多差别 , 上面只是其中的一小部分 。 比较显著的差别是现阶段的机器更适合简单问题、大量数据的高效且准确的预测 , 而人类更适合复杂状况下面临有限数据做出决策 。 在可预见的未来 , 我们依然还是需要两条腿走路 , 让机器和人类做各自擅长的事情 , 不能单纯的说谁更好 。 其实结合人类知识与机器的学习能力是非常自然的想法 , 比如现在比较流行的主动学习(activelearning) , 比如让机器学会阅读从人类知识库中收集知识 , 比如人机互动(HCI)与机器学习的交叉研究等 。 3.机器学习任务的复杂度
前面提到了机器学习的最终产物往往是一个「模型」 。 因此从另一个角度看 , 机器学习其实是在「寻找一个映射函数
? , 使得输入
?经过
?后得到期望的输出
? , 也就是


推荐阅读