线性判别分析(Linear Discriminant Analysis,LDA)

2023-05-16

基础不牢,地动山摇。

线性判别分析(Linear Discriminant Analysis,LDA)是一种经典的线性学习方法,它既可以用于分类问题,也可以用于有监督的特征降维。它的思想非常朴素:给定训练样本,设法将样本特征投影到向量上,并且希望同类样本的投影点越近越好异类样本的投影点越远越好。在对新样本进行分类时,照样将新样本的特征投影到这个向量上,再根据投影点的位置来确定新样本的类别。那怎么投影呢,这个“投影”是怎么实现的呢?让我们先用一张图了解一下“投影”。

上面这张图告诉我们,可以用向量的内积\dpi{150} \tiny \boldsymbol{w}^{T}\boldsymbol{x}来表示特征向量\tiny \boldsymbol{x}在向量\tiny \boldsymbol{w}上的投影距离(这个投影距离是垂直投影距离的\tiny \left \| \boldsymbol{w} \right \|倍),而\dpi{150} \tiny \boldsymbol{w}^{T}\boldsymbol{x}=w_{1}x_{1}+w_{2}x_{2},这是一个最简单的线性模型,所以我们可以理解为:这种“投影”是通过一个线性模型来实现的;实现方法为:将样本的特征向量\tiny \boldsymbol{x}投影到线性模型的权值向量\tiny \boldsymbol{w}上。

1. 线性判别分析用于二分类问题

假设现在有\tiny N个训练样本,每个样本都有\tiny D个属性(特征)和一个类别标签。由于本节仅考虑二分类问题,所以限定类别标签只能取\tiny C_{1}\tiny C_{2}。那么训练数据的形式可以如下表达(x_{ij}代表第i个样本的第j维特征,y_{i}代表第i个样本的类别标签):

(x_{11},x_{12},\cdots,x_{1D},y_{1}),(x_{21},x_{22},\cdots,x_{2D},y_{2}),\cdots (x_{N1},x_{N2},\cdots,x_{ND},y_{N}),其中 y_{i}\in\left \{ C_{1},C_{2} \right \}

为了便于使用向量运算来简化表达,将样本特征线性模型权值写成向量形式:

\boldsymbol{x}_{i}=\begin{pmatrix} x_{i1}\\ x_{i2}\\ \cdots\\ x_{iD}\end{pmatrix}\boldsymbol{w}=\begin{pmatrix} w_{1}\\ w_{2}\\ \cdots\\ w_{D}\end{pmatrix}

则样本在线性模型权值向量上的投影距离可以表达为:\boldsymbol{w}^{T}\boldsymbol{x}_{i},这是一个标量。

注意一下,这里不需要考虑偏置b哦。具体为什么不用考虑,下面会解释。

首先我们考虑如何量化异类样本投影点之间的分离程度:

最简单的方法是将两个类别的样本各自取均值,投影到权值向量上,比较两个类别均值投影点之间的距离。两类样本(\tiny C_{1}类和\tiny C_{2}类)的均值向量分别为:

\boldsymbol{m}_{C_{1}}=\frac{1}{N_{1}}\sum_{n\in C_{1}}\boldsymbol{x}_{n}\boldsymbol{m}_{C_{2}}=\frac{1}{N_{2}}\sum_{n\in C_{2}}\boldsymbol{x}_{n}

其中,N_{1}N_{2}分别是\tiny C_{1}类和\tiny C_{2}类的样本数量。

两类样本的均值向量在权值向量上的投影距离之差为:

m_{C_{2}}-m_{C_{1}}=\boldsymbol{w}^{T}\boldsymbol{m}_{C_{2}}-\boldsymbol{w}^{T}\boldsymbol{m}_{C_{1}}=\boldsymbol{w}^{T}(\boldsymbol{m}_{C_{2}}-\boldsymbol{m}_{C_{1}})

这样表达存在一个正负号的问题,所以我们用它的平方形式(m_{C_{2}}-m_{C_{1}})^2,即类间方差来量化异类样本之间的分离程度。

接着考虑如何量化同类样本投影点之间的分离程度:

