“机器学习”的概念来自于人工智能发展的早期。在过去的25年里,机器学习已经发展成为AI内部的领先分支。该技术主要通过使用算法来解析数据、学习数据,然后对真实世界中的事件做出决策和预测。因此,与传统的为解决特定任务、硬编码的软件程序不同,机器学习是用大量的数据来“自我训练”,通过各种算法从数据中学习如何完成任务。
举例来说,当我们浏览网上商城时,经常会出现商品推荐的信息。这就是商城根据你往期的购物记录和冗长的收藏清单,识别出这其中哪些是你真正感兴趣,并且愿意购买的产品。这样的决策模型,可以帮助商城为客户提供建议并鼓励产品消费。
曾经,符号与逻辑被认为是人工智能实现的关键,而进入21世纪后,则是基于统计的机器学习占据了主导地位。目前可以说,学习AI主要的是学习机器学习。但是,需要再次强调的是,人工智能并不等同于机器学习,机器学习只是人工智能的一个子集。
尽管这项技术很强大,但仍然存在缺陷,特别是当其应用于安全领域时,这种缺陷显得尤为突出。传统机器学习的主要缺陷之一,是其依赖于特征提取(feature extraction)——即人类专家规定每个问题的重要特征(比如属性)的过程。比如说,将机器学习运用于脸部识别时,图像中的原始像素无法馈入到机器学习模块里面,需要先将它们转换成特征,例如瞳孔间距、脸部比例、脸部纹理和肤色等才行。
这就意味着,为了让机器学习解决方案能够识别恶意软件,人类专家需要首先手动编制与恶意软件相关的各种特征。对于网络安全领域而言,这无疑将会限制到威胁检测的效率和精确度。因为人类专家需要定义特定的特征,所以尚未定义到的特征可能就会逃避掉安全检测,使其无法被发现。
此外,这种对人类参与的依赖还引发了机器学习最大的挑战之一——人为错误的可能性。鉴于“特征工程”(将领域知识应用于特征提取的过程)需要人类专家来定义特征,就不可避免地会出现遗漏或忽略等人为失误现象。在上述提及的恶意软件例子中,如果人类专家在编程期间遗漏或忽略某些特征,都可能会造成系统崩溃的结果。
可以这么说,大多数机器学习算法的性能取决于识别和提取特征的准确性。为了使机器学习系统准确无误,人类专家必须在方法论的基础上定义特征,因为机器学习是一种基于线性的模型(linear model),所以人类专家选择的特征只能依赖简单的线性属性。鉴于这种限制,一些企业及学者开始转向研究深度神经网络(DNN),以更好地保护其基础设施,并为即将发生的攻击做好准备。
所谓“线性模型”(linear model),即使用简单的公式通过一组数据点来查找“最优拟合”线。通过你已知的变量方程(比如,原料),你可以求出你想要预测的变量(例如,烘烤蛋糕需要多长时间)。为了求出预测量,我们输入已知的变量得到答案。也就是说,为了求出烘烤蛋糕需要多长时间,我们只需要输入原料即可。