机器学习、深度学习、强化学习、迁移学习

机器学习:一切通过优化方法挖掘数据中规律的学科。

深度学习:一切运用了神经网络作为参数结构进行优化的机器学习算法。

强化学习:不仅能利用现有数据,还可以通过对环境的探索获得新数据,并利用新数据循环往复地更新迭代现有模型的机器学习算法。学习是为了更好地对环境进行探索,而探索是为了获取数据进行更好的学习。

深度强化学习:一切运用了神经网络作为参数结构进行优化的强化学习算法。

链接: https://www.zhihu.com/question/279973545/answer/588124593

 

传统的机器学习:

机器学习(ML)技术在预测中发挥了重要的作用,ML经历了多代的发展,形成了具有丰富的模型结构,例如:

1.线性回归。

2.逻辑回归。

3.决策树。

4.支持向量机。

5.贝叶斯模型。

6.正则化模型。

7.模型集成(ensemble)。

8.神经网络。

这些预测模型中的每一个都基于特定的算法结构,参数都是可调的。训练预测模型涉及以下步骤:

1. 选择一个模型结构(例如逻辑回归,随机森林等)。

2. 用训练数据(输入和输出)输入模型

3. 学习算法将输出最优模型(即具有使训练错误最小化的特定参数的模型)。

每种模式都有自己的特点,在一些任务中表现不错,但在其他方面表现不佳。但总的来说,我们可以把它们分成低功耗(简单)模型和高功耗(复杂)模型。选择不同的模型是一个非常棘手的问题。

由于以下原因,使用低功率/简单模型是优于使用高功率/复杂模型:

  • 在我们拥有强大的处理能力之前,训练高功率模型将需要很长的时间。
  • 在我们拥有大量数据之前,训练高功率模型会导致过度拟合问题(因为高功率模型具有丰富的参数并且可以适应广泛的数据形状,所以我们最终可能训练一个适合于特定到当前的训练数据,而不是推广到足以对未来的数据做好预测)。

