前言算法
人工智能是一个最普遍的概念,人工智能的目的就是让计算机这台机器可以象人同样思考,而机器学习是人工智能的分支,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,使之不断改善自身的性能。网络
深度学习是一种机器学习的方法,它试图使用包含复杂结构或由多重非线性变换构成的多个处理层(神经网络)对数据进行高层抽象的算法。框架
深度学习的目的是创建并模拟人脑进行分析学习的神经网络,它模仿大脑的机制来解释数据。机器学习
这是学习知识点:函数
在深度学习网络中,每个节点层在前一层输出的基础上学习识别一组特定的特征。随着神经网络深度增长,节点所能识别的特征也就愈来愈复杂,由于每一层会整合并重组前一层的特征。性能
深度学习的过程一样是分为训练和推理(既“评估”)两个过程,经过训练过程来得到数据模型,而后用于评估新的数据。学习
数据模型分为两种,一种是所谓判别模型(Discriminative Model),也就是说模型能够直接用来判别事物的。这里所说的判别事物,最典型的就是作分类。既然直接能够用来分类,也就是说咱们能够在已知属性的条件下,对该记录进行判断。因此,判别模型是对条件几率进行的建模,也就是p(Y|X)。这里X就是属性集合,实际上就是一个向量;而Y则多是一个值(此时对应分类问题), 多是一个向量(此时对应序列标注问题)。判别模型经常使用于处理分类问题(好比鉴定垃圾邮件)、图像识别等等。人工智能
再说一说生成模型(Generativecdn
Model)。生成模型能够描述数据的生成过程。换句话说,已知了这个模型,咱们就能够产生该模型描述的数据。而数据由两部分组成,也就是(X,Y),前者是特征,后者则是类别(Y是标量)或者序列类别(Y是向量)。要描述整个数据,也就是要对p(X,Y)进行建模,因此是对联合几率进行建模。生成模型自己不是作分类或者序列标注的,可是能够用来解决这些问题,也能够用于生成式问题,好比聊天机器人、好比AI谱曲等问题。对象
而机器学习能够分红下面几种类别:
监督学习从给定的训练数据集中学习出一个函数,当新的数据到来时,能够根据这个函数预测结果。监督学习的训练集要求是包括输入和输出,也能够说是特征和目标。训练数据中的目标是由人标注的。常见的监督学习算法包括回归分析和统计分类。
无监督学习与监督学习相比,训练集没有人为标注的结果。常见的无监督学习算法有聚类。
半监督学习介于监督学习与无监督学习之间。它主要考虑如何利用少许的标注样本和大量的未标注样本进行训练和分类的问题。。
加强学习经过观察来学习作成如何的动做。每一个动做都会对环境有所影响,学习对象根据观察到的周围环境的反馈来作出判断。
在传统的机器学习领域,监督学习最大的问题是训练数据标注成本比较高,而无监督学习应用范围有限。利用少许的训练样本和大量无标注数据的半监督学习一直是机器学习的研究重点。
当前很是流行的深度学习GAN模型和半监督学习的思路有相通之处,GAN是“生成对抗网络”(Generative Adversarial Networks)的简称,包括了一个生成模型G和一个判别模型D,GAN的目标函数是关于D与G的一个零和游戏,也是一个最小-最大化问题。
GAN实际上就是生成模型和判别模型之间的一个模仿游戏。生成模型的目的,就是要尽可能去模仿、建模和学习真实数据的分布规律;而判别模型则是要判别本身所获得的一个输入数据,到底是来自于真实的数据分布仍是来自于一个生成模型。经过这两个内部模型之间不断的竞争,从而提升两个模型的生成能力和判别能力。
目前主流的深度学习框架:
Caffe 由Berkeley提出
TensorFlow 由Google提出(Apache 2.0)
Torch (BSD License), facebook是主要使用者
MXNet 一个相对中立的机器学习框架(Apache 2.0), 被Amazon AWS使用
CNTK2 由Microsoft提出(MIT License)