周报-230728

本周主要进行了深度学习的学习,阅读论文,继续完成 3D 人体项目

学习内容

1.3D 人体重建项目

2.阅读论文

3.吴恩达深度学习


学习时间

2023.7.25 — 2023.7.28


学习笔记

3D 人体重建项目

与前端可以成功交互,正在与前端定义接口相关规范。

以下是本周主要完成的代码:

在这里插入图片描述


论文

本周粗略过了一遍本论文,正在进行精读,目前精读到第二章。

Introduction

第一段:说明了有很多的 2D 与 3D 局部描述符的生成方式,并列举了一些经典的例子。

第二段:说明 2D 与 3D 描述符所在的空间不一样,不易完成匹配。

贡献:新型学习跨域描述符 (LCD),一个数据集,以及 LCD 对应的性能验证程序。

Related Work

局部描述符在很多领域都有所涉及,包括 SfM,SLAM,姿态估计等。

2D 描述符:手作描述符——端到端 Siamese 架构——在本架构基础上进行距离匹配时,使用欧式距离,本文工作就是建立在这个思想上,实际是学习一个跨域描述符。接着到了三元组网络,输入的内容是三个图像块。本文工作旨在学习 2D 和 3D 描述符的共享潜在空间,输入也是图像块


吴恩达深度学习

1.5 为什么正则化有利于预防过拟合呢?(Why regularization reduces overfitting?)

当每个隐藏层的 w 参数太大时,会发生过拟合现象,因为 w 中的数据过大,表示对样本的影响很大,此时需要把 w 调小。

当 w 偏小的时候,会发生高偏差现象,因为 w 太小,表示隐藏层对样本的影响很小,即使这个网络再深,也会是一个高度线性的函数。原因:w 小—— z 小——激活函数在该点的斜率接近线性。

如下,λ 如果过大,那么 w 就会接近 0,就会发生高偏差的现象。
J ( w , b ) = 1 m ∑ i = 1 m L ( y ^ ( i ) , y ( i ) ) + λ 2 m ∑ l = 1 L ∣ ∣ w [ l ] ∣ ∣ F 2 J(w,b)=\frac{1}{m}\sum^{m}_{i=1}L(\hat{y}^{(i)},y^{(i)})+\frac{\lambda}{2m}\sum^{L}_{l=1}||w^{[l]}||^{2}_{F} J(w,b)=m1i=1mL(y^(i),y(i))+2mλl=1L∣∣w[l]F2
通常情况下,让 λ 处在一个合适的位置,这样有利于 Just Right 样本。

1.6 dropout 正则化(Dropout Regularization)

对每层的节点部分随机保留(保留多少可以自己设置概率),反向随机失活(inverted dropout)是比较常用的方法。

方法:按概率 keep-prob 随机生成一个与该层 a3 等规模的一个 01 矩阵 d3,然后与本层 a3 逐元素相乘,获得一个新的矩阵。得到的 a3 需要除以 keep-prop (因为部分结点失活会导致整体数值下降,这样做可以使 a 的值期望不变)

以下是具体的实现方法:

keep-prob = 0.8
d3 = np.random.rand(a3.shape[0], a3.shape[1]) < keep-prob
a3 = np.multiply(a3, d3)
a3 /= keep-prob
1.7 理解 dropout(Understanding Dropout)

由于每个结点都有可能被清除,因此不能依赖于任何一个特征,通过传播所有权重,dropout 将产生收缩权重的平方范数的效果(类似 L2 正则化),达到预防过拟合的效果。

对于容易产生过拟合的层,我们可以把 keep-prob 的值缩小,对于不容易产生过拟合的点,或者该层节点较少(比如输出层,只有一个节点),就可以适当放大,甚至设为 1。

dropout 在 CV 领域使用的更多,因为输入的像素太多,导致样本不足,容易产生过拟合。

缺点:代价函数 J 不再明确定义,在检查梯度下降的性能时,很难复查,不易计算。

1.8 其他正则化方法(Other regularization methods)

除了使用正则化,还可以使用数据扩增,early stopping 等方法。

数据扩增:这里并不是指增加数据集,而是指处理你的数据集,比如将你的图片水平翻转,裁剪等行为来进行数据扩增。这种行为代价几乎为 0,但是会有一些对抗性代价。可作为正则化方法来使用。

Early Stopping:在进行迭代的过程中,代价函数值往往会下降,而验证集误差往往会先下降,再上升。要赶在开始上升之前提前停止训练,以保证训练不会过拟合。最终得到一个 w 值中等大小的 Frobenious 范数。

es 的缺点:我们在训练中往往会遇到两个问题:代价函数的下降(梯度下降等算法)与防止过拟合(正则化等方法)。而 es 不能独立地处理这两个问题。提前停止,会导致代价函数值不够小,与此同时又不想发生过拟合,这会导致问题变得复杂。

如果使用 L2 正则化,它的缺点是要反复尝试 lambda 的值,计算代价太高。

正交化:减少方差(variance)时使用,思路是在一个时间做一个任务,后续会讲。

1.9 归一化输入(Normalizing inputs)

归一化是为了更好的优化数据集。

归一化包括以下两步:

零均值:顾名思义,让所有样本在单独的方向上的平均值为 0。

归一化方差:计算所有特征的方差,然后让所有数据除以这个方差。

如果不进行归一化输入,在优化的时候,比如使用梯度下降,方向会比较难找,而且步长也不大;而归一化后,代价函数更加圆滑,进行迭代的速度会变快,如下图。
μ = 1 m ⋅ ∑ i = 1 m x ( i ) σ 2 = 1 m ⋅ ∑ i = 1 m ( x ( i ) ) 2 \mu=\frac{1}{m}\cdot\sum_{i=1}^{m}x^{(i)}\\ \sigma^{2}=\frac{1}{m}\cdot\sum_{i=1}^{m}(x^{(i)})^{2} μ=m1i=1mx(i)σ2=m1i=1m(x(i))2
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值