然而,选择一个低功率的模型会遇到所谓的“欠拟合”的问题,模型结构太简单,如果它复杂,就无法适应训练数据。(想象一下,基础数据有一个二次方关系:y = 5 * x ^ 2;你无法适应线性回归:y = a * x + b,不管我们选择什么样的a和b。

为了缓解“不适合的问题”,数据科学家通常会运用他们的“领域知识”来提出“输入特征”,这与输出关系更为直接。(例如,返回二次关系y = 5 * square(x),如果创建了一个特征z = x ^ 2,则可以拟合线性回归:y = a * z + b,通过选择a = 5和b = 0)。

机器学习的主要障碍是特征工程这个步骤,这需要领域专家在进入训练过程之前就要找到非常重要的特征。特征工程步骤是要靠手动完成的,而且需要大量领域专业知识,因此它成为当今大多数机器学习任务的主要瓶颈。

换句话说,如果我们没有足够的处理能力和足够的数据,那么我们必须使用低功耗/更简单的模型,这就需要我们花费大量的时间和精力来创建合适的输入特征。这是大多数数据科学家今天花时间去做的地方。

神经网络的回归:

在大数据时代,云计算和大规模并行处理基础架构的共同发展,使得机器处理能力在二十一世纪初得到了极大的提升。我们不再局限于低功耗/简单的模型。例如,当今最流行的两种主流机器学习模型是随机森林和梯度提升树。尽管如此,两者都非常强大,并且提供了非线性模型拟合的训练数据,但数据科学家仍然需要仔细地创建特征以获得良好的性能。

与此同时,计算机科学家重新使用神经网络的许多层来完成这些人类模仿的任务。这给DNN(深度神经网络)带来了新的生机,并在图像分类和语音识别任务方面提供了重大突破。DNN的主要区别在于,你可以将原始信号(例如RGB像素值)直接输入DNN,而不需要创建任何域特定的输入功能。通过多层神经元(这就是为什么它被称为“深度”神经网络),DNN可以“自动”通过每一层产生适当的特征,最后提供一个非常好的预测。这极大地消除了寻找“特征工程”的麻烦,这是数据科学家们最喜欢看到的。

DNN也演变成许多不同的网络拓扑结构,所以有CNN(卷积神经网络),RNN(递归神经网络),LSTM(长期短期记忆),GAN(生成敌对网络),转移学习,注意模型(attention model)所有的这些被统称为深度学习(Deep Learning),它正在引起整个机器学习界的关注。

强化学习:

另一个关键组成部分是关于如何模仿一个人(或动物)的学习,设想感知/行为/奖励循环的非常自然的动物行为。一个人或者一个动物首先会通过感知他或者她所处的状态来了解环境。在此基础上,他或者她会选择一个“动作”,将他或者她带到另一个“状态”。那么他或她将获得“奖励”,循环重复,直到他或她消失。这种学习方式(称为强化学习)与传统监督机器学习的曲线拟合方法有很大不同。尤其是,强化学习学习得非常快,因为每一个新的反馈(例如执行一个行动并获得奖励)都被立即发送到影响随后的决定。

强化学习也提供了预测和优化的平滑整合,因为它在采取不同的行动时保持当前状态的信念和可能的转换概率,然后做出决定哪些行动可以导致最佳结果。

深度学习+强化学习= AI

与经典的ML技术相比,DL提供了一个更强大的预测模型,通常可以产生良好的预测结果。与经典优化模型相比,强化学习提供了更快的学习机制,并且更适应环境的变化。

机器学习 vs 深度学习

在深度探讨machine learning和data science的联系之前,这里简要地讨论一下machine learning 和deep learning。machine learning是一套算法,来训练数据集做预测或者采取行动以使得系统最优化。举例来说,supervised classification algorithms被用来根据历史数据将想要贷款的客户分成预期好的和预期差的(good or bad prospects)。对于给定的任务(比如监督聚类),需要的技术多种多样:naive Bayes、SVM、neural nets、ensembles、association rules、decision trees、logistic regression,或者是很多技术的组合。所有这些都是数据科学的子集。当这些算法自动化后,比如无人驾驶飞机或者无人驾驶汽车,这就叫AI了,或者说的具体一点,deep learning。如果采集的数据来自传感器并且通过互联网传播,那么这就是机器学习或数据科学或深度学习应用于物联网了。

有些人对深度学习有不同的定义,他们认为深度学习是更深层次的神经网络(一种机器学习的技术)。AI(Artificial Intelligence)是创建于20世纪60年代的计算机科学的一个子领域,是关于解决那些对人类来讲非常容易但是对计算机而言很难的任务。值得一提的是,所谓的strong AI可能可以做所有人类可以做的事情(可能除了纯粹的物理问题)。这是相当广泛的,包括各种各样的事情,比如做计划,在世界上到处溜达,识别物体和声音,说话,翻译,社交或者商业交易,还有创造性工作(比如写诗画画)等等。

NLP(Natural language processing)只是AI要处理的语言部分,尤其是写。

Machine learning是这样的一种情况:给出一些可以被以离散形式描述的AI问题(比如从一系列动作中选出对的那个),然后给定一堆外部世界的信息,在不需要程序员手动写程序的情况下选出那个“正确的”行为。通常情况需要借助外界的一些过程来判断这个动作对不对。在数学上,这就是函数:你给一些输入,然后你想要他处理一下得到正确的输出,所以整个问题就简化为用一些自动的方式建立这种数学函数模型。和AI区分一下:如果我写了一段特别机智的程序有着人类的行为,那这就可以是AI,但是除非它的参量都是自动从数据中学会的,否则就不是机器学习。

Deep learning是当下非常流行的机器学习的一种。它包含一种特殊的数学模型,可以想成是一种特定类型的简单块的组合(或者说是块的功能的组合),这些块可以进行调整来更好的预测最终结果。
链接:https://yq.aliyun.com/articles/463124?utm_content=m_1000006623

 

深度学习,作为目前最热的机器学习方法,但并不意味着是机器学习的终点,目前存在以下问题:

(1) 深度学习模型需要大量的训练数据,才能展现出神奇的效果,但现实生活中往往会遇到小样本问题,此时深度学习方法无法入手,传统的机器学习方法就可以处理。
(2) 有些领域,采用传统简单的机器学习方法,可以很好地解决,没必要采用复杂的深度学习方法。
(3) 深度学习的思想,来源于人脑的启发,但绝不是人脑的模拟,举个例子:给一个三四岁的小孩看一辆自行车之后,再见到哪怕外观完全不同的自行车,小孩也十有八九能做出那是一辆自行车的判断,也就是说,人类的学习过程往往不需要大规模的训练数据,目前深度学习方法显然很难做到。
(4) 目前在工业界,基于深度学习的人工智能项目落地非常困难。

深度学习和强化学习的主要区别在于:

(1) 深度学习的训练样本是有标签的,强化学习的训练是没有标签的,它是通过环境给出的奖惩来学习。
(2) 深度学习的学习过程是静态的,强化学习的学习过程是动态的;这里静态与动态的区别在于是否会与环境进行交互,深度学习是给什么样本就学什么,而强化学习是要和环境进行交互,再通过环境给出的奖惩来学习。
(3) 深度学习解决的更多是感知问题,强化学习解决的主要是决策问题;有监督学习更像是”五官”,而强化学习更像“大脑”。

迁移学习 (Transfer Learning) 顾名思义就是就是把已学训练好的模型参数迁移到新的模型来帮助新模型训练。考虑到大部分数据或任务是存在相关性的,所以通过迁移学习我们可以将已经学到的模型参数(也可理解为模型学到的知识)通过某种方式来分享给新模型从而加快并优化模型的学习效率不用像大多数网络那样从零学习 (Starting From Scratch)
迁移学习在深度学习中的应用:迁移学习还与多任务学习概念漂移等问题有关,它并不完全是深度学习的一个研究领域。尽管如此,由于训练深度学习模型所需耗费巨大资源,包括大量的数据集,迁移学习便成了深度学习是一种很受欢迎的方法。但是,只有当从第一个任务中学到的模型特征是容易泛化的时候,迁移学习才能在深度学习中起到作用。“在迁移学习中,我们首先在基础数据集和任务上训练一个基础网络,然后将学习到的特征重新调整或者迁移到另一个目标网络上,用来训练目标任务的数据集。如果这些特征是容易泛化的,且同时适用于基本任务和目标任务,而不只是特定于基本任务,那迁移学习就能有效进行。”——深度神经网络中的特征如何迁移的?这种用于深度学习的迁移学习形式被称为推导迁移 (Inductive Transfer)。就是通过使用合适但不完全相同的相关任务的模型,将模型的范围(模型偏差)以有利的方式缩小。

迁移学习使用方法:我们可以在自己的预测模型问题上使用迁移学习,通常有两种方法:开发模型方法和预训练模型方法。

对于开发模型方法,分为四步:

(1)  选择源任务:必须选择一个与大量数据相关的预测模型问题,这个大量的数据需要与输入数据,输出数据和/或从输入到输出数据映射过程中学习的概念之间存在某种关系。
(2)  开发源模型:接下来,必须为这个第一项任务开发一个熟练的模型;该模型必须比原始模型更好,以确保一些特征学习已经发挥了其作用。
(3)  重用模型:然后可以将适合元任务的模型用作感兴趣的另一个任务模型的起点;这取决于所使用的建模技术,可能涉及到了全部或部分模型。
(4)  调整模型:可选项,对感兴趣任务的调整输入—输出配对数据或改进模型。

对于预训练模型方法,分为三步:

(1)  选择源任务:从可用的模型中选择预训练的元模型,许多研究机构会发布已经在大量的且具有挑战性的数据集上训练好的模型,在可用模型的模型池里面也能找到这些模型。
(2)  重用模型:然后可以将预训练的模型用作感兴趣的另一个任务模型的起点,这取决于所使用的建模技术,可能涉及使用全部或部分模型。
(3)  调整模型:可选项,对感兴趣任务的调整输入—输出配对数据或改进模型。

其中,第二类迁移学习方法在深度学习领域是很常见的。

链接:https://zhuanlan.zhihu.com/p/64461786

你可能感兴趣的:(人工智能)