让我们仅考虑\tiny C_{1}类,\tiny C_{1}类中的每个样本在权值向量上都有一个投影点,所以\tiny C_{1}类样本在权值向量上共有N_{1}个投影点。而每个投影点与\tiny C_{1}类样本的均值向量的投影点之间会有一个距离,所以\tiny C_{1}类样本共会产生N_{1}个这样的距离,将这N_{1}个距离加起来,就可以量化\tiny C_{1}类样本投影点之间的分离程度,\tiny C_{2}类同理。我们还是用投影距离之差的平方来量化,表达式如下:

s_{C_{1}}^2=\sum_{n\in C_{1}}(\boldsymbol{w}^{T}\boldsymbol{x}_{n}-m_{C{1}})^2s_{C_{2}}^2=\sum_{n\in C_{2}}(\boldsymbol{w}^{T}\boldsymbol{x}_{n}-m_{C{2}})^2

其中,s_{C_{1}}^2s_{C_{2}}^2分别叫做\tiny C_{1}类和\tiny C_{2}类的类内方差

我们用s_{C_{1}}^2+s_{C_{2}}^2来表示整个数据集的总的类内方差,用它来量化同类样本之间的分离程度。

最后综合考虑类间方差类内方差

既然我们希望异类样本离得远,同类样本尽量近,那我们将二者综合考虑,使类间方差与类内方差的比值尽可能大即可。定义想要最大化的目标函数为:

J(\boldsymbol{w})=\frac{(m_{C_{2}}-m_{C_{1}})^2}{s_{C_{1}}^{2}+s_{C_{2}}^{2}}

现在大家知道线性判别分析为什么不考虑偏置b了吗,因为经过刚刚对类间方差和类内方差的计算,你会发现,就算考虑了,最后都会被消掉的呀。所以偏置b在这里面不起作用,还不如从一开始就不考虑,还能让计算简单点。

J(\boldsymbol{w})如下图展开来写:

 

定义类间散度矩阵

\boldsymbol{S}_{B}=(\boldsymbol{m}_{C_{2}}-\boldsymbol{m}_{C_{1}})(\boldsymbol{m}_{C_{2}}-\boldsymbol{m}_{C_{1}})^T

定义类内散度矩阵

\boldsymbol{S}_{W}=\sum_{n\in C_{1}}(\boldsymbol{x}_{n}-\boldsymbol{m}_{C_{1}})(\boldsymbol{x}_{n}-\boldsymbol{m}_{C_{1}})^T+\sum_{n\in C_{2}}(\boldsymbol{x}_{n}-\boldsymbol{m}_{C_{2}})(\boldsymbol{x}_{n}-\boldsymbol{m}_{C_{2}})^T

所以J(\boldsymbol{w})可以简写为:

J(\boldsymbol{w})=\frac{\boldsymbol{w}^{T}\boldsymbol{S}_{B}\boldsymbol{w}}{\boldsymbol{w}^{T}\boldsymbol{S}_{W}\boldsymbol{w}}

这就是线性判别分析欲要最大化的目标,即\boldsymbol{S}_{W}\boldsymbol{S}_{B}的“广义瑞利商”。

J(\boldsymbol{w})关于\boldsymbol{w}求导,并令导数为0,计算如下:

\tiny \frac{\partial J(\boldsymbol{w})}{\partial \boldsymbol{w}}=\frac{(\boldsymbol{w}^{T}\boldsymbol{S}_{B}\boldsymbol{w})'\boldsymbol{w}^{T}\boldsymbol{S}_{W}\boldsymbol{w}-\boldsymbol{w}^{T}\boldsymbol{S}_{B}\boldsymbol{w}(\boldsymbol{w}^{T}\boldsymbol{S}_{W}\boldsymbol{w})'}{(\boldsymbol{w}^{T}\boldsymbol{S}_{W}\boldsymbol{w})^2}=\frac{\boldsymbol{S}_{B}\boldsymbol{w}\boldsymbol{w}^{T}\boldsymbol{S}_{W}\boldsymbol{w}-\boldsymbol{w}^{T}\boldsymbol{S}_{B}\boldsymbol{w}\boldsymbol{S}_{W}\boldsymbol{w}}{(\boldsymbol{w}^{T}\boldsymbol{S}_{W}\boldsymbol{w})^2}=0

由此可得:

