《神经网络与深度学习》-无监督学习-程序员宅基地

技术标签: 《神经网络与深度学习》  深度学习  

  无监督学习(Unsupervised Learning,UL)是指从无标签的数据中学习出有用的模式,无监督学习算法一般直接从原始数据中学习,不需要标签。若监督学习是建立输入-输出之间的映射关系,那么无监督学习就是发现隐藏的数据中的有价值信息:有效特征类别结构概率分布等。
  主要的几种无监督学习:

  • 无监督特征学习(Unsupervised Feature Learning)是从无标签的训练数据中,挖掘有效的特征表示,无监督特征学习一般用来进行降维数据可视化、监督学习前期的数据预处理

  • 概率密度估计(Probabilistic Density Estimation)简称密度估计,是根据一组训练样本来估计样本空间的概率密度,密度估计由分为:参数密度估计非参数密度估计参数密度估计是建设训练样本服从某个已知概率密度形式的分布(如高斯分布),然后去学习概率密度的参数。非参数密度估计是不假设数据服从某个已知分布,只利用训练样本对密度进行估计,可进行任性形状的密度估计,常见方法有直方图核密度估计等。

  • 聚类(Clustering)是将一组样本数据根据一定的准则划分到不同的组(集群(Cluster))。一个比较通用的准则是组内样本相似度要高于组间样本的相似度。常见的聚类算法:K-Means、谱聚类。

  无监督学习方法也包含三个基本要素:模型学习准则优化算法。学习准则有最大似然估计最下重构错误等。
  无监督特征学习中,常用学习准则为最小化重构错误、同时也经常对特征进行一些约束:独立性非负性稀释性等;
  密度估计中,常用学习准则为最大似然估计

1. 无监督特征学习

  无监督特征学习,旨在无标注的数据汇总学习有效数据表示。无监督特征学习主要方法有主成分分析稀疏编码自编码器

1.1 主成分分析

  主成分分析(Principal Component Analysis,PCA)常用来数据降维,在转换后的空间中数据的方差最大。如图所示二维数据,将数据投影到一维空间中,选择数据方差最大的方向进行投影,能最大化数据差异性,保留更多的原始数据信息。
在这里插入图片描述
  假设一组 D 维的样本 x ∈ R D , 1 ≤ n ≤ N \pmb{x} \in \R^D, 1 \leq n \leq N xxxRD,1nN,将其投影到 1 维空间中,投影向量为 w ∈ R D \pmb{w} \in \R^D wwwRD。不失一般性,我们限制 w \pmb{w} www的模为1,即 w T w = 1 \pmb{w}^T\pmb{w} = 1 wwwTwww=1。每个样本点 x ( n ) \pmb{x}^{(n)} xxx(n) 投影之后的表示为:

z ( n ) = w T x ( n ) z^{(n)} = \pmb{w}^T\pmb{x}^{(n)} z(n)=wwwTxxx(n)
  用矩阵 X = [ x ( 1 ) , x ( 2 ) , ⋯   , x ( n ) ] \pmb{X} = [\pmb{x}^{(1)},\pmb{x}^{(2)},\cdots,\pmb{x}^{(n)}] XXX=[xxx(1),xxx(2),,xxx(n)] 表示输入样本, x ‾ = 1 N ∑ n = 1 N x ( n ) \overline{\pmb{x}} = \frac{1}{N}\sum^{N}_{n=1}\pmb{x}^{(n)} xxx=N1n=1Nxxx(n)为原来样本的中心点,所有样本投影后的方差为:
在这里插入图片描述
其中 X ‾ = x ‾ 1 D T \overline{X} = \overline{\pmb{x}}1_D^T X=xxx1DT 是向量 x ‾ \overline{\pmb{x}} xxx 和 D 维全1向量 1 D 1_D 1D的外积,即有 D 列 x ‾ \overline{\pmb{x}} xxx 组成的矩阵, ∑ = 1 N ( X − X ‾ ) ( X − X ‾ ) T \sum = \frac{1}{N}(\pmb{X}-\overline{\pmb{X}})(\pmb{X}-\overline{\pmb{X}})^T =N1(XXXXXX)(XXXXXX)T 是原始样本的协方差矩阵。
  最大化投影方差 σ ( X ; w ) \sigma(\pmb{X};\pmb{w}) σ(XXX;www) 并满足 w T w = 1 \pmb{w}^T\pmb{w} = 1 wwwTwww=1,利用拉格朗日方法转化为无约束优化问题:

