周报-230919

本文介绍了吴恩达深度学习课程中的内容,包括LCD网络架构的2D和3D编码器,以及2D-3D匹配的tripletloss方法。还讨论了GRU和LSTM单元在序列建模中的应用,以及RNN中的采样策略和梯度问题。
摘要由CSDN通过智能技术生成

学习内容

1.论文

2.吴恩达深度学习(151 / 181)


学习时间

2023.09.13 — 2023.09.18


学习笔记

论文

关于 LCD 的网络架构部分:

网络由 2D 自动编码器和 3D 自动编码器组成。输入图像和点云数据分别用 MSE lossChamfer loss 重建。重建损失确保嵌入中的特征具有区分性和代表性。2D 嵌入 dI 和 3D 嵌入 dP 之间的相似性通过三元组损失进一步正则化。

2D encoder 的输入是 rgb 三通道矩阵。经过 conv,fc,mxp 等操作以后,得到一个特征描述子(即 da),在本文中,可以设定维度为 (64, 128, 256)。同样地,先通过 RGB-D 数据集生成点云,3D 使用的是 PointNet,将点云输入,经过 encoder 后也会得到特征描述子(dp,dn),与从 2D 里得到的是同维度的。

使用这两对特征描述子构建 triplet loss,以下是具体过程:

_pairwise_distance_squared(x, y) 函数的输出矩阵的维度将是 (n, n),其中 n 表示样本数量。

这个矩阵的每个元素 pdist[i, j] 代表了第 i 个样本与第 j 个样本之间的欧几里得距离的平方。换句话说,它测量了样本之间的相似性或差异性,其中较小的值表示样本更相似,而较大的值表示样本更不相似。

HardTripletLoss.forward(self, x, y) 正样本 dp 即点云与图像之间的距离,负样本 dn 即除去 (i, i) 以外距离最近的 (i, j) 。是一个三元组损失。

关于 LCD 的 2D-3D 匹配部分:

文中把它叫做 2D-3D place recognition,而 place recognition 的主要目标是:在给定一张图像的情况下,确定该图像是来自何处的,通常是通过与一个地点数据库中的图像进行比较来实现的。

任务是:一种检索任务(retrieval task),根据一个查询的 2D 图像,在数据库中找到与之对应的 3D 几何子地图。

几何子图生成方式:使用每 100 个连续 RGB-D 帧,from SceneNN。一共生成了 1191 张 3d 子图,以 VLAD 描述子的形式存在数据库中(下文简称“子图”),查询图像直接从 RGB frames 中获取。

DenseVLAD 方法获得描述子:对 3d 子图,我们对连续的 100 帧使用,然后聚合成一个紧凑的 VLAD 描述子(Vector of Locally Aggregated Descriptors) 。对于 2d 图像,也是如此,不过使用的是 2d 网格。

查出前 N 个最相似的子图:计算 查询图像子图 的特征描述子的相似性,选出最符合的 N 个子图。然后再进行下一步计算,查看姿态是否在范围内,只要有一个就说明检索成功。

目前面临的问题:

  • DenseVLAD 具体实现不清楚,但是这可以通过阅读 24/7 与 NetVLAD 这两篇论文来实现。
  • 提供图像的 VLAD 描述子后,如何计算与数据库子图的相似性。
  • 对于提取出来的 N 个子图,如何判定姿态是否在范围内(如何计算出一个标准,让姿态在 d = 0.5m,θ = 30° 的范围内)。

深度学习

1.7 对新序列采样(Sampling novel sequence)

训练完上一节的模型后,我们可以试一试。

先生成第一个词的 softmax 层,然后根据概率随机选择一个词作为第一个词,并接着输入下一层。以此生成一个随机的句子

此外,还可以以字符(a,b,c,… )作为单位,来生成句子,这样可以避免 <UNK> 的出现。缺点是数据太长,一个句子中可能有 10-20 个单词,换成字符就会很多。

1.8 循环神经网络的梯度消失(Vanishing gradients with RNNs)

RNN 也和普通的神经网络一样,存在梯度消失与梯度爆炸的问题,关于这两个概念,请查阅本节

梯度消失不太好解决(请看后几节,GRU),而梯度爆炸可以设定一个 threshold,来防止过大的梯度。

此外,RNN 还有的问题是,语法问题。有时候,会遇到前后距离很长的情况,比如单复数,前面指定了单个的物品,在经过很长的文本后,一定要使用 is。但是网络在这方面处理的并不好。

1.9 GRU 单元(Gated Recurrent Unit(GRU))

如何让 RNN “记住”某个单词呢?我们需要使用 GRU 单元。

