[背景音乐] 翻译: RyukaSuu |审阅: 19waa Coursera Global Translator Community 现在的问题是 我们能否用深度特征来改进我们的模型 记住当我们谈到深度特征的时候 我们研究了 在深度学习模块中 通过一种叫做转换学习的方式深度特征 可以用来训练模型 然后用它来预测图片 甚至能在 训练数据仅仅有为数不多的已标签的图片 的情况下 在这个例子中 我们来看一下训练数据的维度 有一个基础的概念 我们一共有2000张图片 不是一个很大的数据集 然后我们可以进行下一步 用深度学习2000多个图片中训练模型 这是你的下一步 所以我们要载入深度学习模型 这是已经编译好的 只要用Graphlab 进行载入就可以了 模型载入的数据是image net 这个数据 在这里 叫做imagenet_model 这个模型会传输150万张图片 有着1000个标签 是一个完全不同的数据 150万张图片 也是我们之前提到过的AlextNet 模型 它在ImageNet 比赛中取胜了 我提前训练过这个模型了 你可以用这个模型来 来训练我们的图片 并且添加新的一列 叫做deep_feature 深度特征 这新的一列就是 我们刚才载入deep_learning_model 所得到的 这个deep_learning_model 我会运用一个叫做 extract_feature 的函数来提取特征 能够提取那些深度特征 他所做的就是转换学习 能够把一个领域中学习到的特征 用到另外一个不同领域的数据集中 这边的数据就是我的的 image_traindata 这边仅仅用了两条代码 很简单 然后减小字体大小 可以看得更清楚一些 这两条代码用来做转移学习 所以我们用网上训练的特征 运用到Sframe 的数据中 计算深度特征仅仅需要几分钟 我现在就准备做这个 我会告诉你我们的深度模型 如果我给你显示iamge_traindata 我仅仅给你展示前几行 你可以看到我们有着图片ID 图片 也就是你看到的 然后就是标签 和一列叫做深度特征 所以说提前运算了 然后储存到SFrame 现在它已经被保存下了 它还有最后一列叫做image_array 有着原始像素 那是我们之前用来做训练原始像素模型的一列 所以说深度特征已经在这了 如果你运行这两行代码 你就能够自己在这个数据集中计算深度特征了 或者说在别的数据集中计算 然后让我们继续 现在我们有了深度特征 让我们来训练深度模型 有了深度特征 让我们训练分类器 所以我们会用深度特征训练一个分类器 所以我会叫做深度特征模型 而不再用原始像素模型 所以用.create这个指令 我们以前用过的 我们用.create这个指令 我们之前用过的 我们会用到深度特征 然后并把它用到简单的分类器中 仅仅是把它用到逻辑斯蒂模型 模型的输入数据是image_train_data 我们不再用原始像素 而是特征 所以会用到deep_features 最后我会说到标签 噢不 是目标 也就是我们所要预测的 会在标签这一列中 你去到那里 我们正在训练分类器 用到2000张图片 用之前训练完的特征 也就是那个2012年比赛中完成的 让我们来仔细研究这个模型吧 我们先用它应用到一些数据上 我要做的是 先输入标题 把深度模型用到第一组测试数据中 就像我们之前在原始像素模型中用到的一样 我们也会同样应用 所以记住 我们想要看前三张图 也就是索引为0 1 2的图片 来看一下这三张图到底是什么? 输入.show来显示 提醒一下应该是猫 车 猫 我们先运行一下预测的结果 会用到deep_feature_model 然后预测这三张图 输入的数据是image_test[0:3] 记住正确的标签是猫 车 猫 他的标签是 猫 机动车 猫 预测完全正确 完美! 原始像素模型真的很糟糕 如果用深度学习模型 前三个全对了 那我们来正式的用模型预测 下一步就是 计算测试深度学习的准确率 计算测试深度学习的准确率 我们去到这里 我们该怎么做呢? deep_features_model.evaluate这行代码 就像我们在原始像素模型中用到的 让我们来衡量结果吧 输入值是测试数据 也就是image_test 记住我们原始像素模型有着46%的准确率 有点糟糕 但是如果用深度学习模型 78%的正确率 很好了 已经到达预期的目标了 如果你去预测更多的数据 相比较46%而言 预测准确率还是很好 所以说深度特征提供了一个 一个仅仅用很小的数据 用来测试深度特征 然后能在分类任务中 做到很好的准确率 [背景音乐] 翻译: RyukaSuu |审阅: 19waa Coursera Global Translator Community