Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >正交匹配追踪

正交匹配追踪

作者头像
卡尔曼和玻尔兹曼谁曼
发布于 2023-12-01 00:53:00
发布于 2023-12-01 00:53:00
2570
举报

这篇博文是在对Koredianto Usman《Introduction to Orthogonal Matching Pursuit》文章的翻译,后面附带了一些总结.

这篇文章是前面《Matching Pursuit (MP)》文章的继续. (注:原文中还是有一些小细节错误,请大家睁大眼睛阅读)

简介

考虑下面的问题:给定

x = \begin{bmatrix}-1.2 & 1 & 0\end{bmatrix}

\mathrm{A} = \begin{bmatrix}-0.707 & 0.8 & 0 \\ 0.707 & 0.6 & -1\end{bmatrix}

,计算

y = \mathrm{A} \cdot x

.

这相当简单!

y = \mathrm{A} \cdot x = \begin{bmatrix}-0.707 & 0.8 & 0 \\ 0.707 & 0.6 & -1\end{bmatrix} \cdot \begin{bmatrix}-1.2 & 1 & 0\end{bmatrix} = \begin{bmatrix}1.65 \\ -0.25\end{bmatrix}

现在是比较困难的部分!给定

y = \begin{bmatrix}1.65 \\ -0.25\end{bmatrix}

\mathrm{A} = \begin{bmatrix}-0.707 & 0.8 & 0 \\ 0.707 & 0.6 & -1\end{bmatrix}

,如何找到原始的

x

(或者尽可能接近原始的

x

)?

在压缩感知(Compressive Sensing)术语中,从

x

\mathrm{A}

中得到

y

叫做压缩,反之,从

y

\mathrm{A}

得到

x

叫重建(个人感觉原文中好像说反了,还是我理解错了?). 重建问题不是一个很简单的问题。

一般地,

x

被称为original signal或者original vector,

\mathrm{A}

被称为compression matrix或者sensing matrix,

y

称为compressed signal或者compressed vector.

基本概念

和前面在MP算法中讨论过的一样,感知矩阵

\mathrm{A}

可以看做列向量的集合:

\mathrm{A} = \begin{bmatrix}-0.707 & 0.8 & 0 \\ 0.707 & 0.6 & -1\end{bmatrix} = \begin{bmatrix}b_1 & b_2 & b_3\end{bmatrix}

其中,

b_1 = \begin{bmatrix}-0.707 \\ 0.707\end{bmatrix}, \qquad b_2 = \begin{bmatrix}-0.8 \\ 0.6\end{bmatrix}, \qquad b_1 = \begin{bmatrix}0 \\ -1\end{bmatrix}

这些列被称为基(basis)或者原子(atom).

现在,我们令

x = \begin{bmatrix}x_1 \\ x_2 \\ x_3\end{bmatrix}

,则

\mathrm{A} \cdot x = \begin{bmatrix}-0.707 \\ 0.707\end{bmatrix} \cdot x_1 + \begin{bmatrix}0.8 \\ 0.6\end{bmatrix} \cdot x_2 + \begin{bmatrix}0 -1\end{bmatrix} \cdot x_3 = y

.

从该方程可以看出

y

是使用

x

中的稀疏对原子的线性组合. 实际上,我们知道

x_1 = -1.2

x_2 = 1

x_3 = 0

. 换言之,对于得到

y

值,

b_1

的贡献值为-1.2,

b_2

为1,而

b_2

为0.

OMP算法和MP算法类似,都是从字典中找出哪一个原子对

y

值的贡献最大,接下来是哪个原子的贡献值大,以此类推. 我们现在知道这个过程需要

N

次迭代,

N

是字典中原子的个数. 在该例子中,

N

等于3.

计算原子的贡献值

字典中有三个原子,

b_1 = \begin{bmatrix}-0.707 \\ 0.707\end{bmatrix}, \qquad b_2 = \begin{bmatrix}-0.8 \\ 0.6\end{bmatrix}, \qquad b_1 = \begin{bmatrix}0 \\ -1\end{bmatrix}

y = \begin{bmatrix}1.65 \\ -0.25\end{bmatrix}

因此,各原子对

y

的贡献值为

