Pattern Recognition
绪论
模式识别
模:法也;式,法也。
模式:一种规律
Pattern:事物的模板或原型,或者表征事物特点的特征或性状的组合。
模式识别中的模式:
- 存在于时间、空间中可观察的事物,具有时间空间分布的信息。
- 对客体特征的描述。
样本:
模式类:
模式识别:
- 确定一个样本的类别属性(模式类)的过程
- 把某一样本归属于多个类型中的某个类型
模式识别——用计算机实现人对各种事物或现象的分析、描述、判断、识别。
模式识别系统
典型构成
监督模式识别
回归:
- 反映样本数据集中样本的属性值的特性,通过函数表达样本映射的关系来发现属性值之间的依赖关系。
分类:
一般步骤:
- 分析问题
- 原始特征获取
- 特征提取与选择
- 分类器设计
- 分类决策
非监督模式识别
聚类:
- 将样本数据集中的样本分为几个类别,属于同一类别的样本相似性比较大。
一般步骤:
- 分析问题
- 原始特征获取
- 特征提取与选择
- 聚类分析
- 结果解释
比较
有已知样本:监督模式识别
无已知样本:非监督模式识别
贝叶斯决策理论
基本符号与定义
决策:根据观测到的x,利用先验和类条件概率决定x属于哪一类。决策是从样本空间到决策空间的一个映射。
Bayes决策
两种常用的准则:
基于最小错误
贝叶斯概率:
p(ωi∣x)=p(x)p(x∣ωi)p(ωi)
决策规则
p(ωi∣x)=j=1,2maxp(ωj∣x),x∈ωi
等价形式:
p(x∣ωi)p(ωi)=j=1,2maxp(x∣ωj)p(ωi)
若l(x)=p(x∣ω2)p(x∣ω1)<p(ω1)p(ω2),则x∈ω2ω1
错误率:
p(e)=∫−∞+∞p(e,x)dx=∫−∞+∞p(e∣x)p(x)dx
条件错误率p(e∣x)的计算:
- 以两类问题为例,当获得观测值x之后,有两种决策可能:决定x∈ω1或x∈ω2。则条件错误率为:
p(e∣x)={p(ω2∣x)=1−p(ω1∣x)if x∈ω1p(ω1∣x)=1−p(ω2∣x)if x∈ω2
贝叶斯最小错误率决策:
- 选择后验概率p(ω1∣x),p(ω2∣x)中大的ω作为决策,使得在观测值x下的条件错误率最小:
D(x)=argimaxp(ωi∣x)
条件错误率:
p(e∣x)=1−imaxp(ωi∣x)
错误率:
p(e)=E(p(e∣x))
同时可以证明,此决策保证了每个观测值下的条件错误率最小。Bayes决策是一致最优决策。
基于最小风险
引入风险函数(损失函数)λ(x)
风险损失:采用决策ai时的风险
R(ai∣x)=E(λ(ai,ωj))=j=1∑cλ(ai,ωj)p(ωj∣x)
x是随机变量,采用x不同的观测值,产生的条件风险不同。决策a可以看成x的函数。定义期望风险:
R=∫R(a(x)∣x)p(x)dx
条件风险对应的是x,期望风险对应的是a(x)。
在考虑错判带来的损失时,我们希望损失最小,如果在采取每个决策都使其条件风险最小,则对所有的x做出决策时,其期望风险也必然最小。这样的决策就是最小风险贝叶斯准则。
即:
如果有:
R(ak∣x)=i=1,2,…,aminR(ai∣x)
则有:a=ak
计算步骤:
- 计算后验概率
- 根据决策风险表,计算采取ai的条件风险
- 对a个条件风险值进行比较,找出使条件风险最小的决策a。
多类情况贝叶斯决策规则
判别函数
gi(x),一般选取gi(x)=maxjgj(x),则将x归于ωi类。
决策面方程
gi(x)=gj(x)
正态分布统计决策
最小错误率贝叶斯判别函数:
gi(x)=lnp(x∣ωi)+lnp(ωi)
带入正态分布:
gi(x)=−0.5(x−μi)TΣi−1(x−μi)−2dln2π−0.5ln∣Σi∣+lnp(ωi)
决策面方程:
−0.5[(x−μi)TΣi−1(x−μi)−(x−μj)TΣj−1(x−μj)]−0.5ln∣Σj∣∣Σi∣+lnp(ωj)p(ωi)=0
几个特殊情况:
- Σi=σ2I,则判别函数为:−2σ21(x−μi)T(x−μi)+lnp(ωi)。若先验概率相等,直接等价于最小距离分类器。
- 每一个协方差矩阵都相等,则判别函数为:−2σ21(x−μi)T(x−μi)−2dln2π−0.5lnσ2d+lnp(ωi)式中d为维度。可简化为:−2σ21(x−μi)TΣi−1(x−μi)+lnp(ωi)
- 若协方差矩阵各不相等:
概率密度函数的估计
基于样本的两步贝叶斯决策
- 利用样本集估计P(ωi)和P(x∣ωi)
- 得到P^(ωi)和P^(x∣ωi)
- 将估计量带入贝叶斯决策规则
- 得到决策结果
首先通过训练样本估计概率密度函数
- 先验概率估计-训练样本分布情况/根据领域知识认定
- 但类条件概率密度估计难
统计决策进行类别判定
- 训练样本有限,难以涵盖所有情况
- 但当训练样本多,就可以趋近于理论贝叶斯决策
概率密度估计方法
由训练样本集估计总体概率密度的方法可分为:
参数估计的基本概念
统计量、参数空间
点估计:构造一个统计量作为某参数的估计
估计量、估计值、区间估计
概率密度估计的评估
无偏性:Eθ=θ^
渐进无偏:N趋于无穷有无偏性
有效性:一种估计比另一种方差小
一致估计
n→∞limp(∣θn^−θ∣>ϵ)=0
则θ^是θ的一致估计
最大似然估计
基本假设
- θ确定但未知
- 按类别把样本集分开,ℜj类中每个样本都是对立从概率密度p(x∣ωi)的总体中独立抽取出来的。每即个样本i.i.d
- p(x∣ωj)为已知分布,参数向量未知,且每个不同类别参数在函数上独立
似然函数定义
在一类中独立抽取样本集来估计未知参数。
假设某类样本集中有N个样本
ℜ={x1,x2,…,xN}
因样本独立抽取,样本出现在样本集中的概率
l(θ)=p(ℜ∣θ)=p(x1,x2,…,xN∣θ)=p(x1∣θ)p(x2∣θ)…p(xN∣θ)
也可以取对数。
求解
由于每个训练样本独立,可对概率乘积取对数,再求导。
∀i,∂θi∂k=1∑Nlogp(xk∣θi)=0
注意:方程有可能有多解,但只有一个解最大。
多维正态分布的最大似然估计
Σ已知,μ未知,求μ
μ=μ^=N1k=1∑Nxk
Σ,μ均未知
θ^1=μ^1=N1k=1∑Nxk
θ^2=σ^12=N1k=1∑N(xk−μ^)2
贝叶斯估计和贝叶斯学习
贝叶斯估计实质:贝叶斯决策来决策参数的取值。
与最大似然估计的区别:
- 最大似然估计把待估计的参数当作未知但固定的量
- 贝叶斯估计把待估计的参数也看为随机变量
贝叶斯学习:把贝叶斯估计的原理用于直接从数据对概率密度函数进行迭代估计。
可以回顾最小风险贝叶斯决策
贝叶斯估计量
R(θ^∣x)为给定x条件下估计量θ^的期望损失,称为条件风险
定义:如果θ的估计量θ^使得条件风险最小,则为贝叶斯估计量。
损失函数
损失函数有多种,最常见为平方误差:
λ(θ^,θ)=(θ^−θ)2
贝叶斯估计
定理:如果损失函数为二次函数,则贝叶斯估计量为给定x时θ的条件期望:
θ^=E[θ∣x]=∫Θθp(θ∣x)dθ
估计基本步骤
- 确定θ的先验分布p(θ),待估参数为随机变量
- 用第i类样本Xi=(X1,X2,…,XN)求出样本的联合概率密度分布p(Xi∣θ),是一个θ的函数
- 利用贝叶斯公式,求θ的后验概率
p(θ∣Xi)=∫p(Xi∣θ)p(θ)dθp(Xi∣θ)p(θ)
- 求贝叶斯估计
θ^=∫Θθp(θ∣Xi)dθ
这两种参数估计方法,最终目的是估计总体分布
p(x∣ℜ) ℜ→Xi
其实在第三步后可以直接通过联合密度求类条件概率密度
p(x∣Xi)∫p(x,θ∣Xi)dθ=∫p(x∣θ)p(θ∣Xi)dθ
正态分布的均值估计
一维正态分布,已知σ2,估计μ。
假设概率密度服从正态分布,则p(X∣μ)∼N(μ,σ2),p(μ)∼N(μ0,σ2)
用第i类样本Xi=(X1,X2,…,XN),求出后验概率:
p(μ∣Xi)=∫p(Xi∣μ)p(μ)dμp(Xi∣μ)p(μ)
因为N个样本独立抽取,且∫p(Xi∣μ)p(μ)dμ仅仅与x有关,则上式可改写为:
p(μ∣Xi)=ak=1∏Np(xk∣μ)p(μ)=ak=1∏N2πσ1exp(−21(σxk−μ)22πσ1exp(−21(σμ−μ0)2))=a∗exp(−21(k=1∑N(σxk−μ)2+(σμ−μ0)2))=a∗∗
非监督参数估计
在未知样本类别的条件下的参数估计称为非监督参数估计
几个基本假设
- 样本来自类数为c的各类中,但不知道每个样本究竟来自于哪一类
- 每类的先验概率p(ωj)已知
- 类条件概率密度的形式p(x∣ωj,θj)已知
- 未知的只是c个参数向量θ1,θ2,…,θc的值
似然函数:
l(θ)=p(ℜ∣θ)
线性判别函数
引言
基于样本的Bayes分类器:通过估计类条件概率密度,设计相应判别函数
如果可以估计概率密度函数,则可以使用贝叶斯决策来最优的实现分类
从样本数据中直接估计参数->根据对样本/问题的理解直接设定判别函数形式,直接求解!
参数方法
概率密度函数已知,训练样本去估计参数
线性判别方法
与非参数方法类似,与参数没有直接关系。次优方法。
基于样本的直接确定判别函数的方法
- 针对不同情况,使用不同准则函数,设计出满足这些不同准则要求的分类器。
- 这些准则的“最优”并不一定与错误率最小相一致:次优分类器。
线性判别函数的基本概念
d维空间中线性判别函数的一般形式:
g(x)=wTx+w0
其中:x是样本向量-样本在d维特征空间中的描述,w是权向量,w0是一个常数。
令g(x)=g(x1)−g(x2),g(x)=0定义了一个决策面,分开了两类。
判别函数g(x)也可以看作是特征空间中某个点x到超平面距离的一种代数度量。可定义:
x=xp+r∣∣w∣∣w
其中xp是x到H的投影向量,r是x到H的垂直距离。
则
g(x)=wT(xp+r∣∣w∣∣w)+w0=wTxp+w0+r∣∣w∣∣wTw=r∣∣w∣∣
特殊情况:x为原点,则g(x)=w0。
设计分类器的主要步骤
- 有一组具有类别标志的样本集
- 根据实际情况确定一个准则函数 J,满足:J是样本集和w,wo,a的函数;J的值能反映分类器的性能,它的极值解对应于 “最好”的决策
- 利用最优化方法求出准则函数的极值解和w,wo,a,进而得到g(x)
Fisher线性判别分析
基本思想
希望投影后的一维数据满足:
- 两类之间尽可能远
- 每一类自身尽可能紧凑
即:用投影后数据的统计性质(均值和离散度)的函数作为判别优劣的标准
定义符号
m1,m2两类数据均值向量
S1,S2两类数据离散度矩阵
μ1,μ2两类数据投影后一维数据均值
σ1,σ2两类数据投影后一维数据离散度
mi=N1∑ix
Si=∑i((x−mi)(x−mi)T)
则有:
μiσi2=wTmi=∑(wTx−μi)2=wT∑(x−mi)(x−mi)Tw=wTSiw
Fisher准则函数
JF(w)=σ12+σ22(μ1−μ2)2wopt=argmaxJF(w)
称Sb=(m1−m2)(m1−m2)T类间离散度矩阵
称St=S1+S2类内总离散度矩阵
则:
JF(w)=wTStwwTSbw
Fisher准则合理性
JF(w)只与投影方向有关,与∣∣w∣∣无关,若w是最优解,则λw也是最优解。
Fisher最佳投影方向求解
需要St=S1+S2正定,否则存在w使得wTStw=0,导致JF(w)无极大值。
又因为有界性,则JF(w)≤minλ(St)maxλ(Sb)
λ(S)表示S的特征根。
又因为St正定,则存在最优的w,使得wTStw=1
本来是无约束优化maxwTStwwTSbw,等价为带约束最优化:
maxwtSbws.t. wTStw=1
L(w,λ)=wTSbw−λ(wTStw−1)∂w∂L(w,λ)=Sbw−λStw=0
由定义:
(m1−m2)(m1−m2)Twopt=λStwopt
记c=(m1−m2)Twopt,则:
wopt=λcSt−1(m1−m2)
而我们只关心投影方向,所以:
wopt=St−1(m1−m2)=(S1+S2)−1(m1−m2)
映射就此完成,现在确定分类阈值w0,即两个样本投影后的加权平均值(权为样本个数)的负数
感知准则函数
为讨论方便,将x增加一维:y=[1,x1,x2,…,xd]T,增广的权向量为:a=[w0,w1,w2,…,wd]T ,线性判别函数为:g(y)=aTy
基本概念
线性可分性
训练样本集中的两类样本在特征空间可以用一个线性分界面正确无误的分开。
规范化样本向量
将第二类样本取其反向向量。
感知准则函数
JP(a)=y∈YM∑(−aTy)
式中YM是被a错误分类的实例集合,由于全部反向,导致所有错误分类的实例有aTy<0,因此JP(a)非负。
定义梯度:
∇aJP(a)=y∈YM∑(−y)
梯度衰减更新法则为:
ak+1=ak+ηky∈YM(k)∑y
也被称为感知机批次更新法则。
感知准则函数修正法:
- 单样本修正法:样本集视为不断重复出现的序列,逐个样本检查,修正权向量
- 批量样本修正法:样本成批或全部检查后,修正权向量。
小结
感知准则函数方法思路:
- 找初始向量a1,用训练样本集中每个样本计算
- 若发现某个y有aTy<0,则只要ak+1=ak+ηky,则必有ak+1Ty=akTy+ηkyTy,有趋势使得ak+1Ty>0
当然,修正后的a也有可能使某些y出现ak+1Ty<0,但只要训练样本集线性可分,无论初值为什么,有限次迭代都能收敛。
最小平方误差准则函数
规范化增广样本向量yi,增广权向量a,正确分类要求:aTyi>0
本质就是求一组N个线性不等式的解。
样本集增广矩阵Y及一组N个线性不等式可由矩阵表示
引入余量b=[b1,b2,…,bN]T,bi为任意给定正常数,aTyi=bi>0,则可表示为:
Ya=b
定义误差向量e=Ya−b,定义平方误差准则函数:
JS(a)=∣∣e∣∣2=∣∣Ya−b∣∣2=i=1∑N(aTyi−bi)2
求解
a∗=argaminJS(a)
∇JS(a)i=1∑N2(aTyi−bi)yi=2YT(Ya−b)
则:
∇JS(a∗)=0⟺YTYa∗=YTba∗=(YTY)−1YTb=Y+b
与其他方法的关系
与Fisher:当b=[N/N1,N/N1,…,N/N1(N1个),N/N2,N/N2,…,N/N2(N2个)]T
MSE等价于Fisher
与Bayes:当N→∞,b=uN时,则它以最小均方误差逼近Bayes判别函数g(x)=P(ω1∣x)−P(ω2∣x)
MSE方法的迭代解
伪逆解计算量大,实际使用的梯度下降法
∇JS(a)i=1∑N2(aTyi−bi)yi=2YT(Ya−b)={a1随机初始化ak+1=ak−ηkYT(Ya−b)
满足一定条件时梯度下降结束。
也可以使用单样本修正调整权向量:Widrow-Hoff/最小均方根/LMS算法
ak+1=ak+ηk(bi−aKTyi)yi
其中yi是使得aKTyi=bi的样本。
多类问题
三种方法:
c-1 二类问题
分离符合与不符合ω1的点
c(c-1)/2 二类问题
分离每一对
定义c个线性离散函数
将x归于wj类如果gi(x)>gj(x),∀j=i
gi(x)=wiTx+wi0
非线性判别函数
引言
线性判别函数:简单实用,但线性不可分时错误率大。
- 使用新的特征
- 非线性变换
- 非线性分类器
分段线性判别函数
- 决策面由若干超平面段组成,计算相对比较简单
- 能够逼近各种形状的超平面,适应性强
- 多类情况下的线性判别函数分类
- 树状分类
如果两类可划分为线性可分的若干子类,则可以设计多个线性分类器,实现分段线性分类器。
基于距离的分段线性判别函数
分段线性距离分类器:将各类别划分为相对密集的子类,每个子类以它们的均值作为代表点,然后按最小距离分类。
判别函数:ωi有li个子类,将ωi的决策域Ri分成li个子域Ri1,Ri2,…,Rili,每个区域用均值mik代表:
gi(x)=k=1,…,limin∣∣x−mik∣∣
判别规则:
j=argi=1,…,cmingi(x)
如果gj(x)=argmini=1,…,cgi(x),则x属于ωj。
一般的分段线性判别函数
将每个大类分成若干子类,针对每个子类定义一个线性判别函数。
一般形式:gik(x)表示第i类第k段线性判别函数,li是第i类所具有的判别函数个数,wik.wi0k扽别是第k段的权向量和阈值权:
gik(x)=wi(k)Tx+wi0k
第i类判别函数:
gi(x)−k=1,2,…,limaxgik(x)
判别规则:如果gj(x)=argmini=1,…,cgi(x),则x属于ωj。
决策面:gin(x)=gjm(x)
问题:如何确定子类数目?如何求得各子类的线性判别函数?
分段线性判别函数的设计
已知子类划分
直接使用多类线性分类方法
如何知道子类划分?先验、聚类分析
只知道子类数目,不知道子类划分
使用错误修正法(此法介绍使用增广的判别函数形式表示gik(y)=ai(k)Ty)
假设ωi,ωi类中有li个子类,每一类均存在一定数量训练样本:
- 初始化:任意给定各类各子类权值ai(k)T(0),通常使用小随机数
- 在时刻t:当前权值为ai(k)T(t),考虑某个训练样本yv∈ωj,找出ωj类的子类中最大的判别函数ai(m)T(t)yv=maxkaj(k)T(t)yv
- 考察当前权值对yv的分类情况,若aj(m)T(t)yv>ai(k)T(t)yv,∀i=j,则ai(k)T(t)不变。若∃i=j,k=n,s.t.aj(m)T(t)yv≤ai(n)T(t)yv,则yv被错分,对其中最大者记为(i′,n′)修正:
aj(m)(t+1)=aj(m)(t)+ρtytai′(n′)(t+1)=ai′(n′)(t)−ρtyt
重复迭代,直至收敛。式中ρ为自取步长
未知子类数目
使用树状分段线性分类器。
用凹函数的并来表示分段线性函数
设li为线性判别函数,则:
- l1,l2,…,lr都是分段线性判别函数
- 若A,B都是分段线性判别函数,则:A∧B,A∨B也是分段线性判别函数。
- 对任何分段线性函数都可以表示为析取范式或合取范式。
析取范式中最小项(L11∧L22∧⋯∧L1m)称为凹函数。
对于多峰二类问题:设第一类有q个峰,则有q个凹函数,即:
P=P1∨P2∨⋯∨Pq
每个凹函数Pi由m个线性判别函数来构成:
Pi=Li1∧Li2∧⋯∧Lim
假设对于每个子类的线性判别函数Lij都设计成:
Lij=wijx{>0,x∈ω1,i=1,2,…,q子类<0,x∈ω2,j=1,2,…,m每个子类的判别函数数
最终判别规则:
P>0,则x∈ω1P≤0,则x∈ω2
例:
ω1分三个峰,q=3。
判别函数:
m1=5,m2=4,m3=4
所以共有十三个分段判别函数
P=(L11∧L12∧L13∧L14∧L15)∨(L21∧L22∧L23∧L24)∨(L31∧L32∧L33∧L34)=max(min(l11,l12,l13,l14,l15),min(l21,l22,l23,l24),min(l31,l32,l33,l34))
若P>0则x∈ω1,否则x∈ω2
用交遇区的样本设计分段线性函数
思想:寻找两类中最靠近的样本子集,用他们设计分类器。
步骤:
- 用聚类分析等方法把每类样本分为若干子类
- 考察子类间的距离d(vim,vjn)
- 寻找紧互对原型对d(vim,vjn)=minl(d(vil,vjn))=minl(d(vim,vjl))
- 用紧互对原型对设计分类面
- 决策规则(可能有错分):设最后得到m个超平面Hi:αiTy=0,记zi(x)=if αiTy>0:1, else 0,得z(x)=[z1(x),z2(x),…,zm(x)],对z(x)的每一种可能取值zj,统计其在χ1,χ2两类样本中出现的次数N1(zj),N2(zj),定义Ω(zj):若N1(zj),N2(zj)很小,则Ω(zj)=δ,否则若L=N1(zj)+N2(zj)N1(zj)>1,则Ω(zj)=1,否则若L<2,Ω(zj)=0。
- 最终决策规则:对输入x,若Ω(zj)=1则x∈ω1;若Ω(zj)=0,则x∈ω2;若Ω(zj)=δ则拒绝。
二次判别函数
二次判别函数一般表示为:
g(x)=XTWˉX+WTX+W0=i=1∑nwiixi2+2j=1∑n−1i=j+1∑nwjixjxi+j=1∑nwjxj+W0
其中:Wˉ是n×n维权向量,W为n维权向量,系数共有l=21n(n+3)+1(很大)
二次决策面为超二次曲面。
已知样本ω1集中,而ω2分散
定义ω1判别函数:
g(x)=k2−(x−μˉ)TΣ−1(x−μˉ)
k决定超平面大小,μ为ω1均值,Σ为ω1协方差。
已知样本ω1,ω2都集中
可以定义两个判别函数:
gi(x)=ki2−(x−μˉi)TΣi−1(x−μˉi)
μi为ωi均值,Σi为ωi协方差。
判别面方程:
g(x)=g1(x)−g2(x)=0
神经网络综述
简介
神经网是一种模拟动物神经网络行为特征,进行分布式并行信息处理的算法。
这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
基础:
- 构成:大量简单的基本元件——神经元
- 工作原理:模拟生物神经处理信息
- 功能:进行信息的并行处理和非线性转换
特点:
- 比较轻松地实现非线性映射
- 具有大规模的计算能力
发展
- MP模型
- Hebb学习规则
- 感知机模型
- 感知器,局限性
- 能量函数
- 反向传播,解决多层前向神经网络学习问题
优劣势
优势:
- 很强的自适应学习能力
- 实现特征空间较复杂的划分
- 能用高速并行处理系统实现
劣势:
- 需要更多训练数据
- 在普通计算机模拟运行速度较慢
- 无法解释
本质
利用计算机语言模拟人脑做决定
神经元结构模型
几种代表性的网络模型
- 单层前向神经网络——线性网络
- 阶跃网络
- 多层前向神经网络(反推学习规则,即BP神经网络)
- Elman、Hopfield、双向联想记忆网络、自组织竞争网络
神经网络能干什么
函数逼近、数据聚类、模式分类、优化计算等。
BP神经网络
BP 神经网络是一种按**误差逆传播算法(反向传播)**训练的多层前馈网络,是应用广泛的神经网络模型之一。
BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。
学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。
BP神经网络模型拓扑结构包括输入层(input layer)隐层(hidden layer)和输出层(output layer)
特点
多层前馈神经网络,信号向前传播,误差向后传播。
工作原理
基本BP算法包括两个方面:信号的前向传播和误差的反向传播。即计算实际输出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。利用输出后的误差来估计输出层的直接前一层的误差,再 用这个误差估计更前一层的误差,如此反传下去,就获得了所有其他各层的误差估计。
工作流程
- 网络初始化:根据训练数据确定网络输入神经元、隐含神经元、输出神经元数目,初始化各层神经元间的连接权值,初始化隐含层、输出层的阈值,给定学习率和神经元传递函数。
- 隐含层输出计算:根据输入向量、输入层和隐含层连接权值、阈值,计算隐含层输出
- 输出层输出计算:根据隐含层输出、连接权值、阈值,计算BP神经网络预测输出
- 误差计算:根据预测输出和期望输出计算网络预测误差
- 权值更新:根据网络误差更新网络权值
- 阈值更新:根据网络误差更新
- 判断是否结束
学习过程
正向传播:
输入样本→输入层→隐含层→输出层
判断是否转入反向传播阶段:若输出层的实际输出与期望的输出不符。
误差反传:误差以某种形式在各层表示——修正各层单元的权值。
缺陷与改进
缺陷:
- 学习效率低,收敛速度慢
- 易陷入局部极小状态
改进:
隐含层层数:过少则误差大,过多则会过拟合,学习时间增长。
隐含层神经元数量一般使用经验判断,m为隐含层神经元数,n为输入层神经元数。I为输出层神经元数,α为1−10间的常数,则:m=n+l+a,m=log2n,m=nl 等。
其它常用传统神经网络模型
径向基函数网络
特点:只有一个隐层,隐层单元采用径向基函数作为输出函数,输入层到隐层的权值固定为1,输出节点为线性求和单元,隐层到输出节点间权值可调。
径向基函数
某种沿径向对称的标量函数。通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数,可记作k(∣∣x−xc∣∣)。
最常用的是高斯核函数:k(∣∣x−xc∣∣)=exp{−2δ2∣∣x−xc∣∣2}
作用
把网络看作对未知函数的逼近器,输入层到隐层的基函数是非线性的,而输出是线性的,可看作先对原始非线性可分特征空间变换到另一空间,通过这一变换使得在新空间线性可分,再用线性单元解决问题。
可调参数
隐层基函数中心、方差,输出单元权值。
Hopfield 网络
Hopfield网络是一种反馈网络。反馈网络具有一般非线性系统的许多性质,如稳定性问题、各种类型的吸引子以及混沌现象等。它比前馈网络的内容复杂。
Hopfield还满足:
- 权值对称:权矩阵为对称阵
- 无自反馈:权矩阵对角线元素为0
自适应共振理论神经网络ART
自适应共振理论神经网络既能模拟人脑的可塑性,可以学习知识,又能模拟人脑的稳定性,学习新的知识但不破坏原有知识,即这种网络不仅能记忆新的知识,而且还保留已记忆的内容。
自组织特征映射神经网络SOM
人脑的记忆不是神经元与记忆模式的一一对应,而是一群神经元对应一个模式。
支持向量机
回顾:
- 线性判别函数
- Fisher线性判别函数
- 感知准则函数
- 最小平方误差准则函数
- 多类问题
线性支持向量机
SVM从线性可分情况下的最优分类面发展而来。
最优分类面就是要求分类线不仅能将两类正确分开,并且分类间隔最大。
SVM考虑找到一个超平面,并且使训练集中的点距离分类面尽可能远,也就是使其两侧的空白区域(margin)尽可能大。
样本集:{xn.tn},n=1,2,…,N,xn∈Rd;tn∈{−1,1}
分类器:y(x)=wTx+b
其中:
tn={1,y(xn)>0−1,y(xn)<0 if xi∈w1 if xi∈w2
即:
tny(xn)>0
样本集任意一点xn到分类面的距离:
∣∣w∣∣tny(xn)=∣∣w∣∣tn(wTxn+b)
优化w,b使得margin最大。
求解很复杂,可以令超平面最近的点有:tn(wTxn+b)=1,则所有点都有:tn(wTxn+b)≥1
这时只需要最大化∣∣w∣∣−1,等价于:
argw,bmin21∣∣w∣∣2s.t.ti[(wTxi)+b]≥1
转化为二次规划问题。
拉格朗日乘子法求解即可。
非线性支持向量机
对于非线性可分的数据样本,可通过适当的函数变换,将其在高维空间中转化为线性可分。
例如异或问题:
二维样本集:x=(x1.x2)
第一类(0,0),(1,1),第二类(1,0),(0,1)
映射函数ϕ(x)=(x1,x2,x1x2)
则:(0,0)→(0,0,0),(1,1)→(1,1,1),(1,0)→(1,0,0),(0,1)→(0,1,0)
线性可分了。即将y(x)=wTx+b转化为y(x)=wTϕ(x)+b。
核函数
决策时:原本为
y(x)=wTx+b=n=1∑NantnxTxn+b
转化为
y(x)=n=1∑NantnK(x,xn)+b
其中:
K(x,xn)=ϕ(x)Tϕ(xn)
核函数在特征空间中直接计算数据映射后的内积,简化了计算过程。
基于泛函理论,我们只需要知道核函数,没必要知道非线性变换的表达形式。
核函数需要满足Mercer定理:
Rn×Rn→R上的映射k是一个有效核函数,当且仅当对于训练样本其相应的核函数矩阵是对称半正定的。即对于任何平方可积函数g(x),有∬k(x,y)g(x)g(y)dxdy≥0。
根据问题和数据不同,选择不同的核函数,如:
- 线性核:k(x1,x2)=x1Tx2
- 多项式核:k(x1,x2)=(<x1,x2>+R)d
- 高斯核:k(x1,x2)=exp{−2σ2∣∣x1−x2∣∣2}
- sigmoid核:k(x1,x2)=tanh(β0x1Tx2+β1)
非线性SVM基本思想
- 通过非线性变换将输入空间变换到高维空间。
- 在新空间中求最优分类面。
非线性变换通过定义适当的内积核函数实现。而选择不同的核函数,可以看作是选择不同的相似性度量。线性支持向量机就是采用欧氏空间中的内积作为相似性度量。
其他非线性分类方法
决策树
内部节点上选用一个属性进行分割,分支表示输出,叶子节点表示类。
如:
决策树算法对数据处理的过程中,将数据按树状结构分成若干分支形成决策树,从根到树叶的每条路径创建一个规则。
但是,也有很烂的决策树,如:
怎样让决策树深度没那么深?需要对决策树生成步骤进行改变。
决策树的生成
- 在条件属性集中选择最有分类标识能力的属性作为决策树当前节点。
- 根据当前决策属性取值不同,将训练样本数据集划分为若干子集。
- 针对上一步得到每一个子集,重复上述过程,直到子集中所有元组都属于同一类,不能再进一步划分为止。
决策树分类算法
ID3算法。
基本思想:按一定准则选择一个条件属性作为根节点,根据其属性取值将整个例子空间划分为几个子空间,然后递归使用这一准则继续划分,直至所有底层子空间只含有一类例子。
一些数学定义:
熵
度量样例的纯度。
定义:设S是n个数据样本的集合,将样本划分为c个不同的类,每个类含样本数ni,则S划分为c个类的熵为:
Entropy(S)=−i=1∑cnnilog2nni
信息增益
衡量属性区分训练样例的能力:一个属性的信息增益就是由于使用这个属性分割样例而导致的熵的降低。
属性A相对样例集合S的信息增益定义:
Gain(S,A)=Entropy(S)−v∈Values(A)∑∣S∣∣Sv∣Entropy(S)
则ID3算法每次选择信息增益值最大的属性作为最佳属性,进行分类。
其它决策树建立方法
CART算法(使用基尼指数)、C4.5算法(使用信息增益率)等。
决策树的数据准备
- 数据清理:删除、减少噪声,补填空缺值。
- 相关性分析: 对于问题无关的属性或者不能归纳的属性,直接删除。
- 数据变换:数据标准化,数据归纳,并控制属性可能值不超过七种。
剪枝
先剪枝:
后剪枝:
- 减少分类错误修剪法
- 最小代价与复杂性折中
- 最小描述长度准则
随机森林
决策树方法尤其受数据集影响大,容易过学习。
统计学策略:自举(bootstrap)通过对现有样本重采样形成多个样本集,模拟数据中的随机性。
随机森林步骤:
- 对样本数据进行自举重采样
- 用每个重采样样本集作为训练样本构造一个决策树
- 得到所需数据的决策后,对这些树的输出进行决策,得票最多的类作为随机森林的决策。
特征选择与提取
图像特征提取
深度学习
人工神经网络回顾
卷积神经网络
神经网络的训练
其它神经网络
非监督学习方法
引言
- 监督学习(supervised learning):用已知类别的样本训练分类器,以求对训练集数据达到某种最优,并能推广到对新数据的分类
- 非监督学习(unsupervised learning):样本数据类别未知,需要根据样本间的相似性对样本集进行分类(聚类,clustering
监督学习方法必须要有训练集与测试样本。在训练集中找规律,而对测试样本使用这种规律;而非监督学习只有一组数据,在该组数据集内寻找规律。
监督学习方法的目的是识别事物,给待识别数据加上标注。而非监督学习方法只有要分析的数据集本身,没有标注。
主要的非监督学习方法
- 基于概率密度函数估计的直接方法:设法找到各类别在特征空间的分布参数再进行分类,如直方图方法。
- 基于样本间相似性度量的间接聚类方法:设法定出不同类别的核心或初始类核,然后依据样本与这些核心之间的相似性度量将样本聚集成不同类别。
基于概率密度函数估计的直接方法
划分整个空间为 N 个区域,使得每个区域的概率密度函数是单峰的。
单峰子集的分离方法
思想:把特征空间分为若干区域,每个区域上,混合概率密度函数都是单峰的,每个单峰对应一个类别。
一维空间:应用直方图或 Parzen 窗法估计概率密度函数,找到概率密度函数的峰,以及峰之间的谷底,以谷底为阈值对数据进行分割。
即:t=argminp(x)
多维空间投影方法
多维空间中,直接划分比较困难,一般投影到一维空间中来简化问题。
如何确定合适的投影方向 u ?
使投影 x=uTy 的方差最大,方差越大,类之间的分离程度也可能越大,样本协方差矩阵的最大特征值对应的特征向量满足这样的要求,但有时不能产生多峰的边缘密度函数。
投影算法步骤:
- 计算样本 y 协方差矩阵的最大特征值对应的特征向量 u,把样本数据投影到 u 上,得到 v=uTy
- 用直方图/ Parzen 窗法求边缘概率密度函数 p(v)
- 找到边缘概率密度函数的各个谷点,在这些谷点上作垂直于 u 的超平面把数据划分成几个子集
- 若无谷点,则用下一个最大的特征值代替
- 对所得到的各个子集进行同样的过程,直至最后都是单峰为止
但有时并不能一定分离。可以利用迭代算法。
可以将数据集 Y 划分为 c 个子集 Γi ,每个子集中样本数为 Ni ,总数为 N ,考察类条件概率密度的加权估计值:
f(y∣Γi)=NNip(y∣Γi)
定义指标:
J=21∫i=1∑cj=1∑c[f(y∣Γi)−f(y∣Γj)]2p(y)dy
反映了两个类间的距离,目标:求使 J 最大的子集划分:
f(y∣Γi)=Ni1j=1∑Nik(y,yi),y∈Γi
即 Parzen 窗法。
算法:
- 初始划分 Y
- 对每个样本 yk ,逐一计算 f(yk∣Γi) ,并归入使 f(yk∣Γi) 最大的子集中
- 重复2,直到不在有样本发生转移
基于相似性度量的间接聚类方法
根据样本间的相似性,使某种准则函数最大(小)
例如 K 均值,使下列准则最小:
J=i=1∑Ky∈Γi∑∣∣y−mi∣∣2
式中: mi 为第 i 类个聚类 Γi 的样本均值。
目标:类内元素相似性高,类间元素相似性低
要点:相似性度量、准则函数
相似性度量
以某种距离定义,如样本间相似性度量(特征空间的某种距离度量):
δ(xi,xj)=(xi−xj)T(xi−xj)
样本与样本聚类间的相似性度量:
δ(xi,Kj)
直观理解:同一类的样本的特征向量应是相互靠近的。
动态聚类方法
- 距离函数:进行相似性度量
- 准则函数:评价聚类结果的质量
- 迭代,直到准则函数取得极值
K 均值算法
给定 D 维空间上的数据集 {x1,…,xN},并不知道这些数据集对应的类型和标号,通过聚类方法将这些数据集划分为 K 类,对于 K 个聚类的每一类 k ,分别建立一个代表点 μk ,将每一类样本划归到离该样本最近的 μk 代表的聚类。
目的:最小化准则函数 J=∑n=1N∑k=1Krnk∣∣xn−μk∣∣2。式中 rnk 表示 xn 是否是第 k 个聚类。
算法:
- 根据 μk 按最优化准则计算 rnk 。
- 根据 rnk 按最优化准则计算 μk 。
K 均值聚类方法用于解决的问题
- 分类数已知
- 是最小方差划分,并不一定能反映内在分布
- 与初始划分有关,不保证最优
K 均值的缺点
用均值代表类,适用于近似球状分布的类
改进:用核来代表类,定义样本与核的相似性度量,如正态核函数。
分级聚类方法
在人类认识客观世界过程中,将事物分级分类是一种很有效的手段,如界门纲目科属种。
聚类划分序列: N 个样本自底向上逐步合并成一类。
- 初始化,每个样本自成一类
- K 水平划分的进行:计算已有的 c=N−K+1 个类的类间距离矩阵 D(K−1)=[dij](K−1),其最小元素记作 d(K=1),相应的两个类合并成一类
- 重复 2 ,直至形成包含所有样本的类。
Pic。
两聚类间的距离度量
聚类 Ki 与 Kj 间的距离度量:
最近距离、最远距离、均值距离。
非监督学习的一些问题
非监督学习存在更大不确定性:可利用信息少——相似性度量一般对于数据尺度较敏感。
影响聚类结果的因素:样本的分布、样本数量、聚类准则、相似性度量、预分类数等
针对不同数据、不同目标选择不同的聚类算法
动态聚类算法计算效率高,实际应用多
改进方法:
- 先验知识
- 多次试算
- 改进算法:自组织映射 SOM ,模糊 C 均值方法