绪论与深度学习概述
绪论与深度学习概述
1.起源与发展
第一阶段(1943 -1969)
1943年:Warren McCulloch和Walter Pitts提出了MP神经元模型
1958年:Frank Rosenblatt提出了感知器(Perceptron)
1960年:Bernard Widrow和Ted Hoff提出了ADLINE神经网络
1969年:Marvin Minsky和Seymour Papert指出感知器只能做简单的线性分类任务,无法解决XOR这种简单分类问题
第二阶段(1980 -1989)
1982年:John Hopfield提出了Hopfield神经网络
1986年:David Rumelhart、Geoffrey Hinton和Ronald Williams提 出了误差反向传播算法(Error Back Propagation, BP)
1989年:YannLeCun等人提出了卷积神经网络(Convolutional Neural Networks,CNN)
第三阶段(2006 - )
2006年:Hinton和他的学生正式提出了深度学习的概念,通过无监督学习方法逐层训练算法,再使用有监督的反向传播算法进行调优
2011年:Frank Seide在语音识别基准测试数据集上获得压倒性优势
2012年:AlexKrizhevsky在CNN中引入ReLU激活函数,在图像识别基准测试中获得压倒性优势。
2012年:吴恩达(Andrew Ng)教授和谷歌首席架构师Jeff Dean共 同主导著名的GoogleBrain项目,采用16万个CPU来构建一个深层 神经网络——DNN,将其应用于图像和语音的识别,大获成功
2014年:Facebook的DeepFace项目,在人脸识别方面的准确率已 经能够达到97%以上,跟人类识别的准确率几乎没有差别
2016年:谷歌DeepMind开发的AlphaGo以4:1的比分战胜国际顶尖 围棋高手李世石,证明在围棋领域,基于深度学习技术的机器人已
经超越了人类
2.重要的研究机构和著名科学家
深度学习研究机构
Machine Learning at University of Toronto
代表人物:GeoffreyHinton
1.4
Deepmind at Google
1.5
AI research at Facebook
清华大学AI研究院
中国科学院自动化所
中国科学院数学与系统科学研究院
Tencent AI Lab
华为诺亚方舟实验室
阿里达摩院
…
深度学习知名科学家
Geoffrey Hinton
深度学习之父;多伦多大学杰出教授;Google副总裁及首席科学顾问;英国皇家科学院院士,美国国家工 程院外籍院士,美国艺术与科学院 外籍院士。
在BP算法,Boltzmannmachines, Time-delay neural nets, Variational learning and Deep learning做出杰出文献。
Yann LeCun
卷积神经网络之父;纽约大学杰出教授;Facebook人工智能实验室负责人;纽约大学数据科学实验室创始人。
在学习理论与学习算法、卷积神经 网络领域做出杰出文献。
Yoshua Bengio
蒙特利尔大学全职教授;加拿大统计学习算法研究主席;加拿大皇家科学院院士;CIFAR Senior Fellow;创办了ICLR国际会议。
在MachineLearning,Deeplearning 领域做出杰出文献。
吴恩达(Andrew Ng)
斯坦福大学计算机科学系和电子工程系副教授;在线教育平台Coursera的联合创始人(with Daphne Koller);2014年5月16日,吴恩达加入百度,担任百度公司首席科学家;2017年10月,吴恩达出任Woebot公司新任董事长。
3.深度学习的定义和主要应用
定义
深度学习定义:一般是指通过训练多层网络结构对未知数据进行分类或者回归
深度学习分类:有监督学习方法==深度前馈网络、卷积神经网络、循环神经网络等;无监督先学习方法==深度信念网、深度玻尔兹曼机,深度自编码器等。
主要应用
图像处理领域主要应用
1.图像分类(物体识别):整幅图像的分类或识别
2.物体检测:检测图像中物体的位置进而识别物体
3.图像分割:对图像中特定物体按边缘进行分割
4.图像回归:预测图像中物体组成部分的坐标
语音识别领域主要应用
1.语音识别:将语音识别为文字
2.声纹识别:识别那个人的声音
3.语音合成:根据文字合成特定人的语音
自然语言处理领域主要应用
1.语言模型:根据之前词预测下一个单词。
2.情感分析:分析文本体现的情感(正负向、正负中或多态度类型)
3.神经机器翻译:基于统计语言模型的多语种互译
4.神经自动摘要:根据文本自动生成摘要
5.机器阅读理解:通过阅读文本回答问题,完成选择题或者完形填空。
6.自然语言推理:根据一句话(前提)推出另一句话(结论)
综合应用
1.图像描述:根据图像给出图像的描述句子
2.可视问答:根据图像或视频回答问题
3.图像生成:根据文本描述生成图像
4.视频生成:根据事故自动生成视频
数学基础
数学基础:
1.张量、矩阵运算、矩阵的基础知识、矩阵分解
2.概况统计、常见的(多变量)分布
3.信息论、熵、互信息、相对熵、交叉熵
4.最优化估计方法、最小二乘、线性模型
矩阵论
矩阵基本知识
矩阵:是一个二维数组,其中的每一个元素一般由两个索引来确定一般用大写变量表示,m行n列的实数矩阵基座A∈R m×n
张量(Tensor):是矢量概念推广,可以用来表示在一些矢量,标量和其他张量之间的线性关系的多线性函数,标量是0阶张量,矢量是一阶张量,矩阵是二阶张量,三维及以上数组一般称张量
矩阵的秩(Rank):矩阵列向量中的极大线性无关组的数目,记作列秩,同样可以定义行秩,行秩=列秩=矩阵的秩,通常记作rank(A)
矩阵的逆
1.若矩阵A为方阵,当rank(An*n)<n 时,称A为奇异矩阵或不可逆矩阵
1.若矩阵A为方阵,当rank(An*n)=n 时,称A为非奇异矩阵或可逆矩阵
其逆矩阵 A−1 满足以下条件,则称 A−1 为矩阵A的逆矩阵:AA−1=A−1A=In其中 In是 n×n 的单位阵。
矩阵的广义逆矩阵
1.如果矩阵部位方阵或者时奇异矩阵,不存在逆矩阵,但是可以计算其广义矩阵或者伪逆矩阵;
2.对于矩阵A,如果存在矩阵B使得ABA = A 则称B为A的广义逆矩阵
矩阵分解
机器学习中常见的矩阵分解有特征分解和奇异值分解
概率统计
随机变量
常见的概率分布
伯努利分布
1.伯努利试验:只可能有两种结果的单次随机实验
2.又称0-1分布,单个二值型离散随机变量分布
3.其概率分布:P * (* X = 1) = p,P(X = 0) = 1-p
二项分布
均匀分布
高斯分布
指数分布
多变量概率分布
条件概率、联合概率、先验概率、后验概率、全概率公式、贝叶斯公式
常用统计量
方差、协方差
信息论
熵(Entropy)
信息熵,可以看作时样本集合纯度一种指标,也可以认为是样本集合包含的平均信息量
联合熵
两个随机变量X和Y的联合分布可以形成联合熵,度量二维随机变量XY的不确定性
条件熵
在随机变量X发生的前提下,随机变量Y发生带来的熵,定义为Y的条件熵,用H(Y|X)表示,定义为:
条件熵用来衡量在已知随机变量Y的不确定。熵、联合熵和条件熵之间的关系:H(Y|X)= H(X,Y) - H(X)
互信息
I(X;Y) = H(X) + H(Y) - H(X,Y)
相对熵
相对熵又称KL散度,是描述两个概率分布P和Q差异的一种方法,记作D(P||Q)。在信息论中,D(P||Q)表示用概率分布Q来拟合真实分布P时,产生的信息表达损耗,其中P表示信息源的真实分布,Q表示P的近似分布。
交叉熵
一般用来求目标与预测值之间的差距,深度学习中经常用到的一类损失函数度量,比如在对抗生成网络(GAN)中
交叉熵:
最优化估计
最小二乘估计
最小二乘估计又称最小平方法,是一种数学优化方法。它通过最小化误差的平方和寻找数据的最佳函数匹配。最小二乘法经常用于回归问题,可以方便的求得未知参数,比如曲线拟合,最小化能量或者最大化熵等问题。
总结:
从人工智能、机器学习与深度学习的起源以及发展,包括各自的应用,都是后期的学习打下基础。以及数学基础,深度学习离不开数学,前期打下坚实的基础是非常重要的。
机器学习基础
机器学习基础
1.数据集
2.误差分析
3.代表的机器学习方法
1.有监督、线性回归、SVM、决策树、RF
2.无监督、聚类、降维(PCA)
机器学习
基本概念:具体来说就是从已知数据中获取规律,并利用规律对未知数据进行预测的技术
机器学习分类
1.有监督学习(SupervisedLearning):有老师(环境)的情况下,学生(计算机)从老师(环境)哪里获得对错指示、最终答案的学习方法。跟学师评
2.无监督学习(UnsupervisedLearning):没有老师(环境)的情况 下,学生(计算机)自学的过程,一般使用一些既定标准进行评价。 自学标评
3.强化学习(Reinforcement Learning):没有老师(环境)的情况 下,学生(计算机)对问题答案进行自我评价的方法,自学自评
机器学习可做如下两种分类
1.有监督学习:代表任务“分类”和“回归”
2.无监督分类:代表任务“聚类”和“降维”
数据集
数据集:观测样本的集合。具体的D=x1,x2,⋯,xn 表示一个包含n个样本的数据集,其中 xi 是一个向量,表示数据集的第𝑖个样本,其维度𝑑称为样本空间的维度。
向量xi的元素称为样本的特征,其取值可以是连续的,也可以是离散的。从数据集中学出模型的过程,便称为“学习”或“训练”
数据集分类
1.训练集(Trainingset):用于模型拟合的数据样本
2.验证集(Validation set):是模型训练过程中单独留出来的样本集,它可以用于调整模型的超参数和用于对模型的能力进行初步评估;
例如SVM中参数c(控制分类错误的惩罚程度)和核函数的选择,或者选择网络结构
3.测试集(Testset):用来评估最终模型的泛化能力,但不能作为调参,选择特征等算法相关的依据
常见数据集
图像分类
1.MNIST(手写数字) http://yann.lecun.com/exdb/mnist/
2.CIFAR-10, CIFAR-100, ImageNet
https://www.cs.toronto.edu/~kriz/cifar.html
电影评论情感分类
1.Large Movie Review Dataset v1.0
2.http://ai.stanford.edu/~amaas/data/sentiment/
图像生成诗歌
1.数据集:https://github.com/researchmm/img2poem
误差分析
误差是指算法实际预测输出与样本真实输出之间的差异
1.模型在训练集上的误差称为“训练误差”
2.模型在总体样本上的误差称为“泛化误差”
3.模型在测试集上的误差称为“测试误差”
由于我们无法知道总体样本,多以我们只能尽量最小化训练误差,导致训练误差和泛化误差有可能存在明显的差异。
*过拟合 :是指模型能很好的拟合训练样本,而无法很好地拟合测试样本的现象,从而导致泛型化性能下降,未防止”过拟合“可以选择减少参数,降低模型复杂度,正则化等
*欠拟合 :是指模型还没有很好的训练出数据的一般规律。模型拟合程度不高的现象。为防止”欠拟合“,可以选择调整参数、增加迭代深度,换用更加复杂的模型
泛化误差分析
假设数据集上需要预测的样本为Y,特征为X,潜在模型为 Y=f(X)+εY=f(X)+ε,其中ε∼N*(0,σε)是噪声, 估计的模型为f*^(X).
偏差(bias)反映了模型在样本上的期望输出与真实标记之间的差距,即模型本身的精准度,反应的是模型本身的拟合能力
方差(variance)反应了模型在不同训练数据集下学得得函数得输出与期望输出之间的误差,即模型得稳定性,反应的是模型的波动情况
欠拟合:高偏差低方差
寻找更好的特征,提升对数据的刻画额能力
增加特征数量
重新选择更加复杂的模型‘
过拟合:低偏差高方差
增加训练样本数量
减少特征维数,高维空间密度小
加入正则化项,使得模型更加平滑
交叉验证
基本思路:将训练集划分为K份,每次采用其中K-1份作为训练集,另外一份作为验证集,在训练集上学得函数后,然后在验证集上计算误差===K折交叉验证
K折交叉重复多次,每次重复中产生不同的分割
留一交叉验证(Leave-One-Out)
有监督学习
1.数据集有标记(答案)
2.数据集通常扩展为(xi,yi)其中𝑦_𝑖∈Y是 xi 的标记,Y是所有标记的集合,称为“标记空间”或“输出空间”
3.监督学习的任务是训练出一个模型用于预测y的取值,根据D = {(x1,y1),(x2,y2),⋯,(xn,yn)},训练出函数f,使得f(x)≅y
4.若预测的值是离散值,如年龄,此类学习任务称为“分类”
5.若预测的值是连续值,如房价,此类学习任务称为“回归”
线性回归
线性回归是在样本属性和标签中找到一个线性关系的方法,根据训练数据找到一个线性模型,使得模型产生的预测值与样本标标签的差距最小,若用
表示第K个样本的第I个属性则线性模型一般形式为:
线性回归学习的对象就是权重向量w和偏置向量b,如果用最小均方误差来衡量预测值与样本标签的差距,那么线性回归学习的目标可以表示为:
逻辑回归
逻辑回归是利用𝑠𝑖𝑔𝑚𝑜𝑖𝑑函数,将线性回归产生的预测值压缩到0和1之间,此时将y视作样本为正例的可能性,即
注意:逻辑回归本质上属于分类算法,sigmoid函数的具体表达形式:
支持向量机
支持向量机是由监督学习中最具影响的力方法之一是基于线性判别函数的一种模型。
SVM基本思想:对于线性可分得数据,能将训练样本划分开的超平面有很多,于是我们寻找“位于两类训练样本中心的超平面”,即margin最大化,从直观上看,这种划分训练样本局部扰动的承受行最好,事实上,这种划分的性能也表现较好。
下面我们以线性分类为例:二类可分数据集D={(x1,y1),(x2,y2),⋯,(xn,yn)},其中y = 1 和 y = -1分别表示两类样本定义分类的超平面f(x)=wTx+b(决策边界 decision boundary) ,最合适的分类标准就是使得超平面距离两边数据的间隔最大
通常方便优化,我们选择加强约束条件
那么原问题可以近似为:
对于线性不可分数据集,我们可以做下面的操作
决策树
决策树是一种基于树结构进行决策的机器学习方法,这恰是人类面临决策时一种很自然的处理机制
1.在这些树的结构里,叶子节点给出的类标而内部节点代表某个属性;
2.例如:银行在面对是否借贷给客户的问题时,通常会进行一系列的决策:银行会首先判断客户的信贷声誉是否良好?良好的话,在判断客户是否有稳定的工作?不良的话可能直接拒绝,也可能判断客户是否有可抵押物?····这种思考的过程便是决策树生成的过程。
决策树的生成过程中,最重要的因素便是根节点的选择,即选择哪种特征最为决策因素:ID3算法使用信息增益作为准则
随机森林
集成学习(Ensemblelearning)
1.组合多个弱监督模型以期望得到一个更好更全面的强监督学习,集成学习潜在的思想时即便某一个弱分类器得到了错误的预测,其他的前分类器也可以将错误纠正回来。
随机森林随机的方式建立起一颗颗决策树组成一个森林,其中每棵决策树之间没有关联,当有一个新的样本输入时,就让每棵树独立的做出判断,按照多数原则决定该样本的分类结果。
随机森林构建的基本步骤
1.随机有放回的从训练集中抽取m个训练样本,训练集Dt.
2.从Dt.对应的特征属性中随机选择部分特征,构建决策树
3.重复上述步骤构建多个决策树
预测步骤
1.向建立好的随机森林中输入一个新样本
2.随机森林中每棵决策树都独立的做出判断
3.将得到票数最多的分类结果作为该样本的最终类别
无监督学习
1.数据集没有标记信息(自学)
2.聚类:我们可以使用无监督学习来预测各样本之间的关联度,把关联度大的样本划分为同一类,关联度小的样本划分为不同类,这便是“聚类”
3.降维:我们也可以使用无监督学习处理数据,把维度较高,计算复杂的数据,转化为维度低,易处理,且蕴含信息不丢失或较少丢失的数据,这便是“降维”
聚类
聚类的目的是将数据分类多个类别,在同一个类内,对象(实体)之间具有较高的相似性,在不同类内,对象之间具有较大的差异。
对一批没有类别标签的样本集,按照样本之间的相似性程度分类,相似的归为一类,不相似的归为其他类,这种分类称为聚类分析,也称为无监督分类
常见的方法有K-Means聚类、均值漂移聚类、基于密度的聚类等
K-means聚类是一个反复迭代的过程,算法分为四个步骤:
1.选取数据空间中的K个对象作为初始中心,每个对象代表一个聚类中心;
2.对于样本中的数据对象,根据他们与这些聚类中心的欧式距离,按距离最近的准则将他们分到距离他们最近的聚类中心(最相似)所对应的类
3.更新聚类中心,将每个类别中所有对象所对应的均值作为该类别的聚类中心,计算目标函数的值。
4.判断聚类中心和目标函数的值是否发生改变,若不变,则输出结果,若改变,则返回2
降维
降维的目的就是将原始样本数据维度d降到一个更小的数m,且尽量使得样本蕴含信息损失最小,或还原数据时产生的误差最小,比如主成分分析法···
降维的优势:
1.数据子在低纬度下更容易处理,更容易使用
2.相关特征,特别是重要特征更能在数据中明确的显示出来
3.如果只有二维或者三维的话,能够进行可视化展示;
4.去除数据噪声,降低算法开销等
前馈神经网络
1.神经源模型
2.感知器,多层感知器
3.BP算法
4.前馈神经网络
神经元模型
神经元(M-P)
1943 年,美国神经生理学家沃伦·麦卡洛克( Warren McCulloch ) 和数学家沃尔特 ·皮茨(Walter Pitts )对生物神经元进行建模,首次提出了一种形式神经元模型,并命名为McCulloch-Pitts模型,即后 来广为人知的M-P模型。
在M-P模型中神经元接受其他n个神经元的输入信号(0或1),这些输入信号经过权重加权并求和,将求和结果与阈值(threshold) θ 比较,然后经过激活函数处理,得到神经元的输出
M-P模型可以表示多种逻辑运算,如取反运算,逻辑或,逻辑与
取返运算可以用单输入单输出模型表示,即如果输入为0则输出为1,如果输入为1,则输出为0,由M-P模型的运算规则可得w = -2,θ=−1.
逻辑或与逻辑与运算可以用双输入单输出模型表示,以逻辑与运算为例w1=1,w2=1,θ=1.5.
网络结构
人工神经网络由神经元模型构成,这种由许多神经元组成的信息处理网络具有并行分布结构。
其中圆形节点表示一个神经元,方形节点表示一组神经元。
感知器
单层感知器
1958 年,罗森布拉特( Roseblatt )提出了感知器,与M-P模型需要人为的确定参数不同,感知器能通过训练自动确定参数,感知器能够通过训练自动确定参数,训练方式为有监督学习,即许需要设定训练样本和期望输出,然后调整实际输出和期望输出之差的方式
其中,α 是学习率,r和 y 分别是期望输出和实际输出。
感知器权重体调节的基本思路:
实际输出y与期望输出r相等时,w 和 θ 不变
实际输出y与期望输出r不相等时,调整w和θ的值
下面给出感知器模型的训练过程
多层感知器
单层感知器只能解决线性可分问题,而不能解决线性不可分问题;为了解决线性不可分问题,我们需要使用多层感知器。
多层感知器指的是由多层结构的感知器递阶组成的输入值向前传播的网络,也被称为前馈网络或者正向传播网络
以三层结构的多层感知器为例,他由输入层,中间层及输出层组成
1.与M-P模型相同,中间层的感知器通过权重与输入层的个单元相连接,通过阈值函数计算中间层各单位的输出值
2.中间层与输出层之间同样是通过权重相连接
BP算法
多层感知器的训练使用误差反向传播算法(Error Back Propagation),即BP算法。
BP算法的基本过程
1.前向传播计算:由输入层经过隐含层向输出层的计算网络输出
2.误差反向逐层传递:网络的期望输出与实际输出之差的误差信号由输出层经过隐含层逐层向输入层传递
3.由“前向传播计算”与“误差反向逐层传递”的反复进行的网络训练 过程
BP算法就是通过比较实际输出和期望输出得到误差信号,把误差信 号从输出层逐层向前传播得到各层的误差信号,再通过调整各层的连接权重以减小误差。权重的调整主要使用梯度下降法:
激活函数
通过误差反向传播算法调整多层感知器的连接权重时,一个瓶颈问题就是激活函数:
优化问腿
难点:
1.参数过多,影响训练
2.非凸优化问题:即存在局部最优而非全局最优解,影响迭代
3.梯度消失问题,下层参数比较难调
4.参数解释起来比较困难
需求:
1.计算资源要大
2.非凸优化问题,下层参数比较偏难调
3.参数解释起来比较困难
非凸优化问题
梯度消失问题
CNN
卷积神经网络
- 卷积
- CNN基本原理
- 经典CNN
- CNN主要应用
全连接神经网络权重矩阵参数非常的多。
而往往自然图像中的物体都具有局部不变性特征,即尺度缩放,平移,旋转等操作不影响其语义信息,但是全连接前馈网络很难提取这些局部不变特征性,这变就需要接下来的卷积神经网络(Convolutional Neural Networks,CNN)
卷积神经网络也是一种前馈神经网络,是受到生物学上感受野(感受野主要是指听觉系统,本体感觉系统和视觉系统中神经元的一些性质)的机制而提出的(在视觉神经神经系统中,一个神经元的感受野是指视网膜上的特定区域,只有这个区域内的刺激才能够刺激活该神经元)
卷积
卷积:(f*g)(n)成为 f*和 g的卷积,连续卷积和离散卷积可以表达为如下形式:
卷积有很多应用,经常用于处理一个输入,通过系统产生一个适应需求的输出。
1.统计学中加权平均法
2.概率论中两个独立变量之和概率密度的计算
3.信号处理中的线性系统
4.物理学的线性系统
5.图像处理中的应用(卷积神经网络)
卷积经常用在信号处理中,用于计算机信号延迟积累
在图像处理中,图像是以二维矩阵的形式输出到神经网络中,因此我们需要二维卷积。
典型的卷积层为3维结构
卷积神经网络基本原理
卷积神经网络的基本结构大致包括:卷积层,激活函数,池化层,全连接层,输出层。
卷积层
二维卷积运算:给定二维的图像I作为输入,二维卷积核K,卷积运算可表示为 S(i, j)=(I * K)(i, j)=\sum_{m} \sum_{n} I(i-m, j-n) K(m, n)S(i,j)=(I∗K)(i,j)=∑m∑n**I(i−m,j−n)K(m,n),卷积核需要进行上下翻转和左右反转
激活函数
激活函数是用来加入非线性因素,提高网络表达能力,卷积神经网络中最常用的是ReLU,Sigmoid使用较少。
池化层
池化操作使用某位置相邻输出的总体统计特征作为该位置 的输出,常用最大池化**(max-pooling)和均值池化(average- pooling)**。
池化层不包含需要训练学习的参数,仅需指定池化操作的核大小、操作步幅以及池化类型。
卷积神经网络的训练
Step 1:用随机数初始化所有的卷积核和参数/权重
Step 2:将训练图片作为输入,执行前向步骤(卷积, ReLU,池化以及全连接层的前向传播)并计算每个类别的对应输出概率。
Step 3:计算输出层的总误差
Step 4:反向传播算法计算误差相对于所有权重的梯度,并用梯度下降法更新所有的卷积核和参数/权重的值,以使输出误差最小化
注:卷积核个数、卷积核尺寸、网络架构这些参数,是在 Step 1 之前就已经固定的,且不会在训练过程中改变——只有卷 积核矩阵和神经元权重会更新。
景点卷积神经网络
1. LeNet-5
LeNet-5由LeCun等人提出于1998年提出,主要进行手写数字识别和英文字母识别。经典的卷积神经网络,LeNet虽小,各模块齐全,是学习 CNN的基础。
2. AlexNet
AlexNet由Hinton的学生Alex Krizhevsky于2012年提出,获得ImageNet LSVRC-2012(物体识别挑战赛)的冠军,1000个类别120万幅高清图像(Error: 26.2%(2011) →15.3%(2012)),通过AlexNet确定了CNN在计算机视觉领域的王者地位。
3. VGGNet
4. Inception Net
5. ResNet
主要应用
图像处理领域主要应用
- 图像分类(物体识别):整幅图像的分类或识别
- 物体检测:检测图像中物体的位置进而识别物体
- 图像分割:对图像中的特定物体按边缘进行分割
- 图像回归:预测图像中物体组成部分的坐标