原来学习还能有那么多花样呢~

757 阅读8分钟

「这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战

机器学习

机器学习(Machine Learning)也被称为统计学习理论,是人工智能的重要分支。它通过数据分析获得数据规律,并将这些规律应用于预测或判定其他未知数据。

例如,假设要实现一个识别猫的程序。传统上如果我们想让计算机进行识别,需要输入一串指令,例如猫长着毛茸茸的毛、顶着一对三角形的的耳朵等,然后计算机根据这些指令进行判别。但是如果我们对程序展示一只老虎的照片,程序应该如何反应呢?更何况通过传统方式要制定全部所需的规则,而且在此过程中必然会涉及到一些困难的概念,比如对毛茸茸的定义。因此,更好的方式是让机器自学。

我们可以为计算机提供大量的猫的照片,系统将以自己特有的方式查看这些照片。随着实验的反复进行,系统会不断学习更新,最终能够准确地判断出哪些是猫,哪些不是猫。

机器学习分为:监督学习,无监督学习,半监督学习

监督学习(supervised learning)

监督学习从给定的训练数据集中学习出一个函数(模型参数),当新的数据到来时,可以根据这个函数预测结果。高度依赖事先确定的分类系统给出的信息。

监督学习包括:

无监督学习(unsupervised learning)

有监督和无监督最主要的区别在于模型在训练时是否需要人工标注标签信息

无监督学习输入数据没有被标记,也没有确定的结果。样本数据类别未知,需要根据样本间的相似性对样本集进行分类(聚类,clustering)试图使类内差距最小化,类间差距最大化。通俗点将就是实际应用中,不少情况下无法预先知道样本的标签,也就是说没有训练样本对应的类别,因而只能从原先没有样本标签的样本集开始学习分类器设计。

非监督学习目标不是告诉计算机怎么做,而是让它(计算机)自己去学习怎样做事情。

你可能还听过自监督学习👇

自监督学习主要是利用辅助任务从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。(也就是说自监督学习的监督信息不是人工标注的,而是算法在大规模无监督数据中自动构造监督信息,来进行监督学习或训练。因此,大多数时候,我们称之为无监督预训练方法或无监督学习方法,严格上讲,它应该叫自监督学习)

半监督学习(Semi-supervised Learning)

半监督学习是介于监督学习和无监督学习之间的学习技术,它同时利用有标记样本与无标记样本进行学习。它所利用的数据集可以分为两部分,一部分是有标记的数据集, 另一部分是无标记数据集,这部分数据集中样本点的类别标记未知。 与实际情况相符一般假设无标记数据远远多于有标记数据。

半监督学习主要考虑如何利用少量的标注样本和大量的未标注样本进行训练和分类的问题。

深度学习

深度学习(Deep Learning)是机器学习的重要分支,也是传统神经网络的重要延伸。

深度学习可理解为包含多个隐含层的神经网络结构。深度学习中的“深”是一个技术术语,一般而言,它指的是神经网络中的层数。一个浅层网络有一个所谓的隐藏层,而一个深层网络则有一个以上。对于一般简单的数据特征,它会从网络层的一层传递到下一层用映射关系表示,而深度神经网络的层次结构可以表达更为复杂的数据映射关系,以表示更复杂的特征。人工智能面向的问题也具备多层次数据的复杂特征,因此深度学习有效地解决了目前各行各业中的部分复杂问题。

为了提高深层神经网络的训练效果,人们对神经元的连接方法以及激活函数等方面做出了调整。其目的在于建立、模拟人脑进行分析学习的神经网络,模仿人脑的机制来解释数据,如文本、图像、声音。

迁移学习

迁移学习,对于人类来说,就是掌握举一反三的学习能力。

  • 知道如何骑自行车,学习如何开车。
  • 知道如何弹奏古典钢琴,学习如何弹奏爵士钢琴。
  • 知道数学和统计学,学习机器学习。 迁移学习(Transfer Learning)是一种机器学习方法,是指利用数据、任务、或模型之间的相似性,将在旧领域学习过的模型,应用于新领域的一种学习过程。

迁移学习的核心问题是,找到新问题和原问题之间的相似性,才可以顺利地实现知识的迁移。

按迁移方法分类

  • 基于样本的迁移 (Instance based Transfer Learning) :根据一定的权重生成规则,对数据样本进行重用,来进行迁移学习。
    如下图👇源领域有狗、鸟、猫等多类,目标域只有狗这一种类别。在迁移时,为了最大限度地和目标域相似,我们可以人为地提高源域中属于狗这个类别的样本权重

image.png 基于特征的迁移 (Feature based Transfer Learning) :找到一些好的有代表性的特征,通过源域学习一个好的的特征表示,把知识通过特征的形式进行编码,并从源域传递到目标域,提升目标域分类任务效果。

image.png 基于模型的迁移 (Parameter based Transfer Learning) :从源域和目标域中找到他们之间共享的参数信息,以实现迁移的方法。这种迁移方式要求的假设条件是:源域中的数据与目标域中的数据可以共享一些模型的参数。

image.png 基于关系的迁移 (Relation based Transfer Learning) :这种方法比较关注源域和目标域的样本之间的关系。下图形象地表示了不同领域之间相似的关系。

image.png

迁移学习过程

  一般的迁移学习是这样的:训练好一个网络(我们称它为base network)------>把它的前n层复制到target network的前n层------->target network剩下的其他层随机初始化-------->开始训练target task。其中,在做backpropogate(反向传播)的时候,有两种方法可以选择:

  (1)把迁移过来的这前n层frozen(冻结)起来,即在训练target task的时候,不改变这n层的值;

  (2)不冻结这前n层,而是会不断调整它们的值,称为fine-tune(微调)。

Finetune,也叫微调、fine-tuning, 是深度学习中的一个重要概念。简而言之,finetune就是利用别人己经训练好的网络,针对自己的任务再进行调整。从这个意思上看,我们不难理解finetune是迁移学习的一部分。

  这个主要取决于target数据集的大小和前n层的参数个数,如果target数据集很小,而参数个数很多,为了防止overfitting(过拟合),通常采用frozen方法;反之,采用fine-tune。

解决什么问题?    

  通常,源领域数据量充足,而目标领域数据量较小,这种场景就很适合做迁移学习,例如我们我们要对一个任务进行分类,但是此任务中数据不充足(目标域),然而却有大量的相关的训练数据(源域),但是此训练数据与所需进行的分类任务中的测试数据特征分布不同(例如语音情感识别中,一种语言的语音数据充足,然而所需进行分类任务的情感数据却极度缺乏),在这种情况下如果可以采用合适的迁移学习方法则可以大大提高样本不充足任务的分类识别结果。

  • 复用现有知识域数据,已有的大量工作不至于完全丢弃;
  • 不需要再去花费巨大代价去重新采集和标定庞大的新数据集,也有可能数据根本无法获取;
  • 对于快速出现的新领域,能够快速迁移和应用,体现时效性优势。

欢迎斧正~

参考资料

自监督学习 | (1) Self-supervised Learning入门

半监督学习综述

迁移学习(Transfer),面试看这些就够了!(附代码) --- mantch

迁移学习 - weilongyitian