\boldsymbol{S}_{B}\boldsymbol{w}(\boldsymbol{w}^{T}\boldsymbol{S}_{W}\boldsymbol{w})=(\boldsymbol{w}^{T}\boldsymbol{S}_{B}\boldsymbol{w})\boldsymbol{S}_{W}\boldsymbol{w}

可以有两种思路来求\boldsymbol{w}

思路①

思路②

\boldsymbol{S}_{B}\boldsymbol{w}(\boldsymbol{w}^{T}\boldsymbol{S}_{W}\boldsymbol{w})=(\boldsymbol{w}^{T}\boldsymbol{S}_{B}\boldsymbol{w})\boldsymbol{S}_{W}\boldsymbol{w}这个式子中,括号括起来的部分都是标量因子,我们可以将标量因子简化,简写为:

\boldsymbol{S}_{B}\boldsymbol{w}=\lambda \boldsymbol{S}_{W}\boldsymbol{w}

又根据类内散度矩阵\boldsymbol{S}_{B}=(\boldsymbol{m}_{C_{2}}-\boldsymbol{m}_{C_{1}})(\boldsymbol{m}_{C_{2}}-\boldsymbol{m}_{C_{1}})^T,可得\boldsymbol{S}_{B}\boldsymbol{w}=(\boldsymbol{m}_{C_{2}}-\boldsymbol{m}_{C_{1}}){\color{Red} (\boldsymbol{m}_{C_{2}}-\boldsymbol{m}_{C_{1}})^T\boldsymbol{w}}

红色的部分是标量因子,我们也可以将标量因子简化,可得:

\boldsymbol{S}_{B}\boldsymbol{w}=\eta (\boldsymbol{m}_{C_{2}}-\boldsymbol{m}_{C_{1}})

综合\boldsymbol{S}_{B}\boldsymbol{w}=\eta (\boldsymbol{m}_{C_{2}}-\boldsymbol{m}_{C_{1}})\boldsymbol{S}_{B}\boldsymbol{w}=\lambda \boldsymbol{S}_{W}\boldsymbol{w},可得:

\boldsymbol{w}=\frac{\eta }{\lambda }\boldsymbol{S}_{W}^{-1}(\boldsymbol{m}_{C_{2}}-\boldsymbol{m}_{C_{1}})

需要注意的是,我们并不关心{\color{Red} }\boldsymbol{w}的大小,只关心它的方向,因此我们不妨设前面的标量系数为1,则:

{\color{Red} \boldsymbol{w}=\boldsymbol{S}_{W}^{-1}(\boldsymbol{m}_{C_{2}}-\boldsymbol{m}_{C_{1}})}

得到\boldsymbol{w}之后,我们就可以根据输入样本\boldsymbol{x}得到投影距离\boldsymbol{w}^{T}\boldsymbol{x},接着我们可以选一个阈值,将样本的投影距离进行分类。常用的阈值为两类样本的均值向量的投影距离的平均值,即:

threshold=\frac{m_{C_{1}}+m_{C_{2}}}{2}=\frac{\boldsymbol{w}^{T}\boldsymbol{m}_{C_{1}}+\boldsymbol{w}^{T}\boldsymbol{m}_{C_{2}}}{2}

我们还可以从特征降维的角度理解线性判别分析用于二分类时的情况:使用一个线性模型将样本的\tiny D维特征降到一维,即降成一个标量,这个标量代表的是特征向量在权值向量上的投影距离(这个投影距离在数值上等于垂直投影距离的\tiny \left \| \boldsymbol{w} \right \|倍)。由于线性模型是在有类别监督的条件下获得的,所以可以认为降维后得到的标量含有分类信息

2. 线性判别分析用于多分类问题

假设现在有\tiny N个训练样本,每个样本都有\tiny D个属性(特征)和一个类别标签。假设样本共有K类,那么训练数据的形式可以如下表达(x_{ij}代表第i个样本的第j维特征,y_{i}代表第i个样本的类别标签):

(x_{11},x_{12},\cdots,x_{1D},y_{1}),(x_{21},x_{22},\cdots,x_{2D},y_{2}),\cdots (x_{N1},x_{N2},\cdots,x_{ND},y_{N}),其中 y_{i}\in \left \{ C_{1},C_{2},\cdots, C_{K}\right\}