<b_1, y> = \begin{bmatrix}-0.707 \\ 0.707\end{bmatrix}^{\mathrm{T}} \cdot \begin{bmatrix}1.65 \\ -0.25\end{bmatrix} = -0.707 \cdot -1.65 + 0.707 \cdot -0.25 = -1.34
<b_2, y> = 1.17

<script type="math/tex" id="MathJax-Element-41"> = 0.25</script>

显然,原子

b_1

y

值的贡献最大为-1.34(按绝对值计算).

在第一次迭代过程中,我们选择

b_1

作为基,基的系数为-1.34.

当然,我们也可以使用矩阵的形式计算点积:

w = \mathrm{A}^{\mathrm{T}} \cdot y = \begin{bmatrix}-0.707 & 0.707 \\ 0.8 & 0.6 \\ 0 & -1\end{bmatrix} \cdot \begin{bmatrix}1.65 \\ -0.25\end{bmatrix} = \begin{bmatrix}-1.34 \\ 1.17 \\ 0.25\end{bmatrix}

原子和

y

的几何意义如图1:

计算残差

现在已经选定了第一个基

b_1 = \begin{bmatrix}-0.707 \\ 0.707\end{bmatrix}

,贡献值系数为

\lambda_1 = -1.34

. 将该部分贡献值从

y

中减去,残差为

r = y - \lambda_1 \cdot b_1 = \begin{bmatrix}1.65 \\ -0.25\end{bmatrix} - (-1.34) \cdot \begin{bmatrix}-0.707 \\ 0.707\end{bmatrix} = \begin{bmatrix}0.7 \\ 0.7\end{bmatrix}

残差的几何意义如图2:

重复迭代

经过第一次迭代,我们选择出了基

b_1

. 将选择出的基加入新的矩阵

\mathrm{A}_{new}

,即:

\mathrm{A}_{new} = [b_1] = \begin{bmatrix}-0.707 \\ 0.707\end{bmatrix}

贡献系数矩阵可以写成

x_{rec} = \begin{bmatrix}-1.34 \\ 0 \\ 0\end{bmatrix}

第一个元素是第一个贡献值-1.34,对应着第一个第一个基

b_1

.

残差值为

r = \begin{bmatrix}0.7 \\ 0.7\end{bmatrix}

现在需要从剩下的基

b_2

b_3

中选择对残差

r

贡献最大的.

w = \begin{bmatrix}b_2 \\ b_3\end{bmatrix}^{\mathrm{T}} \cdot r = \begin{bmatrix}0.98 \\ -0.7\end{bmatrix}

所以,

b_2

的贡献值更大一些是0.98.

我们将选择的基

b_2

添加到

\mathrm{A}_{new}

得到

\mathrm{A}_{new} = \begin{bmatrix}b_1 & b_2\end{bmatrix} = \begin{bmatrix}-0.707 & 0.8 \\ 0.707 & 0.6\end{bmatrix}

接下来的步骤和MP算法稍微有些不同. 这里,我们需要计算

\mathrm{A}_{new}

y

的贡献(而不是

b_2

r

的贡献)

我们使用最小二乘法(Least Square Problem)解决该该贡献值问题:

如何求得

\lambda_1

\lambda_2

的值使得

\lambda_1 \cdot \begin{bmatrix}-0.707 \\ 0.707\end{bmatrix} + \lambda_2 \cdot \begin{bmatrix}0.8 \\ 0.6\end{bmatrix}

最接近

y = \begin{bmatrix}1.65 \\ -0.25\end{bmatrix}

表示成数学语言为:

\min \|\mathrm{A}_{new} \cdot \mathbf{\lambda} - y\|_2

在这个例子中,即

\min \|\begin{bmatrix}b_1 & b_2\end{bmatrix} = \begin{bmatrix}-0.707 & 0.8 \\ 0.707 & 0.6\end{bmatrix} \cdot \begin{bmatrix}\lambda_1 \\ \lambda_2\end{bmatrix} - \begin{bmatrix}1.65 \\ -0.25\end{bmatrix}\|_2

对于

\min \|\mathrm{A}_{new} \cdot \mathbf{\lambda} - y\|_2

的解可以直接使用公式:

\mathbf{\lambda} = \mathrm{A}_{new}^+ \cdot y

其中,

\mathrm{A}_{new}^+

\mathrm{A}_{new}

