Tensorflow--迁移学习

首先,我说一下自己看了几篇文章后的理解。
我觉得迁移学习的目的就是为了减少工作量,提高效率,避免做重复累赘的工作。

这就跟我们在实际项目迭代开发时一样,假如老板突然提了一个新的需求,要你重做一个系统,你不可能又重新开始设计,然后编码吧。。。 肯定得在之前做的系统上进行迭代开发,修修改改,然后提交给老板看。等测试系统上线之后,再根据不同的反馈进行代码调整。

迁移学习的目的也正是如此,如果两个模型之间有很多相似之处,那为什么不直接将这个模型的一些方法(例如:特征提取方法等)直接迁移过来呢,然后在此基础上再进行模型训练,测试。这必然会使工作量大大减少,使得开发人员能有更多的精力投入于怎么样将这个模型的准确度,泛化能力等提高。

迁移学习的实现方法有以下四种:
1.样本迁移(Instance-based Transfer Learning)
样本迁移即在数据集(源领域)中找到与目标领域相似的数据,把这个数据放大多倍,与目标领域的数据进行匹配。其特点是:需要对不同例子加权;需要用数据进行训练。一般就是对样本进行加权,给比较重要的样本较大的权重

2.特征迁移(Feature-based Transfer Learning)
特征迁移是通过观察源领域图像与目标域图像之间的共同特征,然后利用观察所得的共同特征在不同层级的特征间进行自动迁移。在特征空间进行迁移,一般需要把源领域和目标领域的特征投影到同一个特征空间里进行。

3.模型迁移(Model-based Transfer Learning)
模型迁移利用上千万的图象训练一个图象识别的系统,当我们遇到一个新的图象领域,就不用再去找几千万个图象来训练了,可以原来的图像识别系统迁移到新的领域,所以在新的领域只用几万张图片同样能够获取相同的效果。模型迁移的一个好处是我们可以区分,就是可以和深度学习结合起来,我们可以区分不同层次可迁移的度,相似度比较高的那些层次他们被迁移的可能性就大一些。

4.关系迁移(Relational Transfer Learning)
如社会网络,社交网络之间的迁移。

迁移学习是机器学习中必须了解的知识,就像吃菜必须吃肉一样,将迁移学习应用到开发中,无疑会事半功倍。

迁移学习实例:
在本例中,我们需要用深度学习技术对电影短评进行文本倾向性分析,例如"It was great,loved it."表示积极正面的评论,"It was really stupid."表示消极负面的评论。

假设现在可以得到的数据规模只有72条,其中62条没有经过预先的倾向性标记,用来预训练。8条经过了预先的倾向性标记,用来训练模型。2条也经过了预先的倾向性标记,用来测试模型。由于我们只有8条经过预先标记的训练数据,如果直接以这样的数据量对模型展开训练,无疑最终的测试准确率将非常低。(因为判断结果只有正面和负面两种,因此可以预见最终的测试准确率可能只有50%)

为了解决这个难题,我们引入迁移学习。即首先用62条未经标记的数据对模型展开通用的情感判断,然后在这一预训练的基础上对本例的特定问题展开分析,复用预训练模型中的部分层次,就可以将最终的测试准确率提升到100%。下面将从3个步骤展开分析。

扫描二维码关注公众号,回复: 6746107 查看本文章

步骤1:
创建预训练模型来分析词与词之间的关系。这里我们通过分析未标记语句中的某一词汇,尝试预测出现在同一句子中的其他词汇。
在这里插入图片描述

步骤2:
对模型展开训练,使得出现在类似上下文中的词汇获得类似的向量表示。在这一步骤中,62条待处理语句首先会被删除停用词,并被标记解释。之后,针对每个词汇,系统会尝试减小其向量表示与相关词汇的差别,并增加其与不相关词汇的差别。
在这里插入图片描述

步骤3:

预测一个句子的文本倾向性。由于在此前的预训练模型中我们已经得到了针对所有词汇的向量表示,并且这些向量具有用数字表征的每个词汇的上下文属性,这将使得文本的倾向性分析变得更易于实现。
在这里插入图片描述

需要注意的是,这里并非直接使用10个已经被预先标记的句子,而是先将句子的向量设置为其所有词汇的平均值(在实际任务中,我们将使用类似时间递归神经网络LSTM的相关原理)。这样,经过平均化处理的句子向量将作为输入数据导入模型,而句子的正面或负面判定将作为结果输出。需要特别强调的是,这里我们在预训练模型和10个被预先标记的句子之间加入了一个隐藏层(hidden layer),用来适配文本倾向性分析这一特定场景。正如你所看到的,这里只用10个标记量就实现了100%的预测准确率。

当然,必须指出的是,这里展示的只是一个非常简单的模型示意,而且测试用例只有2条。但不可否认的一点是,由于迁移学习的引入,确实使得本例中的文本倾向性预测准确率从50%提升到了100%。

附:
人工智能之机器学习篇——迁移学习
迁移学习简介
迁移学习简介
什么是迁移学习
初识迁移学习

猜你喜欢

转载自blog.csdn.net/qq_33472146/article/details/93056091