分类角度思考

在这里提供一个思路:我们可以对K类样本每两类都训练一个二分类模型,故共可得到\frac{K(K-1)}{2}个二分类模型。在对新样本进行分类时,用这\frac{K(K-1)}{2}个模型都预测一次,共可获得\frac{K(K-1)}{2}个结果,选择结果中最多的那个类别作为最终预测结果。

特征降维角度思考

在之前的二分类问题中,我们使用一个线性变换将\tiny D维特征降到一维,现在类别数多了,投影成一维标量也许并不足以提供充足的分类信息。所以我们使用\tilde{D}个线性变换,每个线性变换都能将特征降到一维,\tilde{D}个线性变换可以将特征降到\tilde{D}维。为了方便计算,将\tilde{D}个线性变换的权值向量放到一个投影矩阵\boldsymbol{W}中:

\boldsymbol{W}=\left \{ \boldsymbol{w}_{1},\boldsymbol{w}_{2},\cdots, \boldsymbol{w}_{\tilde{D}}\right \}=\begin{pmatrix} w_{11} & w_{21}& \cdots& w_{\tilde{D}1}\\ w_{12}& w_{22}& \cdots& w_{\tilde{D}2}\\ \vdots & \vdots& \ddots &\vdots \\ w_{1D}& w_{2D}& \cdots& w_{\tilde{D}D}\end{pmatrix}

式中,\boldsymbol{w}_{i}表示第i个线性变换的权值向量,w_{ij}表示\boldsymbol{w}_{i}的第j个权值。

样本特征写成向量形式:

\boldsymbol{x_{i}}=\begin{pmatrix} x_{i1}\\ x_{i2}\\ \cdots\\ x_{iD}\end{pmatrix}

那么,样本在这\tilde{D}个线性变换上投影的结果可以表达为:

\boldsymbol{y}_{i}=\begin{pmatrix} y_{i1}\\ y_{i2}\\ \cdots\\ y_{i\tilde{D}}\end{pmatrix}=\begin{pmatrix} w_{11} & w_{21}& \cdots& w_{\tilde{D}1}\\ w_{12}& w_{22}& \cdots& w_{\tilde{D}2}\\ \vdots & \vdots& \ddots &\vdots \\ w_{1D}& w_{2D}& \cdots& w_{\tilde{D}D}\end{pmatrix}^{T}\begin{pmatrix} x_{i1}\\ x_{i2}\\ \cdots\\ x_{iD}\end{pmatrix}=\boldsymbol{W}^{T}\boldsymbol{x}_{i}

我们的目标就是要求得这个投影矩阵\boldsymbol{W}

定义多分类任务的全局散度矩阵=类内散度矩阵+类间散度矩阵

\boldsymbol{S}_{T}=\boldsymbol{S}_{B}+\boldsymbol{S}_{W}=\sum_{i=1}^{N}(\boldsymbol{x}_{i}-\boldsymbol{m})(\boldsymbol{x}_{i}-\boldsymbol{m})^{T}

式中,\boldsymbol{m}=\frac{1}{N}\sum_{n=1}^{N}\boldsymbol{x}_{n}代表所有样本的均值矩阵;

定义多分类任务的类内散度矩阵

总的类内散度矩阵等于每一类的类内散度矩阵之和,即:

\boldsymbol{S}_{W}=\sum_{k=1}^{K}\boldsymbol{S}_{k}

式中:\boldsymbol{S}_{k}=\sum_{n\in C_{k}}(\boldsymbol{x}_{n}-\boldsymbol{m}_{C_{k}})(\boldsymbol{x}_{n}-\boldsymbol{m}_{C_{k}})^T,代表第k类的类内散度矩阵;

式中,\boldsymbol{m}_{C_{k}}=\frac{1}{N_{C_{k}}}\sum_{n\in C_{k}}\boldsymbol{x}_{n},代表第k类的特征均值向量,N_{C_{k}}代表第k类的样本数。

计算多分类任务的类间散度矩阵

根据上图的计算,得到多分类任务的类间散度矩阵为:

\boldsymbol{S}_{B}=\sum_{k=1}^{K}N_{C_{k}}(\boldsymbol{m}_{C_{k}}-\boldsymbol{m})(\boldsymbol{m}_{C_{k}}-\boldsymbol{m})^T