的谓逆,

\mathrm{A}_{new}^+ = (\mathrm{A}_{new}^{\mathrm{T}} \cdot \mathrm{A}_{new})^{-1} \cdot \mathrm{A}_{new}^{\mathrm{T}}

(注:可参看我的博文《Moore-Penrose广义逆矩阵》和《矛盾方程的最小二乘解法》)

在我们的例子中

\mathrm{A_{new}^+} = \begin{bmatrix}-0.707 & 0.8 \\ 0.707 & 0.6\end{bmatrix}^+ = \begin{bmatrix}-0.6062 & 0.8082 \\ 0.7143 & 0.7143\end{bmatrix}

可以使用MATLAB中的内置函数pinv()进行伪逆的计算.

得到

\mathrm{A_{new}^+}

后,可以计算

\mathbf{\lambda}
\mathbf{\lambda} = \mathrm{A}_{new}^+ \cdot y = \begin{bmatrix}-0.6062 & 0.8082 \\ 0.7143 & 0.7143\end{bmatrix} \cdot \begin{bmatrix}1.65 \\ -0.25\end{bmatrix} = \begin{bmatrix}-1.2 \\ 1\end{bmatrix}

得到

\mathbf{\lambda}

以后,更新系数矩阵

x_{rec}

x_{rec} = \begin{bmatrix}-1.2 \\ 1 \\ 0\end{bmatrix}

同样的,

\mathbf{\lambda}

x_{rec}

第一个元素和第二个元素对应着选择出来的第一个和第二个基.

得到

\mathrm{A}_{new}

\mathbf{\lambda}

以后,我们可以计算残差

r = y - \mathrm{A}_{new} \cdot \mathbf{\lambda} = \begin{bmatrix}1.65 \\ -0.25\end{bmatrix} - \begin{bmatrix}-0.707 & 0.8 \\ 0.707 & 0.6\end{bmatrix} \cdot \begin{bmatrix}—1.2 \\ 1\end{bmatrix} = \begin{bmatrix}0 \\ 0\end{bmatrix}

此时,残差值为

\begin{bmatrix}0 \\ 0\end{bmatrix}

,我们可以停止计算或者继续下一步计算(这里停止,可以节省一些计算工作).

最后一次迭代

这一步不是必须的,因为残差已经完全消除了(很多实现OMP的软件都需要输入稀疏度

K

参数,这样经过

K

次迭代以后,无论残差大小都会停止迭代).

重新组织信号系数

x_{rec} = \begin{bmatrix}-1.2 \\ 1 \\ 0\end{bmatrix}

,这刚好是原始的系数.

其他例子

给定

x = \begin{bmatrix}0 \\ 3 \\ 1 \\ 2\end{bmatrix}

\mathrm{A} = \begin{bmatrix}-0.8 & 0.3 & 1 & 0.4 \\ -0.2 & 0.4 & -0.3 & -0.4 \\ 0.2 & 1 & -0.1 & 0.8 \end{bmatrix}

求得

y = \mathrm{A} \cdot x = \begin{bmatrix}2.7 \\ 0.1 \\ 4.5\end{bmatrix}

现在给定

\mathrm{A}

y

,使用OMP算法求解

x

.

  1. 我们有4个基(原子):
b_1 = \begin{bmatrix}-0.8 \\ -0.2 \\ 0.2\end{bmatrix} \qquad b_2 = \begin{bmatrix}0.3 \\ 0.4 \\ 1\end{bmatrix} \qquad b_3 = \begin{bmatrix}1 \\ -0.3 \\ -0.1\end{bmatrix} \qquad b_4 = \begin{bmatrix}0.4 \\ -0.4 \\ 0.8\end{bmatrix} \qquad
  1. 由于基向量的长度不是1,所以我们首先进行标准化.
\hat{b_1} = b_1 / \|b_1\| = \begin{bmatrix}-0.8 \\ -0.2 \\ 0.2\end{bmatrix} / \sqrt{(-0.8)^2 + (-0.4)^2 + (0.2)^2} = \begin{bmatrix}-0.9428 \\ -0.2357 \\ 0.2357\end{bmatrix}
\hat{b_2} = b_2 / \|b_2\| = \begin{bmatrix}0.2680 \\ 0.3578 \\ 0.8940\end{bmatrix}
\hat{b_3} = b_3 / \|b_3\| = \begin{bmatrix}0.9535 \\ -0.2860 \\ 0.0953\end{bmatrix}
\hat{b_2} = b_2 / \|b_2\| = \begin{bmatrix}0.4082 \\ -0.4082 \\ -0.8165\end{bmatrix}
  1. 标准化的基向量对
