万字长文(下)|带你一键入门西电软工课程《机器学习与数据挖掘》|神经网络|SVM|关联分析|聚类方法
希望看完这篇文章你能掌握《机器学习与数据挖掘》这门课的大部分内容!
本文数学表示: x \mathbf{x} x表示向量, x x x表示标量, A \mathbf{A} A表示矩阵。
图源:西电软工云计算方向2025年《机器学习与数据挖掘》PPT
上一篇:万字长文(上)|带你一键入门西电软工课程《机器学习与数据挖掘》|绪论|数学基础|特征工程|线性模型|决策树
🦌:本文根据笔者自己容易理解的顺序所写,包含了PPT上所有内容,内容较多,按需自取,另外本文有很多笔者个人想法和总结,如有错误请指出。
文章目录
六、神经网络
重点:全连接多层神经网络,卷积神经网络,特征图大小的计算,复杂度计算。
神经网络:由具有适应性的简单单元组成的广泛并行互联的网络,它的组织能够模拟生物神经系统对真实世界物体所做出的反应。

神经元激活函数:
- 阶跃函数:理想化。 sgn ( x ) = { 1 if x ≥ 0 0 if x < 0 \text{sgn}(x)=\begin{cases} 1 & \text{if } x\geq 0 \\0 & \text{if } x<0\end{cases} sgn(x)={10if x≥0if x<0
- 对数几率函数:用于二分类,作为输出层激活函数。 sigmoid ( x ) = 1 1 + e − x \text{sigmoid}(x)=\frac{1}{1+e^{-x}} sigmoid(x)=1+e−x1
- Softmax函数:用于多分类,作为输出层激活函数。 softmax ( x ) = e z i l ∑ i = 1 n e z i l \text{softmax}(x)=\frac{e^{z_i^l}}{\sum_{i=1}^ne^{z_i^l}} softmax(x)=∑i=1nezilezil
- 双曲正切函数Tanh: tanh ( x ) = sinh ( x ) cosh ( x ) = e x − e − x e x + e − x \text{tanh}(x)=\frac{\text{sinh}(x)}{\text{cosh}(x)}=\frac{e^x-e^{-x}}{e^x+e^{-x}} tanh(x)=cosh(x)sinh(x)=ex+e−xex−e−x
- ReLU函数:单侧抑制,常用于隐含层激活函数和CNN卷积核的激活函数。 ReLU ( x ) = max ( x , 0 ) = { x if x > 0 0 if x ≤ 0 \text{ReLU}(x)=\max(x,0)=\begin{cases} x & \text{if } x> 0 \\0 & \text{if } x\leq0\end{cases} ReLU(x)=max(x,0)={x0if x>0if x≤0

为什么使用非线性激活函数:如果激活函数是线性的,最终会导致 a L = W a 0 \mathbf{a}^L=\mathbf{W}\mathbf{a}^0 aL=Wa0,意味着深度神经网络(DNN)退化成一个线性模型,失去绝大部分学习能力。
1.全连接多层神经网络
全连接多层神经网络(Fully Connected Network, FCN):
-
多层:包含隐含层的神经网络(层数 ≥ 2 \geq 2 ≥2)
-
定义:每层神经元与下一层完全互联(两层间任意两个神经元之间都有连接),不存在同层连接和跨层连接。
-
前馈:输入层接受输入,隐含层与输出层进行加工,输出层输出。
-
学习:根据训练数据调整层间神经元之间的权重(连接权)和每个功能神经元的阈值(threshold)。

参数:

记号定义:

| 记号 | 含义 |
|---|---|
| a i l a_i^l ail | 第 l l l层第 i i i个神经元的激活值 |
| a l \mathbf{a}^l al | 第 l l l层的神经元激活向量 |
| z i l z_i^l zil | 第 l l l层第 i i i个神经元的激活函数的带权输入 |
| z l \mathbf{z}^l zl | 第 l l l层的激活函数的带权输入 |
| w i j l w_{ij}^l wijl | 第 l − 1 l-1 l−1层第 j j j个神经元到第 l l l层第 i i i个神经元的权重 |
| W l \mathbf{W}^l Wl | 连接从第 l − 1 l-1 l−1层到第 l l l层的权重矩阵 |
| b i l b_i^l bil | 第 l l l层第 i i i个神经元的偏置(bias) |
| b l \mathbf{b}^l bl | 第 l l l层的偏置向量 |
- 层间关系:
z l = W l a l − 1 + b l \mathbf{z}^l=\mathbf{W}^l\mathbf{a}^{l-1}+\mathbf{b}^l zl=Wlal−1+bl
- 同层关系:
a l = σ ( z l ) \mathbf{a}^l=\sigma(\mathbf{z}^l) al=σ(zl)
- 层输出关系:
a l = σ ( z l ) = σ ( W l a l − 1 + b l ) \mathbf{a}^l=\sigma(\mathbf{z}^l)=\sigma(\mathbf{W}^l\mathbf{a}^{l-1}+\mathbf{b}^l) al=σ(zl)=σ(Wlal−1+bl)
损失函数(Loss function):计算单个样本的预测值与真实值之间的差异
欧几里得距离:即L2范数, loss = ( y − y ^ ) 2 \text{loss}=\sqrt{(\mathbf{y}-\hat{\mathbf{y}})^2} loss=(y−y^)2
交叉熵(cross-entropy):用于分类任务。 loss = − y i log p i − ( 1 − y i ) log ( 1 − p i ) \text{loss}=-y_i\log{p_i}-(1-y_i)\log{(1-p_i)} loss=−yilogpi−(1−yi)log(1−pi)
总代价函数(total cost function):整个数据集上所有样本损失。 C ( θ ) = ∑ r = 1 R L r ( θ ) C(\mathbf{θ})=\sum_{r=1}^RL^r(\mathbf{θ}) C(θ)=∑r=1RLr(θ)
均方误差MSE: C ( θ ) = 1 2 m ∥ y − y ^ ∥ 2 = 1 2 m ( y − y ^ ) 2 C(\mathbf{θ})=\frac{1}{2m}\|\mathbf{y}-\hat{\mathbf{y}}\|^2=\frac{1}{2m}(\mathbf{y}-\hat{\mathbf{y}})^2 C(θ)=2m1∥y−y^∥2=2m1(y−y^)2
交叉熵(cross-entropy): C ( θ ) = 1 m ∑ − y i log p i − ( 1 − y i ) log ( 1 − p i ) C(\mathbf{θ})=\frac{1}{m}\sum-y_i\log{p_i}-(1-y_i)\log{(1-p_i)} C(θ)=m1∑−yilogpi−(1−yi)log(1−pi)
目标:求使总代价函数最小的参数 θ \mathbf{θ} θ。
1.1梯度降方法
梯度降方法(Gradient Descent):每次朝着与当前梯度相反的方向搜索解,不停地更新参数。
θ ← θ − η ∂ C ( θ ) ∂ θ ( w i j l ) k + 1 = ( w i j l ) k − η ∂ C ( ( w i j l ) k ) ∂ ( w i j l ) k , ( b i l ) k + 1 = ( b i l ) k − η ∂ C ( ( b i l ) k ) ∂ ( b i l ) k \mathbf{θ}\leftarrow \mathbf{θ}-η\frac{\partial C{(\mathbf{θ})}}{\partial \mathbf{θ}}\\ (w_{ij}^l)^{k+1}=(w_{ij}^l)^{k}-\eta\frac{\partial C{\left((w_{ij}^l)^{k}\right)}}{\partial (w_{ij}^l)^{k}},(b_i^l)^{k+1}=(b_i^l)^{k}-\eta\frac{\partial C{\left((b_i^l)^{k}\right)}}{\partial (b_i^l)^{k}} θ←θ−η∂θ∂C(θ)(wijl)k+1=(wijl)k−η∂(wijl)k∂C((wijl)k),(bil)k+1=(bil)k−η∂(bil)k∂C((bil)k)
不能保证获得全局最小解。

1.2反向传播算法
反向传播算法(Backpropagation,BP):允许来自代价函数的信息通过网络反向流动,以便计算梯度。
目标:计算梯度。
( w i j l ) k + 1 = ( w i j l ) k − η ∂ C ( ( w i j l ) k ) ∂ ( w i j l ) k , ( b i l ) k + 1 = ( b i l ) k − η ∂ C ( ( b i l ) k ) ∂ ( b i l ) k (w_{ij}^l)^{k+1}=(w_{ij}^l)^{k}-\eta\frac{\partial C{\left((w_{ij}^l)^{k}\right)}}{\partial (w_{ij}^l)^{k}},(b_i^l)^{k+1}=(b_i^l)^{k}-\eta\frac{\partial C{\left((b_i^l)^{k}\right)}}{\partial (b_i^l)^{k}} (wijl)k+1=(wijl)k−η∂(wijl)k∂C((wijl)k),(bil)k+1=(bil)k−η∂(bil)k∂C((bil)k)
链式法则(chain rule): Δ z = ∂ z ∂ y Δ y = ∂ z ∂ y ∂ y ∂ x Δ x \Delta z=\frac{\partial z}{\partial y}\Delta y=\frac{\partial z}{\partial y}\frac{\partial y}{\partial x}\Delta x Δz=∂y∂zΔy=∂y∂z∂x∂yΔx

误差:第 l l l层第 i i i个神经元上的误差 δ i l \delta_i^l δil
δ i l = ∂ C ∂ z i l z i l = ∑ k w i k l a k l − 1 + b i l \delta_i^l=\frac{\partial C}{\partial z_i^l}\\ z_i^l=\sum_kw_{ik}^la_k^{l-1}+b_i^l δil=∂zil∂Czil=k∑wiklakl−1+bil
求误差步骤:
1.计算输出层(最后一层)误差 δ L \delta^L δL。
δ i L = ∂ C ∂ z i L = ∂ C ∂ a i L ∂ a i L ∂ z i L = ∂ C ∂ a i L σ ′ ( z i L ) a i L = σ ( z i L ) \delta_i^L=\frac{\partial C}{\partial z_i^L}=\frac{\partial C}{\partial a_i^L}\frac{\partial a_i^L}{\partial z_i^L}=\frac{\partial C}{\partial a_i^L}\sigma'(z_i^L) \\a_i^L=\sigma(z_i^L) δiL=∂ziL∂C=∂aiL∂C∂ziL∂aiL=∂aiL∂Cσ′(ziL)aiL=σ(ziL)
- 其中 a i L a_i^L aiL是实际输出值, ∂ C ∂ a i L \frac{\partial C}{\partial a_i^L} ∂aiL∂C与损失函数相关。
记为:
δ L = ∇ C ( a L ) ⊙ σ ′ ( z L ) \delta^L=\nabla C(\mathbf{a}^L)\odot\sigma'(\mathbf{z}^L) δL=∇C(aL)⊙σ′(zL)
⊙ \odot ⊙表示逐元素相乘。
2.由 δ l + 1 \delta^{l+1} δl+1计算 δ l \delta^l δl
δ i l = ∂ C ∂ z i l = ∑ k ( ∂ C ∂ z k l + 1 ∂ z k l + 1 ∂ a i l ∂ a i l ∂ z i l ) = ∂ a i l ∂ z i l ∑ k ( ∂ z k l + 1 ∂ a i l δ k l + 1 ) = σ ′ ( z i l ) ∑ k w k i l + 1 δ k l + 1 \delta_i^l=\frac{\partial C}{\partial z_i^l}=\sum_k\left(\frac{\partial C}{\partial z_k^{l+1}}\frac{\partial z_k^{l+1}}{\partial a_i^l}\frac{\partial a_i^l}{\partial z_i^l}\right)=\frac{\partial a_i^l}{\partial z_i^l}\sum_k\left(\frac{\partial z_k^{l+1}}{\partial a_i^l}\delta_k^{l+1}\right)=\sigma'(z_i^l)\sum_kw_{ki}^{l+1}\delta_k^{l+1} δil=∂zil∂C=k∑(∂zkl+1∂C∂ail∂zkl+1∂zil∂ail)=∂zil∂ailk∑(∂ail∂zkl+1δkl+1)=σ′(zil)k∑wkil+1δkl+1
记为:
δ l = σ ′ ( z l ) ⊙ ( W l + 1 ) T δ l + 1 \delta^l=\sigma'(\mathbf{z}^l)\odot(\mathbf{W^{l+1}})^T\delta^{l+1} δl=σ′(zl)⊙(Wl+1)Tδl+1
计算梯度:
∂ C ∂ w i j l = ∂ C ∂ z i l ∂ z i l ∂ w i j l = δ i l ∂ z i l ∂ w i j l = { δ i l a j l − 1 l > 1 δ i l x j l = 1 ∂ z i l ∂ w i j l = { a j l − 1 l > 1 x j l = 1 \frac{\partial C}{\partial w_{ij}^l}=\frac{\partial C}{\partial z_i^l}\frac{\partial z_i^l}{\partial w_{ij}^l}=\delta_i^l\frac{\partial z_i^l}{\partial w_{ij}^l}=\begin{cases} \delta_i^la_j^{l-1}&l>1\\\delta_i^lx_j&l=1 \end{cases} \\\frac{\partial z_i^l}{\partial w_{ij}^l}=\begin{cases} a_j^{l-1}&l>1\\x_j&l=1 \end{cases} ∂wijl∂C=∂zil∂C∂wijl∂zil=δil∂wijl∂zil={δilajl−1δilxjl>1l=1∂wijl∂zil={ajl−1xjl>1l=1
∂ C ∂ b i l = ∂ C ∂ z i l ∂ z i l ∂ b i l = δ i l \frac{\partial C}{\partial b_i^l}=\frac{\partial C}{\partial z_i^l}\frac{\partial z_i^l}{\partial b_i^l}=\delta_i^l ∂bil∂C=∂zil∂C∂bil∂zil=δil
- 梯度的计算基于正向传播和反向传播两个预先计算的项。
- 正向传播: ∂ z i l ∂ w i j l = { a j l − 1 l > 1 x j l = 1 \frac{\partial z_i^l}{\partial w_{ij}^l}=\begin{cases} a_j^{l-1}&l>1\\x_j&l=1 \end{cases} ∂wijl∂zil={ajl−1xjl>1l=1
- 反向传播: δ i l \delta_i^l δil
总结一下BP算法:
- 输入样本 x \mathbf{x} x:为输入层设置对应的激活值 a 1 \mathbf{a}^1 a1。
- 正向传播:对每一层 l = 1 , 2 , . . . , L l=1,2,...,L l=1,2,...,L计算相应的 z l = W l a l − 1 + b l \mathbf{z}^l=\mathbf{W}^l\mathbf{a}^{l-1}+\mathbf{b}^l zl=Wlal−1+bl和 a l = σ ( z l ) \mathbf{a}^l=\sigma(\mathbf{z}^l) al=σ(zl)。
- 输出层误差 δ L \delta ^L δL: δ L = ∇ a C ( a L ) ⊙ σ ′ ( z L ) \delta^L=\nabla_a C(\mathbf{a}^L)\odot\sigma'(\mathbf{z}^L) δL=∇aC(aL)⊙σ′(zL)。
- 反向误差传播:对每一层 l = L − 1 , L − 2 , . . . , 2 l=L-1,L-2,...,2 l=L−1,L−2,...,2,计算 δ l = σ ′ ( z l ) ⊙ ( W l + 1 ) T δ l + 1 \delta^l=\sigma'(\mathbf{z}^l)\odot(\mathbf{W^{l+1}})^T\delta^{l+1} δl=σ′(zl)⊙(Wl+1)Tδl+1
- 输出:计算梯度 ∂ C ∂ w i j l = δ i l a j l − 1 \frac{\partial C}{\partial w_{ij}^l}=\delta_i^la_j^{l-1} ∂wijl∂C=δilajl−1和 ∂ C ∂ b i l = δ i l \frac{\partial C}{\partial b_i^l}=\delta_i^l ∂bil∂C=δil
1.3优化求解权重和偏置
🦌:不是重点,了解一下。
1.3.1批量(batch)梯度降

1.3.2随机梯度降(SGD)

1.3.3小批量(Mini-batch)梯度降优化

1.4其他小知识
1.4.1实际训练中概念
- Batch size(批量大小):1次迭代使用的样本量。
- Iteration(迭代):使用1个batch size样本训练网络参数1次。
- Epoch(期、轮):遍历了1遍训练集中所有样本。
总迭代( i t e r a t i o n )次数 = 训练集大小 b a t c h s i z e 总迭代(iteration)次数=\frac{训练集大小}{batch size}\\ 总迭代(iteration)次数=batchsize训练集大小
1.4.2偏置在神经网络中的作用
偏置(bias): b \mathbf{b} b,将激活函数向左或向右移动:负右正左。

2.卷积神经网络
卷积神经网络(Convolutional Neural Network,CNN):可用于图像分类(图像识别)。
演化历史:

完整CNN:

全连接层(fully connected,FC):“分类器”作用,将学到的“分布式特征表示”映射到样本标记空间,即将卷积层和池化层提取的空间特征转换为类别概率分布(这里都是分类任务)。
需先将输入特征图展平为1D向量(如7×7×512 → 25088维),参数量占比高。
2.1卷积操作
卷积操作用于提取特征,得到特征图(feature map)。
滤波(filiter):滤波也称卷积核、特征检测器。

注意这里是逐元素相乘后相加得到一个值,不是矩阵乘法。
- 逐元素相乘: A ⊙ B \mathbf{A}\odot \mathbf{B} A⊙B。
- 矩阵乘法: A B \mathbf{A}\mathbf{B} AB或 A × B \mathbf{A}\times \mathbf{B} A×B。
卷积滑动步幅(stride,步长,幅度):控制特征图(feature map)尺寸的方式之一。
加边(Padding,填充):在图像周围补充0的预定值(零填充,Zero padding)。与步幅一起控制特征图大小。
通道一致性:每一个卷积核(滤波)的通道数必须和输入图像的通道数相同。
- 输出特征图的通道数等于卷积核个数。

卷积操作后特征图(Feature map)大小:
( ⌊ H i n − k + 2 P S ⌋ + 1 ) H out × ( ⌊ W i n − k + 2 P S ⌋ + 1 ) W out × K \underset{H_{\text{out}}}{\left(\left\lfloor \frac{H_{in}-k+2P}{S} \right\rfloor + 1\right)}\times \underset{W_{\text{out}}}{\left(\left\lfloor \frac{W_{in}-k+2P}{S} \right\rfloor + 1\right)}\times K Hout(⌊SHin−k+2P⌋+1)×Wout(⌊SWin−k+2P⌋+1)×K
- 输入图像大小: H i n × W i n × n c H_{in}\times W_{in}\times n_c Hin×Win×nc
- K K K个卷积核大小: k × k × n c k\times k\times n_c k×k×nc
- 加边: P P P 步幅: S S S
1 × 1 1\times 1 1×1卷积的作用:
- 减小(增加)通道数:一般用 1 × 1 1\times 1 1×1卷积都不会改变图像大小,只是用卷积核个数控制通道数。
- 增加非线性:每个卷积核有自己的非线性激活函数,多个卷积核增加非线性增强学习且没有显著增加参数。

🦌:个人感觉 1 × 1 1\times 1 1×1与其他大小的卷积核最大差别就是一般用 1 × 1 1\times 1 1×1卷积核不改变图像大小改变通道数进行降维,其他大小卷积核(一般用 3 × 3 3\times 3 3×3多)用于特征提取。
| 特性 | 1×1 卷积核 | 其他尺寸卷积核(如 3×3) |
|---|---|---|
| 空间感知能力 | 无(仅作用于通道维度) | 有(捕捉局部空间特征) |
| 参数量 | 极低(仅需 c i n × c o u t c_{in} \times c_{out} cin×cout 参数) | 较高(如 3×3 核需 9 × c i n × c o u t 9 \times c_{in} \times c_{out} 9×cin×cout) |
| 主要用途 | 通道混合、降维/升维、非线性增强 | 提取空间特征(边缘、纹理等) |
| 计算复杂度 | 低 | 高(与核尺寸平方成正比) |
2.2最大池化
最大池化(Max Pooling):选取输入特征图的某个区域内所有神经元的最大值或平均值作为该区域的概括。(区域可重叠)

🦌:和卷积操作很像,都需要卷积核(滤波)与输入图像进行操作,知识卷积操作是逐元素相乘后相加,最大池化是取最大值或平均值,上图是取最大值。
后文的各类CNN模型里,最大池化一般用于减半特征图大小。
池化操作后特征图大小:
( ⌈ H i n − k + 2 P S ⌉ + 1 ) H out × ( ⌈ W i n − k + 2 P S ⌉ + 1 ) W out × K \underset{H_{\text{out}}}{\left(\left\lceil \frac{H_{in}-k+2P}{S} \right\rceil + 1\right)}\times \underset{W_{\text{out}}}{\left(\left\lceil \frac{W_{in}-k+2P}{S} \right\rceil + 1\right)}\times K Hout(⌈SHin−k+2P⌉+1)×Wout(⌈SWin−k+2P⌉+1)×K
卷积操作:为什么向下取整(Floor)?
- 边界处理原则:卷积核必须完全覆盖输入区域*才会计算输出。如果剩余窗口不足一个步长,则舍弃边缘部分。*
- 信息完整性:向下取整确保所有输出位置的计算都基于完整的输入窗口,避免引入无效填充数据。
池化操作:为什么向上取整(Ceil)?
- 保留边缘信息:池化的目的是降维但尽可能保留显著特征(如纹理、边缘)。即使剩余窗口不足池化核大小,仍对其进行池化。
- 池化常用于压缩特征图,向上取整能减少信息损失。
池化层(Pooling)的作用:本质是采样,对输入的特征图选择某种方式进行压缩。
- 保留主要特征的同时减少参数和计算量。
- 防止过拟合。(这一层没有参数,不需要学习。)
- 特征不变性:平移(translation)不变性、旋转(rotation)不变性、尺度(scale)不变性。有一定抗扰动作用。
2.3CNN与FCN
关于图像识别:CNN为什么比FCN更有效?
- 全连接神经网络(FCN):输入图像需要参数量太多。
- 卷积神经网络(CNN):
- 稀疏连接:下一层神经元只关注上一层的局部感受野 ⟺ \iff ⟺神经元识别一些关键的模式,比一整个图像小得多。
- 参数共享:不同区域的相同模式可用相同的滤波,共享相同的参数(权重和偏置)。
- 下采样使图像更小,但不改变目标,使处理网络的网络参数较少。
模式:从数据中提取的具有区分性和重复性的抽象特征。
感受野(Receptive Field):网络中某一层特征图上的一个像素点(或神经元)所能“看到”的输入图像的区域大小。描述了输入空间中影响该神经元响应的范围。
下采样:主要用于压缩特征图尺寸、减少计算量,同时保留重要信息。常见方法:池化(Pooling)、跨步卷积(Strided Convolution)。
关于参数:都是权重 W \mathbf{W} W与偏置 b \mathbf{b} b
- 全连接神经网络(FCN):存在于层与层之间, z l = W l a l − 1 + b l \mathbf{z}^l=\mathbf{W}^l\mathbf{a}^{l-1}+\mathbf{b}^l zl=Wlal−1+bl,有 N l − 1 × N l N_{l-1}\times N_l Nl−1×Nl个权重参数和 N l N_l Nl个偏置参数。
- 卷积神经网络(CNN):存在于每个卷积核中,一个卷积核有 k × k × n c k\times k\times n_c k×k×nc个权重参数和 1 1 1个偏置参数。
2.4时间复杂度
浮点运算次数(FLOPs,Floating Point Operations):一次乘法或一次加法算一次(或者一次乘法加上一次加法算一次’Multi-Add’)。
- 单个卷积层的浮点运算次数:
FLOPs = [ ( k × k × n c ) + ( k × k × n c − 1 ) + 1 ] × H o u t × W o u t × K = 2 × k × k × n c × H o u t × W o u t × K \text{FLOPs}=[(k\times k\times n_c)+(k\times k\times n_c-1)+1]\times H_{out}\times W_{out}\times K=2\times k\times k\times n_c\times H_{out}\times W_{out}\times K FLOPs=[(k×k×nc)+(k×k×nc−1)+1]×Hout×Wout×K=2×k×k×nc×Hout×Wout×K

- 全连接层的浮点计算量:
FLOPs = [ N i n + ( N i n − 1 ) + 1 ] × N o u t = 2 × N i n × N o u t \text{FLOPs}=[N_{in}+(N_{in}-1)+1]\times N_{out}=2\times N_{in}\times N_{out} FLOPs=[Nin+(Nin−1)+1]×Nout=2×Nin×Nout
每个输出神经元对应 N i n N_{in} Nin次权重乘法, N i n − 1 N_{in}-1 Nin−1次权重加法,1次加上偏置。
2.5分类网络模型
要会算参数量。
2.5.1LeNet-5
网络架构:3个卷积层(包括1次卷积+1个激活函数+1次最大池化),2个全连接层(包括1个输出层,输出层激活函数为softmax)

- 网络权重参数量:(5*5*1)*6+(5*5*6)*16+(5*5*16)*120+120*84+84*10
- 网络全部参数量:(5*5*1)*6+6+(5*5*6)*16+16+(5*5*16)*120+120+120*84+84+84*10+10
🦌:参数量只需要计算卷积核和全连接层的参数,因为池化操作没有参数。参数计算可看“CNN与FCN”中的”关于参数“部分
2.5.2AlexNet
网络架构:5个卷积层+3个全连接层

优点:
- 比LeNet更深。
- 加入了Dropout层防止过拟合。
- 使用裁剪翻转等操作做数据增强,增强了模型的泛化能力。
- 分块训练,把图像分为两块分别训练后在全连接层合并。
Dropout层:在训练时以0.5的概率使某些神经元的输出为0,丢掉一半结点的输出,BP(反向传播)中也不更新这些结点。
2.5.3ZFNet
思想:使用可视化技术窥视中间特征层的功能,通过反卷积完成。
对比AlexNet:AlexNet第一层有大量高频(边缘)和低频(非边缘)信息的混合,几乎没有覆盖到中间的频率信息。
- ZFNet:第一层卷积核大小(Kernal size)由 11 × 11 11\times 11 11×11改为 7 × 7 7\times 7 7×7,移动步长由4改为2。
2.5.4VGGNet
网络架构:由块结构构成,每个小块内部有多个卷积操作。

多个 3 × 3 3\times 3 3×3卷积层堆叠的优势:感受野更大,参数量更少,更多非线性变换。
- 2个 3 × 3 3\times 3 3×3卷积层 ⟺ \iff ⟺ 1个5 × \times × 5卷积层。
- 3个 3 × 3 3\times 3 3×3卷积层 ⟺ \iff ⟺ 1个7 × \times × 7卷积层。
2.5.5GoogLeNet
Inception Module:使网络深度更深但训练时依然可以很好的收敛。
- 核心思想:将不同的卷积层通过并联的方式结合在一起,经过不同卷积层处理的结果矩阵在深度这个维度拼接起来,形成一个更深的矩阵。

上图对比原始版本增加了黄色的1$\times$1卷积块先进行通道数降维。
瓶颈层:减少计算量。

2.5.6RexNet
残差网络:使网络更容易学习和收敛。

跳转连接(Shortcut,skip connection):跳过一层或多层的连接。在这里都仅执行恒等映射(不增加参数和计算复杂度)。
- 残差块输入与输出维数相同: H ( x ) = F ( x ) + x H(x)=F(x)+x H(x)=F(x)+x
- 残差块输入与输出维数不同:
- 空间( H , W H,W H,W)不一致:给跳转连接的 x x x增加一个线性映射 H ( x ) = F ( x ) + W s x H(x)=F(x)+W_sx H(x)=F(x)+Wsx
- 深度( n c n_c nc)不一致:用 1 × 1 1\times 1 1×1卷积层进行升维,或者补零。
2.6迁移学习
迁移学习(Transfer learning):将现有训练好的机器学习模型应用于新的训练中。
- 对整个网络进行微调(fine-tuning)。
- 将网络的原始部分用作特征提取器,仅训练新增的层,不改之前的权重。
七、支持向量机
重点:SVM的思想,原始问题的最优化问题数学表达式
支持向量机(SVM):使边界点(支持向量)距离分类超平面的间隔最大。
对比LDA和SVM:线性判别分析与支持向量机的对比-CSDN博客
LDA和SVM的主要区别是什么?
LDA是一种假设测试方法,它假设数据是来自不同的高斯分布,并通过最大化类别间的线性相关度来优化。
SVM是一种强大的分类和回归方法,它通过寻找最优的分割面(或超平面)来将数据点分为不同的类别。
LDA和SVM的优缺点有哪些?
- LDA的优点是它的训练时间较短,对于高维数据集表现较好。LDA的缺点是它对于非线性问题的表现不佳,对于噪声和异常数据的敏感性较高。
- SVM的优点是它可以处理线性和非线性问题,对于高维数据集表现较好。SVM的缺点是它的训练时间较长,对于噪声和异常数据的敏感性较高。

概念:
- 超平面: n n n维空间中的超平面 w T x + b = 0 \mathbf{w}^T\mathbf{x}+b=0 wTx+b=0, f ( x ) = w T x + b f(\mathbf{x})=\mathbf{w}^T\mathbf{x}+b f(x)=wTx+b。
- 间隔(margin):分类超平面到最接近它的训练样本(支持向量)之间的距离 γ = min i γ i = min i y i ( w T x + b ) ∥ w ∥ \gamma=\underset{i}\min\gamma_i=\underset{i}\min\frac{y_i(\mathbf{w}^T\mathbf{x}+b)}{\|\mathbf{w}\|} γ=iminγi=imin∥w∥yi(wTx+b) 。
- 决策函数: f ( x ) = sgn ( g ( x ) ) = { 1 , g ( x ) ≥ 0 − 1 , g ( x ) < 0 f(\mathbf{x})=\text{sgn}\left(g(\mathbf{x})\right)=\begin{cases} 1,&g(\mathbf{x})\geq 0\\-1,&g(\mathbf{x})< 0\end{cases} f(x)=sgn(g(x))={1,−1,g(x)≥0g(x)<0
目标:
max w , b γ s.t. y i ( w T x + b ) ∥ w ∥ ≥ γ \underset{\mathbf{w},b}\max\gamma \quad \text{s.t.} \quad \frac{y_i(\mathbf{w}^T\mathbf{x}+b)}{\|\mathbf{w}\|}\geq \gamma w,bmaxγs.t.∥w∥yi(wTx+b)≥γ
令 ∥ w ∥ ⋅ γ = 1 \|\mathbf{w}\|·\gamma=1 ∥w∥⋅γ=1,则上式等价于:
max w , b 1 ∥ w ∥ s.t. y i ( w T x + b ) ≥ 1 ⟺ min w , b ∥ w ∥ 2 s.t. y i ( w T x + b ) ≥ 1 \underset{\mathbf{w},b}\max\frac{1}{\|\mathbf{w}\|} \quad \text{s.t.} \quad y_i(\mathbf{w}^T\mathbf{x}+b)\geq 1 \iff \underset{\mathbf{w},b}\min\|\mathbf{w}\|_2 \quad \text{s.t.} \quad y_i(\mathbf{w}^T\mathbf{x}+b)\geq 1 w,bmax∥w∥1s.t.yi(wTx+b)≥1⟺w,bmin∥w∥2s.t.yi(wTx+b)≥1
超平面具有缩放不变性,即 w \mathbf{w} w和 b b b同比例缩放所得还是同一个平面。可以找到一个缩放值 k k k把 w \mathbf{w} w和 b b b缩放到满足 ∥ w ∥ ⋅ γ = 1 \|\mathbf{w}\|·\gamma=1 ∥w∥⋅γ=1。
支撑向量:满足 y i ( w T x + b ) = 1 y_i(\mathbf{w}^T\mathbf{x}+b)= 1 yi(wTx+b)=1
支撑向量机的原始形式(primal form SVM):
min w , b ∥ w ∥ 2 s.t. y i ( w T x + b ) ≥ 1 ⟺ min w , b ∥ w ∥ 2 2 s.t. y i ( w T x + b ) ≥ 1 \underset{\mathbf{w},b}\min\|\mathbf{w}\|_2 \quad \text{s.t.} \quad y_i(\mathbf{w}^T\mathbf{x}+b)\geq 1\iff\underset{\mathbf{w},b}\min\|\mathbf{w}\|_2^2 \quad \text{s.t.} \quad y_i(\mathbf{w}^T\mathbf{x}+b)\geq 1 w,bmin∥w∥2s.t.yi(wTx+b)≥1⟺w,bmin∥w∥22s.t.yi(wTx+b)≥1
- 求解上式是一个凸二次规划问题(convex quadratic programming),可用二次规划优化软件计算包(CVX)求解。
凸二次规划问题:目标函数是二次,约束条件是线性的。
1.对偶问题
对偶问题(dual problem):不直接求解有约束的最优化问题,而是通过寻求其对偶问题的解得到它的解。引入作为对偶变量的拉格朗日(lagrange)乘子。
朗格朗日函数:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α i ( y i ( w T x + b ) − 1 ) L(\mathbf{w},b,\mathbf{α})=\frac{1}{2}\|\mathbf{w}\|^2-\sum_{i=1}^m\mathbf{α}_i \left( y_i(\mathbf{w}^T\mathbf{x}+b)-1\right) L(w,b,α)=21∥w∥2−i=1∑mαi(yi(wTx+b)−1)
上式即为对偶问题,对偶问题中训练数据总以内积( x i x j \mathbf{x}_i\mathbf{x}_j xixj)形式出现。
KKT(Karush-Kuhn-Tucker)条件:拉格朗日函数在最优解处必须满足的条件。
{ α i ≥ 0 拉格朗日乘子非负 y i f ( x i ) − 1 ≥ 0 所有样本必须满足约束 α i ( y i f ( x i ) − 1 ) = 0 乘子与约束的乘积为零 \begin{cases} \alpha_i\geq0 & \text{拉格朗日乘子非负} \\y_if(\mathbf{x}_i)-1\geq0 &\text{所有样本必须满足约束} \\\alpha_i(y_if(\mathbf{x}_i)-1)=0 &\text{乘子与约束的乘积为零} \end{cases} ⎩
⎨
⎧αi≥0yif(xi)−1≥0αi(yif(xi)−1)=0拉格朗日乘子非负所有样本必须满足约束乘子与约束的乘积为零
可见对任意的训练样本 ( x i , y i ) (\mathbf{x}_i,y_i) (xi,yi),总有 α i = 0 \alpha_i=0 αi=0或者 y i f ( x i ) = 1 y_if(\mathbf{x}_i)=1 yif(xi)=1:
- α i = 0 \alpha_i=0 αi=0:该样本对分割超平面无影响。
- y i f ( x i ) = 1 y_if(\mathbf{x}_i)=1 yif(xi)=1:支持向量。
⇒ \Rightarrow ⇒最终分类超平面仅与支持向量有关。
为什么需要 α i ( y i f ( x i ) − 1 ) = 0 \alpha_i(y_if(\mathbf{x}_i)-1)=0 αi(yif(xi)−1)=0?
- 互补松弛性:只有支持向量会影响最终的超平面。非支持向量的样本对超平面无贡献,从而实现了解的稀疏性。
🦌:上面是AI给的答案,笔者不懂。
序贯最小化算法(Sequential Minimal Optimization,SMO):求解对偶问题。
max α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j s.t. ∑ i = 1 n α i y i = 0 , α i ≥ 0 , ∀ i \max_{\alpha} \sum_{i=1}^n \alpha_i - \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j \mathbf{x}_i^T \mathbf{x}_j\quad \text{s.t.} \quad\sum_{i=1}^n \alpha_i y_i = 0, \quad \alpha_i \geq 0, \quad \forall i αmaxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyjxiTxjs.t.i=1∑nαiyi=0,αi≥0,∀i
不断执行以下两个步骤直至收敛:
- 选一对需要更新的变量 α i , α j \alpha_i,\alpha_j αi,αj
- 固定其它参数,求解问题更新 α i , α j \alpha_i,\alpha_j αi,αj。
则对偶问题变为:约束条件变了
max α ∑ i = 1 n α i − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j x i T x j s.t. α i y i + α j y j = − ∑ k ≠ i , j α k y k , α i ≥ 0 , α j ≥ 0 \max_{\alpha} \sum_{i=1}^n \alpha_i - \frac{1}{2} \sum_{i=1}^n \sum_{j=1}^n \alpha_i \alpha_j y_i y_j \mathbf{x}_i^T \mathbf{x}_j\quad \text{s.t.} \quad\alpha_i y_i+\alpha_j y_j=-\sum_{k\neq i,j}\alpha_k y_k, \quad \alpha_i \geq 0, \quad \alpha_j \geq 0 αmaxi=1∑nαi−21i=1∑nj=1∑nαiαjyiyjxiTxjs.t.αiyi+αjyj=−k=i,j∑αkyk,αi≥0,αj≥0

求解 b b b:取支持向量计算出的所有 b b b的均值 b = 1 ∣ S ∣ ∑ i ∈ S ( 1 y i − w T x i ) b=\frac{1}{|S|}\sum_{i\in S}(\frac{1}{y_i}-\mathbf{w}^T\mathbf{x}_i) b=∣S∣1∑i∈S(yi1−wTxi)
转换成对偶问题的优点:
- 原始问题的不等式约束转为对偶问题的等式约束。
- 改变问题的复杂度,把SVM从依赖 d d d个维度( w \mathbf{w} w的维度)转变为依赖 m m m个数据点( m m m个样本)。
- 求解更高效,求解的 α \alpha α只与支持向量有关。
- 方便核函数的引入,进而推广到非线性分类问题。
2.核函数
线性模型中,可以把低维空间中的非线性问题转变为高维空间的线性问题。
⇒ \Rightarrow ⇒样本在原始空间线性不可分,就映射到更高维的特征空间使其线性可分。
高维空间划分超平面模型:
f ( x ) = w T ϕ ( x ) + b f(\mathbf{x})=\mathbf{w}^Tϕ(\mathbf{x})+b f(x)=wTϕ(x)+b
核函数(kernel function):隐式地将输入数据映射到高维特征空间,使得原本线性不可分的数据在高维空间中变得线性可分,而无需显式计算高维映射。
k ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) = < ϕ ( x i ) , ϕ ( x j ) > k(\mathbf{x}_i,\mathbf{x}_j)=ϕ(\mathbf{x}_i)^Tϕ(\mathbf{x}_j)=<ϕ(\mathbf{x}_i),ϕ(\mathbf{x}_j)> k(xi,xj)=ϕ(xi)Tϕ(xj)=<ϕ(xi),ϕ(xj)>
- 把高维向量的内积转变为求低维向量的内积问题。
- 核函数是一种表征映射、实现内积逻辑关系且降低计算复杂度的特殊函数。
支持向量展式(support vector expansion):
min α 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j k ( x i , x j ) − ∑ i = 1 m α i s.t. ∑ i = 1 m α i y i = 0 , α i ≥ 0 , ∀ i \min_{\alpha} \frac{1}{2} \sum_{i=1}^m \sum_{j=1}^m \alpha_i \alpha_j y_i y_j k(\mathbf{x}_i,\mathbf{x}_j) -\sum_{i=1}^m \alpha_i \quad \text{s.t.} \quad\sum_{i=1}^m \alpha_i y_i = 0, \quad \alpha_i \geq 0, \quad \forall i αmin21i=1∑mj=1∑mαiαjyiyjk(xi,xj)−i=1∑mαis.t.i=1∑mαiyi=0,αi≥0,∀i
梅塞定理(Mercer):任何半正定的函数都可以作为核函数。
半正定核函数: k ( x , y ) = k ( y , x ) k(\mathbf{x},\mathbf{y})=k(\mathbf{y},\mathbf{x}) k(x,y)=k(y,x)且任意函数 f f f有 ∫ ∫ f ( x ) k ( x , y ) f ( y ) d x d y ≥ 0 \int \int f(\mathbf{x})k(\mathbf{x},\mathbf{y})f(\mathbf{y})dxdy\geq0 ∫∫f(x)k(x,y)f(y)dxdy≥0
八、关联分析
重点:项集和规则的支持度,规则的置信度,Apriori算法,频繁项集,强关联规则挖掘,子序列生成,频繁序列。
概念:
- 项(item):每个商品。定义 I I I为所有项的集合。
- 项集(itemset):多个项组成的集合。 k k k-项集含有 k k k个项,长度为 k k k。
- 事务/交易(transaction):包含一个标识TID和项集(购买的商品集合)。定义 D D D为事务数据库, T = { t 1 , . . . , t N } T=\{t_1,...,t_N\} T={t1,...,tN}是所有事务构成的集合。
1.关联规则
关联规则(Association rules):找到事务数据库中多次重复出现的项/项集之间的关联, P → Q P\to Q P→Q
支持度(Support):单调不增。度量了频率。最小支持度 m i n s u p : σ minsup:\sigma minsup:σ
sup ( X ) = # X # D , sup ( X → Y ) = P ( X ∪ Y ) = # ( X ∪ Y ) # D \text{sup}(X)=\frac{\#X}{\#D},\quad \text{sup}(X\to Y)=P(X\cup Y)=\frac{\#(X\cup Y)}{\#D} sup(X)=#D#X,sup(X→Y)=P(X∪Y)=#D#(X∪Y)
置信度(Confidence):度量了强度。最小置信度 m i n c o n f : Φ minconf:\Phi minconf:Φ
conf ( X → Y ) = P ( Y ∣ X ) = # ( X ∪ Y ) # X = sup ( X → Y ) sup ( X ) \text{conf}(X\to Y)=P(Y|X)=\frac{\#(X\cup Y)}{\#X}=\frac{\text{sup}(X\to Y)}{\text{sup}(X)} conf(X→Y)=P(Y∣X)=#X#(X∪Y)=sup(X)sup(X→Y)
频繁项集(Frequent Itemsets): s u p ( X ) ≥ σ sup(X)\geq\sigma sup(X)≥σ,频繁 k k k项集记 L k L_k Lk
强关联规则(强规则,Strong Rules): s u p ( X → Y ) ≥ σ 且 c o n f ( X → Y ) ≥ Φ sup(X\to Y)\geq\sigma 且conf(X\to Y)\geq\Phi sup(X→Y)≥σ且conf(X→Y)≥Φ
1.1关联规则挖掘
分解为两个子任务:
- 生成频繁项集(Frequent Itemset Generation):发现满足最小支持度阈值的所有项集。
- 生成规则(Rule Generation):提取所有高置信度规则。
1.1.1暴力法(Brute-force approach)
计算每个可能规则的支持度和置信度。
计算代价过高: O ( N M W ) O(NMW) O(NMW)

1.1.2先验算法(Apriori)
先验原理(Apriori principle): → \to →候选集剪枝(Candidate Pruning)
- 如果一个项集 X X X是频繁的,则它的所有非空子集 Y ⊂ X Y\subset X Y⊂X一定频繁。
- 如果一个项集 X X X是非频繁的,则它的所有超集 X ⊂ Y X\subset Y X⊂Y一定非频繁。

候选项集生成: L k → C k + 1 L_k\to C_{k+1} Lk→Ck+1,只对 L k L_k Lk中那些 X X X和 Y Y Y前 k − 1 k-1 k−1项相同且第 k k k项不同的频繁项集进行连接,生成 C k + 1 C_{k+1} Ck+1的候选项集。


2.序列模式
序列模式(Sequential Pattern):寻找事务之间时间上的相关性。
序列: s = < s 1 , s 2 , . . . , s n > s=<s_1,s_2,...,s_n> s=<s1,s2,...,sn>, s i s_i si是 s s s的一个元素(element) s i = { x 1 , . . . , x k } s_i=\{x_1,...,x_k\} si={x1,...,xk}
- 大小(size):元素个数 n n n。
- 长度(length):所有项的个数, k k k-序列, k = ∑ k i k=\sum k_i k=∑ki,。
- 子序列:

序列挖掘:满足用户指定最小支持度 σ \sigma σ的所有序列(频繁序列)。
- 支持度:包含s的所有数据序列所占比例。

先验原理(Aprior):
- 如果一个 k k k-序列是频繁的,则它的所有( k − 1 k-1 k−1)-子序列也频繁。
- 如果一个 k k k-序列是非频繁的,则它的超序列也非频繁。
候选序列产生:GSP算法
- 仅当丢弃 s 1 s_1 s1中的第一项获得的子序列与丢弃 s 2 s_2 s2中的最后一项获得的子序列相同时,合并 s 1 s_1 s1和 s 2 s_2 s2。
九、聚类分析
重点:有监督和无监督,k-means聚类,凝聚层次聚类,邻近性度量(单链,全链),树状图,DBSCAN密度聚类基本概念。
无监督学习(Unsupervised Learning):根据没有标记的样本,从输入数据中发现潜在的结构、模式或分布。
- 没有标记信息(No labels)。
- 数据驱动(Data driven)。
聚类:无监督学习,根据信息相似度原则进行聚类。
分类:监督学习,根据训练样本获得分类器。
类、簇(cluster):一组在特征空间彼此相似、接近的样本(对象、点)集合,同簇尽可能相似,不同簇尽可能不同。
相异性与相似性度量:

🦌:也可以看之前三、数据与特征工程里的相似性与相异性
1.聚类方法
- 划分方法(Partitioning Methods):
- K-均值(K-Means)
- 顺序领导者方法(Sequential Leader Methods)
- 基于密度的方法(Density Based Methods)
- 基于模型的方法(Model Based Methods)
- 层次方法(Hierarchical Methods)
1.1K-means
K-means:适用于各类样本比较密集(球状分布)且样本数目悬殊不大的样本分布。
误差平方和(SSE):
SSE = ∑ i = 1 K ∑ x ∈ C i ∥ x − c i ∥ 2 2 , c i = 1 n i ∑ x ∈ C i x \text{SSE}=\sum_{i=1}^K\sum_{x\in C_i}\|x-c_i\|_2^2,\quad c_i=\frac{1}{n_i}\sum_{x\in C_i}x SSE=i=1∑Kx∈Ci∑∥x−ci∥22,ci=ni1x∈Ci∑x
均方误差(MSE): MSE = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 \text{MSE}=\frac{1}{n}\sum_{i=1}^n(y_i-\hat y_i)^2 MSE=n1∑i=1n(yi−y^i)2,是SSE/n得到平均数,多用于预测建模中估算误差。
流程:
- 选择聚类数目K。
- 随机选择K个中心。
- 将所有数据点划分到离其最近的类中心所在的类。
- 计算SSE。
- 重新分配数据点到离其最近的类中心所在类,并重新计算各类的中心 c i c_i ci。
- 重复步骤3-5直至没有样本点需要调整(或者重复次数上限)。

优点:
- 简单,收敛较快,时间复杂度 O ( I × K × n × m ) O(I\times K\times n\times m) O(I×K×n×m), I I I是收敛所需迭代次数, K K K个中心, n n n个数据点, m m m个类别。
缺点:
- 需提前指定K值。
- 可能会收敛到局部最优点 → \to →尝试不同初始中心点。
- 对噪声数据和异常值敏感。
- 只适合球形分布样本聚类。
1.2层次聚类
分类:
- 凝聚的(自下而上):从点作为个体簇开始,每一步合并两个最接近的簇,直至只剩下一个簇。
- 分裂的(自上而下):从包含所有点的某个簇开始,每一步分裂一个簇。
表示方法:
- 树状图(dendrogram)
- 嵌套簇图(nested cluster diagram)

1.2.1凝聚方法(Agglomerative Methods)
邻近性度量:
- 单链(single link,MIN):不同簇的两个最近的点之间的邻近度。
- 全链(complete link,MAX):不同簇中两个最远点之间的邻近度。
- 组平均(group average):不同簇的所有点对邻近度的平均值。
距离(相异度)作为邻近度度量 → \to →值越小点越接近(单链:小中取小;全链:大中取小)。
相似度作为邻近度度量 → \to →值越大点越接近(单链:小中取大;全链:大中取大)

🦌:“小中取小”:第一个“小”指单链定义,取点距离的最小值作为两个簇间距离;第二个“小”指的相异度定义,取相异度最小值即最相似的两个簇进行合并。

1.3基于密度的聚类方法
密度:指定样本周围一定半径内所包含的样本数量。
样本点分为:
- 核心点(core point,稠密区域内部的点):给定邻域内的点的个数超过给定的阈值( M i n P t s MinPts MinPts)。
- 边界点(border point,稠密区域边缘上的点):不是核心点,落在某个或多个核心点的邻域内。
- 噪声点/背景点(noise point,稀疏区域中的点)

DBSCAN:典型的基于密度方法,能从含有噪声的空间数据库中发现任意形状的聚类。
概念:
- 领域半径 Eps:半径为Eps内的区域。
- 阈值:MinPts。
- 直接密度可达:样本集合D。样本点 q q q在 p p p的Eps邻域内,且 p p p为核心点,则点 q q q从点 p p p直接密度可达(密度直达)。
- 密度可达:样本集合D,一串样本点 p 1 , p 2 , . . . , p n , p = p 1 , q = p n p_1,p_2,...,p_n,p=p_1,q=p_n p1,p2,...,pn,p=p1,q=pn。 p i p_i pi从 p i − 1 p_{i-1} pi−1直接密度可达,则点 q q q从点 p p p密度可达。
- 密度相连:样本集合D,任意点 o o o,存在点 p p p到点 o o o密度可达,且点 q q q到点 o o o密度可达,则点 q q q到点 p p p密度相连。

🦌:直接密度可达,就是q在p的圈里;密度可达,就是q可以不是核心点,q之前的点都是核心点且圈两两交叉(过圆心),q在前一个点的圈里;密度相连就是两个密度可达同一个点的点。
流程:
- 初始化:所有点标记为“未访问”。
- 核心点判断:
- 随机选一个未访问点 p,计算其 ε-邻域。
- 若 p 是核心点,启动簇扩展;否则标记为噪声。
- 簇扩展:
- 从 p 出发,递归/迭代地找到所有密度可达的点,形成簇。
- 终止:重复上述步骤,直到所有点被访问。
优点:
- 能发现任意形状的簇。
- 对噪点不敏感。
缺点:
- 对两个参数(Eps,MinPts)设置敏感。
- 不适合样本集密度不均匀、聚类间距相差很大。
- 数据样本集越大,收敛时间越长。
🦌:恭喜你看完了!应该对整个课程内容有大致了解和掌握了吧!祝你考试顺利!
如果你感兴趣
1.特征提取技术之一:梯度方向直方图(HOG)
方向梯度直方图(Histogram of Oriented Gradient, HOG):通过计算和统计图像 局部区域 的梯度方向直方图来构成特征。
来源:机器学习与数据挖掘-ch1 绪论_2025.pdf

2.线性代数技术:奇异值分解
奇异值分解(Singular Value Decomposition, SVD):对于任意 m × n m×n m×n 的实数或复数矩阵 A \mathbf{A} A,其奇异值分解为: A = U Σ V \mathbf{A}=\mathbf{U}\mathbf{Σ}\mathbf{V} A=UΣV
其中:
- U \mathbf{U} U: m × m m×m m×m的正交矩阵(左奇异向量),列向量为单位正交向量。
- Σ \mathbf{Σ} Σ: m × n m×n m×n的对角矩阵,对角元素为非负的奇异值(通常按降序排
- 列),其余元素为零。
- V \mathbf{V} V: n × n n×n n×n的正交矩阵的共轭转置(右奇异向量),列向量为单位正交向量。
若 A \mathbf{A} A为实数矩阵,则 U \mathbf{U} U 和 V \mathbf{V} V为正交矩阵,即 V ∗ = V T \mathbf{V}^*=\mathbf{V}^T V∗=VT 。
来源:机器学习与数据挖掘-ch3-线性模型.pdf

更多推荐

所有评论(0)