随笔分类 -  深度学习

摘要:注意CNN也是有位置信息的,同一个卷积运算中可能没有位置信息,但是不同卷积运算由于窗口的移动,也是有位置信息的 正文的第一句话“在处理词元序列时,循环神经网络是逐个的重复地处理词元的, 而自注意力则因为并行计算而放弃了顺序操作。”的意思见10.6.1的博文。所以自注意力丢失了对序列固有顺序的显式依赖 阅读全文
posted @ 2025-02-24 14:40 最爱丁珰 阅读(14) 评论(0) 推荐(0)
摘要:首先,RNN是逐个处理词元的,这个部分应该是指传统的RNN模型,比如LSTM或GRU,它们是按时间步依次处理输入序列的,每个时间步只处理一个词元,并且当前的输出依赖于前一个时间步的隐藏状态。所以它的处理是顺序的,不能同时处理后面的词元,必须一个接着一个来。这样做的好处是能够捕捉到序列中的时间依赖关系 阅读全文
posted @ 2025-02-24 14:24 最爱丁珰 阅读(29) 评论(0) 推荐(0)
摘要:valide_lens是二维数组,假设其如下 tensor([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19]]) 那么对其在第零维进行repeat_interleave后,如下 tensor 阅读全文
posted @ 2025-02-23 17:26 最爱丁珰 阅读(11) 评论(0) 推荐(0)
摘要:这里查询,键和值的形状不要看书上,看我下面写的文字 对于查询来说,第一维的确是批量大小,可以忽略不管;第二维是一个批量中查询\(z\)的个数;第三维是每个查询\(z\)的特征维度(代码中的query_size) 对于键来说,第一维的确是批量大小,可以忽略不管;第二维是键值对个数,也就是键的个数,也就 阅读全文
posted @ 2025-02-23 16:03 最爱丁珰 阅读(30) 评论(0) 推荐(0)
摘要:这里的键可以理解成\(x\),值可以理解成\(y\),也就是说每一个\(x\)都会对应一个\(y\)(在这个情形下,\(x\)和\(y\)都可以是向量,而且维度不一定相同);查询可以理解成一个我们想要预测的量\(z\),想要预测\(z\)的输出\(y\)是多少(注意\(z\)的维度不一定要与\(x\ 阅读全文
posted @ 2025-02-23 15:52 最爱丁珰 阅读(78) 评论(0) 推荐(0)
摘要:torch.repeat_interleave 用于按指定规则重复张量的元素,支持按维度扩展或自定义每个元素的重复次数。以下是详细说明和示例: 作用 功能:沿特定维度重复张量的元素,支持两种模式: 统一重复次数:所有元素重复相同次数。 自定义重复次数:每个元素按单独指定的次数重复。 与 torch. 阅读全文
posted @ 2025-02-22 15:54 最爱丁珰 阅读(71) 评论(0) 推荐(0)
摘要:可以发现\(\text{AlexNet}\)和VGG最后面的网络都是全连接层,但是有如下问题 基本上所有参数都集中在最后的全连接层(这样导致计算慢内存大还很容易过拟合,比如我们期望三层全连接层学习完所有特征,但是一层就把所有特征学习完了) 所以我们要替换掉最后的全连接层。我们可以使用\(1\time 阅读全文
posted @ 2025-02-21 09:08 最爱丁珰 阅读(20) 评论(0) 推荐(0)
摘要:\(\text{AlexNet}\)最大的问题就是加的层很随意,这里加一点那里加一点,结构就不清晰,也就是说我们还不能够很好的回答“如何更深更大”这一个问题 考虑一下这个问题如何回答。想一下我们可能的选项如下 于是VGG就采用了最后一个选项 那么为什么不用\(5\times 5\)的卷积层呢?实际上 阅读全文
posted @ 2025-02-21 08:33 最爱丁珰 阅读(76) 评论(0) 推荐(0)
摘要:在训练AlexNet时使用更小的学习率,主要原因可以从以下角度结合具体例子理解: 1. 网络更深更广,梯度传递更敏感 LeNet:仅有5层(2卷积+3全连接),参数少,梯度反向传播时链式法则的连乘次数少,梯度幅度相对稳定。 AlexNet:8层(5卷积+3全连接),参数数量大幅增加(如第一个全连接层 阅读全文
posted @ 2025-02-21 08:25 最爱丁珰 阅读(34) 评论(0) 推荐(0)
摘要:f isinstance(net, nn.Module): net.eval() # 设置为评估模式 if not device: device = next(iter(net.parameters())).device 对于这段代码,作用如下 net.eval()设置为评估模式之后,某些层(如 D 阅读全文
posted @ 2025-02-20 12:26 最爱丁珰 阅读(35) 评论(0) 推荐(0)
摘要:这里从一堆概率的乘积转化为一堆\(\log\)的求和的原因之一也是为了防止数值下溢。然后原文说是为了惩罚长序列,其实是为了惩罚短序列,在没有除以\(L^{\alpha}\)的时候,模型更倾向于输出短的序列,这个操作叫做规范化,如果\(\alpha=1\),则叫做完全规范化 那么调整超参数束宽的时候我 阅读全文
posted @ 2025-02-19 09:53 最爱丁珰 阅读(25) 评论(0) 推荐(0)
摘要:Adam(Adaptive Moment Estimation)算法可以直观理解为“智能调整步长的动量法”,结合了动量加速和自适应学习率的优势。以下是逐步解释: 1. 核心思想:动量和自适应学习率的结合 动量(惯性):类似滚下山坡的球,利用历史梯度方向保持运动惯性,减少震荡。 自适应学习率:根据每个 阅读全文
posted @ 2025-02-17 15:16 最爱丁珰 阅读(54) 评论(0) 推荐(0)
摘要:AdaGrad的两个好处的第一个解释如下 第一个benefit的含义是: Adagrad通过自动累加历史梯度平方值来调整学习率,省去了人为设定“梯度多大才算大”的阈值(threshold)。 具体解释: 原始方法的问题:例如在某些优化算法中,可能需要手动设定一个阈值,当梯度超过该值时,才调整学习率或 阅读全文
posted @ 2025-02-17 14:57 最爱丁珰 阅读(43) 评论(0) 推荐(0)
摘要:从零开始实现中,sgd_momentum这个函数中的循环一定是要原地修改的,具体原因见这篇博客 阅读全文
posted @ 2025-02-17 09:54 最爱丁珰 阅读(10) 评论(0) 推荐(0)
摘要:动量法之所以叫动量法的原因:实际上是在维护一个动量,从而让每一次改变(由于惯性)不改变太多,减少震荡 有效样本权重那里,翻译有错误。原文说的是在(随机)梯度下降中将\(\eta\)变为\(\frac{\eta}{1-\beta}\),而不是在动量法中。这样子做相当于在(随机)梯度下降中模拟了一个近似 阅读全文
posted @ 2025-02-17 08:30 最爱丁珰 阅读(18) 评论(0) 推荐(0)
摘要:首先复习一下有放回抽样和无放回抽样的等价性。假设现在有\(n\)个不同物体,我们从中抽取\(B\)个物体。计算第\(i\)次抽到某个特定物品的概率。对于有放回抽样,概率为\(\frac{1}{n}\);对于无放回抽样,概率为\(\frac{A^{B-1}_{n-1}}{A^{B}_n}=\frac{ 阅读全文
posted @ 2025-02-16 18:58 最爱丁珰 阅读(24) 评论(0) 推荐(0)
摘要:式\((11.47)\)应该有误,不等号左边还应该有一个项\(-E[||x_T-x^{*}||^2]\),之所以没写估计是因为认为\(x_T\)非常接近\(x^{*}\),所以可以忽略;另外不等号右边的括号打错了,应该是 \[2\underset{t=1}{\overset{T}{\sum}}\et 阅读全文
posted @ 2025-02-16 10:38 最爱丁珰 阅读(53) 评论(0) 推荐(0)
摘要:式\((11.78)\)的直观理解:最开始的时候梯度很大,为了防止震荡,我们需要减小步长,这是分母的作用,但是梯度大就表示参数更新也应该大,所以需要增大步长,这是分子的作用;迭代一段时间之后,梯度就变小了,此时为了加速收敛,我们需要增大步长,这是分母的作用(注意这里跟\(\text{AdaGrad} 阅读全文
posted @ 2025-02-15 23:29 最爱丁珰 阅读(23) 评论(0) 推荐(0)
摘要:\(\text{BLEU}\)分数的主要目的是在有多个比较好的翻译的情况下去进行选择 但是吴恩达给的\(\text{BLEU}\)分数好像有一点不同,如下 这是没有带惩罚项的项(惩罚项跟书上的相同) 阅读全文
posted @ 2025-02-15 20:18 最爱丁珰 阅读(12) 评论(0) 推荐(0)
摘要:这里的预测过程不是图\(9\)-$14,应该是下面这幅图,这里有误 阅读全文
posted @ 2025-02-15 20:08 最爱丁珰 阅读(11) 评论(0) 推荐(0)