首页 > 其他分享 >【机器学习】支持向量机+神经网络+连接学习

【机器学习】支持向量机+神经网络+连接学习

时间:2023-02-07 11:15:07浏览次数:49  
标签:感知器 网络 学习 神经网络 连接学习 权值 输入 向量 神经元

机器学习入门

上篇:【机器学习】基础+数据预处理+分类与聚类算法


5. 支持向量机

支持向量机(Support Vector Machine,SVM)算法,是在统计学习理论的VC维理论和结构风险最小原理的基础上发展起来的一种新的机器学习方法。它根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力。

5.1 原理

VC维

VC维是小样本统计学习理论中的又一个重要概念,用于描述构成学习模型的函数集合的容量及学习能力。通常,其VC维越大、容量越大、学习能力越强。

样本集的打散(shatter)操作可描述如下:
假设X为样本空间,S是X的一个子集,H是由指示性学习函数所构成的指示函数集。对一个样本集S,若其大小为h,则它应该有2^h种划分,假设S中的每一种划分都能被H中的某个指示函数将其分为两类,则称函数集H能够打散样本集S。
所谓指示性学习函数是指其值只能取0或1的学习函数。

【例】对二维实空间R^2,假设给定的样本集S为R^2中的不共线的3个数据点,每个数据点有两种状态,指示函数集H为有向直线的集合,求H是否可以打散S?

【解】

S中不共线的3个数据点可构成2^3种不同的点集,如图5.9所示。在该图中,可以看出,每一点集中的数据点,都能被H中的一条有向直线按其状态分为两类。即位于有向直线正方向一侧的数据点为一类,而位于有向直线负方向一侧的数据点为另一类。因此,我们说H能够打散S。

VC维用来表示指示函数集H能够打散一个样本集S的能力,函数集的VC维就是它能打散的最大样本数目h。若对任意数目的样本,函数集下都有函数能将它们打散,则称函数集的VC维是无穷大的。

--

线性可分与最优分类超平面

线性可分问题分类是SVM学习方法的基础,SVM是通过最优分类超平面来实现其分类的。

假定有以下n个独立、同分布且线性可分的训练样本
\((x_1, y_1),(x_2, y_2),…,(x_n, y_n)\)
其中,\(x_i∈R^n\),n为输入空间的维数;\(y_i∈\{ -1, +1 \}\),表示仅有两类不同的样本。SVM学习的目标就是要找到一个最优超平面
w · x + b = 0 将两类不同的样本完全分开,其中,w是权重向量,“·”是向量的点积,x是输入向量,b是一个阈值。

如图5.11,其中H为分类超平面, H1和H2分别为两个不同类的边界分割平面,H1和H2均与H平行,且H1和H2分别通过相应类中离H最近的样本点。对H,若能满足H与两个类边界分割平面H1和H2等距,且能使H1和H2之间的间隔最大,则称该分类超平面为最优分类超平面。这些分布在H1和H2上的样本点被称为支持向量

从支持向量开始求最优超平面的主要过程为:

  1. 先从支持向量的样本点中取出任一\(x_i\),求出参数b:\(b = y_i – w · x_i\)
    通常,为了保证稳定性,可对所有支持向量按上式计算,并以其平均值作为b的值。
  2. 然后求出分类判别函数:\(f(x)=sgn(w·x+b)=sgn(\sum_{i=1}^ma_iy_i(x_i\cdot x)+b)\)
    其中,m为支持向量的个数。

这就是线性可分问题的支持向量机。由于有支持向量机所实现的分类超平面具有最大的分类间隔,故相应算法也称为最大间隔算法。

非线性可分与核函数

对非线性可分问题,SVM采用特征空间映射方式,即将非线性可分的样本集映射到高维空间,使其在高维空间中被转变为线性可分。即采用核函数的方法。

核函数是一种可以采用非线性映射方式,将低维空间的非线性可分问题映射到高维空间进行线性求解的基函数。

在高维空间H中,用核函数\(K(x_i · x_j)\)代替输入空间的点积运算\((x_i · x_j)\)后,由\(maxW(\alpha)=\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i,j=1}^n\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)\)式所给的输入空间寻优目标函数,在高维空间H中将转化为\(maxW(\alpha)=\sum_{i=1}^n\alpha_i-\frac{1}{2}\sum_{i,j=1}^n\alpha_i\alpha_jy_iy_jK(x_i\cdot x_j)\)
分类判别函数,在高维空间H中将转化为\(f(x)=sgn(w·x+b)=sgn(\sum_{i=1}^ma_iy_iK(x_i\cdot x)+b)\)
这就是非线性可分问题的支持向量机。

综上,支持向量机是一种通过用点积函数定义的非线性变换,将输入空间变换到高维空间,并在高维空间中求取最优分类面的学习机器。

5.2 核函数分类

5.3 特点

优点

  1. 非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高维空间的非线性映射。

  2. 对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想是SVM方法的核心。

  3. 支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支持向量。

  4. SVM 是一种有坚实理论基础的、新颖的小样本学习方法。从本质上看,它避开了从归纳到演绎的传统过程,实现了高效的从训练样本到预报样本的“转导推理”,大大简化了通常的分类和回归等问题。

  5. SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。

  6. 少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样本,而且注定了该方法不但算法简单,而且具有较好的“鲁棒”性。

    这种鲁棒性主要体现在:

    1. 增、删非支持向量样本对模型没有影响;
    2. 支持向量样本集具有一定的鲁棒性;
    3. 有些成功的应用中,SVM 方法对核的选取不敏感。

