《神经网络与深度学习讲义》百度网盘pdf最新全集下载:
链接: https://pan.baidu.com/s/1RJ3mrqg_HR7UBzA1ut8c5g
?pwd=jp5d 提取码: jp5d
简介:一本很粗浅的讲义。
谷歌人工智能写作项目:小发猫
1、普通机器学习一般指的是像决策树、逻辑回归、支持向量机、xgboost等
2、深度学习主要特点是使用深度神经网络:深度卷积网络、深度循环网络、递归网络等
区别的话:
1、算法层面上没有任何相似的地方,硬要说相似可能就是大家的功能都是对高维函数的拟合吧神经网络与深度学习周志华。
2、普通机器学习比较擅长分析维度较低,可解释性很强的任务。比如数据挖掘、推荐算法。他们的特点是一般情况下采集的数据维度都不高,以广告推送任务为例,一般分析的数据维度只会包含性别、年龄、学历、职业等。可解释性很强,调参方向较为明确。
3、深度学习算法擅长分析高维度的数据。比如图像、语音等。以图片为例,一张图片像素可能几十上百万,相当于特征向量维度达到几十上百万,而且像素点与像素点之间的关系又不是特别明显。这种时候用卷积神经网络能很有效的处理这种问题,基本很精确的抓取出图片的特征。但是每个维度的权重可解释性极弱,调参方向很不明朗(神经元数量、隐含层层数等)
综上,其实两者差别很大的。深度学习是近几年才发展起来的。传统机器学习算法大都来源于概率论,信息学。对于程序编写的话,传统机器学习模型基本上都集成在sklearn这个包里面,深度学习可以用tensorflow作为框架
想详细了解的话,传统机器学习可以看李航老师的《统计学原理》或者周志华老师的《机器学习》(也叫西瓜书)。深度学习因为是这两年才发展起来的相关书籍很少,可以去查近两年的深度学习论文
当然两者都需要比较扎实的数学基础,主要是这三本:《线性代数》或《高等代数》、《高等数学》或《数学分析》、《概率论》或《随机过程》
谢谢
1、普通机器学习一般指的是像决策树、逻辑回归、支持向量机、xgboost等
2、深度学习主要特点是使用深度神经网络:深度卷积网络、深度循环网络、递归网络等
区别的话:
1、算法层面上没有任何相似的地方,硬要说相似可能就是大家的功能都是对高维函数的拟合吧。
2、普通机器学习比较擅长分析维度较低,可解释性很强的任务。比如数据挖掘、推荐算法。他们的特点是一般情况下采集的数据维度都不高,以广告推送任务为例,一般分析的数据维度只会包含性别、年龄、学历、职业等。可解释性很强,调参方向较为明确。
3、深度学习算法擅长分析高维度的数据。比如图像、语音等。以图片为例,一张图片像素可能几十上百万,相当于特征向量维度达到几十上百万,而且像素点与像素点之间的关系又不是特别明显。这种时候用卷积神经网络能很有效的处理这种问题,基本很精确的抓取出图片的特征。但是每个维度的权重可解释性极弱,调参方向很不明朗(神经元数量、隐含层层数等)
综上,其实两者差别很大的。深度学习是近几年才发展起来的。传统机器学习算法大都来源于概率论,信息学。对于程序编写的话,传统机器学习模型基本上都集成在sklearn这个包里面,深度学习可以用tensorflow作为框架
想详细了解的话,传统机器学习可以看李航老师的《统计学原理》或者周志华老师的《机器学习》(也叫西瓜书)。深度学习因为是这两年才发展起来的相关书籍很少,可以去查近两年的深度学习论文
当然两者都需要比较扎实的数学基础,主要是这三本:《线性代数》或《高等代数》、《高等数学》或《数学分析》、《概率论》或《随机过程》
谢谢
QA形式对自然语言处理中注意力机制(Attention)进行总结,并对Transformer进行深入解析。
二、Transformer(Attention Is All You Need)详解
1、Transformer的整体架构是怎样的?由哪些部分组成?
2、Transformer Encoder 与 Transformer Decoder 有哪些不同?
3、Encoder-Decoder attention 与self-attention mechanism有哪些不同?
4、multi-head self-attention mechanism具体的计算过程是怎样的?
5、Transformer在GPT和Bert等词向量预训练模型中具体是怎么应用的?有什么变化?
一、Attention机制剖析
1、为什么要引入Attention机制?
根据通用近似定理,前馈网络和循环网络都有很强的能力。但为什么还要引入注意力机制呢?
可以借助人脑处理信息过载的方式,例如Attention机制可以提高神经网络处理信息的能力。
2、Attention机制有哪些?(怎么分类?)
当用神经网络来处理大量的输入信息时,也可以借鉴人脑的注意力机制,只 选择一些关键的信息输入进行处理,来提高神经网络的效率。按照认知神经学中的注意力,可以总体上分为两类:
在人工神经网络中,注意力机制一般就特指聚焦式注意力。
3、Attention机制的计算流程是怎样的?
Attention机制的实质其实就是一个寻址(addressing)的过程,如上图所示:给定一个和任务相关的查询Query向量 q,通过计算与Key的注意力分布并附加在Value上,从而计算Attention Value,这个过程实际上是Attention机制缓解神经网络模型复杂度的体现:不需要将所有的N个输入信息都输入到神经网络进行计算,只需要从X中选择一些和任务相关的信息输入给神经网络。
step1-信息输入:用X = [x1, · · · , xN ]表示N 个输入信息;
step2-注意力分布计算:令Key=Value=X,则可以给出注意力分布
我们将 称之为注意力分布(概率分布), 为注意力打分机制,有几种打分机制:
step3-信息加权平均:注意力分布 可以解释为在上下文查询q时,第i个信息受关注的程度,采用一种“软性”的信息选择机制对输入信息X进行编码为:
这种编码方式为软性注意力机制(soft Attention),软性注意力机制有两种:普通模式(Key=Value=X)和键值对模式(Key!=Value)。
4、Attention机制的变种有哪些?
与普通的Attention机制(上图左)相比,Attention机制有哪些变种呢?
5、一种强大的Attention机制:为什么自注意力模型(self-Attention model)在长距离序列中如此强大?
(1)卷积或循环神经网络难道不能处理长距离序列吗?
当使用神经网络来处理一个变长的向量序列时,我们通常可以使用卷积网络或循环网络进行编码来得到一个相同长度的输出向量序列,如图所示:
从上图可以看出,无论卷积还是循环神经网络其实都是对变长序列的一种“局部编码”:卷积神经网络显然是基于N-gram的局部编码;而对于循环神经网络,由于梯度消失等问题也只能建立短距离依赖。
(2)要解决这种短距离依赖的“局部编码”问题,从而对输入序列建立长距离依赖关系,有哪些办法呢?
由上图可以看出,全连接网络虽然是一种非常直接的建模远距离依赖的模型, 但是无法处理变长的输入序列。不同的输入长度,其连接权重的大小也是不同的。
这时我们就可以利用注意力机制来“动态”地生成不同连接的权重,这就是自注意力模型(self-attention model)。由于自注意力模型的权重是动态生成的,因此可以处理变长的信息序列。
总体来说,为什么自注意力模型(self-Attention model)如此强大:利用注意力机制来“动态”地生成不同连接的权重,从而处理变长的信息序列。
(3)自注意力模型(self-Attention model)具体的计算流程是怎样的呢?
同样,给出信息输入:用X = [x1, · · · , xN ]表示N 个输入信息;通过线性变换得到为查询向量序列,键向量序列和值向量序列:
上面的公式可以看出,self-Attention中的Q是对自身(self)输入的变换,而在传统的Attention中,Q来自于外部。
注意力计算公式为:
自注意力模型(self-Attention model)中,通常使用缩放点积来作为注意力打分函数,输出向量序列可以写为:
二、Transformer(Attention Is All You Need)详解
从Transformer这篇论文的题目可以看出,Transformer的核心就是Attention,这也就是为什么本文会在剖析玩Attention机制之后会引出Transformer,如果对上面的Attention机制特别是自注意力模型(self-Attention model)理解后,Transformer就很容易理解了。
1、Transformer的整体架构是怎样的?由哪些部分组成?
Transformer其实这就是一个Seq2Seq模型,左边一个encoder把输入读进去,右边一个decoder得到输出:
Transformer=Transformer Encoder+Transformer Decoder
(1)Transformer Encoder(N=6层,每层包括2个sub-layers):
每个sub-layer都使用了残差网络:
(2)Transformer Decoder(N=6层,每层包括3个sub-layers):
2、Transformer Encoder 与 Transformer Decoder 有哪些不同?
(1)multi-head self-attention mechanism不同,Encoder中不需要使用Masked,而Decoder中需要使用Masked;
(2)Decoder中多了一层Encoder-Decoder attention,这与 self-attention mechanism不同。
3、Encoder-Decoder attention 与self-attention mechanism有哪些不同?
它们都是用了 multi-head计算,不过Encoder-Decoder attention采用传统的attention机制,其中的Query是self-attention mechanism已经计算出的上一时间i处的编码值,Key和Value都是Encoder的输出,这与self-attention mechanism不同。代码中具体体现:
4、multi-head self-attention mechanism具体的计算过程是怎样的?
Transformer中的Attention机制由Scaled Dot-Product Attention和Multi-Head Attention组成,上图给出了整体流程。下面具体介绍各个环节:
上述过程公式为:
5、Transformer在GPT和Bert等词向量预训练模型中具体是怎么应用的?有什么变化?
BERT Transformer 使用双向self-attention,而GPT Transformer 使用受限制的self-attention,其中每个token只能处理其左侧的上下文。双向 Transformer 通常被称为“Transformer encoder”,而左侧上下文被称为“Transformer decoder”,decoder是不能获要预测的信息的。
计算能力的限制:当要记住很多“信息“,模型就要变得更复杂,然而目前计算能力依然是限制神经网络发展的瓶颈。
优化算法的限制:虽然局部连接、权重共享以及pooling等优化操作可以让神经网络变得简单一些,有效缓解模型复杂度和表达能力之间的矛盾;但是,如循环神经网络中的长距离以来问题,信息“记忆”能力并不高。
聚焦式(focus)注意力:自上而下的有意识的注意力,主动注意——是指有预定目的、依赖任务的、主动有意识地聚焦于某一对象的注意力;
显著性(saliency-based)注意力:自下而上的有意识的注意力,被动注意——基于显著性的注意力是由外界刺激驱动的注意,不需要主动干预,也和任务无关;可以将max-pooling和门控(gating)机制来近似地看作是自下而上的基于显著性的注意力机制。
变种1-硬性注意力:之前提到的注意力是软性注意力,其选择的信息是所有输入信息在注意力 分布下的期望。还有一种注意力是只关注到某一个位置上的信息,叫做硬性注意力(hard attention)。硬性注意力有两种实现方式:(1)一种是选取最高概率的输入信息;(2)另一种硬性注意力可以通过在注意力分布式上随机采样的方式实现。硬性注意力模型的缺点:
变种2-键值对注意力:即上图右边的键值对模式,此时Key!=Value,注意力函数变为:
变种3-多头注意力:多头注意力(multi-head attention)是利用多个查询Q = [q1, · · · , qM],来平行地计算从输入信息中选取多个信息。每个注意力关注输入信息的不同部分,然后再进行拼接:
sub-layer-1:multi-head self-attention mechanism,用来进行self-attention。
sub-layer-2:Position-wise Feed-forward Networks,简单的全连接网络,对每个position的向量分别进行相同的操作,包括两个线性变换和一个ReLU激活输出(输入输出层的维度都为512,中间层为2048):
sub-layer-1:Masked multi-head self-attention mechanism,用来进行self-attention,与Encoder不同:由于是序列生成过程,所以在时刻 i 的时候,大于 i 的时刻都没有结果,只有小于 i 的时刻有结果,因此需要做Mask。
sub-layer-2:Position-wise Feed-forward Networks,同Encoder。
sub-layer-3:Encoder-Decoder attention计算。
Expand:实际上是经过线性变换,生成Q、K、V三个向量;
Split heads: 进行分头操作,在原文中将原来每个位置512维度分成8个head,每个head维度变为64;
Self Attention:对每个head进行Self Attention,具体过程和第一部分介绍的一致;
Concat heads:对进行完Self Attention每个head进行拼接;
GPT中训练的是单向语言模型,其实就是直接应用Transformer Decoder;
Bert中训练的是双向语言模型,应用了Transformer Encoder部分,不过在Encoder基础上还做了Masked操作;
点击上方“ CSDN ”,选择“置顶公众号”
关键时刻,第一时间送达!
作者赵宁
出品 GitChat
一、人工智能的发展现状
1.1概念
根据维基百科的解释,人工智能是被机器展示的智力,与人类和其他动物的自然智能相反,在计算机科学中 AI 研究被定义为“代理人软件程序”:任何能够感受周围环境并且能最大化它成功机会的设备。
1.2重大事件
2016年 3月,AlphaGo 与当时世界排名第四、职业九段棋手李世石,进行围棋人机大战,以4:1总比分获胜。
2016年 10月,美国白宫发布了《为未来人工智能做好准备》和《美国国家人工智能研究与发展策略规划》两份重磅报告,详细阐述了美国未来的人工智能发展规划以及人工智能给政府工作带来的挑战与机遇。
VentureBeat 对这两份报告进行了总结,得出了7 个浅显易懂的要点:
1.人工智能应当被用于造福人类;
2.政府应该拥抱人工智能;
3.需要对自动汽车和无人机进行管制;
4.要让所有孩子都跟上技术的发展;
5.使用人工智能补充而非取代人类工作者;
6.消除数据中的偏见或不要使用有偏见的数据;
7.考虑安全和全球影响。
2016年双十一,鲁班首次服务双十一,制作了1.7亿章商品展示广告,提升商品点击率100%。如果全靠设计师人手来完成,假设每张图需要耗时20分钟,满打满算需要100个设计师连续做300年。
2017年,鲁班的设计水平显著提升,目前已经学习百万级的设计师创意内容,拥有演变出上亿级的设计能力。此外,鲁班已经实现一天制作4000万张海报能力,没有一张会完全一样。
2017年 5月,AlphaGo Master 战胜世界冠军柯洁。
2017年 10月 18日,DeepMind 团队公布了最强版本 AlphaGo,代号 AlphaGo Zero。
2017年 10月 25日,在沙特举行的未来投资计划大会上,沙特阿拉伯授予美国汉森机器人公司生产的“女性”机器人索菲亚公民身份。
作为世界上首个获得公民身份的机器人,索菲亚当天说,“她”希望用人工智能“帮助人类过上更好的生活”,同时对支持“AI 威胁论”的马斯克说“人不犯我,我不犯人”!
会后,马斯克在推特上说:“把电影《教父》输入了人工智能系统,还能有什么比这个更糟的?”教父是好莱坞经典电影,剧情充满了背叛和谋杀。
索菲亚被授予公民身份后所产生的伦理问题也是人们不得不考虑的
近几年人工智能领域的大新闻太多,这里不一一列举
二、人工智能、深度学习、机器学习、增强学习之间的关系是怎样的
如图所示,人工智能是一个大类,包括专家系统、知识表示、机器学习等等,其中机器学习是目前最火也是发展最好的一个分支,机器学习中又包括监督学习、非监督学习、深度学习,增强学习等等。
监督学习,就是人们常说的分类,通过已有的训练样本(即已知数据以及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优则表示在某个评价准则下是最佳的)。
再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的,也就具有了对未知数据进行分类的能力。
举例来说,我们上幼儿园的时候经常做的一个活动叫看图识字,如上图所示,老师会给我们看很多图片,下面配了文字,时间长了之后,我们大脑中会形成抽象的概念,两个犄角,一条短尾巴,胖胖的(特征)?
这样的动物是牛;圆的,黄的,发光的,挂在天上的? 是太阳;人长这样。等再看到类似的东西时我们便能认出来,即使跟以前看到的不完全一样,但是符合在我们大脑中形成的概念,如下图所示。
非监督学学习则是另一种研究的比较多的学习方法,它与监督学习的不同之处,在于我们事先没有任何训练样本,而需要直接对数据进行建模。
举个例子,如图所示,在没有任何提示(无训练集)的情况下,需要把下列六个图形分成两类,你会怎么分呢,当然是第一排一类,第二排一类,因为第一排形状更接近,第二排形状更接近。
非监督学习就是在实现不知道数据集分类的情况下在数据中寻找特征。
深度学习是基于机器学习延伸出来的一个新的领域,由以人大脑结构为启发的神经网络算法为起源加之模型结构深度的增加发展,并伴随大数据和计算能力的提高而产生的一系列新的算法。
深度学习概念由著名科学家 Geoffrey Hinton 等人在2006年和2007年在《Sciences》等上发表的文章被提出和兴起。
深度学习,作为机器学习中延伸出来的一个领域,被应用在图像处理与计算机视觉,自然语言处理以及语音识别等领域。
自2006年至今,学术界和工业界合作在深度学习方面的研究与应用在以上领域取得了突破性的进展。以 ImageNet 为数据库的经典图像中的物体识别竞赛为例,击败了所有传统算法,取得了前所未有的精确度。
增强学习也是机器学习一个重要的分支,是通过观察来学习做成如何的动作。每个动作都会对环境有所影响,学习对象根据观察到的周围环境的反馈来做出判断。
三、数学基础有多重要
对于数学基础知识,需要高中数学知识加上高数、线性代数、统计学、概率论,即使掌握的不是很完善,但是至少要知道概念,在用到的时候知道去哪查。
如果基础不好,可以先看看吴军的《数学之美》,讲的比较通俗易懂。也可以边做边学,实践是检验真理的唯一标准,毕竟大多数人还是以工程实践为主,如果你想做研究理论的科学家,并不适合看本文。
四、入门级机器学习算法
4.1决策树
判定树是一个类似于流程图的树结构:其中,每个内部结点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶结点代表类或类分布。树的最顶层是根结点。
例:现有一个数据集,表示一些的人的年龄、收入、是否是学生、信用、是否会买电脑。年龄有年轻,中年,老年三种;收入有高中低;信用有一般和很好。数据及保存在 AllElectronics.csv 中。
现在在有一个新的人(数据),要判断这个人是否会买电脑。
4.2最临近取样
最临近取样就是把已有数据分成几类,对新输入的数据计算与已知数据的距离,距离哪一个近,就把新数据分到哪一类,例如下图所示的电影分类,对于最后一行未知电影类型的电影,根据打斗次数和接吻次数,距离浪漫型更近,应该被归类为浪漫型电影。
例:irisdata.txt 实在网上下载的鸢尾属植物数据集,根据数据集合,对新的数据进行分类。
4.3支持向量机
支持向量机(SVM)是从线性可分情况下的最优分类面发展而来。最优分类面就是要求分类线不但能将两类正确分开(训练错误率为0),且使分类间隔最大。
SVM 考虑寻找一个满足分类要求的超平面, 并且使训练集中的点距离分类面尽可能的远, 也就是寻找一个分类面使它两侧的空白区域(margin)最大。
这两类样本中离分类面最近的点且平行于最优分类面的超平面上 H1,H2的训练样本就叫做支持向量。
例:使用 sklearn 库实现 svm 算法,俗称调库,实际上调库是一个很简单的过程,初级阶段甚至都不需要知道原理。
# coding:utf-8from sklearn import svmX =[[2,0],[1,1],[2,3]]y =[0,0,1]clf = svm.SVC(kernel ='linear')clf.fit(X,y)#通过.fit 函数已经可以算出支持向量机的所有参数并保存在 clf 中print clf# get support vectors print clf.supportvectors#get index of support vectorsprint clf.support#get number of support vectors for each classprint clf.nsupport#predict data ,参数是二维数组print clf.predict([[2,0],[10,10]])
五、书单推荐
《数学之美》吴军
《机器学习》周志华
《漫谈人工智能》集智俱乐部
《机器学习实战》 Peter Harrington
《TensorFlow 技术解析与实战》李嘉璇
《统计学习方法》李航
六、学习人工智能的误区―人工智能又是一个泡沫?
人工智能很大程度上被一些科技巨头公司夸大了,为了拿到资本的钱,这也在情理之中,但是普通大众一定要有自己的鉴别能力,客观地分析自己到底是否适合做这一行。
纵观互联网发展史,人工智能这种发展态势并不是首例,像2014年爆红的 O2O 模式,那时候不懂点 O2O 都不敢说自己是互联网圈的人。
到现在,一批又一批的创业大军倒下去,当然也会留下像亚马逊、阿里巴巴这样的巨头,每个行业都有它的金字塔。
我上大二的时候可以说3D 打印、VR 技术处在风口浪尖,各种3D 打印创业公司、VR 创业公司层出不穷,大四就已经开始倒了一家又一家,包括我也做过3D 打印方面的项目,实际上做的东西也不过时改进一些边边角角的东西,最核心的框架早已被大牛们设计好了。
盲目追随科技的潮流,我们永远只能在潮流的后面。
最近看 CCTV 上都已经有撒贝宁主持的人工智能综艺节目了,这说明人工智能早已成了一片红海,与现在的移动互联网技术并没有本质上的区别。
自从 Google 开源 TensorFlow 框架(还有很多其他优秀的框架),写机器学习的代码很多都是调调参数,有的甚至都不用知道原理,当然大牛肯定是有,还是那句话,每个行业都有的它的金字塔,只不过到达塔尖的路径不同。
在我看来,调用 TensorFlow 的框架进行人工智能的开发与调用 Android 的 API 开发 App 并没有本质的区别,真正伟大的是谷歌公司,后来者只不过是追随者。
题外话,不知道大家是否听过21世纪是生物的世纪,这一概念兴起之时,众多高考生选择生物相关的专业。之前有个对国内某著名高校生物专业毕业生的就业去向调查,其中一个结论是生物专业学生最好的出路就是离开这个专业。
当然我们不得不说生物技术跟我们每个人的生活息息相关,但是其发展周期之长,又怎是一个人等得起的?如何把个人认同与社会认同,自我价值与社会价值协调统一,也是我们需要思考的问题。
人工智能是否是个泡沫?这个概念还能火多久?
第六部分内容纯属个人观点,仅供参考。
作者简介:赵宁,智能汽车竞赛国奖获得者,团队 Leader。Indiegogo 两个月众筹超100万。双一流高校自动控制专业硕士(跨专业跨校保研)。机器学习研究者、产品经理、互联网达人。