y

的贡献

w
w = \hat{\mathrm{A}}^{\mathrm{T}} \cdot y = \begin{bmatrix}-0.9428 & 0.2680 & 0.9535 & 0.4082 \\ -0.2357 & 0.3578 & -0.2860 & -0.4082\\ 0.2357 & 0.9840 & -0.0953 & -0.8165\end{bmatrix}^{\mathrm{T}} \cdot \begin{bmatrix}2.7 \\ 0.1 \\ 4.5\end{bmatrix} = \begin{bmatrix}-1.5085 \\ 4.7852 \\ 2.1167 \\ 4.7357\end{bmatrix}
  1. 第二个基向量
b_2

贡献值最大,所以将

b_2

加入到

\mathrm{A}_{new}
\mathrm{A}_{new} = b_2 = \begin{bmatrix}0.3 \\ 0.4 \\ 1\end{bmatrix}
  1. 利用最小二乘法计算
x_{rec}
L_p = \mathrm{A}_{new}^+ \cdot y = [4.28]

因为

L_p

对应着第二个基向量,所以

x_{rec} = \begin{bmatrix}0 \\ 4.28 \\ 0 \\ 0\end{bmatrix}
  1. 接下来计算残差
r = y - \mathrm{A}_{new} \cdot L_p = \begin{bmatrix}2.7 \\ 0.1 \\ 4.5\end{bmatrix} - \begin{bmatrix}0.3 \\ 0.4 \\ 1\end{bmatrix} \cdot 4.28 = \begin{bmatrix}1.416 \\ -1.612 \\ 0.22\end{bmatrix}
  1. 接下来重复第3步,计算
\hat{b_1}

\hat{b_1}

\hat{b_1}

r

的贡献.

w = \hat{\mathrm{A}}^{\mathrm{T}} \cdot r = \begin{bmatrix}-0.9428 & 0.9535 & 0.4082 \\ -0.2357 & -0.2860 & -0.4082\\ 0.2357 & -0.0953 & -0.8165\end{bmatrix}^{\mathrm{T}} \cdot \begin{bmatrix}1.416 \\ -1.612 \\ 0.22\end{bmatrix} = \begin{bmatrix}-0.9032 \\ 1.7902 \\ 1.4158\end{bmatrix}

选择第二个贡献最大的基

b_3

,其贡献值为1.7902.

  1. 将选择的
b_3

加入到

\mathrm{A}_{new}

\mathrm{A}_{new} = \begin{bmatrix}b_1 & b_2\end{bmatrix} = \begin{bmatrix}0.3 & 1\\ 0.4 & -0.3\\ 1 & -0.1\end{bmatrix}
  1. 用最小二乘法计算
L_p = \mathrm{A}_{new}^+ \cdot y = \begin{bmatrix}4.1702 \\ 1.7149\end{bmatrix}

这个

L_p

对应着

b_2

b_3

,因此

x_{rec} = \begin{bmatrix}0 \\ 4.172 \\ 1.7149 \\ 0\end{bmatrix}
  1. 接着计算残差
r = y - \mathrm{A}_{new} \cdot L_p = \begin{bmatrix}2.7 \\ 0.1 \\ 4.5\end{bmatrix} - \begin{bmatrix}0.3 & 1\\ 0.4 & -0.3\\ 1 & -0.1\end{bmatrix} \cdot \begin{bmatrix}4.172 \\ 1.7149\end{bmatrix} = \begin{bmatrix}-0.266 \\ -1.0536 \\ 0.5012\end{bmatrix}
  1. 重复步骤2,进行最后一次迭代
  2. 计算
b_1

b_4

的贡献值

w = \begin{bmatrix}\hat{b_1} & \hat{b_2}\end{bmatrix} \cdot r = \begin{bmatrix}-0.9428 & 0.4082 \\ -0.2357 & -0.4082\\ 0.2357 & -0.8165\end{bmatrix}^{\mathrm{T}} \cdot \begin{bmatrix}-0.266 \\ -1.0536 \\ 0.5012\end{bmatrix} = \begin{bmatrix}0.6172 \\ 0.7308\end{bmatrix}

