
本期将使用迁移学习(Transfer Learning)来解决一个典型的二分类(Binary Classification)问题——IMDB电影评论分类问题。为了快速实现基于TensorFlow的迁移学习,本文除了使用Keras来构建模型外,还引入了TensorFlow Hub。TensorFlow Hub 是用于存储可重用机器学习资产的开放仓库和库,包含经过训练的机器学习模型的代码库。
迁移学习概述
首先,要弄清楚迁移学习这一概念,了解这一算法概念的提出是基于怎样的现实问题。随着越来越多的机器学习应用场景的出现,而现有表现比较好的监督学习方法需要大量的标注数据。标注数据是一项枯燥无味且花费巨大的任务,而迁移学习可以借助已有模型的参数,大幅度减少所需要的数据标注的量,所以迁移学习受到越来越多的关注。在传统的机器学习的主要部分有监督学习的任务中,对解决的问题和数据有着如下假设:
(1) 同分布假设;
(2) 需要大量有标注的数据(数据与标签)。
而在实际情况中数据往往不够理想,一是数据分布有所差异;二是标注数据数量不足。因此,便需要借鉴迁移学习的思想,将某个领域或任务上学习到的知识或模式应用到不同但相关的领域或问题中。本章从一个比较相关的任务模型出发,以期待能有一个相对高的起点和更高的最终结果,迁移学习的优点粗略表示如图14.1所示。
■ 图14.1迁移学习的优点粗略表示
在实际生活中,“迁移学习”的身影并不少见,事实上大家之所以能够快速地积累知识、认识和改造世界,除了具有可学习能力,“迁移学习”能力同样不可或缺。通常,对于背过很多诗词的人,往往很容易理解、背诵和应用其他新的诗词。学习并熟练掌握了C、C++等语言的程序员,在接触新的计算机语言时,其学习效率往往远高于编程小白。这样的能力便是大家通常所说的“举一反三”。那么,在模型训练任务中是否可以吸取这种思想呢?
答案当然是可以的。具体来说,迁移学习是从相关领域中迁移标注数据或者知识结构、完成或改进目标领域或任务的学习效果。通过训练深度神经网络,使之具有识别所给数据集的物体类型的能力,前面的卷积网络起到的主要作用是反复多层提取图像二维特征,后面的全连接层或者1×1卷积核的卷积网络可以起到组合特征的作用,将不同的特征组合拟合到不同物体中去。而且像VGG 16深层网络模型结合COCO那样比较大型的数据集训练完成往往耗费较大资源,当遇到一个新的物品类别需要识别的时候,该怎样做呢?再从头开始训练吗?这显然不现实,因为一方面现有的数据往往是不充足的(在图像识别上),另一方面缺乏其他类型物品与之区别训练(即,训练不相关图像同样有助于此物体的识别)。因此,最好的方法可能是导入训练好的模型权重和继续训练新的数据集来实现图像识别的迁移学习。
因此,想比较聪明地完成对IMDB数据集电影评论进行分类,就需要借鉴迁移学习的思想。
IMDB数据集
除了上述所介绍的知识,还需要对来源于网络电影数据库(internet movie database)的IMDB 数据集(IMDB Dataset)有一个初步的了解。顾名思义,IMDB dataset包含 50000条影评文本。从该数据集切割出的25000条评论用作训练,另外 25000 条用作测试。除此之外,训练集与测试集还是平衡的,这意味着它们包含相等数量的积极和消极评论。
为了更加交互式地介绍,采取将代码与内容同步进行的方式。首先,需要导入必要的包并查看一些基础信息。代码和运行结果如代码清单14-1所示。
代码清单14-1
接下来,加载数据集。TensorFlow数据集上提供了IMDB数据集。代码清单14-2将IMDB数据集下载到机器(或者Colab运行环境)中,第一次加载会自动网络下载到默认的文件夹,之后再使用这段代码时,可直接将下载好的文件导入即可。
代码清单14-2
该数据集中,每一个样本都是一个表示电影评论和相应标签的句子。该句子不以任何方式进行预处理。标签是一个值为 0 或 1 的整数,其中 0 代表消极评论,1 代表积极评论。
首先,打印前10个样本及其对应的标签。如代码清单14-3所示。
代码清单14-3
该部分代码运行结果如图14.2所示。可以看出,每个样本是用影评内容的字符串表示的,标签0或1分别代表消极评论和积极评论。
■ 图14.2IMDB dataset前十个样本和对应标签
扫码观看视频讲解(限免3天)
说明
本系列文章出自《TensorFlow深度学习实战(微课视频版)》(ISBN:9787302602934),为作者全权授权的独家原创文章,转载请联系公众号后台申请授权,并注明出处。
实例讲解
TensorFlow深度学习实战

精彩回顾
深度学习框架
TensorFlow环境搭建
实战篇
下期预告
实战篇
7. 基于LSTM的原创音乐生成
参考书籍

《TensorFlow深度学习实战(微课视频版)》
配有源代码、教学课件、教学大纲、微课视频等资源,56个知识点案例、9个完整项目案例。
ISBN:9787302602934
作者:吕云翔 王志鹏 刘卓然 主编 欧阳植昊 郭志鹏 王渌汀 闫坤 杜宸洋 关捷雄 华昱云 陈妙然 副主编
价格:59.90元
内容简介
本书以深度学习框架TensorFlow为基础,介绍机器学习的基础知识与常用方法,全面细致地提供了机器学习操作的原理及其在深度学习框架下的实践步骤。全书共16章,分别介绍了深度学习基础知识、深度学习框架及其对比、机器学习基础知识、深度学习框架TensorFlow的基础知识、Logistic回归、多层感知器、卷积神经网络与计算机视觉、神经网络与自然语言处理以及8个实战案例。本书将理论与实践紧密结合,相信能为读者提供有益的学习指导。本书适合Python深度学习初学者、机器学习算法分析从业人员以及高等院校计算机科学、软件工程等相关专业的师生阅读。