max ⁡ w w T ∑ w + λ ( 1 − w T w ) \max_{w} \pmb{w}^T\sum\pmb{w} + \lambda(1-\pmb{w}^T\pmb{w}) wmaxwwwTwww+λ(1wwwTwww)

其中 λ \lambda λ 为拉格朗日乘子。对上式求导并令导数等于0,可得:

∑ w = λ w \sum\pmb{w}=\lambda \pmb{w} www=λwww

从上式可知, w \pmb{w} www是协方差矩阵 ∑ \sum 的特征向量。同时:

σ ( X ; w ) = w T ∑ w = w T λ w = λ \sigma(\pmb{X};\pmb{w}) = \pmb{w}^T\sum\pmb{w} = \pmb{w}^T \lambda \pmb{w} = \lambda σ(XXX;www)=wwwTwww=wwwTλwww=λ

λ \lambda λ也是投射后样本的方差,因此,PCA可以转换成一个矩阵特征值分解问题,投影向量 w \pmb{w} www 为矩阵 ∑ \sum 的最大特征值对应的特征向量。
  如果要通过投影矩阵 W ∈ R D × D ′ \pmb{W} \in R^{D\times D^{'}} WWWRD×D 将样本投到 D ′ D^{'} D维空间,投影矩阵满足 W T W = I \pmb{W}^T\pmb{W} = \pmb{I} WWWTWWW=III 为单位矩阵,只需要将 ∑ \sum 的特征值从大到小排列,保留前 D ′ D^{'} D个特征向量,对应的特征向量即是最优的投影矩阵:

∑ W = W d i a g ( λ ) \sum \pmb{W} = \pmb{W} diag(\lambda) WWW=WWWdiag(λ)

其中 λ = [ λ 1 , ⋯   , λ D ′ ] \pmb{\lambda} = [\lambda_1, \cdots, \lambda_{D^{'}}] λλλ=[λ1,,λD] 为S的前 D ′ D^{'} D 个最大的特征值。
  主成分分析,可作为监督学习的数据预处理方法,用来去噪声并减少特征之间的相关性,但不保证投影后的数据类别可分性更好,提高两类可分性的方法常为监督学习方法,如线性判别分析(Linear Discriminant Analysis,LDA)

1.2 稀疏编码

  稀疏编码(Sparse Coding)受哺乳动物视觉系统感受野启发建立的模型。外界信息经过编码后,只有小部分神经元激活,即外界刺激在视觉系统中的表示具有很高的稀疏性。编码的稀疏性在一定程度上符合生物学的低功耗特性。
  数学上,(线性)编码是指给定一组基向量 A = [ a 1 , ⋯   , a M ] \pmb{A} = [\pmb{a}_1, \cdots,\pmb{a}_M] AAA=[aaa1,,aaaM],将输入样本 x ∈ R D \pmb{x} \in \R^D xxxRD表示为这些基向量的线性组合:
在这里插入图片描述
其中基向量的系数 z = [ z 1 , ⋯   , z M ] \pmb{z} = [\pmb{z}_1,\cdots,\pmb{z}_M] zzz=[zzz1,,zzzM] 输入样本的编码(Encoding),基向量 A \pmb{A} AAA 也称为子典(Dictionary).
  编码是对 D D D 维空间中的样本 x \pmb{x} xxx 找到其在 P 维空间中的表示(或投影),其目标通常是编码的各个维度都是独立统计的,并且可以重构出输入样本。编码的关键是找到一组“完备”的基向量 A \pmb{A} AAA ,比如主成分分析,但PCA得到的编码通常是稠密的
在这里插入图片描述
  为得到稀疏编码,需找到一组“过完备”的基向量(M>D)来进行编码,在过完备基向量之间常会存在一些冗余性,因此对一个输入样本,会存在很多有效的编码,如果加上稀疏性限制,可以减少解空间的大小,得到“唯一”的稀疏编码。
  给定一组N个输入 [ x ( 1 ) , ⋯   , x ( N ) ] [\pmb{x}^{(1)}, \cdots,\pmb{x}^{(N)}] [xxx(1),,xxx(N)] ,其稀疏编码的目标函数定义为:
在这里插入图片描述
其中 Z = [ z ( 1 ) , ⋯   , z ( N ) ] \pmb{Z} = [z^{(1)}, \cdots, z^{(N)}] ZZZ=[z(1),,z(N)] ρ ( ⋅ ) \rho(\cdot) ρ() 是一个稀疏性衡量函数, η \eta η是超参数,用来控制稀疏性的强度。
  对于一个给定的 z ∈ R M z \in \R^M zRM,其稀疏性定义为非零元素的比例。如果一个向量只有很少的几个非零元素,就说该向量稀疏。稀疏性衡量函数 ρ ( z ) \rho(\pmb{z}) ρ(zzz) 是给向量 z \pmb{z} zzz一个标量分数, z \pmb{z} zzz越稀疏, ρ ( z ) \rho(\pmb{z}) ρ(zzz)越小。
  稀疏性衡量函数的多种选择,如 l 0 l_0 l0 范数:
在这里插入图片描述
l 0 l_0 l0 范数不满足连续可导,很难优化,实际中,稀疏性衡量函数常为 l 1 l_1 l1范数:
在这里插入图片描述
稀疏性衡量函数或为对数函数:
在这里插入图片描述

稀疏性衡量函数或为指数函数:
在这里插入图片描述

1.2.1 训练方法

  给定一组 N 个输入向量 { x ( n ) } n = 1 N \{\pmb{x}^{(n)}\}_{n=1}^{N} { xxx(n)}n=1N ,需要同时学习基向量 A \pmb{A} AAA 以及每个输入样本对应的稀疏编码 { z ( n ) } n = 1 N \{\pmb{z}^{(n)}\}_{n=1}^{N} { zzz(n)}n=1N
  稀疏编码的训练过程一般用交替优化的方法进行:

  1. 固定基向量 A \pmb{A} AAA ,对每个输入 x ( n ) \pmb{x}^{(n)} xxx(n),计算其对应的最优编码:
    在这里插入图片描述
  2. 固定上一步得到的编码 { z ( n ) } n = 1 N \{\pmb{z}^{(n)}\}_{n=1}^{N} { zzz(n)}n=1N,计算其最优的基向量:
    在这里插入图片描述
    其中第二项为正则化项, λ \lambda λ为正则化项系数。
1.2.2 稀疏编码的优点

  稀疏编码的每一维都可以看做是一种特征,和基于稠密向量的分布式表示比,稀疏编码计算量小、可解释性强。
计算量 稀疏性可以极大地降低计算量
可解释性 稀疏编码只有少量非零元素,相当于每一个输入样本表示为少数几个相关的特征,可更好地描述其特征,并易于理解。
特征选择 稀疏性可实现特征的自动选择,只选择和输入样本最相关的少数特征,从而更高效地表示输入样本,降低噪声,减轻过拟合。

1.3 自编码器

  自编码器(Auto-Encoder,AE)是通过无监督的方式来学习一组数据的有效编码(或表示)。
  假设有一组D维的样本 x ( n ) ∈ R D , 1 ≤ n ≤ N \pmb{x}^{(n)} \in \R^D,1 \leq n \leq N xxx(n)RD1nN自编码器将其映射到特征空间得到每个样本的编码 x ( n ) ∈ R M , 1 ≤ n ≤ N \pmb{x}^{(n)} \in \R^M,1 \leq n \leq N xxx(n)RM1nN,并希望这组编码可重构出原来的样本。

  自编码器的机构可分为两部分:

  • 编码器(Encoder): f : R D → R M f:\R^D \to \R^M f:RDRM
  • 解码器(Decoder): f : R M → R D f:\R^M \to \R^D f:RMRD

  自编码器的学习目标是最小化重构错误(Reconstruction Error):
在这里插入图片描述
  如果特征空间的维度M小于原始空间维度D,自编码器相当于是一种降维或特征抽取方法,如果 M > D M > D M>D,则可找到一组或多组解使得 f ∘ g f \circ g fg单位函数(Identity Function),并使得重构错误为0,但这样的解无意义。但如果加上附加约束,则有意义,如编码的稀疏性、取值范围、 f f f g g g 的具体形式等。我们可以让编码只取K个不同的值(K<N),那么自编码器可转换成一个 K 类的聚类问题。
  最简单的自编码器如图所示两层神经网络,输入层到隐藏层用来编码,隐藏层到输出层用来解码,层与层之间互相连接:
在这里插入图片描述
  对于样本 x \pmb{x} xxx,自编码器的中间隐藏层的活性值为 x \pmb{x} xxx 的编码,即:
在这里插入图片描述
自编码器的输出为重构的数据:
在这里插入图片描述
其中 W ( 1 ) , W ( 2 ) , b ( 1 ) , b ( 2 ) \pmb{W}^{(1)},\pmb{W}^{(2)},\pmb{b}^{(1)},\pmb{b}^{(2)} WWW(1)WWW(2)bbb(1)bbb(2) 是网络参数, f ( ⋅ ) f(\cdot) f()为激活函数,如果令 W ( 2 ) = W ( 1 ) T \pmb{W}^{(2)}=\pmb{W}^{(1)^T} WWW(2)=WWW(1)T,则称为捆绑权重(Tied Weight)。捆绑权重自编码器的参数更少,因此更容易学习。此外,捆绑权重还在一定程度上起到正则化的作用。
  对于样本 x ( n ) ∈ [ 0 , 1 ] D , 1 ≤ n ≤ N \pmb{x}^{(n)} \in [0,1]^D, 1 \leq n \leq N xxx(n)[0,1]D,1nN,其重构错误为:
在这里插入图片描述
通过最小化重构错误,可以有效地学习网络的参数。
  使用自编码器是为了得到有效的数据表示,训练结束后,一般去掉解码器,只保留编码器,编码器的输出可直接作为后续机器学习模型的输入。

1.4 稀疏自编码器

  自编码器既能学习低维编码,也能学习高维稀疏编码,假设中间隐藏层 z \pmb{z} zzz 的维度 M 大于输入样本 x \pmb{x} xxx 的维度 D ,并让 z \pmb{z} zzz 尽量稀疏,这就是稀疏自编码(Sparse Auto-Encoder)。类似稀疏编码,稀疏自编码可解释性高,进行了隐式特征选择。
  通过给自编码器隐藏层单元 z \pmb{z} zzz 加上稀疏性限制,自编码器可以学习到数据中一些有用的结构。给定 N 个训练样本 { x ( n ) } n = 1 N \{\pmb{x}^{(n)}\}_{n=1}^{N} { xxx(n)}n=1N,稀疏自编码器的目标函数为:
在这里插入图片描述

其中 Z = [ z ( 1 ) 、 ⋯ 、 z ( N ) ] \pmb{Z} = [\pmb{z}^{(1)}、\cdots、\pmb{z}^{(N)}] ZZZ=[zzz(1)zzz(N)]表示所有训练样本的编码, ρ ( Z ) \rho(Z) ρ(Z) 为稀疏性度量函数, W \pmb{W} WWW表示自编码器中的参数。
  稀疏性度量函数 ρ ( Z ) \rho(Z) ρ(Z) 分别计算每个编码 z ( n ) \pmb{z}^{(n)} zzz(n)的稀疏度,再进行求和,此外, ρ ( Z ) \rho(Z) ρ(Z) 还可以定义为一组训练样本中每一个神经元激活的概率。

  给定N个训练样本,隐藏层第 j 个神经元平均活性值为:
在这里插入图片描述

其中 ρ j ^ \hat{\rho_j} ρj^ 可近似看做是第 j 个神经元激活的概率,我们希望 ρ j ^ \hat{\rho_j} ρj^ 接近于一个事先给定的值 ρ ∗ \rho^* ρ,如0.05,可以通过KL距离来衡量 ρ j ^ \hat{\rho_j} ρj^ ρ ∗ \rho^* ρ 的差异:
在这里插入图片描述
如果 ρ j ^ = ρ ∗ \hat{\rho_j} = \rho^* ρj^=ρ ,则 K L ( ρ ∗ ∣ ∣ ρ j ^ ) = 0 KL( \rho^*||\hat{\rho_j}) = 0 KL(ρρj^)=0
  稀疏性度量函数定义为:
在这里插入图片描述

1.5 堆叠自编码器

  对很多数据来说,两层神经网络的自编码器不足以获取好的数据表示,因此,可以更深的网络,这样提取的数据表示更抽象,能很好捕捉到数据的语义信息。实践中,常用逐层堆叠的方式来训练一个深层的自编码器,称为堆叠自编码器(Stacked Auto-Encoder,SAE),常采用逐层训练(Layer-Wise Training)来学习网络参数。

1.6 降噪自编码器

  有效的数据表示除最小重构错误、稀疏性,有时还要具备对数据部分损坏(Partial Destruction)的鲁棒性,高维数据(比如图像)一般都具有信息冗余,如常可根据一张部分损坏的图像联想出完整内容,故也希望自编码器也能够从损坏的数据中得到有效的数据表示,并能恢复出完整的原始信息。
  降噪自编码器(Denoising Auto-Encoder)是通过引入噪声来增加编码鲁棒性的自编码器,并能提高模型泛化能力。对于一向量 x \pmb{x} xxx,我们首先根据一比例 μ \mu μ随机将 x \pmb{x} xxx的一些维度的值设为0,得到一个被损坏的向量 x ~ \tilde{x} x~,然后将被损坏的向量 x ~ \tilde{x} x~输入给自编码器得到编码 z \pmb{z} zzz,并重构出原始的无损输入 x \pmb{x} xxx
  自编码器与降噪编码器的对比如下, f θ f_{\theta} fθ 为编码器, g θ ′ g_{\theta^{'}} gθ 为解码器, L ( x , x ′ ) L(\pmb{x}, \pmb{x}^{'}) L(xxx,xxx) 为重构错误:
在这里插入图片描述

2. 概率密度估计

  概率密度估计(Probabilistic Density Estimation),简称密度估计(Density Estimation),基于一些观测样本来估计一个随机变量的概率密度函数。密度估计方法分为:参数密度估计、非参数密度估计

2.1 参数密度估计

  参数密度估计(Parametric Density Estimation)根据先验知识假设随机变量服从某种分布,然后通过训练样本来估计分布的参数。
  令 D = { x ( n ) } n = 1 N D=\{\pmb{x}^{(n)}\}_{n=1}^N D={ xxx(n)}n=1N为从某个未知分布中独立抽取的N个训练样本,假设这些赝本服从一个概率分布函数 p ( x ; θ ) p(\pmb{x};\theta) p(xxx;θ),其对应似然函数为:
在这里插入图片描述
我们要估计一个参数 θ M L \theta^{ML} θML 来使得:
在这里插入图片描述
这样参数估计问题转化为最优化问题。

2.1.1 正太分布

  假设样本 x ∈ R D \pmb{x} \in \R^D xxxRD 服从正太分布:
在这里插入图片描述
其中 μ \mu μ ∑ \pmb{\sum} 是均值和方差。
  数据集 D = { x ( n ) } n = 1 N D=\{\pmb{x}^{(n)}\}_{n=1}^N D={ xxx(n)}n=1N的对数似然函数为:
在这里插入图片描述
  分别求上式关于 μ \mu μ ∑ \pmb{\sum} 的偏导数,并令其等于 0,可得到:
在这里插入图片描述

2.1.2 多项分布

  假设样本服从K个状态的多项分布,令one-hot向量 x ∈ { 0 , 1 } K \pmb{x} \in \{0,1\}^K xxx{ 0,1}K来表示第k个状态,即 x k = 1 x_k=1 xk=1,其余 x i = 0 , i ≠ k x_{i}=0,i\not=k xi=0,i=k。样本 x \pmb{x} xxx 的概率密度函数为:
在这里插入图片描述
其中 μ k \mu_k μk 为第 k 个状态的概率,并满足 ∑ k = 1 K μ k = 1 \sum_{k=1}^{K}\mu_k=1 k=1Kμk=1.
  数据集 D = { x ( n ) } n = 1 N D=\{\pmb{x}^{(n)}\}_{n=1}^N D={ xxx(n)}n=1N的对数似然函数为:
在这里插入图片描述
  多项分布的参数估计为约束优化问题,引入拉格朗日乘子 λ \lambda λ,将原问题转换为无约束优化问题:
在这里插入图片描述
分别求上式关于 μ k \mu_k μk, λ \lambda λ的偏导数,并令其等于0,可得到:
在这里插入图片描述
其中 m k = ∑ n = 1 N x k ( n ) m_k = \sum_{n=1}^{N}x_k^{(n)} mk=n=1Nxk(n) 为数据集汇总取值为第k个状态的样本数量。

  参数密度估计存在的问题:

  • 模型选择问题:即如何选择数据分布的密度函数,实际数据的分布复杂,不是简单的正太分布或多项分布。
  • 不可观测变量问题:即用来训练的样本只包含部分的可观测变量,有一些关键的变量无法预测,这导致很难准确估计数据的真实分布。
  • 维度灾难问题:高维数据的参数估计十分困难,随维度增加,估计参数所需的样本数量指数增加,样本不足时,出现过拟合。

2.2 非参数密度估计

  非参数密度估计(Nonparametric Density Estimation)不事先假设数据的分布,通过将样本空间会分为不同的区域并估计每个区域的概率,来近似数据的概率密度函数。
  对于高维空间的随机变量 x \pmb{x} xxx,假设其服从一个未知分布 p ( x ) p(x) p(x),则 x \pmb{x} xxx落在空间中的小区域R的概率:
在这里插入图片描述
  给定N个训练样本, D = { x ( n ) } n = 1 N D=\{\pmb{x}^{(n)}\}_{n=1}^N D={ xxx(n)}n=1N,落入区域R的样本数量K服从二项分布:
在这里插入图片描述
其中 K/N 的期望为 P, 方差为 v a r ( K / N ) = P ( 1 − P ) / N var(K/N)=P(1-P)/N var(K/N)=P(1P)/N 当N非常大时,我们可以近似认为:
在这里插入图片描述
  假设区域R足够小,其内部的概率密度相同,则有:
在这里插入图片描述
其中 V 为区域 R 的体积,结合上述公式,得到:
在这里插入图片描述
  要准确估计 p ( x ) p(\pmb{x}) p(xxx),需尽量使用样本数量N足够大,区域体积V尽可能小,实际中,样本数量有限,过小区域会导致落入该区域的样本比较少,这样估计的概率密度不太准确,故实践中,非参数密度估计有两种方式:

  • 固定区域大小V,统计落入不同区域的数量,这种方式包括直方图方法核方法
  • 改变区域大小V,使落入每个区域的样本数量为K,这种方式为K近邻方法
2.2.1 直方图法

  直方图方法(Histogram Method)是直观的估计连续变量密度函数的方法,可表示为一种柱状图。
  以一维随机变量为例,首先将取值范围分为 M 个连续的、不重叠的区间,每个区间宽度为 Δ m \Delta_m Δm。对于给定的训练样本 D = { x ( n ) } n = 1 N D=\{\pmb{x}^{(n)}\}_{n=1}^N D={ xxx(n)}n=1N,统计这些样本落入每个区间的数量 K m K_m Km,然后将它们归一化为密度函数:
在这里插入图片描述
其中区间宽度 Δ m \Delta_m Δm常设为相同的值 Δ \Delta Δ,直方图方法的关键问题是如何选择一个合适的区间宽度 Δ \Delta Δ,如果 Δ \Delta Δ太小,落入每个区间的样本数量会比较少,其估计的区间密度也有很大的随机性;如果 Δ \Delta Δ太大,其估计的密度函数将变得十分平滑,很难反映真实数据分布。图示如下:蓝线表示真实的密度函数、红色的柱状图为估计的密度。
在这里插入图片描述
  直方图难以用来处理低维变量,可以很快速地对数据的分布进行可视化,但很难拓展到高维变量。假设一个D维随机变量,如果每一维都划分为M个区间,那么整个空间的区间数量为 M D M^D MD个,直方图方法需要的样本数量会随着维度D的增加而指数增长,从而导致维度灾难

2.2.2 核方法

  核密度估计(Kernel Density Estimation),也叫Parzen 窗方法,是一种直方图方法的改进。
  假设R为D维空间中的一个以点 x 为中心的“超立方体”,并定义核函数:
在这里插入图片描述
来表示一个样本 z \pmb{z} zzz 是否落入该超立方体中,其中 H 为超立方体边长,也叫核函数的宽度。
  给定的训练样本 D = { x ( n ) } n = 1 N D=\{\pmb{x}^{(n)}\}_{n=1}^N D={ xxx(n)}n=1N,落入区域 R 的样本数量 K 为:
在这里插入图片描述
则点 x 的密度估计为:
在这里插入图片描述
其中 H D H^D HD 表示超立方体R的体积。

  除超立方体核函数,还可以选择更平滑的核函数,如高斯核函数:
在这里插入图片描述
其中 h 2 h^2 h2 可看做是高斯核函数的方差,这样,点x的密度估计为:
在这里插入图片描述
  核密度估计方法中的核宽度是固定的,因此同一个宽度可能对高密度的区域过大,而对低密度的区域过小。

2.2.3 K近邻方法

  设置可变宽度的区域,并使落入每个区域中样本数量为固定的K,要估计x的密度,先找到一个以x为中心的球体,使得落入球体的样本数量为 K ,根据 p ( x ) ≈ K N V p(x) \approx \frac{K}{NV} p(x)NVK 可计算点x的密度,因为落入球体的样本也是离x最近的K个样本,故此方法称为 K近邻方法(K-Nearest Neighbor)。
  KNN中,K的选择很关键,K太小,无法有效估计密度函数;K太大,也会使得局部的估计不准确,增加计算开销。
  KNN常用于分类,K=1时,为最近邻分类器,最近邻分类器的一个性质是,当 N → ∞ N \to \infty N时,其分类错误率不超过最优分类器错误率的两倍。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Passenger_zhang/article/details/107409467

智能推荐

python opencv resize函数_python opencv 等比例调整(缩放)图片分辨率大小代码 cv2.resize()...-程序员宅基地

文章浏览阅读1.3k次。# -*- coding: utf-8 -*-"""@File : 200113_等比例调整图像分辨率大小.py@Time : 2020/1/13 13:38@Author : Dontla@Email : [email protected]@Software: PyCharm"""import cv2def img_resize(image):height, width = image...._opencv小图等比例缩放

【OFDM、OOK、PPM、QAM的BER仿真】绘制不同调制方案的误码率曲线研究(Matlab代码实现)-程序员宅基地

文章浏览阅读42次。对于这些调制技术的误码率(BER)研究是非常重要的,因为它们可以帮助我们了解在不同信道条件下系统的性能表现。通过以上步骤,您可以进行OFDM、OOK、PPM和QAM的误码率仿真研究,并绘制它们的误码率曲线,以便更好地了解它们在不同信道条件下的性能特点。针对这些调制技术的BER研究是非常重要的,可以帮助我们更好地了解这些技术在不同信道条件下的性能表现,从而指导系统设计和优化。6. 分析结果:根据误码率曲线的比较,分析每种调制方案在不同信噪比条件下的性能,包括其容忍的信道条件和适用的应用场景。_ber仿真

【已解决】Vue的Element框架,日期组件(el-date-picker)的@change事件,不会触发。_el-date-picker @change不触发-程序员宅基地

文章浏览阅读2.5w次,点赞3次,收藏3次。1、场景照抄官方的实例,绑定了 myData.Age 这个值。实际选择某个日期后,从 vuetool(开发工具)看,值已经更新了,但视图未更新。2、尝试绑定另一个值: myData,可以正常的触发 @change 方法。可能是:值绑定到子对象时,组件没有侦测到。3、解决使用 @blur 代替 @change 方法。再判断下 “值有没有更新” 即可。如有更好的方法,欢迎评论!..._el-date-picker @change不触发

PCL学习:滤波—Projectlnliers投影滤波_projectinliers-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏8次。Projectlnliersclass pcl: : Projectlnliers< PointT >类 Projectlnliers 使用一个模型和一组的内点的索引,将内点投影到模型形成新的一个独立点云。关键成员函数 void setModelType(int model) 通过用户给定的参数设置使用的模型类型 ,参数 Model 为模型类型(见 mo..._projectinliers

未处理System.BadImageFormatException”类型的未经处理的异常在 xxxxxxx.exe 中发生_“system.badimageformatexception”类型的未经处理的异常在 未知模块。 -程序员宅基地

文章浏览阅读2.4k次。“System.BadImageFormatException”类型的未经处理的异常在 xxxx.exe 中发生其他信息: 未能加载文件或程序集“xxxxxxx, Version=xxxxxx,xxxxxxx”或它的某一个依赖项。试图加载格式不正确的程序。此原因是由于 ” 目标程序的目标平台与 依赖项的目标编译平台不一致导致,把所有的项目都修改到同一目标平台下(X86、X64或AnyCPU)进行编译,一般即可解决问题“。若果以上方式不能解决,可采用如下方式:右键选择配置管理器,在这里修改平台。_“system.badimageformatexception”类型的未经处理的异常在 未知模块。 中发生

PC移植安卓---2018/04/26_电脑软件移植安卓-程序员宅基地

文章浏览阅读2.4k次。记录一下碰到的问题:1.Assetbundle加载问题: 原PC打包后的AssetBundle导入安卓工程后,加载会出问题。同时工程打包APK时,StreamingAssets中不能有中文。解决方案: (1).加入PinYinConvert类,用于将中文转换为拼音(多音字可能会出错,例如空调转换为KongDiao||阿拉伯数字不支持,如Ⅰ、Ⅱ、Ⅲ、Ⅳ(IIII)、Ⅴ、Ⅵ、Ⅶ、Ⅷ、Ⅸ、Ⅹ..._电脑软件移植安卓

随便推点

聊聊线程之run方法_start 是同步还是异步-程序员宅基地

文章浏览阅读2.4k次。话不多说参考书籍 汪文君补充知识:start是异步,run是同步,start的执行会经过JNI方法然后被任务执行调度器告知给系统内核分配时间片进行创建线程并执行,而直接调用run不经过本地方法就是普通对象执行实例方法。什么是线程?1.现在几乎百分之百的操作系统都支持多任务的执行,对计算机来说每一个人物就是一个进程(Process),在每一个进程内部至少要有一个线程实在运行中,有时线..._start 是同步还是异步

制作非缘勿扰页面特效----JQuery_单击标题“非缘勿扰”,<dd>元素中有id属性的<span>的文本(主演、导演、标签、剧情-程序员宅基地

文章浏览阅读5.3k次,点赞9次,收藏34次。我主要用了层次选择器和属性选择器可以随意选择,方便简单为主大体CSS格式 大家自行构造网页主体<body> <div class='main' > <div class='left'> <img src="images/pic.gif" /> <br/><br/> <img src="images/col.gif" alt="收藏本片"/&_单击标题“非缘勿扰”,元素中有id属性的的文本(主演、导演、标签、剧情

有了这6款浏览器插件,浏览器居然“活了”?!媳妇儿直呼“大开眼界”_浏览器插件助手-程序员宅基地

文章浏览阅读901次,点赞20次,收藏23次。浏览器是每台电脑的必装软件,去浏览器搜索资源和信息已经成为我们的日常,我媳妇儿原本也以为浏览器就是上网冲浪而已,哪有那么强大,但经过我的演示之后她惊呆了,直接给我竖起大拇指道:“原来浏览器还能这么用?大开眼界!今天来给大家介绍几款实用的浏览器插件,学会之后让你的浏览器“活过来”!_浏览器插件助手

NumPy科学数学库_数学中常用的环境有numpy-程序员宅基地

文章浏览阅读101次。NumPy是Python中最常用的科学数学计算库之一,它提供了高效的多维数组对象以及对这些数组进行操作的函数NumPy的核心是ndarray(N-dimensional array)对象,它是一个用于存储同类型数据的多维数组Numpy通常与SciPy(Scientific Python)和 Matplotlib(绘图库)一起使用,用于替代MatLabSciPy是一个开源的Python算法库和数学工具包;Matplotlib是Python语言及其Numpy的可视化操作界面'''_数学中常用的环境有numpy

dind(docker in docker)学习-程序员宅基地

文章浏览阅读1.1w次。docker in docker说白了,就是在docker容器内启动一个docker daemon,对外提供服务。优点在于:镜像和容器都在一个隔离的环境,保持操作者的干净环境。想到了再补充 :)一:低版本启动及访问启动1.12.6-dinddocker run --privileged -d --name mydocker docker:1.12.6-dind在其他容器访问d..._dind

推荐文章

热门文章

相关标签