这里

b_4

提供了最大贡献值0.7308.

b_4

加入

\mathrm{A}_{new} = \begin{bmatrix}0.3 & 1 & 0.4 \\ 0.4 & -0.3 & -0.4 \\ 1 & -0.1 & 0.8\end{bmatrix}
  1. 利用最小二乘计算
L_p = \mathrm{A}_{new}^+ \cdot y = \begin{bmatrix}3 \\ 2 \\1\end{bmatrix}

,对应的

x_{rec} = \begin{bmatrix}0 \\ 3 \\ 1 \\ 2\end{bmatrix}
  1. 接着计算残差
r = y - \mathrm{A}_{new} \cdot L_p = \begin{bmatrix}2.7 \\ 0.1 \\ 4.5\end{bmatrix} - \begin{bmatrix}0.3 & 1 & 0.4\\ 0.4 & -0.3 & -0.4\\ 1 & -0.1 & 0.8\end{bmatrix} \cdot \begin{bmatrix}3 \\ 1 \\ 2\end{bmatrix} = \begin{bmatrix}0 \\ 0 \\ 0\end{bmatrix}
  1. 我们的迭代到此为止,因为此时残差已经为0,重建的
x

x_{rec} = \begin{bmatrix}0 \\ 3 \\1 \\2\end{bmatrix}

,和原来的信号相同.

需要注意的问题

通过上面的迭代计算过程,我们应该注意如下几点:

  1. OMP中最大贡献值的计算需要对基向量进行标准化处理,不是由原始基得到的.
  2. 如果给定的基向量已经是单位向量,则不需要进行标准化.
  3. 基向量对
y

值的贡献的计算是通过标准化以后的基向量和残差的点积进行计算的.

  1. 在MP算法中,重建系数
x_{rec}

的计算是通过基向量和残差的点积进行计算的,在OMP算法中,

x_{rec}

的计算是通过最小二乘法得到

\mathrm{A}_{new}

相对于

y

的系数得到的,即

L_p

的计算.

L_p

向量中的值直接对应于

x_{rec}

的相应位置.

\mathrm{A}_{new}

通过每次对基向量的选择得到. 这个过程是需要时间的,因此OMP比MP慢. (不是应该OMP收敛的快吗?)

  1. 残差
r

的计算通过原始的

y

值和

\mathrm{A}_{new}

L_p

得到.

  1. 迭代的次数最多等于
\mathrm{A}

矩阵的行数M,或者如果给定了稀疏度

K

,则迭代

K

次. 如果

K < M

,则已知的

K

可以加快计算结束,如果

K

未知,则迭代

M

次.

说明总结

在正交匹配追踪OMP中,残差总是与已经选择过的原子正交的。这意味着一个原子不会被选择两次,结果会在有限的几步收敛。

OMP算法 步骤描述:

输入:字典矩阵

\mathrm{A}

,采样向量

y

,稀疏度

k

.

输出:

x

K

稀疏逼近

\hat{x}

.

初始化:残差

r_0 = y

,索引集

\Lambda_0 = \emptyset

t=1

.

循环执行步骤1-5:

  1. 找出残差
r

和字典矩阵的列

\mathrm{A}_i

积中最大值所对应的脚标

\lambda

,即

\lambda_t = \arg \max_{i=1,\cdots, N}\left|<r_{t-1},\mathrm{A}_i>\right|

.

  1. 更新索引集
\Lambda_t = \Lambda_{t-1} \cup \{\lambda_t\}

,记录找到的字典矩阵中的重建原子集合

A_t = [A_{t-1}, A_{\lambda_t}]

.

  1. 由最小二乘得到
\hat{x}_t = \arg \min \left|| y - A_t \hat{x} |\right|

.

  1. 更新残差
r_t = y - A_t \hat{x}_t

t=t+1

.

  1. 判断是否满足
t > K