与之前一样,我们想构造一个标量,当类间差异大类内差异小时,这个标量会较。构造这个标量有许多种可选择的方式,常见的一种选择是最大化目标函数:

J(\boldsymbol{W})=\frac{tr(\boldsymbol{W}^{T}\boldsymbol{S}_{B}\boldsymbol{W})}{tr(\boldsymbol{W}^{T}\boldsymbol{S}_{W}\boldsymbol{W})}

这个欲要最大化的目标函数也可以通过对\boldsymbol{S}_{W}^{-1}\boldsymbol{S}_{B}求特征值和特征向量来求解,得到特征值和特征向量后,将非零特征值从大到小排个序。由于我们将向量投影到\tilde{D}维,所以按从大到小选前\tilde{D}非零特征值,它们对应的特征向量即可组成投影矩阵\boldsymbol{W},用这个投影矩阵就可以将\tiny D维特征降到\tilde{D}维。为什么一定要非零特征值呢,因为零特征值无法使目标函数变大,所以它对应的特征向量也起不到分类作用,放进去也没用。

在这里需要注意一下,\tilde{D}始终满足\tilde{D}\leq K-1,即我们最多只能将特征维度降到K-1维,即\boldsymbol{S}_{W}^{-1}\boldsymbol{S}_{B}最多只有K-1个非零特征值。证明如下:

参考:

https://blog.csdn.net/itplus/article/details/12038441

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线性判别分析(Linear Discriminant Analysis,LDA) 的相关文章

  • cpu占用过高解决方案实践

    今天在查看项目服务器的时候 xff0c 发现cpu一直占用99 多 xff0c 于是就有了这篇文章 1 找到占用cpu高的进程 通过top命令来查看cpu占用高的进程有哪些 xff0c 如图 xff1a top 这里的pid代表的就是进程i
  • Java Stream流常用功能示例

    Steam流是Java8的新特性 xff0c 今个工作中经常用的功能写法 按条件过滤 collect span class token punctuation span span class token function stream sp
  • Mysql-->Binlog的查看

    一 使用Navicat查看binlog信息 1 查看binlog的信息 span class token keyword show span variables span class token operator like span spa
  • Linux开发环境配置---Java、Maven、Git和Nodejs

    Linux开发环境配置 1 Java环境 span class token comment 1 下载Java软件包 xff0c orcal或者openjdk都可以 xff0c 并上传到linux服务器 span span class tok
  • Linux下安装及简单使用nmap

    nmap是一款非常实用的扫描工具 xff0c 适用于linux windows mac三大主流平台 小编使用centos编译安装nmap 7 01版本 下载包 xff1a wget http nmap span class hljs pre
  • VNC server简单配置vnc

    linux 下VNC的配置 下面的命令可以结合远程shell 来进行 进程查找 xff1a ps ef grep i vnc 系统中一共有两个vnc xff1a 一个是系统管理自带的路径为 xff1a system gt perferenc
  • 元学习

    元学习是要学会任务中的特征表示 xff0c 从而在新任务上泛化 元学习主要解决的是学会如何学习的问题 元学习主要包括 xff1a zero shot One shot Few shot learning 元学习的主要方法包括 xff1a 基
  • windows media Foundation

    转自 xff1a https docs microsoft com en us windows desktop medfound microsoft media foundation sdk Microsoft Media Foundati
  • vscode nodemon打断点

    span class token number 1 span xff0c 修改 span class token keyword package span span class token punctuation span json spa
  • putty远程连接centos7的问题(time out)

    我在使用putty远程连接centos7时 xff0c 碰见了time out以及connection refused 的问题 现在总结一下 xff0c 以免之后再被绊倒 一 xff0c time out 问题分析 xff1a 我遇到的ti
  • Marvell 98DX3236系列交换机Uboot及内核文件烧写

    1 开发环境 开发板硬件相关 1 交换机开发板型号 RD XC3 24G4XG B 2 交换机CPU型号 98DX3236 3 交换机PHY芯片型号 88E1680 开发板软件相关 1 CPLD LC4032V 程序 ac3 24p jed
  • k8s学习笔记-部署Flannel网络

    主机列表 本次实验选择5台主机 xff0c 3台作为master主机 xff0c 2台作为node节点 节点ipOS版本hostname f安装软件192 168 0 1RHEL7 4k8s master01docker etcd flan
  • ROS教程四——编写Publisher和Subscriber节点(C++篇)

    本教程介绍如何使用C 43 43 编写发布者和订阅者节点 1 编写 Publisher Node 节点 是连接到ROS网络的可执行文件的ROS术语 现在将创建一个发布者 xff08 publisher talker xff09 节点 xff
  • 在Ubuntu系统中设置中文!!!

    建议在观看本篇前先观看上一篇修改Ubuntu系统下载源 Ubuntu系统下面可以配置中文 1 xff0c 设置 gt 系统设置 2 xff0c 选择区域与语言 单击管理已安装的语言 3 xff0c 单击添加或者删除语言 4 xff0c 选择
  • 视觉问答项目

    视觉问答项目 1 项目地址 本笔记项目包括如下 xff1a MCAN Deep Modular Co Attention Networks for Visual Question Answering 用于VQA的深层模块化的协同注意力网络
  • 基于形状的模板匹配(Shape-Based)

    称为基于边缘方向梯度的匹配 xff0c 是一种最常用也是最前沿的模板匹配算法 xff08 一 xff09 根本思想 以物体边缘的梯度相关性作为匹配标准 xff08 二 xff09 原理 提取ROI中的边缘特征 xff0c 结合灰度信息创建模
  • Hadoop基础教程-第7章 MapReduce进阶(7.1 MapReduce过程)(草稿)

    第7章 MapReduce进阶 7 1 MapReduce过程 7 1 1 input 一般而言 xff0c 数据文件都会上传到HDFS上 xff0c 也就是说HDFS上的文件作为MapReduce的输入 已知block块大小是128M x
  • RedHat Linux 5企业版开启VNC Server远程桌面功能手记

    环境 xff1a RedHat Linux 5企业版 Xwindows xff1a gnome xff08 红帽默认安装的图形界面 xff09 尽管我们可以使用SSH连接远程通过字符界面来操作Linux xff0c 但是对于更多熟悉图形人来
  • man: can't change directory to '/root': Permission denied

    执行 man 命令报错 man can t change directory to root Permission denied man command exited with status 255 sed e 错误原因 用户权限不够 解决
  • 树莓派3B入门开发之(一)--简介

    介绍 树莓派3B 树莓派是一个小型的单板计算机 通过将键盘 xff0c 鼠标 xff0c 显示器等外围设备连接到Raspberry Pi xff0c 它将作为一台迷你个人电脑 Raspberry Pi广泛用于实时图像 视频处理 xff0c