不足

  1. SVM算法对大规模训练样本难以实施。
  2. 用SVM解决多分类问题存在困难。

6. 神经网络

人工神经网络(Artificial Neural Network,ANN)是将人工神经元按照一定拓扑结构进行连接所形成的网络。人工神经元是对生物神经元的物理模拟,从结构上包括输入端、输出端和计算单元三部分组成。

人工神经网络有多种不同的分类方法,从其结构层次上看,可分为浅层结构和深层结构。
典型的浅层网络如感知器网络、BP网络、Hopfield网络等;典型的深层网络如受限波尔茨曼机网络、深度信念网络、卷积神经网络等。

6.1 人工神经网络

人工神经网络是一种对人工神经元进行互联所形成的网络,它是对生物神经网络的模拟。反映的是神经元的饱和特性。

6.1.1 人工神经元结构

人工神经元是对生物神经元的抽象与模拟。所谓抽象是从数学角度而言的,所谓模拟是从其结构和功能角度而言的。

MP模型是美国心理学家麦克洛奇(W.McM ulloch)和数理逻辑学家皮茨(W.Pitts) 根据生物神经元的功能和结构,于1943年提出的一种将神经元看作二进制阈值元件的简单模型。

图中的\(x_1\),\(x_2\),... ,\(x_n\)表示某一神经元的n个输入;\(w_i\)表示第i个输入的连接强度,称为连接权值;θ为神经元的阈值;y为神经元的输出。

人工神经元是一个多输入、单输出的非线性器件。
其输入为:\(\sum_{i=1}^nw_ix_i\)
其输出为:\(y=f(\sigma)=f(\sum_{i=1}^nw_ix_i-\theta)\)

6.1.2 人工神经元常用模型

激发函数f是表示神经元输入输出关系的函数,根据激发函数的不同,可得不同的神经元模型。

  1. 阈值型(Threshold)
  2. 分段线性强饱和型(Linear Saturation)
  3. S型(Sibmoid)
  4. 子阈累积型(Subthreshold Summation)

6.1.3 人工神经网络分类

