第12章 从感知机到人工神经网络
在第10章中,我们介绍了感知机,一种用于二元分类的线性模型。我们了解到感知机并不是一种通用的函数逼近器,它的决策边界必须是一个超平面。在第11章中,我们介绍了SVM,它通过使用核函数将特征表示映射到可能会使分类线性可分的更高维度空间,克服了感知机的一些局限。在本章中,我们将讨论ANN,一种可用于监督任务和非监督任务的强大非线性模型,它使用一种不同的策略来克服感知机的局限。如果将感知机类比为一个神经元,那么ANN或者说神经网络,就应该类比为一个大脑。正如一个人类的大脑由数十亿个神经元和数万亿个突触组成一样,一个ANN是一个由人工神经元组成的有向图。图的边表示权重,这些权重都是模型需要学习的参数。
本章将提供一个关于小型前馈人工神经网络结构和训练的概述。scikit-learn类库实现了用于分类、回归和特征提取的神经网络。然而,这些实现仅仅适用于小型网络。训练一个神经网络需要消耗大量的算力,在实际中大多数神经网络使用包含上千个并行处理核的图形处理单元进行训练。scikit-learn类库不支持GPU,而且在近期也没有支持的打算。GPU加速还不成熟但是在迅速的发展中,在scikit-learn类库中提供对GPU的支持将会增加许多依赖项,而这与scikit-learn项目“轻松在各种平台上安装”的目标有所冲突。另外,其他机器学习算法很少需要使用GPU加速来达到和神经网络相同的程度。训练神经网络最好使用专门的类库例如Caffe、TensorFlow和Keras来实现,而不要使用像scikit-learn这样的通用的机器学习类库。
虽然我们不会使用scikit-learn类库来训练一个用于目标识别的深度卷积神经网络(CNN)或者用于语音识别的递归网络,理解将要训练的小型网络的原理对于这些任务来说是重要的先决条件。 ...
Get scikit-learn机器学习(第2版) now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.