西安网站建设招聘南京尘帆网站建设

当前位置: 首页 > news >正文

西安网站建设招聘,南京尘帆网站建设,网站开发 团队构成,如何做网站的关键词目录0 写在前面1 为什么要降维#xff1f;2 主成分分析原理3 PCA与SVD的联系4 Python实现0 写在前面 机器学习强基计划聚焦深度和广度#xff0c;加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理#xff1b;“广”在分析多个机器学习模型#xf… 目录0 写在前面1 为什么要降维2 主成分分析原理3 PCA与SVD的联系4 Python实现0 写在前面 机器学习强基计划聚焦深度和广度加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理“广”在分析多个机器学习模型决策树、支持向量机、贝叶斯与马尔科夫决策、强化学习等。强基计划实现从理论到实践的全面覆盖由本人亲自从底层编写、测试与文章配套的各个经典算法不依赖于现有库可以大大加深对算法的理解。 详情机器学习强基计划(附几十种经典模型源码) 1 为什么要降维 首先考虑单个特征的情形假设在样本xxx任意小邻域δ\deltaδ内都存在样本则称对样本空间进行了密采样(dense sample)。例如取δ0.01\delta 0.01δ0.01则在归一化样本平均分布的情况下需要采样100个样本。 然而机器学习任务中通常面临高维特征空间若特征维数为40则要实现密采样就需要108010^{80}1080个样本——相当于宇宙中基本粒子的总数。所以密采样在高维特征空间中无法实现换言之高维特征样本分布非常稀疏给机器学习训练、算法采样优化带来了困难。 这种高维情形下机器学习任务产生严重障碍现象称为维数灾难(curse of dimensionality)维数灾难还会以指数级的规模造成计算复杂度上升、存储占用大等问题。缓解维数灾难的一个重要途径是降维(dimension reduction)因为样本数据往往以某种与学习任务密切相关的低维分布的形式嵌入在高维空间内如图所示。 所以降维的核心原理是通过某种数学变换将原始高维特征空间转变为一个更能体现数据本质特征的低维子空间在这个子空间中样本密度大幅提高计算复杂度大幅降低机器学习任务更容易进行。常见的降维技术如表所示 2 主成分分析原理 主成分分析(Principal Component Analysis, PCA)限制样本在经过降维映射W\boldsymbol{W}W得到的低维空间中具有最大可分性和特征最小相关性。 最大可分性指高维样本在低维超平面上的投影应尽可能远离因为越本质的特征越能将样本区分开特征最小相关性指量化样本属性的各个特征维度间应尽可能无关因为特征间无关性越强构成的特征空间信息量越丰富。 满足这两个特性的特征在PCA算法中称为主成分。下面开始算法分析 假设样本X\boldsymbol{X}X经过中心化预处理则其在低维超平面投影为WTX\boldsymbol{W}^T\boldsymbol{X}WTX投影协方差矩阵ΣWTXXTW\boldsymbol{\varSigma }\boldsymbol{W}^T\boldsymbol{XX}^T\boldsymbol{W}ΣWTXXTW其中W[w1w2⋯wd′]\boldsymbol{W}\left[ \begin{matrix} \boldsymbol{w}_1 \boldsymbol{w}2 \cdots \boldsymbol{w}{d}\\end{matrix} \right]W[w1​​w2​​⋯​wd′​​]为低维空间的单位正交基。 考虑到最大可分性则应最大化Σ\boldsymbol{\varSigma }Σ 我们从协方差的物理意义上思考一下为什么协方差小同类样本就接近。如图所示是同一个三维样本在两个二维平面的投影可以看出协方差大的样本越细长分散协方差小则反之。所以协方差小可以使样本更聚合也即样本投影点尽可能接近。更多协方差相关的内容请参考机器学习强基计划1-4从协方差的角度详解线性判别分析原理Python实现 考虑到特征最小相关性则应最小化Σ\boldsymbol{\varSigma }Σ的非对角线元素 综上所述PCA的优化目标为 max⁡Wtr(WTXXTW)s.t.WTWI\max {\boldsymbol{W}}\mathrm{tr}\left( \boldsymbol{W}^T\boldsymbol{XX}^T\boldsymbol{W} \right) \,\,\mathrm{s}.\mathrm{t}. \boldsymbol{W}^T\boldsymbol{W}\boldsymbol{I}Wmax​tr(WTXXTW)s.t.WTWI 设拉格朗日函数为 L(W,Θ)tr(WTXXTW)Θ,WTW−Itr(WTXXTW)tr(ΘT(WTW−I))\begin{aligned} L\left( \boldsymbol{W},\boldsymbol{\varTheta } \right) \mathrm{tr}\left( \boldsymbol{W}^T\boldsymbol{XX}^T\boldsymbol{W} \right) \left \boldsymbol{\varTheta },\boldsymbol{W}^T\boldsymbol{W}-\boldsymbol{I} \right \\mathrm{tr}\left( \boldsymbol{W}^T\boldsymbol{XX}^T\boldsymbol{W} \right) \mathrm{tr}\left( \boldsymbol{\varTheta }^T\left( \boldsymbol{W}^T\boldsymbol{W}-\boldsymbol{I} \right) \right)\end{aligned}L(W,Θ)​tr(WTXXTW)⟨Θ,WTW−I⟩tr(WTXXTW)tr(ΘT(WTW−I))​ 对降维映射W\boldsymbol{W}W的约束分为两个wiTwi1,wiTwj0(i1,2,⋯,d′,i≠j)\boldsymbol{w}{i}^{T}\boldsymbol{w}i1, \boldsymbol{w}{i}^{T}\boldsymbol{w}_j0\left( i1,2,\cdots ,d,i\ne j \right)wiT​wi​1,wiT​wj​0(i1,2,⋯,d′,ij) 先考虑第一个单位化约束则拉格朗日乘子矩阵退化为对角矩阵Λ\boldsymbol{\varLambda }Λ。现令 ∂L(W,Λ)/∂W2XXTW2WΛ0{{\partial L\left( \boldsymbol{W},\boldsymbol{\varLambda } \right)}/{\partial \boldsymbol{W}}}2\boldsymbol{XX}^T\boldsymbol{W}2\boldsymbol{W\varLambda }0∂L(W,Λ)/∂W2XXTW2WΛ0 即得XXTW−WΛ\boldsymbol{XX}^T\boldsymbol{W}-\boldsymbol{W\varLambda }XXTW−WΛ考察每个wi\boldsymbol{w}_iwi​有 XXTwi−λiwiλ~iwi\boldsymbol{XX}^T\boldsymbol{w}_i-\lambda _i\boldsymbol{w}_i\tilde{\lambda}_i\boldsymbol{w}iXXTwi​−λi​wi​λ~i​wi​ 所以W\boldsymbol{W}W是矩阵XXT∈Rd×d\boldsymbol{XX}^T\in \mathbb{R} ^{d\times d}XXT∈Rd×d进行特征值分解后对应的特征向量组成的矩阵由于特征值分解可以通过施密特正交化等方式变换为正交矩阵因此降维映射的wiTwj0\boldsymbol{w}{i}^{T}\boldsymbol{w}j0wiT​wj​0约束也成立。考虑到 tr(WTXXTW)∑i1d′wiTXXTwi∑i1d′λ~iwiTwi∑i1d′λ~i\mathrm{tr}\left( \boldsymbol{W}^T\boldsymbol{XX}^T\boldsymbol{W} \right) \sum\nolimits{i1}^{d}{\boldsymbol{w}_{i}^{T}\boldsymbol{XX}^T\boldsymbol{w}i}\sum\nolimits{i1}^{d}{\tilde{\lambda}i\boldsymbol{w}{i}^{T}\boldsymbol{w}i}\sum\nolimits{i1}^{d}{\tilde{\lambda}_i}tr(WTXXTW)∑i1d′​wiT​XXTwi​∑i1d′​λ~i​wiT​wi​∑i1d′​λ~i​ 因此取d′≪dd\ll dd′≪d个最大特征值对应的特征向量即可实现目标。 3 PCA与SVD的联系 PCA与SVD有一定联系PCA降维需要求解协方差矩阵XXT\boldsymbol{XX}^TXXT而SVD分解的过程中需要求解AAT\boldsymbol{AA}^TAAT与ATA\boldsymbol{A}^T\boldsymbol{A}ATA因此如果令AX\boldsymbol{A}\boldsymbol{X}AX那么SVD的过程中就能得到PCA所需的降维映射W\boldsymbol{W}W。 在大样本下XXT\boldsymbol{XX}^TXXT或AAT\boldsymbol{AA}^TAAT都将产生很高的复杂度但SVD已有绕过计算XXT\boldsymbol{XX}^TXXT或AAT\boldsymbol{AA}^TAAT直接进行分解的高效算法因此SVD通常作为求解PCA降维问题的工具PCA体现了SVD分解中的一个方向(左奇异或右奇异)。 4 Python实现 PCA算法的复现非常简单核心代码如下 * breif: 运行降维算法

  • param[in]: outDim - 输出样本维数
  • retval: Z - 低维样本集def run(self, outDim):# 计算协方差矩阵cov np.dot(self.X, self.X.T)# 特征值分解eigVal, eigVec np.linalg.eig(cov)# 获取最大的d个特征值对应的索引, np.argsort是按从小到大排序, 所以对特征值取负号index np.argsort(-eigVal)[0:outDim]eigVec_ eigVec[:, index]# 计算低维样本Z np.dot(eigVec_.T, self.X)return Z以鸢尾花数据集为例执行降维效果如下 本文完整工程代码请通过下方名片联系博主获取 更多精彩专栏 《ROS从入门到精通》《Pytorch深度学习实战》《机器学习强基计划》《运动规划实战精讲》… 源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系