\(按拓扑结构\left\{\begin{aligned}前馈网络\\反馈网络\end{aligned}\right.\)

\(按学习方法\left\{\begin{aligned}有导师指导\\无导师指导\end{aligned}\right.\)

\(按网络性能\left\{\begin{aligned}连续型网络\\离散型网络\end{aligned}\right.\)

\(按网络层级\left\{\begin{aligned}浅层网络\\深层网络\end{aligned}\right.\)

6.1.4 人工神经网络的互联结构

人工神经网络的互连结构(或称拓扑结构)是指单个神经元之间的连接模式,它是构造神经网络的基础,也是神经网络诱发偏差的主要来源。

前馈网络

(1)单层前馈网络是指那种只拥有单层计算节点的前向网络。它仅含有输入层和输出层,且只有输出层的神经元是可计算节点。

其中,输入向量为\(X=(x_1,x_2,…,x_n)\);输出向量为\(Y=(y_1,y_2,…,y_m)\);输入层各个输入到相应神经元的连接权值分别是\(w_{ij},i=1,2,..,n,j=1,2,.., m\)。

若假设各神经元的阈值分别是\(θ_j,j=1,2,…,m\),则
各神经元的输出\(y_j, j=1,2,..,m\) 分别为:\(y_i=f(\sum_{i=1}^nw_{ij}x_i-\theta_j)\)
其中,由所有连接权值\(w_{ij}\)构成的连接权值矩阵W为:\(W=\left( \begin{matrix} w_{11} & w_{12} & \cdots & w_{1m} \\ w_{21} & w_{22} & \cdots &w_{2m}\\ \vdots & \vdots & \ddots & \vdots \\ w_{n1} & w_{n2} & \cdots &w_{nm} \end{matrix} \right)\)

(2)多层前馈网络是指那种除拥有输入、输出层外,还至少含有一个、或更多个隐含层的前馈网络。隐含层是指由那些既不属于输入层又不属于输出层的神经元所构成的处理层,也被称为中间层。隐含层的作用是通过对输入层信号的加权处理,将其转移成更能被输出层接受的形式。

多层前馈网络的输入层的输出向量是第一隐含层的输入信号,而第一隐含层的输出则是第二隐含层的输入信号,以此类推,直到输出层。

多层前馈网络的典型代表是BP网络。

反馈网络

反馈网络是指允许采用反馈联结方式所形成的神经网络。所谓反馈联结方式是指一个神经元的输出可以被反馈至同层或前层的神经元。

反馈网络的典型例子是Hopfield网络。

反馈网络和前向网络的区别

前向网络属于非循环连接模式,它的每个神经元的输入都没有包含该神经元先前的输出,因此不具有“短期记忆”的性质。

反馈网络则不同,它的每个神经元的输入都有可能包含有该神经元先前输出的反馈信息,即一个神经元的输出是由该神经元当前的输入和先前的输出这两者来决定的,这就有点类似于人类的短期记忆的性质。

6.2 浅层模型

人工神经网络模型是指对网络结构、联结权值和学习能力的总括。

仅就浅层网络而言,常用的网络模型也已有数十种。例如:传统的感知机模型;具有误差反向传播功能的反向传播网络模型;采用多变量插值的径向基函数网络模型;建立在统计学习理论基础上的支持向量机网络模型;采用反馈联接方式的反馈网络模型;基于模拟退火算法的随机网络模型。

6.2.1 感知器模型

感知器(Perceptron)是美国学者罗森勃拉特(Rosenblatt)于1957年为研究大脑的存储、学习和认知过程而提出的一类具有自学习能力的神经网络模型,其拓扑结构是一种分层前向网络。它包括:单层感知器和多层感知器。

单层感知器

单层感知器是一种只具有单层可调节连接权值神经元的前向网络,这些神经元构成了单层感知器的输出层,是感知器的可计算节点。

在单层感知器中,每个可计算节点都是一个线性阈值神经元。当输入信息的加权和大于或等于阈值时,输出为1,否则输出为0或-1。

单层感知器的输出层的每个神经元都只有一个输出,且该输出仅与本神经元的输入及联接权值有关,而与其他神经元无关。

多层感知器

多层感知器是通过在单层感知器的输入、输出层之间加入一层或多层处理单元所构成的。其拓扑结构与多层前向网络相似,差别也在于其计算节点的连接权值是可变的。

多层感知器的输入与输出之间是一种高度非线性的映射关系,若采用多层感知器模型,则该网络就是一个从n维欧氏空间到m维欧氏空间的非线性映射。因此,多层感知器可以实现非线性可分问题的分类。

6.2.2 BP网络模型

误差反向传播(Error Back Propagation)网络通常简称为BP(Back Propagation)网络,是由美国加州大学的鲁梅尔哈特和麦克莱兰在研究并行分布式信息处理方法,探索人类认知微结构的过程中,于1985年提出的一种网络模型。

BP网络的网络拓扑结构是多层前向网络,同层节点之间不存在相互连接,层与层之间多采用全互连方式,且各层的连接权值可调。

说明:

  1. BP网络的每个处理单元均为非线性输入/输出关系,其作用函数通常采用的是可微的Sigmoid函数,如:\(f(x)=\dfrac{1}{1+e^{-x}}\)
  2. BP网络的学习过程是由工作信号的正向传播和误差信号的反向传播组成的。所谓正向传播,是指输入模式经隐层到输出层,最后形成输出模式;所谓误差反向传播,是指从输出层开始逐层将误差传到输入层,并修改各层联接权值,使误差信号为最小的过程。

6.2.3 Hopfield网络模型

Hopfield网络是由美国加州工学院物理学家霍普菲尔特1982年提出来的一种单层全互连的对称反馈网络模型。它可分为离散Hopfield网络和连续Hopfield网络。

离散Hopfield网络是在非线性动力学的基础上由若干基本神经元构成的一种单层全互连网络,其任意神经元之间均有连接,并且是一种对称连接结构。

离散Hopfield网络模型是一个离散时间系统,每个神经元只有0和1(或-1和1)两种状态,任意神经元i和j之间的连接权值为\(w_{ij}\)。由于神经元之间为对称连接,且神经元自身无连接,因此有\(w_{ij}=\left\{\begin{aligned}w_{ji}\quad若i\neq j\\0\quad若i=j\end{aligned}\right.\),由该连接权值所构成的连接矩阵是一个零对角的对称矩阵。

Hopfidld网络的输入层不做任何计算,直接将输入信号分布地传送 传送给输出层个神经元。
若用\(y_j(t)\)表示时刻t输出层神经元j的状态,则该神经元在时刻(t+1)的状态,则该状态可由下式表示:\(y_j(t+1)=sgn(\sum_{i=1,i\neq j}^nw_{ij}y_j(t)-\theta_j)=\left\{\begin{aligned}1\quad若\sum_{i=1,i\neq j}^nw_{ij}y_j(t)-\theta_j\geq0\\0(或-1)\quad若\sum_{i=1,i\neq j}^nw_{ij}y_j(t)-\theta_j<0\end{aligned}\right.\)
式中,sgn()为符号函数,\(θ_j\)为神经元j的阈值,且有\(x_i(t+1)=y_i(t)\)。

6.3 感知机

感知机模型是一种只有一层神经元参与数据处理的人工神经网络模型。

感知机模型通过输入层接受输入信息\(X=(x_1,x_2,⋯,x_m)^T\),感知机模型的输出为:\(f(X)=sgn(\sum_{i=1}^mw_ix_i+b)\)

可将感知机输入表示为向量形式,输入向量为\(X=(1,x_1,x_2,⋯,x_m)^T\),连接权重为\(W=(b,w_1,w_2,⋯,w_m)^T\),由此可将感知机输出表示为如下形式:\(f(X)=sgn(W^T X)\quad或\quad f(X)=\left\{\begin{aligned}1,\quad若W^T X\geq0\\-1,\quad若W^T X<0\end{aligned}\right.\)

使用感知机模型可解决二维平面中线性可分的二分类问题,但难以解决线性不可分问题和多分类任务。

--

【+】例:试根据训练集:\(D=\{((1,2)^T, 1), ((3,3)^T, 1), ((2,1)^T , −1), ((5,2)^T, −1)\}\)构造一个感知机模型,学习率α=1。

【-】解:

已知感知机模型的具体形式为:\(f(X)=sgn(W^T X)\), 其中\(W=(b,w_1,w_2)^T, X=(1,x_1,x_2)^T\)。使用数据集D构造感知机模型的具体步骤如下:
(1)初始化参数向量\(W=(0,0,0)^T\);
(2)随机选择一个样本\(((2,1)^T,−1)\)输入初始模型,求得\(f(X=(2,1)^T)=sgn(0)=1≠−1\),
该样本未被感知机模型正确分类,使用如下公式更新模型参数:\(w_i=w_i+αy_ix_i\),$ b=b+αy_i\( 计算得到新的参数向量\)W=(−1 ,−2,−1)^T\(,获得的感知机模型为:\)f(X)=sgn(−2x_1−x_2−1)\( (3)将数据集D中样本输入更新后感知机模型中,可知样本\)((1,2)T,1)$和$((3,3)T,1)\(未被正确分类,随机选择其一再次调整参数。 设所选样本为\)((1,2)^T,1)\(,由步骤(2)中公式可将参数更新为\)W=(0,1 ,2)^T\(,得到新模型:\)f(X)=sgn(x_1+2x_2)\( (4)将数据集D中样本均输入更新后的感知机模型中,若存在样本被错误分类,则根据步骤(2)中公式进行参数更新,直至D中所有样本均分类正确时结束算法并输出模型。 重复这一过程可求得最终的感知机模型为:\) f(X)=sgn(−4x_1+5x_2−1)$

6.4 深层神经网络

深层神经网络也叫深度神经网络(DNN),通常是指隐含层神经元不少于2层的神经网络,目前可做到数百层甚至更多。

6.4.1 深度卷积神经网络

深度卷积神经网络的学习过程即是对卷积神经网络的训练过程,它由计算信号的正向传播过程和误差的反向传播过程所组成。

6.4.2 深度波尔茨曼机与深度信念网络

深度波尔茨曼机(DBM)由多层受限玻尔兹曼机(RBM)堆叠而成,而深度信念网络(DBN)则由多层受限玻尔兹曼机再加上一层BP网络所构成。

受限波尔茨曼机结构

(1) 一层是可视层,即输入数据层(v),一层是隐藏层(h)。
(2) 层内节点之间没有链接,层间节点之间全连接。且可见层和隐层之间的连接方向不定(即值可双向传播)。
(3) 所有节点都是随机二值变量节点。即神经元的激活值只能是服从伯努利分布(Bernoulli distribution)取0或者1。
(4) 全概率分布p(v,h),满足波尔茨曼(Boltzmann)分布。

深度波尔茨曼机结构

以3层波尔茨曼机为例:

在该模型中,前一层波尔茨曼机隐层作为下一层波尔茨曼机的可见层。例如,RBM0的隐层h0,同时又是RBM1的可见层v1。

深度信念网络结构

以两层RBM和一层BP所构成的DBN为例:

深度信念网络也称深度置信网络,它与深度波尔茨曼机在结构上的主要差别是最后一层,DBN的最后一层是BP网络。


7. 连接学习

连接学习也称为神经学习,其基本思想起源于人脑学习机理研究中的突触修正学派。连接学习的产生与发展过程与人工神经网络密切相关。例如,感知器学习、BP网络学习、Hopfield网格学习、深度卷积神经学习、深度波尔茨曼机学习等。

连接学习的类型可以有多种不同的划分方法,例如可根据连接学习算法所基于的神经网络结构模型及层数将其划分为浅层连接学习和深度学习两大类型。

最简单的浅层学习方法是单层感知器学习算法,该学习算法只能解决那些线性可分问题,而对非线性可分问题单层感知器无能为力。BP网络学习算法可以较好地解决非线性可分问题,但BP网络一般也只做到3层,如果层数再多,将会产生很严重的传播误差。
深度学习则不同,基于深层神经网络的深度学习算法可以把神经网络的隐含层增加到数十层,甚至数百层。因此,深度学习具有很强的非线性性能,在图像、语音等领域有着很好的应用效果。

7.1 浅层连接学习

7.1.1 连接学习规则

连接学习规则可简单地理解为学习过程中神经元之间联结权值及神经元自身阈值的调整规则。按照学习规则,神经学习可分为Hebb学习、纠错学习、竞争学习及随机学习等。

Hebb学习规则

基本思想:如果神经网络中某一神经元同另一直接与它连接的神经元同时处于兴奋状态,那么这两个神经元之间的连接强度将得到加强,反之应该减弱。

其对连接权值的调整可表示为:
\(w_{ij}(t+1)=w_{ij}(t)+\eta[x_i(t)x_j(t)]\)
其中,\(w_{ij}(t+1)\)表示对时刻t的权值修正一次后所得到的新的权值;η是一正常量,也称为学习因子,它取决于每次权值的修正量;\(x_i(t)\)、\(x_j(t)\)分别表示t时刻第i个和第j个神经元的状态。

分析:Hebb学习是联结学习中影响较大的一种学习方法,认为对神经元重复同以刺激就可以产生性质相同、程度增强的反应。 但神经生理学并没有得到直接证据,它不符合生物机理。例如习惯化。

纠错学习规则

纠错学习也叫误差修正学习,是一种有导师的学习过程。

基本思想:利用神经网络的期望输出与实际输出之间的偏差作为连接权值调整的参考,并最终减少这种偏差。

误差修正规则:连接权值的变化与神经元希望输出和实际输出之差成正比。其联结权值的计算公式为:
\(w_{ij}(t+1)=w_{ij}(t)+\eta[d_j(t)-y_j(t)]x_i(t)\)
其中,\(w_{ij}(t)\)表示时刻t的权值;\(w_{ij}(t+1)\)表示对时刻t的权值修正一次后所得到的新的权值;η是一正常量,也称为学习因子;\(y_j(t)\)为神经元j的实际输出;\(d_j(t)\)为神经元j的希望输出;\(d_j(t)-y_j(t)\)表示神经元j的输出误差;\(x_i(t)\)为第i个神经元的输入。

学习过程
① 选择一组初始\(w_{ij}(0)\);
② 计算某一输入模式对应的实际输出与期望输出的误差;
③ 按上述公式更新权值;
④ 返回②,直到误差满足要求为止。

竞争学习规则

竞争学习是一种典型的无导师学习,学习时只需要给定一个输入模式集作为训练集,网络自行组织训练模式,并将其分成不同类型。

基本思想:竞争中获胜神经元的连接权会向着对其刺激相应模式更为有利的方向发展;而竞争失败神经元的刺激响应模式受到抑制。

学习过程:竞争型学习的简单形式是任一时刻只允许一个神经元被激活
① 将一个输入模式送给输入层LA ;
② 将LA层神经元的激活值送到下一层LB;
③ LB层神经元对LA层送来的刺激模式进行竞争,每个神经元将一个正信号送给自己(自兴奋反馈),同时将一个负信号送给该层其它神经元(横向邻域抑制);
④ LB层中输出值最大的神经元为竞争获胜神经元,该神经元被激活,连接权值增强;其它神经元为竞争失败神经元,受到抑制,连接权则不变。

缺点:当有一个神经元失效时,网络中的所有信息都将丢失;并且不能表示层次结构知识等。

解决方法:放松仅有一个获胜神经元的限制,允许多个获胜者出现,学习发生在胜者集合中各神经元的连接权上。

随机学习规则

模拟退火算法是一种典型的随机学习算法。

基本思想:结合随机过程、概率和能量(函数)等概念来调整网络的变量,从而使网络的目标函数达到最大(或最小)。

网络变化规则
① 如果网络变量的变化能使能量函数有更低的值,那么就接受这种变化;
② 如果网络变量变化后能量函数没有更低的值,那么就按某一预先选取的概率分布接受这一变化。

分析:随机学习不仅可以接受能量函数减少(性能改善)的变化,而且还可以以某种概率分布接受使能量函数增大(性能变差)的变化。对后一种变化,实际上是给网络变量引入了噪声,使网络有可能跳出能量函数的局部极小点,而向全局极小点的方向发展。

7.1.2 感知器学习

感知器学习可分为单层感知器和多层感知器。

单层感知器学习

单层感知器学习实际上是一种基于纠错学习规则,采用迭代的思想对连接权值和阈值进行不断调整,直到满足结束条件为止的学习算法。

单层感知器学习是一种有导师学习,它需要给出输入样本的期望输出。

假设一个样本空间可以被划分为A、B两类,定义:
功能函数:若输入样本属于A类,输出为+1,否则其输出为-1。
期望输出:若输入样本属于A类,期望输出为+1,否则为-1(或0)。

单层感知器学习算法描述:

  1. 设t=0,初始化连接权和阈值。即给\(w_i(0)\)(i=1, 2, … ,n)及θ(0)分别赋予一个较小的非零随机数,作为初值。其中,\(w_i(0)\)是第0次迭代时输入向量中第i个输入的连接权值;θ(0)是第0次迭代时输出节点的阈值;

  2. 提供新的样本输入\(x_i(t)\)(i=1, 2, … , n)和期望输出d(t);

  3. 计算网络的实际输出:\(y(t)=f(\sum_{i=1}^nw_i(t)x_i(t)-\theta(t))\quad i=1, 2, … , n\)

  4. 若y(t)=d(t),不需要调整连接权值,转(6)。否则,需要调整权值;

  5. 调整连接权值:\(w_i(t+1)=w_i(t)+\eta[d(t)-y(t)]x_i(t)\quad i=1, 2, … , n\)
    其中,η是一个增益因子,用于控制修改速度,其值如果太大,会影响\(w_i(t)\)的收敛性;如果太小,又会使\(w_i(t)\)的收敛速度太慢;

  6. 判断是否满足结束条件,若满足,算法结束;否则,将t值加1,转(2)重新执行。这里的结束条件一般是指\(w_i(t)\)对一切样本均稳定不变。

    若输入的两类样本是线性可分的,则该算法就一定会收敛。否则,不收敛。

多层感知器学习

多层感知器可以解决非线性可分问题,但其隐层神经元的期望输出却不易给出。而单层感知器学习是一种有导师指导的学习过程,因此其学习算法无法直接用于多层感知器。
由于多层感知器和BP网络都属于前向网络,并能较好解决多层前馈网络的学习问题。因此,可用BP学习来解决多层感知器学习问题。

7.1.3 BP网络学习

基础

三层BP网络结构:BP网络学习的神经网络基础是具有多层前馈结构的BP网络。

网络节点的输入输出关系

对三层BP网络,分别用i,j,k表示输入层、隐含层、输出层节点,则:
\(O_i,O_j,O_k\)分别表示输入层节点i、隐含层节点j,输出层节点k的输出;
\(I_i,I_j,I_k\)分别表示输入层节点i、隐含层节点j,输出层节点k的输入;
\(w_{ij},w_{jk}\)分别表示从输入层节点i到隐含层节点j,从隐含层节点j输出层节点k的连接权值;
\(θ_j、θ_k\)分别表示隐含层节点j、输出层节点k的阈值;

对输入层节点i有:
\(I_i=O_i=x_i\quad\quad i=1,2,...,n\)

对隐含层节点j有:
\(I_j=\sum_{i=1}^nw_{ij}O_i=\sum_{i=1}^nw_{ij}x_i\quad\quad j=1,2,...,m\)
\(O_j=f(I_j-\theta_j)\quad\quad j=1,2,...,m\)

对输出层节点k有:
\(I_k=\sum_{j=1}^mw_{jk}O_j\quad\quad k=1,2,...,l\)
\(O_k=f(I_k-\theta_k)\quad\quad k=1,2,...,l\)

BP网络的激发函数

通常采用连续可微的S函数,包括单极S函数和双极S函数。例如单极S函数\(f(x)=\dfrac{1}{1+e^{-x}}\)

BP网络的学习方式

BP网络的学习过程实际上用训练样本对网络进行训练的过程。网络的训练可以有以下两种方式:

  1. 顺序方式:是指每输入一个训练样本,就根据该样本所产生的误差,对网络的权值和阈值进行修改。
  2. 批处理方式:是指待样本集中的所有训练样本都一次性地全部输入网络后,再针对总的平均误差E,去修改网络的连接权值和阈值。
算法描述

特点

优点

  1. 算法的优点是算法推导清楚,学习精度较高;
  2. 从理论上说,多层前馈网络可学会任何可学习的东西;
  3. 经过训练后的BP网络,运行速度极快,可用于实时处理。

缺点

  1. 由于其数学基础是非线性优化问题,因此可能陷入局部最小区域;
  2. 算法收敛速度很慢,通常需要数千步或更长,甚至还可能不收敛;
  3. 网络中隐含结点的设置无理论指导。

解决办法

  • 对于局部最小区域问题,通常需要采用模拟退火算法或遗传算法。
  • 对于算法收敛慢的问题,其主要原因在于误差是时间的复杂非线性函数。为提高算法收敛速度,可采用逐次自动调整增益因子\(\eta\),或修改激活函数f(x)的方法来解决。

7.1.4 Hopfild网络学习

Hopfield网络的学习过程实际上是一个从网络初始状态向其稳定状态过渡的过程。而网络的稳定性又是通过能量函数来描述的。

能量函数

Hopfield网络的能量函数定义如下:
\(E=-\dfrac{1}{2}\sum_{i=1}^n\sum_{j=1,j\neq i}^nw_{ij}v_iv_j+\sum_{i=1}^n\theta_iv_i\)
式中,n是网络中的神经元个数,\(w_{ij}\)是神经元i和神经元j之间的连接权值,且有\(w_{ij}=w_{ji}\); \(v_i\)和\(v_j\)分别是神经元i和神经元j的输出;\(θ_i\)是神经元i的阈值。

对Hopfield网络,无论其神经元的状态由“0”变为“1”,还是由“1”变为“0”,始终有其网络能量的变化:ΔE<0

【+】例:如图所示的三个节点的Hopfield网络,若给定的初始状态为:\(V_0=\{1, 0, 1\}\)
各节点之间的联结权值为:\(w_{12}=w_{21}= 1,w_{13}=w_{31}= -2,w_{23}=w_{32}= 3\)
各节点的阈值为:\(θ_1= -1,θ_2= 2,θ_3= 1\)
请计算在此状态下的网络能量。

【-】解:

\(E = -\dfrac{1}{2} (w_{12}v_1v_2+w_{13}v_1v_3+w_{21}v_2v_1+w_{23}v_2v_3+w_{31}v_3v_1+w_{32}v_3v_2)\)
\(+\theta_1v_1+\theta_2v_2+\theta_3v_3\)
\(= -(w_{12}v_1v_2+w_{13}v_1v_3+w_{23}v_2v_3)+\theta_1v_1+\theta_2v_2+\theta_3v_3\)
\(=-(1×1×0+(-2)×1×1+3×0×1)+(-1)×1+2×0+1×1\)
\(=2\)

7.2 深度学习

深度学习是机器学习的子领域,其主要出发点是模拟人脑神经系统的深层结构和人脑认知过程的逐层抽象、逐次迭代机制。

深度学习基于深层网络模型、面向低层数据对象、采用逐层抽象机制、最终形成高层概念的机器学习方式。

7.2.1 深度学习类型

深度学习的类型有多种不同的分类方法,例如可以按有无监督分为有监督深度学习和无监督深度学习两类;也可按其作用分为生成式深度学习、判别式深度学习和混合式深度学习三种类型。我们这里把二者结合起来考虑。

  1. 无监督生成式深度学习
    无监督学习是指在训练过程中不使用与特定任务有关的监督信息。生成式学习方法是指通过样本数据生成与其相符的有效目标模型。
    典型的无监督生成式深度学习模型包括受限波尔茨曼机(RBM)、深度置信网络(DBN)、深度波尔茨曼机(DBM)等。
  2. 有监督判别式深度学习
    有监督学习是指由训练样本的期望输出来引导的学习方式。它要求样本集中的每个训练样本都要有明确的类别标签,并通过逐步缩小实际输出与期望输出之间差别来完成网络学习。
    典型的有监督判别式深度学习方法包括卷积神经网络(CNN)、深度堆叠网络(DSN)、递归神经网络(RNN)等。
  3. 有监督无监督混合式学习
    有监督无监督混合式学习是一种将有监督深度学习和无监督深度学习相结合的学习方式其目标是有监督的判别式模型。
    典型的有监督无监督混合式学习模型有递归神经网络(RNN)、和积神经网络(SPN)等。

7.2.2 深度卷积神经网络学习

卷积神经网络的学习过程就是对卷积神经网络的训练过程,它由正向传播过程和反向传播过程所组成。

所谓正向传播过程是指从输入层到输出层的信息传播过程,该过程的基本操作包括从输入层到卷积层或从池化层到卷积层的卷积操作,从卷积层到池化层的池化操作,以及全连接层的分类操作三种。

所谓反向传播过程是指深度卷积神经网络训练过程中的误差反向传播过程和参数反向调整过程。

\(学习过程 \left\{\begin{aligned} 正向传播过程\left\{\begin{aligned}卷积操作\quad\quad\\池化操作\quad\quad\\分类操作\quad\quad\end{aligned}\right.\\ 反向传播过程\left\{\begin{aligned}误差的反向传播\\参数的反向调整\end{aligned}\right. \end{aligned}\right.\)

卷积神经网络的正向传播

(1)卷积核与卷积操作

特征过滤器也称为卷集核(Coiling Kernel,CK),它实际上是由相关神经元连接权值所形成的一个权值矩阵,该矩阵的大小由卷集核的大小确定。

特征图是应用一个过滤器对输入图像进行过滤、或者说利用卷集核对图像做卷积运算所得到的结果。其卷积过程为:从左上角开始移动到右下角,每次移动一步,每移动一步都要将滤波器与其在原图像中所对应位置的子图像做卷积运算,最终得到卷积后的图像,即特征图。

卷集核与特征图之间具有一一对应关系,一个卷集核唯一地确定了一个特征图,而一个特征图也唯一地对应着一个卷积核。卷集核具有平移不变性。所谓平移不变性,是指卷集核对图像特征的提取,仅与其自身的权值分布有关,而与该特征在图像中的位置无关。

卷积操作的基本过程是:
针对图像的某一类特征,先构造其特征过滤器(FF),然后利用该滤器对图像进行特征提取,得到相应特征的特征图( FM)。依此针对图像的每一类特征,重复如上操作,最后得到由所有特征图构成的卷积层。

【例】卷积计算

对图6.33中特征图:

第1行第1列的元素:\(F_{1,1}=1×1+2×0+2×0+3×(-1)=-2\)

第2行第3列的元素: \(F_{2,3}=1×1+1×0+1×0+2×(-1)=-1\)

(2)池化层与池化操作

池化层(Pooling Layer)也叫子采样层(Subsample Layer)或降采样(downsampling),其主要作用是利用子采样(或降采样)对输入图像的像素进行合并,得到池化层的特征图谱。池化操作的一个重要概念是池化窗口或子采样窗口。所谓池化窗口是指池化操作所使用的一个矩形区域,池化操作利用该矩形区域实现对卷积层特征图像素的合并。

池化操作的基本过程是:
从特征图的左上角开始,按照池化窗口,先从左到右,然后再从上向下,不重叠地依次扫过整个图像,并同时利用子采样方法进行池化计算。

常用的池化方法有最大池化(max pooling)法、平均池化(mean pooling)法和概率矩阵池化(stochastic pooling)法等。

  1. 最大池化法的基本思想是:取原图像中与池化窗口所对应的所有像素中值最大的一个,作为合并后的像素的值。
  2. 平均池化法的基本思想是:取原图像中与池化窗口所对应的所有像素的平均值,作为合并后的像素的值。
正向传播过程的主要特征

卷积神经网络正向传播的主要特点包括局域感知和权值共享。其中,局域感知是指特征图谱中的每个神经元,都仅与输入图像的局部区域连接;权值共享是指同一特征图谱中的所有神经元共享同一卷集核。

此外,池化操作过程实际上也是一种像素的合并过程,该过程降低了特征图像的空间维度,从而也降低了神经网络的复杂度。其中,权值共享的关键是卷集核。卷集核的结构是一个可调节的权值矩阵,其作用是为了提取输入图像的特征。一个卷集核提取图像的一种特征,一个特征图中的所有神经元共享同一卷集核,这将极大减少需要调整的神经元连接权值的个数。

【例】一个大小为100*100的图像:
若按全连接方式,其对应的隐层神经元个数为100*100=10000。且每个输入都要与所有的神经元连接,则总的连接权值个数为100*100*10000=10^8。
若按卷积运算方式,并取卷集核的大小为10*10=100,则每个隐层神经元都仅与其感受野中的一个10*10的图像块做局部连接。若再假设每个卷积层有100个特征图,则总的连接权值个数为:每种卷集核共享的100个权值参数*100种卷集核=100*100=10000=10^4。
可见,卷集核的权值共享将调整的连接权值参数由10^8个减少到10^4个。

卷积神经网络的反向传播

卷积神经网络的反向传播涉及到两个基本问题,一个是误差的反向传播,另一个是参数的反向调整。其中,前者与当前网络层的类型有关,即卷积层、池化层、全连接层的误差反向传播方法不同;后者一般通过梯度计算来实现。

经典模型LeNet5

LeNet5基本结构

LeNet5是深度卷积神经网络的经典模型,它产生于1998年,主要用于手写体数字和字母的识别。LeNet5虽然规模较小,但其结构完整、功能齐全,很适合作为深度卷积网络学习的教学用例。

【例】该图中输入图像为32*32的黑白图片,卷集核大小为5*5,各卷积层卷集核的个数分别为6、16、120种,子采样窗口大小为2*2。

LeNet5的分层结构及参数

(1)输入层

如果按照色彩,图像可分为彩色和黑白两大类。其中,彩色图像的每个像素均由3个颜色通道构成,这种颜色通道也称为图像的深度,因此彩色图像的深度为3。

【例】对一幅大小为32*32的彩色图像,其数据大小可描述为32*32*3。黑白图像则不同,由于其每个像素只要用一个灰度值即可描述,故其深度为1。而对一个大小为32*32的黑白图像,其数据大小可描述为 32*32*1。


8. 机器学习-补充

机器学习的概念

机器学习系统的含义
是指能够在一定程度上实现机器学习系统。

机器学习的类型

按有无导师指导
有导师指导的机器学习(有监督学习),无导师指导的机器学习(无监督学习)。其中,有监督学习是一种分类式学习方式;无监督学习是一种生成式学习方式。

按学习策略来分类
即按学习中所使用的推理方法来分,可分为记忆学习、传授学习、演绎学习、归纳学习等。归纳学习又可分为示例学习、观察发现学习等。

按应用领域分类
专家系统学习、机器人学习、自然语言理解学习等。

按对人类学习的模拟方式
符号主义学习、统计学习、连接主义学习等。其中,符号主义学习又可分为基于样例的符号学习和基于概率统计的统计学习。连接主义机器学习又可分为基于浅层神经网络的浅层连接学习和基于深层神经网络的深度学习。

学习系统的基本模型

环境
是学习系统所感知到的外界信息集合,也是学习系统的外界来源。信息的水平(一般化程度)和质量(正确性)对学习系统影响较大。

学习环节
对环境提供的信息进行整理、分析归纳或类比,形成知识,并将其放入知识库。

知识库
存储经过加工后的信息(即知识)。其表示形式是否合适非常重要。

执行环节
根据知识库去执行一系列任务,并将执行结果或执行过程中获得的信息反馈给学习环节。学习环节再利用反馈信息对知识进行评价,进一步改善执行环节的行为。

集成学习

集成学习是指为解决同一问题,先训练出一系列个体学习器(或称弱学习器),然后再根据某种规则把这些个体学习器的学习结果整合到一起,得到比单个个体学习器更好的学习效果。

两大基本问题

集成学习包括两大基本问题,一个是个体学习器的构造,另一个是个体学习器的合成

集成学习的两种方式:同质集成、异质集成

集成学习的基本类型

根据个体学习器生成方式的不同,以及个体学习器之间依赖关系的不同,集成学习可分为Boosting方法Bagging方法两大基本类。

Boosting方法的基本思想是从初始训练集开始,先为每个训练样本平均分配初始权重,并训练出弱学习器1;然后通过提高错误率高的训练样本的权重,降低错误率低的训练样本的权重,得到训练样本的新的权重分布,并在在该权重分布上训练出弱学习器2;依此逐轮迭代,直至达到最大迭代轮数,最后再将训练出来的这些弱学习器合成到一起,形成最终的强学习器。其典型代表是AdaBoost算法和提升树(boosting tree)算法。

Bagging方法则不同,其基本思想是在给定初始训练集和弱学习算法的前提下,每轮迭代都使用可重采样的随机抽样方法式从初始训练集产生出本轮的训练子集,并利用选定的弱学习算法训练出本轮迭代的弱学习器,依此逐轮迭代,直至达到最大迭代轮数,最后再按照某种合成方式将这这些训练出来的弱学习器合成到一起,形成最终的强学习器。其典型代表包括bagging算法和随机森林(Random Forest)算法等。


标签:感知器,网络,学习,神经网络,连接学习,权值,输入,向量,神经元
From: https://www.cnblogs.com/0dot7/p/17097664.html

相关文章