,若满足,则迭代停止;若不满足,则继续执行步骤1.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
匹配追踪算法(MP)简介
分割原始图像为若干个\sqrt{n} \times \sqrt{n}的块. 这些图像块就是样本集合中的单个样本y = \mathbb{R}^n. 在固定的字典上稀疏分解y后,得到一个稀疏向量. 将所有的样本进行表征一户,可得原始图像的稀疏矩阵. 重建样本y = \mathbb{R}^n时,通过原子集合即字典\mathrm{D} = \{d_i\}^k_{i=1} \in \mathbb{R}^{n \times m} (n < m)中少量元素进行线性组合即可:
卡尔曼和玻尔兹曼谁曼
2019/01/22
3.2K0
匹配追踪算法(MP)简介
矩阵分析复习题
设\alpha为线性空间V(\mathbb{F})中非零向量,若\mathbb{F}中数k_1与k_2不相等,试证:k_1\alpha\neq k_2\alpha
mathor
2021/04/02
1.6K0
Markov与HMM
马尔可夫模型(Markov Model)和回归、分类那些处理相互独立的样本数据的模型不同,它用于处理时间序列数据,即样本之间有时间序列关系的数据。Markov最核心的思想是:"当前状态只与上一时刻状态有关,而与之前其它任何时刻的状态都无关"。我个人觉得这是Markov最大的问题,至于为什么,放在文章后面。下面先举个例子具体讲解一下Markov模型
mathor
2020/02/25
6160
有限元 | 基于虚功原理推导梁单元刚度矩阵
分别为各节点的挠度和转角。利用函数插值、几何方程、物理方程以及势能计算公式,可以将单元的所有力学参量用节点位移列阵
fem178
2024/03/13
1.2K0
有限元 | 基于虚功原理推导梁单元刚度矩阵
有限元 | 弹性支座
fem178
2024/04/10
1400
有限元 | 弹性支座
隐马尔科夫模型(HMM)笔记(公式+代码)
隐马尔科夫模型(hidden Markov model,HMM)是可用于标注问题的统计学习模型,描述由隐藏的马尔可夫链随机生成观测序列的过程,属于生成模型。隐马尔可夫模型在语音识别、自然语言处理、生物信息、模式识别等领域有着广泛的应用。
Michael阿明
2020/07/13
5.4K0
隐马尔科夫模型(HMM)笔记(公式+代码)
【运筹学】表上作业法 ( 最优解判别 | 初始基可行解 | 运费修改可行性方案 | 闭回路法 )
在上两篇博客 【运筹学】表上作业法 ( 求初始基可行解 | 最小元素法 ) , 【运筹学】表上作业法 ( 最小元素法分析 | Vogel 方法 ) 中 , 分别给出了表上作业法如何找初始基可行解 , 两种方法 " 最小元素法 " 和 " Vogel 方法 ( 差额法 ) " , 其中 Vogel 方法 得到的初始基可行解更靠近最优解 ;
韩曙亮
2023/03/28
6460
【运筹学】表上作业法 ( 最优解判别 | 初始基可行解 | 运费修改可行性方案 | 闭回路法 )
DPN: 考虑用户行为模式的点击率(CTR)预估方法
本文方法主要针对ctr预估中的用户行为建模提出相应的模型,用户交互历史包含了不同的行为模式,反映用户的习惯性范式。本文所提方法利用用户行为模式,将目标注意力(TA)机制扩展到目标模式注意力(TPA)机制,以对行为模式之间的依赖关系进行建模。
秋枫学习笔记
2024/04/30
3730
DPN: 考虑用户行为模式的点击率(CTR)预估方法
信息率失真函数与平均互信息
Theorem [Rate-Distortion]. 以小于或等于失真 D 去重构无记忆信源所需的最小信源输出 bit/sym 称为率失真函数 (rate-distortion function),用 R(D) 表示, 记为
timerring
2023/04/12
7840
信息率失真函数与平均互信息
UCB Data100:数据科学的原理和技巧:第十一章到第十二章
上次,我们介绍了建模过程。我们建立了一个框架,根据一套工作流程,预测目标变量作为我们特征的函数:
ApacheCN_飞龙
2024/01/13
2330
UCB Data100:数据科学的原理和技巧:第十一章到第十二章
WSDM'22「谷歌」更快,更准,更可扩展:利用随机游走做会话推荐
S-Walk主要包含三个部分,分别是transition model(直译:转换模型), teleportation model(直译:传送模型)以及具有重启的随机游走(RWR)。
秋枫学习笔记
2022/09/19
4940
【运筹学】表上作业法 ( 找初始基可行解 | 计算检验数 | 调整运量 )
文章目录 一、运输规划问题 二、找初始基可行解 三、计算检验数 四、调整运量 ( 换基 ) 一、运输规划问题 ---- 运输规划问题 : 二、找初始基可行解 ---- 使用最小元素法求得的初始基可行解 : B 1 \rm B_1 B1​ B
韩曙亮
2023/03/28
4110
【运筹学】表上作业法 ( 找初始基可行解 | 计算检验数 | 调整运量 )
ICDE'21「京东」推荐系统:多行为融合的图神经网络GNMR
在实际生活中,用户的行为通常是多样的,比如点击,购买,浏览等,而对于这些多类型的行为,常见的面向单行为的推荐方法是不具备优势的,因此本文提出了基于图神经网络的多行为推荐方法GNMR。
秋枫学习笔记
2022/09/19
9430
【数据挖掘】神经网络 后向传播算法 ( 线性回归与逻辑回归 | 单个神经元本质及逻辑 | 神经网络每一层分析 | 神经网络矩阵形式 | 线性变换与非线性变换 )
, 自变量和因变量之间的关系是一条直线 , 叫做一元线性回归分析 ; 如果有多个自变量 , 自变量与因变量是线性关系 , 叫做多远线性回归分析 ;
韩曙亮
2023/03/27
3590
【数据挖掘】神经网络 后向传播算法 ( 线性回归与逻辑回归 | 单个神经元本质及逻辑 | 神经网络每一层分析 | 神经网络矩阵形式 | 线性变换与非线性变换 )
【运筹学】线性规划数学模型 ( 求解基矩阵示例 | 矩阵的可逆性 | 线性规划表示为 基矩阵 基向量 非基矩阵 非基向量 形式 )
个矩阵都是可逆矩阵 , 都可以作为基矩阵 , 当选中一个基矩阵时 , 其对应的列向量就是基向量 , 对应的变量 , 就是基变量 , 剩余的变量是非基变量 ;
韩曙亮
2023/03/28
1.4K0
【运筹学】线性规划数学模型 ( 求解基矩阵示例 | 矩阵的可逆性 | 线性规划表示为 基矩阵 基向量 非基矩阵 非基向量 形式 )
对点云匹配算法ICP、PL-ICP、NICP和IMLS-ICP的理解
点云匹配算法是为了匹配两帧点云数据,从而得到传感器(激光雷达或摄像头)前后的位姿差,即里程数据。匹配算法已经从最初的ICP方法发展出了多种改进的算法。他们分别从配准点的寻找,误差方程等等方面进行了优化。下面分别介绍:
首飞
2022/08/17
5.7K0
行为感知Transformer:用于多行为序列推荐的
本文主要针对序列推荐中的多行为序列推荐,即行为序列中包含不同的行为类型,比如点击,加购,购买等。为了捕获用户的个性化行为模式和行为间的复杂协作关系,作者提出PBAT方法:
秋枫学习笔记
2024/02/27
6120
行为感知Transformer:用于多行为序列推荐的
神经网络入门基础知识
1943年心理学家W.S. McCulloch和数理逻辑学家W.Pitts研究出人工神经元,称为M-Р模型。
timerring
2023/07/05
1.8K0
神经网络入门基础知识
Reed-Solomon纠删码简析
Reed-Solomon编码(又叫RS编码、里德-所罗门编码)作为一种前向纠错编码,是一种很常见的数据冗余技术,也就是通过对数据增加冗余部分来保证当数据丢失时能够在一定程度上进行恢复。最典型的应用就是在现在最流行的QR二维码的编码设计中。
mythsman
2022/11/14
1.9K0
PyTorch 学习 -6- 损失函数
功能:计算二分类任务时的交叉熵(Cross Entropy)函数。在二分类中,label是{0,1}。对于进入交叉熵函数的input为概率分布的形式。一般来说,input为sigmoid激活层的输出,或者softmax的输出。
为为为什么
2023/07/24
5500
PyTorch 学习 -6- 损失函数
推荐阅读
相关推荐
匹配追踪算法(MP)简介
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文