GRU 会有一个新的变量 c,代表记忆细胞。比如句子的主语是单数,当它看到句子的时候,能一直记住主语是单数。我们让 c < t > = a < t > c^{<t>}=a^{<t>} c<t>=a<t>(对于 GRU 而言,两个值相等。LSTM 中的值不同)。有以下公式:

(其中: Γ r \Gamma_{r} Γr 表示相关(relevance)门,告诉我们,上一个 c 值与下一个有多大的相关性。 Γ u \Gamma_{u} Γu 代表更新(update)门,表示是否要继续保持上一个 c 值,在大多数情况下,值接近 0 或 1,因此值很小,不存在梯度消失的问题了)
h ~    c ~ < t > = t a n h ( W c [ Γ r ⋅ c < t − 1 > , x < t > ] + b c ) u    Γ u = σ ( W u [ c < t − 1 > , x < t > ] + b u ) r    Γ r = σ ( W r [ c < t − 1 > , x < t > ] + b r ) h    c < t > = Γ u ⋅ c ~ < t > + ( 1 − Γ u ) ⋅ c < t − 1 > \tilde{h}\ \ \tilde{c}^{<t>}=tanh(W_{c}[\Gamma_{r}\cdot c^{<t-1>},x^{<t>}]+b_{c})\\ u\ \ \Gamma_{u}=\sigma(W_{u}[c^{<t-1>},x^{<t>}]+b_{u})\\ r\ \ \Gamma_{r}=\sigma(W_{r}[c^{<t-1>},x^{<t>}]+b_{r})\\ h\ \ c^{<t>}=\Gamma_{u}\cdot \tilde{c}^{<t>}+(1-\Gamma_{u})\cdot c^{<t-1>} h~  c~<t>=tanh(Wc[Γrc<t1>,x<t>]+bc)u  Γu=σ(Wu[c<t1>,x<t>]+bu)r  Γr=σ(Wr[c<t1>,x<t>]+br)h  c<t>=Γuc~<t>+(1Γu)c<t1>
在这里插入图片描述

Γ u \Gamma_{u} Γu01000000010
SentenceThecat,whichatealready,wasfull

论文参考

Chung J, Gulcehre C, et al. Empirical Evaluation of Gated Recurrent Nerual Networks on Sequence Modeling[J]. Eprint Arxiv, 2014.

Cho K, et al. On the Properties of Nerual Machine Translation: Encoder-Decoder Approaches[J]. Computer Science, 2014.

1.10 长短期记忆(LSTM(long short term memory))

LSTM 是一个比 GRU 更加强大且通用的版本。

分出了更新门 u遗忘门 f,可以让神经网络更加灵活的选择是否更新 candidate value。

有时计算门的时候还会加入 c < t − 1 > c^{<t-1>} c<t1> ,用于结合计算。
c ~ < t > = t a n h ( W c [ a < t − 1 > , x < t > ] + b c ) Γ u = σ ( W u [ a < t − 1 > , x < t > ] + b u ) Γ f = σ ( W f [ a < t − 1 > , x < t > ] + b f ) Γ o = σ ( W o [ a < t − 1 > , x < t > ] + b o ) c < t > = Γ u ⋅ c ~ < t > + Γ f ⋅ c < t − 1 > a < t > = Γ o ⋅ t a n h ( c < t > ) \tilde{c}^{<t>}=tanh(W_{c}[ a^{<t-1>},x^{<t>}]+b_{c})\\ \Gamma_{u}=\sigma(W_{u}[a^{<t-1>},x^{<t>}]+b_{u})\\ \Gamma_{f}=\sigma(W_{f}[a^{<t-1>},x^{<t>}]+b_{f})\\ \Gamma_{o}=\sigma(W_{o}[a^{<t-1>},x^{<t>}]+b_{o})\\ c^{<t>}=\Gamma_{u}\cdot \tilde{c}^{<t>}+\Gamma_{f}\cdot c^{<t-1>}\\ a^{<t>}=\Gamma_{o}\cdot tanh(c^{<t>}) c~<t>=tanh(Wc[a<t1>,x<t>]+bc)Γu=σ(Wu[a<t1>,x<t>]+bu)Γf=σ(Wf[a<t1>,x<t>]+bf)Γo=σ(Wo[a<t1>,x<t>]+bo)c<t>=Γuc~<t>+Γfc<t1>a<t>=Γotanh(c<t>)
在这里插入图片描述

论文参考

Hochreiter S, et al. Long short-Term Memory[J]. Nerual Computation, 1997, 9(8):1735-1780.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值