正文
机器学习的方法有超过 15 种,每一种都使用不同算法结构,依据得到的数据实现预测最优化。「深度学习」是其中一种方法,在新的领域取得了突破性成果,我们将在下文中对此方法进行探索。此外一些没有受到很多关注的技术也很有价值,它们适用于更广泛的使用情形。除了深度学习外,「随机森林」也是一种最有效率的机器学习算法,可以创造很多决策树,使预测最优化;
「贝叶斯网络」使用概率性方法分析变量及各变量之间的关系;在支持向量机中输入的是类别化的案例,它可以创造模型,把新的输入分配到各个类别中。
每一种方法都有优势和不足,所以要结合起来使用(一种组合方法)。哪种算法会被选择出来解决某一特定问题,取决于可用数据集等因素的性质。实践中,开发者倾向于通过实验观察哪些算法是有效果的。
机器学习的使用案例根据我们的需求和想象而不同。拥有正确的数据后,我们可以建立算法实现各种目的:根据某人之前的购买记录推荐购买产品;预测汽车装配线上的机器何时会发生故障;预测电子邮件地址是否错误;估计信用卡交易欺诈行为的可能性;还有很多其他目的。
深度学习:将特征详述工作交给算法
即使使用随机森林、贝叶斯网络、支持向量机等普通机器学习方法,也很难编写出能很好地完成特定任务的程序,从理解语音到识别图像中的对象。因为我们无法以实际、可靠的途径来详述特征。
例如,如果想要编写计算机程序来识别汽车的形象,我们无法在算法中详述汽车的特征,来确保在所有情况下都能准确识别。汽车的形状、大小和颜色多种多样,位置、方向和形态也有所不同。背景、灯光和很多其他因素都会影响对象的外表。一组规则中需要包含的变量太多了,即使我们能够全部包含进去,这种解决方案也不具备延展性。我们需要为每种需要识别的对象都编写一组程序。
深度学习(DL)已经彻底改变了人工智能世界。有超过 15 种实现机器学习的方法,深度学习就是其中一种,所有深度学习都属于机器学习,但是机器学习并不只是深度学习。
通过深度学习,程序员可以不必完成特征详述(根据数据定义需要分析的特征)或最优化(如何权衡数据以实现准确预测)的任务,而是全部交给算法来完成。
那么如何实现这些呢?深度学习的突破点在于模拟大脑,而不是模拟世界。我们的大脑会学习做有难度的事情,比如理解话语和识别物体,而且并不是通过详尽的规则而是通过时间和反馈来学习。小的时候我们体验这个世界(比如看见一张汽车的图片),做出预测(汽车!)然后收到反馈(没错!)。我们没有通过一组详尽的规则,而是通过训练进行学习。
深度学习使用的就是这种方法。将人造的、以软件为基础的计算器连接在一起,类似于大脑中的神经元。它们组成了一个「神经网络」,接收输入并进行分析、作出判断,如果判断正确,就做出通知,如果输出是错误的,算法就会对神经元之间的联系做出调整,改变未来的预测。最初网络会出现很多次错误,但随着我们输入数以百万计的例子,神经元之间的联系就会得到调整,最终几乎在所有情形下,神经网络都会做出正确的判断,这也就是熟能生巧。
通过这个过程,我们现在可以:
深度学习并不能用于解决所有问题,其通常会需要利用大型数据集进行训练,需要广泛的处理能力来训练和运行神经网络。「可解释性」也是一个问题,要知道神经网络如何实现预测是非常困难的。但是深度学习使程序员从复杂的特征详述工作中解放出来,为一系列重要问题提供成功的预测机制。深度学习最终会成为 AI 开发者的强大工具。
二. 深度学习是如何工作的?
既然深度学习如此重要,了解其工作的基本要素也是非常有价值的。深度学习需要使用一个人工「神经网络」,即一组相互连接的「神经元」(基于软件的计算器)。
一个人工神经元至少会接收一个输入,其会以此为基础进行数学计算,得到输出结果。输出结果会依赖于每个输入的权重和神经元中的「输入-输出函数」的结构(图 5)。输入-输出函数会发生变化,神经元可能是:
一个线性单元(输出与总加权输入成一定比例);