文章目录
-
- 一、考试范围知识框架
- 二、正文内容
-
- [1. 径向基函数网络(RBF Networks)](#1. 径向基函数网络(RBF Networks))
- [2. 支持向量机(SVM)](#2. 支持向量机(SVM))
- [3. 神经网络(Neural Networks)](#3. 神经网络(Neural Networks))
- [4. 反向传播算法(BP算法)](#4. 反向传播算法(BP算法))
- [5. 神经网络特点](#5. 神经网络特点)
一、考试范围知识框架
- 径向基函数网络(RBF Networks)
- 支持向量机(SVM)
- 神经网络(Neural Networks)
- 感知器模型
- 反向传播算法(BP算法)
可能考查的问题
- 神经网络相关问题
- 感知器的局限性
- 多层前馈网络的表达能力
- 反向传播算法的原理
- 激活函数的选择
二、正文内容
1. 径向基函数网络(RBF Networks)
关键词:径向基函数、局部感受区、函数中心、聚类确定中心
什么是径向基函数?
径向基函数(Radial Basis Function, RBF)是一类以某个中心点为基准的特殊函数。函数值只依赖于输入点到中心点的距离,与方向无关。
常见径向基函数:
-
高斯函数 (最常用):
ϕ ( x ) = exp ( − ∣ ∣ x − c ∣ ∣ 2 2 σ 2 ) \phi(x) = \exp\left(-\frac{||x - c||^2}{2\sigma^2}\right) ϕ(x)=exp(−2σ2∣∣x−c∣∣2)其中 c c c 是中心点, σ \sigma σ 是宽度参数
-
多二次函数 : ϕ ( x ) = 1 + ( ∣ ∣ x − c ∣ ∣ / σ ) 2 \phi(x) = \sqrt{1 + (||x - c||/\sigma)^2} ϕ(x)=1+(∣∣x−c∣∣/σ)2
-
逆多二次函数 : ϕ ( x ) = 1 / 1 + ( ∣ ∣ x − c ∣ ∣ / σ ) 2 \phi(x) = 1/\sqrt{1 + (||x - c||/\sigma)^2} ϕ(x)=1/1+(∣∣x−c∣∣/σ)2
特点:函数值在中心点最大;距离中心点越远,函数值越小;形成一个"局部"的影响区域。
形象比喻:就像灯塔,中心最亮,越远越暗。
RBF网络的结构
径向基函数神经网络(RBF Network)是一种前馈式神经网络,结构简单,训练速度快。
网络结构 :输入层 接收输入特征;隐层 使用径向基函数作为激活函数;输出层线性组合隐层输出。
数学表达:
y = ∑ j = 1 M w j ϕ j ( x ) + w 0 y = \sum_{j=1}^{M} w_j \phi_j(x) + w_0 y=j=1∑Mwjϕj(x)+w0
其中: M M M 是隐层单元数量; ϕ j ( x ) \phi_j(x) ϕj(x) 是第 j j j 个隐单元的径向基函数; w j w_j wj 是第 j j j 个隐单元到输出的权重; w 0 w_0 w0 是偏置项。
RBF网络的特点
1. 局部感受区
RBF网络的隐单元激活函数是局部性的,每一隐单元有一个局部"感受区"(reception field)。
含义 :只有当输入 x x x 接近某个中心点 c j c_j cj 时,对应的隐单元 ϕ j ( x ) \phi_j(x) ϕj(x) 才有较大的输出;远离中心点时,输出接近0;每个隐单元只"关注"输入空间的某个局部区域。
例子:
假设有3个隐单元,中心点分别是 c 1 = 0 c_1 = 0 c1=0, c 2 = 5 c_2 = 5 c2=5, c 3 = 10 c_3 = 10 c3=10:
- 输入 x = 0.5 x = 0.5 x=0.5: ϕ 1 \phi_1 ϕ1 输出大, ϕ 2 \phi_2 ϕ2 和 ϕ 3 \phi_3 ϕ3 输出小
- 输入 x = 5.2 x = 5.2 x=5.2: ϕ 2 \phi_2 ϕ2 输出大, ϕ 1 \phi_1 ϕ1 和 ϕ 3 \phi_3 ϕ3 输出小
- 输入 x = 9.8 x = 9.8 x=9.8: ϕ 3 \phi_3 ϕ3 输出大, ϕ 1 \phi_1 ϕ1 和 ϕ 2 \phi_2 ϕ2 输出小
2. 训练速度快
原因:使用聚类(如K-means)确定函数中心;隐单元到输出的权重可以直接计算(不需要迭代);避免了反向传播的反复迭代过程。
训练步骤 :1. 使用聚类算法确定隐单元的中心点;2. 设置宽度参数 σ \sigma σ;3. 直接计算输出层权重(最小二乘法)。
3. 需要较多训练样本
因为需要确定多个中心点,需要足够的样本覆盖输入空间,一般说来,所需训练样本比传统ANN多。
RBF网络 vs 传统ANN
| 特性 | RBF网络 | 传统ANN(Sigmoid) |
|---|---|---|
| 激活函数 | 径向基函数(局部性) | Sigmoid函数(全局性) |
| 感受区 | 局部感受区 | 全局影响 |
| 训练速度 | 快(直接计算权重) | 慢(需要迭代) |
| 训练样本 | 需要较多 | 需要较少 |
| 逼近能力 | 最佳逼近性能 | 良好逼近性能 |
| 适用场景 | 函数逼近、模式识别 | 分类、回归 |
Sigmoid函数的全局性:无论输入在哪里,Sigmoid函数都有输出;一个权重的改变会影响整个输入空间;学习基于随机逼近原理,收敛速度慢。
RBF函数的局部性:只在中心点附近有显著输出;一个隐单元只影响局部区域;训练速度快,但需要更多样本。
选择建议:需要快速训练且样本充足 → 使用RBF网络;样本较少或需要全局学习 → 使用传统ANN。
2. 支持向量机(SVM)
关键词:统计学习理论、最大边际、支持向量、非线性升维映射
什么是支持向量机?
支持向量机(Support Vector Machine, SVM)是一种强大的分类算法,由Vladimir N. Vapnik提出,基于统计学习理论。
核心思想 :找到最优的分类超平面 ,使得两类样本之间的间隔(margin)最大。
形象比喻:就像在两个城市之间修路,要找到一条最宽的路(最大间隔),这条路要尽可能远离两个城市(两类样本),这样即使有误差,也不容易分错类。
最大边际分类超平面
问题:给定两类样本,如何找到最好的分类线(或超平面)?
SVM的答案 :找到间隔最大的分类超平面。
间隔(Margin):分类超平面到最近样本的距离。
最大间隔:让这个距离尽可能大,这样:分类更可靠(容错能力强);泛化能力更好(对新样本预测更准确)。
例子:
假设二维平面上有两类点:正类(红色点)和负类(蓝色点)。有很多条直线可以分开这两类点,但SVM选择的是:距离两类点都最远的直线,这条直线到最近的红点和蓝点的距离相等且最大。
支持向量
支持向量(Support Vectors):距离分类超平面最近的样本点。
特点:只有支持向量影响分类超平面的位置;其他样本点可以删除,不影响分类结果;支持向量通常只占样本的一小部分。
构造超平面的复杂度 :只取决于支持向量的个数,而不是样本总数。这使得SVM在处理大数据集时仍然高效。
非线性升维映射
问题:如果数据在原始空间中线性不可分怎么办?
SVM的解决方案 :通过非线性映射将数据映射到高维空间,在高维空间中数据可能变成线性可分的。
核技巧(Kernel Trick):不需要显式地计算高维映射;只需要计算高维空间中的内积(通过核函数);大大降低了计算复杂度。
常见核函数:
-
线性核 : K ( x i , x j ) = x i T x j K(x_i, x_j) = x_i^T x_j K(xi,xj)=xiTxj(原始空间)
-
多项式核 : K ( x i , x j ) = ( x i T x j + 1 ) d K(x_i, x_j) = (x_i^T x_j + 1)^d K(xi,xj)=(xiTxj+1)d
-
高斯核(RBF核) : K ( x i , x j ) = exp ( − γ ∣ ∣ x i − x j ∣ ∣ 2 ) K(x_i, x_j) = \exp(-\gamma ||x_i - x_j||^2) K(xi,xj)=exp(−γ∣∣xi−xj∣∣2)
- 最常用,可以将数据映射到无限维空间
-
Sigmoid核 : K ( x i , x j ) = tanh ( α x i T x j + β ) K(x_i, x_j) = \tanh(\alpha x_i^T x_j + \beta) K(xi,xj)=tanh(αxiTxj+β)
例子:
假设二维平面上有一个圆形的分类问题(圆内是一类,圆外是另一类):
- 在二维空间中:线性不可分
- 映射到三维空间:可能变成线性可分(比如用 z = x 2 + y 2 z = x^2 + y^2 z=x2+y2)
- SVM在高维空间中找到一个平面,完美分类
SVM的理论基础
SVM与以下理论相关:Vapnik-Chervonenkis(VC)理论 研究学习机器的复杂度;VC维数 衡量模型复杂度的指标;统计学习理论 研究机器学习的基本原理;结构风险最小化在经验风险和模型复杂度之间平衡。
核心思想:不仅要让训练误差小,还要让模型复杂度低,从而保证泛化能力。
SVM的特点
优点:✅ 泛化能力强(最大间隔原理);✅ 对高维数据有效(核技巧);✅ 内存效率高(只存储支持向量);✅ 理论基础扎实(统计学习理论)。
缺点:❌ 对大规模数据训练慢;❌ 对参数和核函数选择敏感;❌ 不直接提供概率输出。
适用场景:二分类问题(可以扩展到多分类);高维数据;需要强泛化能力的场景;样本数量中等(不是特别大)。
3. 神经网络(Neural Networks)
关键词:生物神经元、McCulloch-Pitts神经元、感知器、多层前馈网络、反向传播
什么是神经网络?
神经网络(Neural Networks)是对生物神经元机制进行模拟的模型,最早由心理学家和神经学家开创。
生物神经元的启发:
人脑由大量(约 1 0 10 10^{10} 1010 个)高度互连的神经元组成,每个神经元大约有 1 0 4 10^4 104 个连接。
有趣的事实 :生物神经元很慢( 1 0 − 3 10^{-3} 10−3 秒),电子电路很快( 1 0 − 9 10^{-9} 10−9 秒),但人脑能快速完成复杂任务(如识别图像、理解语言)。
原因 :生物神经网络具有巨大的并行性,可以同时处理大量信息。
McCulloch-Pitts神经元模型
这是最早的神经元模型之一,模拟了生物神经元的基本功能。
模型定义:
一个阈值为 θ \theta θ 的McCulloch-Pitts神经元:
y = { 1 如果 u ≥ θ 0 否则 y = \begin{cases} 1 & \text{如果 } u \geq \theta \\ 0 & \text{否则} \end{cases} y={10如果 u≥θ否则
其中 u = ∑ i w i x i − ∑ i c i x i u = \sum_i w_i x_i - \sum_i c_i x_i u=∑iwixi−∑icixi(加权输入减去抑制输入)
特点 :输入: x 1 , x 2 , . . . , x n x_1, x_2, ..., x_n x1,x2,...,xn;权重: w 1 , w 2 , . . . , w n w_1, w_2, ..., w_n w1,w2,...,wn(兴奋性连接);抑制: c 1 , c 2 , . . . , c n c_1, c_2, ..., c_n c1,c2,...,cn(抑制性连接);阈值: θ \theta θ;输出:0或1(二值输出)。
可以执行的逻辑函数 :AND 当所有输入都为1时输出1;OR 当至少一个输入为1时输出1;NOT输出输入的相反值。
局限性 :单层感知器无法执行XOR逻辑函数(异或)。
XOR问题:
- 输入 ( 0 , 0 ) (0,0) (0,0) → 输出 0
- 输入 ( 0 , 1 ) (0,1) (0,1) → 输出 1
- 输入 ( 1 , 0 ) (1,0) (1,0) → 输出 1
- 输入 ( 1 , 1 ) (1,1) (1,1) → 输出 0
XOR在二维空间中不是线性可分的,单层感知器无法解决。
感知器(Perceptron)
感知器由Rosenblatt提出,是神经网络的基础。
单层感知器 :只能解决线性可分问题,无法解决XOR等非线性问题。
Minsky和Papert的证明(1969) :只要是单层感知器(网络),无论使用什么样的非线性激活函数,其分类能力都一样,即只能解决线性可分问题。
线性可分的例子:AND可以用一条直线分开;OR可以用一条直线分开。
线性不可分的例子:XOR无法用一条直线分开,需要两条直线(或多层网络)。
多层前馈神经网络
网络结构:
多层前馈神经元网络由以下部分组成:输入层 接收输入特征;隐含层 (中间层)一个或多个,进行特征变换;输出层输出最终结果。
连接方式 :层间 全连接(每个节点连接到下一层的所有节点);层内无连接(同一层的节点之间不连接)。
数学表达:
对于具有一个隐含层的网络:
y = f ( ∑ j w j ⋅ g ( ∑ i w i j x i + b j ) + b ) y = f\left(\sum_{j} w_j \cdot g\left(\sum_{i} w_{ij} x_i + b_j\right) + b\right) y=f(j∑wj⋅g(i∑wijxi+bj)+b)
其中: x i x_i xi 是输入; g g g 是隐含层激活函数; f f f 是输出层激活函数; w i j w_{ij} wij 是输入层到隐含层的权重; w j w_j wj 是隐含层到输出层的权重; b j , b b_j, b bj,b 是偏置项。
多层网络的表达能力
重要定理 :具有一个隐含层的前馈神经元网络可以逼近任何连续函数。
含义:只要有足够的隐含层节点,单隐含层网络就可以表示任意复杂的连续函数,这就是神经网络的强大之处。
为什么需要多层?
单层感知器的局限:只能学习线性决策边界;无法解决XOR等非线性问题。
多层网络的能力:隐含层可以学习非线性特征;多个隐含层可以学习更复杂的特征组合;可以解决非线性分类和回归问题。
例子:
XOR问题:单层感知器无法解决;两层网络(一个隐含层)可以解决。隐含层学习两个线性边界,输出层组合这些边界,形成XOR的非线性决策边界。
实际应用:图像识别中多层网络可以学习从边缘→形状→物体的层次特征;自然语言处理中可以学习词→短语→句子的语义表示;语音识别中可以学习从音频特征→音素→单词的映射。
4. 反向传播算法(BP算法)
关键词:误差反向传播、梯度下降、权值修正、局部最小值
如何训练神经网络?
如果网络结构(隐含层个数、每层节点数)已知,训练神经网络就是确定各节点之间的连接权值。
问题:如何找到最优的权重,使得网络输出与期望输出尽可能接近?
答案 :使用反向传播算法(Backpropagation, BP算法)。
反向传播算法的核心思想
基本流程:
- 前向传播:输入数据从输入层→隐含层→输出层,计算网络输出
- 计算误差:比较网络输出和期望输出,计算误差
- 反向传播:将误差从输出层→隐含层→输入层,逐层反向传播
- 权值更新:根据误差梯度,使用梯度下降法更新权重
形象比喻 :前向传播 信息从前往后流动,就像信号传递;反向传播 误差从后往前流动,就像"问责"机制,告诉前面的层哪里出错了;权值更新根据"问责"信息,调整权重,减少错误。
算法详细步骤
1. 初始化 :根据训练集确定网络结构(层数、每层节点数);初始化网络权重为随机小数(通常 [ − 0.5 , 0.5 ] [-0.5, 0.5] [−0.5,0.5] 或更小);初始化总误差 E t o t a l = 0 E_{total} = 0 Etotal=0,设定误差阈值 E m a x E_{max} Emax;设定最大迭代次数。
2. 迭代训练
对每个训练样本:
a. 前向传播 :从输入层开始,逐层计算每层网络的输出,直到输出层,得到网络输出 O O O。
b. 计算误差 :计算输出层误差: E = 1 2 ( d − O ) 2 E = \frac{1}{2}(d - O)^2 E=21(d−O)2(其中 d d d 是期望输出, O O O 是网络输出);累加总误差: E t o t a l = E t o t a l + E E_{total} = E_{total} + E Etotal=Etotal+E。
c. 反向传播 :计算输出层的局部梯度 δ k \delta_k δk;从输出层向输入层,逐层计算每层的局部梯度 δ j \delta_j δj。
d. 权值修正 :根据局部梯度,计算权值的更新量 Δ w \Delta w Δw;更新权重: w ← w + η Δ w w \leftarrow w + \eta \Delta w w←w+ηΔw(其中 η \eta η 是学习率)。
3. 检查终止条件 :如果 E t o t a l < E m a x E_{total} < E_{max} Etotal<Emax 或达到最大迭代次数 → 停止;否则,重置 E t o t a l = 0 E_{total} = 0 Etotal=0,继续下一轮迭代。
算法流程图
关键概念
1. 局部梯度
局部梯度 δ \delta δ 表示:该节点的误差对输入的敏感度。
- 输出层: δ k = ( d k − O k ) ⋅ f ′ ( n e t k ) \delta_k = (d_k - O_k) \cdot f'(net_k) δk=(dk−Ok)⋅f′(netk)
- 隐含层: δ j = ∑ k w j k δ k ⋅ g ′ ( n e t j ) \delta_j = \sum_k w_{jk} \delta_k \cdot g'(net_j) δj=∑kwjkδk⋅g′(netj)
其中 f ′ f' f′ 和 g ′ g' g′ 是激活函数的导数。
2. 权值更新规则
Δ w i j = η ⋅ δ j ⋅ O i \Delta w_{ij} = \eta \cdot \delta_j \cdot O_i Δwij=η⋅δj⋅Oi
其中: η \eta η 是学习率; δ j \delta_j δj 是下一层节点的局部梯度; O i O_i Oi 是当前层节点的输出。
3. 链式法则
反向传播的核心是链式法则:误差对权重的梯度 = 误差对输出的梯度 × 输出对输入的梯度 × 输入对权重的梯度。通过链式法则,可以从输出层逐层向前计算梯度。
算法的优缺点
优点:✅ 理论基础扎实(基于梯度下降);✅ 可以训练多层网络;✅ 应用广泛,效果良好。
缺点 :❌ 只能找到局部最小值,不保证全局最优;❌ 训练时间长(需要多次迭代);❌ 对初始权重敏感(不同初始值可能得到不同结果);❌ 可能陷入局部最优或"平台"(梯度接近0但未收敛)。
改进方法:使用动量项加速收敛;使用自适应学习率;使用不同的初始化策略;使用正则化防止过拟合。
5. 神经网络特点
关键词:鲁棒性、并行性、局部最小值、网络结构选择、可解释性
神经网络的优点
1. 鲁棒性强 :算法鲁棒,对噪声数据不敏感;具有对未经训练的数据进行分析的能力(泛化能力);即使输入有小的扰动,输出也相对稳定。
2. 处理能力强 :可以处理无关属性 (自动学习哪些特征重要);可以处理多种数据形式:离散、连续、向量等;不需要复杂的特征工程。
3. 并行性好:算法固有并行性;适用于并行计算(GPU加速);可以加快训练和预测过程。
4. 表达能力强大:可以逼近任意连续函数;可以学习复杂的非线性关系;多层网络可以学习层次化特征。
神经网络的缺点
1. 训练时间长:需要多次迭代;特别是深层网络,训练时间很长;需要大量计算资源。
2. 参数选择困难 :需要依靠经验选择网络拓扑结构(层数、每层节点数);需要选择学习率、激活函数等超参数;不同问题需要不同的网络结构。
3. 缺乏可解释性 :网络模型是"黑盒";隐含层和权值中包含的信息难以理解;不知道网络为什么做出某个预测;这在医疗、金融等需要解释的场景中是问题。
4. 局部最小值问题 :标准BP算法只能找到局部最小值;网络训练容易陷入局部最优;不保证找到全局最优解。
5. 饱和区问题 :Sigmoid型激活函数都有饱和区 ;当输入很大或很小时,梯度接近0;网络训练容易产生麻痹现象(权重几乎不更新)。
改进方法:使用ReLU等激活函数避免饱和;使用批量归一化;使用残差连接。
神经网络的扩展
1. 极限学习机(ELM)
特点 :神经网络权值直接确定法;不需要迭代训练;训练速度非常快。
原理:随机初始化输入层到隐含层的权重(固定不变);只训练隐含层到输出层的权重(线性问题,直接求解)。
2. 深度学习(Deep Learning)
核心思想 :通过组合低层特征 形成更加抽象的高层表示 ;发现数据的分布式特征表示。
层次化学习:第1层学习边缘、线条等低级特征;第2层学习形状、纹理等中级特征;第3层及以上学习物体、场景等高级特征。
监督学习模型:**卷积神经网络(CNNs)**主要用于图像处理,使用卷积层提取局部特征,使用池化层降低维度。
无监督学习模型:**深度置信网(DBNs)**主要用于特征学习,使用受限玻尔兹曼机(RBM)逐层预训练,然后使用监督学习微调。
深度学习的优势:自动学习特征(不需要手工设计);在图像、语音、自然语言处理等领域表现优异;可以处理大规模数据。
深度学习的挑战:需要大量数据和计算资源;训练时间长;仍然缺乏可解释性。