Python人工智能项目实战
(副标题):无 ;
(作者): [印度] 桑塔努·帕塔纳亚克 ;
内容简介:
2.2 迁移学习简介
在传统的机器学习范式中(参见图2-1),每个用例或任务都是根据手头的数据独立建模。在迁移习中,我们使用从特定任务中获得的知识(以结构和模型参数的形式)来处理不同(但是相关)的任务,如图2-1所示。
图2-1 传统的机器学习与迁移学习
Andrew Ng在其2016年NIPS的教程中指出,迁移学习将是下一个(即监督学习之后)驱动机器学习商业成功的重要因素,这个说法的真实性与日俱增。迁移学习现在被广泛用于各种需要用人工神经网络解决的困难问题。因此,最大的问题是为什么会出现这种情况。
从头开始训练人工神经网络是一项艰巨的任务,这主要有以下两个原因:
·人工神经网络的损失面是非凸的。因此,它需要一组良好的初始权重才能得到合理的收敛。
·人工神经网络有很多参数,因此需要大量的数据进行训练。遗憾的是,对于许多项目而言,可以被用于训练神经网络的特定数据并不够,但同时项目要解决的问题又非常复杂,需要依赖于神经网络的解决方案。
迁移学习有效地弥补了这两方面的问题。如果我们使用通过大量标记数据集(如ImageNet或CIFAR)预训练的模型,涉及迁移学习的问题将具有一组良好的初始权重来开始训练,进而可以根据手头的数据微调这些权重。同样,为了避免在较少量的数据上训练复杂模型,我们可以从预训练的神经网络中提取复杂特征,然后使用这些特征来训练相对简单的模型,例如SVM或逻辑回归模型。举一个例子,如果我们正在处理一个图像分类问题,并且我们已经有一个预训练的模型(比如在ImageNet上训练的具有1000个类别的VGG16网络),那么我们就可以将训练数据传入VGG16网络,并从最后一个池化层中提取特征。如果我们有m个训练数据点,我们可以使用方程式(x(i),y(i))mi=1,其中x是特征向量,y是输出的类别。然后,我们可以从预训练的VGG16网络中导出复杂
目录预览:
Python人工智能项目实战
第1章 人工智能系统基础知识
1.1 神经网络
1.2 神经激活单元
1.2.1 线性激活单元
1.2.2 sigmoid激活单元
1.2.3 双曲正切激活函数
1.2.4 修正线性单元
1.2.5 softmax激活单元
1.3 用反向传播算法训练神经网络
1.4 卷积神经网络
1.5 循环神经网络
1.6 生成对抗网络
1.7 强化学习
1.7.1 Q学习
1.7.2 深度Q学习
1.8 迁移学习
1.9 受限玻尔兹曼机
1.10 自编码器
1.11 总结
........