随机推荐

  • 3.19、BI之SSIS之数据流转换(合并)

    BI之SSIS之数据流转换 xff08 Union xff09 1 使用 合并 前必须先对数据进行排序 xff0c 否则会报错 xff0c 而union all则不需要排序 xff0c 这是它们二者的区别 2 新建SSIS包 3 控制流 拖
  • 3.20、BI之SSIS之数据流转换(合并连接)

    BI之SSIS之数据流转换 xff08 合并连接 xff09 1 合并联接转换功能是将两个已排序的输入列的数据通过使用FULL JOIN Left JOIN或INNERR JOIN联接形成一个输出数据集 它类似于T SQL语句中的连接查询语
  • 缓存小技巧--异步更新缓存时remove cache数据

    在支撑大规模 高并发 高可用的互联网应用中 xff0c 异步更新分布式缓存的应用已经越来越多了 xff08 为什么是异步更新缓存 xff0c 因为异步不仅可以提高系统性能 xff0c 而且提高系统的伸缩性和可用性 xff09 xff0c 由
  • pixhawk 2.4.6 pix2.4.8 原理图PCB二层板

    pixhawk 2 4 6 pix2 4 8 原理图PCB二层板 www cirmall com circuit 21579
  • Dockerfile简单使用入门

    什么是 Dockerfile xff1f Dockerfile 是一个用来构建镜像的文本文件 xff0c 文本内容包含了一条条构建镜像所需的指令和说明 docker build命令用于从Dockerfile构建映像 可以在docker bu
  • 什么是私有云?您应该知道的 6 个优势

    私有云是指单个业务实体或目标用户可以单独访问特定云计算环境中指定的硬件和软件资源 私有云类似于其他形式的云环境 xff0c 因为它通过物理组件提供虚拟化资源 私有云的优势 私有云的六大主要优势包括可预测的服务器使用 提高资源利用率 降低成本
  • CORD 4.1:打造实现边缘计算的最佳平台

    开放网络基金会 xff08 ONF xff09 周一发布了CORD 4 1版本的代码 xff0c 该版本的代码新增的功能为CORD项目注入了新的活力 xff0c 该版本是CORD项目独立一年半以来发布的一个重要的版本 xff0c 本次版本的
  • linux 查看动态库和可执行程序依赖库

    Linux动态库 一 objdump二 readelf三 ldd四 进程是否依赖指定五 动态库搜索路径顺序 一 objdump span class token comment 查看依赖的库 span objdump x xxx so sp
  • putty远程连接linux显示连接超时

    这个问题可真坑爹啊 一开始我百度谷歌了老长时间 xff0c ping一下也没有问题 xff0c 原来是关电脑后虚拟机的ip会发生变化 xff0c 重新连接就好了 xff0c 希望对大家有所帮助
  • Ubuntu 14.04安装openssh7.5

    因公司系统上线 xff0c 客户方 xff08 中国电信 xff09 入网需要系统安全评估报告 xff0c 根据第三方公司测试 xff0c 测出openssh有远程漏洞 xff0c 第三方测试公司提出整改建议 xff0c 升级最新的open
  • ovs测试vlan

    ovs端口默认是trunk模式 xff0c 且所有的VLAN tag都可以通过 单个网桥实现vlan隔离的场景 实验拓扑如下 xff1a 1 首先创建一个网桥ovs switch xff0c 在命名空间里创建两个接口p0和p1 分别分配地址
  • [STM32CubeIDE]FreeRTOS创建线程的方法

    1 在Device Configuration Tool 中 xff0c 依次选择Pinout amp Configuration gt Categories gt Middleware gt FREERTOS interface 选择CM
  • [STM32CubeIDE]使用freertos时Timebase Source为什么不能设定为SysTick

    参考https www digikey com en maker projects getting started with stm32 introduction to freertos ad275395687e4d85935351e16e
  • [CMSIS-RTOS2]rtos 基本概念

    特点 xff1a 利于采用更加面向对象的设计方法 多任务处理 相较于过程化的C xff0c 需要考虑的是任务线程设计及线程间的数据流 有助于项目管理 代码重用和软件测试 rtos需要额外的内存 xff0c 中断响应变慢 基本元素 xff1a
  • lvgl 2048 sample

    64 file simple test c INCLUDES include 34 simple test h 34 if LV 100ASK 2048 SIMPLE TEST 61 0 DEFINES TYPEDEFS
  • lvgl page manage 代码学习

    64 file lv 100ask page manager c INCLUDES include 34 lv 100ask page manager h 34 if LV USE 100ASK PAGE MANAGER 61 0 DEFI
  • 如何使用PowerShell查看以及设置环境变量

    以前win xp时代使用cmd xff0c 在文件夹中shift 43 右键弹出菜单中有打开cmd窗口 到了Win10 xff0c cmd 变成了PowerShell xff0c 并不是说cmd不存在了 xff0c 只是弹出菜单变成了pow
  • 边缘计算

    多接入边缘计算 xff08 MEC xff09 是云计算之后的又一项突破性技术 xff0c 该技术有望使得应用和内容更接近网络边缘 xff0c 能够降低网络延迟 xff0c 并提供新的服务 iGR Research的分析师Iain Gill
  • 从Ubuntu 16 升级到Ubuntu 18

    原地址 xff1a https www bingyublog com 2018 04 27 E5 A6 82 E4 BD 95 E4 BD BF E7 94 A8 E5 91 BD E4 BB A4 E4 BB 8EUbuntu16 04L
  • 线性判别分析(Linear Discriminant Analysis,LDA)

    基础不牢 xff0c 地动山摇 线性判别分析 xff08 Linear Discriminant Analysis xff0c LDA xff09 是一种经典的线性学习方法 xff0c 它既可以用于分类问题 xff0c 也可以用于有监督的特