02 2025 档案
摘要:先来讲一下弱大数定律吧,这个比较好理解 弱大数定律的标准形式是这样的: 这里注意的是我们的极限符号是包含概率的,我们按照数列
阅读全文
摘要:书上对残差网络的理解讲的有一点不清楚,解释一下。实际上,残差网络真正想干的事是通过在原网络上加入层/块(这就让原网络变得更深),而不改变原来的网络能够学习到的函数,以图 为例 这两张图片中的 就是原网络学出来的东西(注意 的所有值都是整数,因为上一个块的激活函数是\(\t
阅读全文
摘要:当网络很深的时候会出现下面的问题 梯度消失是一般情况,所以上面讨论的是梯度消失的情况(每一层的梯度都很小,很多个很小的数相乘就会导致底部的层梯度比上面的层的梯度小);梯度爆炸是另外一回事 之所以会导致上面这种情况是因为不同层之间数据分布是有差别的。所以一个简单的想法就是我给数据的分布固定住 之所以不
阅读全文
摘要:白色的 卷积层是用来降低通道数的,蓝色的卷积层是用来学习特征的 大致解释一下这些数字是怎么分配的。现在我们的通道数是 ,于是我们假设最后输出的通道数是 ;考虑这些通道如何分配:我们知道 的卷积层性质很好(参数不算太多,学习能力也
阅读全文
摘要:本质和主要改进见下 因为模型更大了,所以要用丢弃法做正则; 则比 更能支撑更深的网络(解决了梯度消失);最大汇聚层则让输出更大,梯度更大,训练更容易 还有一些主要区别如下 步长也很大的原因也是当时的算力其实不是很够 池化层更大了就允许像素
阅读全文
摘要:这里为什么要用bmm:看NWKernelRegression定义的过程,我们是将查询数定义为了批量,attention_weights在第1维度展开就可以提取每一个查询,将所有加了权的键变成行向量;values在最后一个维度展开,就将所有值变成了一个列向量;此时两者相乘就是预测值
阅读全文
摘要:我觉得这个问题的核心在于理解为什么在实际应用中,尽管 RNN 可以动态处理不同长度的序列,我们还是需要截断和填充。RNN 本身确实可以通过循环结构处理任意长度的序列,但实际应用中,我们通常需要批量处理数据,而批量数据的形状需要固定。如果每个序列的长度不同,GPU 无法高效地进行并行计算,因为每次循环
阅读全文
摘要:在TransformerEncoder中,要将嵌入表示先乘以嵌入维度的平方根的原因我觉得是让位置编码和特征维度的数值大小匹配,因为嵌入矩阵通常通过均匀分布初始化,例如在 PyTorch 的 nn.Embedding 中,默认使用均匀分布\([-\sqrt{\frac{3}{d}},\sqrt{\fr
阅读全文
摘要:这个nn.LayerNorm有点搞笑我觉得,有个参数normalized_shape,输入想要归一化张量的最后几个维度,然后就将最后几个维度的元素看做一个整体进行归一化,如下 import torch import torch.nn as nn # 定义输入张量 (batch_size, seque
阅读全文
摘要:Transform网络首先构建编码器如下 首先将输入进行多头注意力转换,然后放入前向传播网络。这个过程会重复 次( 的取值一般为 ) 在翻译的时候,我们首先将句子开始标识作为输入,输入进解码器,解码器首先会将输入进行多头注意力转换,然后会将编码器的输出一起,再进行多头注意力的
阅读全文
摘要:多头注意力其实就是将普通注意力机制进行多次,每次都得到一个结果,然后最终将这些结果直接用pd.concat拼接起来,然后再乘以一个矩阵即可,如下 实际中,我们不会采取for循环计算多个头,而是直接采取并行计算
阅读全文
摘要:假设现在有一个句子:Jane visited Afica last September. 那么到底是将Afica当做一个大洲处理还是当做一个度假胜地处理呢?这个是要就要去考察上下文了。普通的RNN是没办法考虑下文的,双向RNN又只能一个词一个词的计算,而自注意力机制就可以并行计算,如下 自注意力要计
阅读全文
摘要:注意CNN也是有位置信息的,同一个卷积运算中可能没有位置信息,但是不同卷积运算由于窗口的移动,也是有位置信息的 正文的第一句话“在处理词元序列时,循环神经网络是逐个的重复地处理词元的, 而自注意力则因为并行计算而放弃了顺序操作。”的意思见10.6.1的博文。所以自注意力丢失了对序列固有顺序的显式依赖
阅读全文
摘要:首先,RNN是逐个处理词元的,这个部分应该是指传统的RNN模型,比如LSTM或GRU,它们是按时间步依次处理输入序列的,每个时间步只处理一个词元,并且当前的输出依赖于前一个时间步的隐藏状态。所以它的处理是顺序的,不能同时处理后面的词元,必须一个接着一个来。这样做的好处是能够捕捉到序列中的时间依赖关系
阅读全文
摘要:注意,reshape是不会改变数据在内存中的顺序的,而permute是会改变的,举例如下 x = tensor([[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]], [[12, 13, 14, 15], [16, 17, 18, 19], [20, 21
阅读全文
摘要:这里查询,键和值的形状不要看书上,看我下面写的文字 对于查询来说,第一维的确是批量大小,可以忽略不管;第二维是一个批量中查询 的个数;第三维是每个查询 的特征维度(代码中的query_size) 对于键来说,第一维的确是批量大小,可以忽略不管;第二维是键值对个数,也就是键的个数,也就
阅读全文
摘要:这里的键可以理解成 ,值可以理解成 ,也就是说每一个 都会对应一个 (在这个情形下, 和 都可以是向量,而且维度不一定相同);查询可以理解成一个我们想要预测的量 ,想要预测 的输出 是多少(注意 的维度不一定要与\(x\
阅读全文
摘要:Problem Set 1.1 Problem 1.1.1 基本情况:若 ,则 ,返回正确值 归纳假设:令 为一个常数,假设 ,算法返回正确值 归纳步骤:若 ,利用数学归纳法 若 为偶数,则返回\(\te
阅读全文
摘要:torch.repeat_interleave 用于按指定规则重复张量的元素,支持按维度扩展或自定义每个元素的重复次数。以下是详细说明和示例: 作用 功能:沿特定维度重复张量的元素,支持两种模式: 统一重复次数:所有元素重复相同次数。 自定义重复次数:每个元素按单独指定的次数重复。 与 torch.
阅读全文
摘要:可以发现 和VGG最后面的网络都是全连接层,但是有如下问题 基本上所有参数都集中在最后的全连接层(这样导致计算慢内存大还很容易过拟合,比如我们期望三层全连接层学习完所有特征,但是一层就把所有特征学习完了) 所以我们要替换掉最后的全连接层。我们可以使用\(1\time
阅读全文
摘要: 最大的问题就是加的层很随意,这里加一点那里加一点,结构就不清晰,也就是说我们还不能够很好的回答“如何更深更大”这一个问题 考虑一下这个问题如何回答。想一下我们可能的选项如下 于是VGG就采用了最后一个选项 那么为什么不用 的卷积层呢?实际上
阅读全文
摘要:在训练AlexNet时使用更小的学习率,主要原因可以从以下角度结合具体例子理解: 1. 网络更深更广,梯度传递更敏感 LeNet:仅有5层(2卷积+3全连接),参数少,梯度反向传播时链式法则的连乘次数少,梯度幅度相对稳定。 AlexNet:8层(5卷积+3全连接),参数数量大幅增加(如第一个全连接层
阅读全文
摘要:
阅读全文
摘要:f isinstance(net, nn.Module): net.eval() # 设置为评估模式 if not device: device = next(iter(net.parameters())).device 对于这段代码,作用如下 net.eval()设置为评估模式之后,某些层(如 D
阅读全文
摘要:这里看英文原版更好语句更通顺,还有补充 上面的图片其实就是想说明低层的CNN可以检测边缘什么的(右侧图像是中间的图像与左侧图像做卷积的结果)
阅读全文
摘要:目录加载数据处理缺失数据划分训练集和验证集合并数据集特征工程构建模型定义损失函数模型训练模型优化 加载数据 处理缺失数据 发现只有测试数据的Open有十一个空的(训练数据没有)。由于很少,我们直接将其找出,如下 cond = test['Open'].isnull() test[cond] 输出结果
阅读全文
摘要:首先来介绍一下可变对象和不可变对象 可变对象:整数,浮点数,字符串,元组等 不可变对象:列表,字典,集合等 然后看一下Python中内存分配的方式 执行x=1会发生什么?此时,内存会分配一个地址给1,1是一个整型对象,而x是一个引用(不是对象!),指向1所在的位置,并不占用实际的内存空间,用图像表示
阅读全文
摘要:之前我们学的RNN尝试先把整个句子全部都记下来,然后在进行翻译,所以可能出现一个问题,就是我们的模型没能够记住句子,这就是导致我们的 分数下降。但是注意力机制让我们像人类一样翻译,也就是先翻译一部分,再翻译一部分,他和前者的 分数曲线如下 蓝色
阅读全文
摘要:语音识别使用注意力机制,输入是不同时间帧的音频,如下 但是有一个问题,就是语音识别中,很可能输入的长度要比(我们想要的)输出的长度长的多,这个时候可以利用类似“填充”的技巧让两者的长度一样,如下(假设输入的音频说的话是the quick brown fox) 上图只是一个很简单的示例。现实中很可能使
阅读全文
摘要:我们利用 或者 构建一个双向循环神经网络如下 然后预测的时候我们使用普通的RNN,但是这个RNN的输入取决于源句子的每一个单词的加权和。我们用 表示预测的句子, 表示输入的句子,那么也就是说我们定义\(\alpha^{\left<
阅读全文
摘要:这里从一堆概率的乘积转化为一堆 的求和的原因之一也是为了防止数值下溢。然后原文说是为了惩罚长序列,其实是为了惩罚短序列,在没有除以 的时候,模型更倾向于输出短的序列,这个操作叫做规范化,如果 ,则叫做完全规范化 那么调整超参数束宽的时候我
阅读全文
摘要:对比一下语言模型和机器翻译的区别如下 最大的不同就是机器翻译有一个编码和解码的过程(语言模型直接使用零向量作为隐状态),可以理解为机器翻译时一个条件概率,条件就是输入的句子
阅读全文
摘要:编码器-解码器结构也可以用在图像识别的时候,比如我希望训练一个网络,输入一个图像,输出一个描述这个图像的文字,那么我们就可以先用卷积神经网络将图像进行编码(这一部分是编码器)得到一个向量,再将这个向量丢进循环神经网络中进行输出(这一部分是解码)
阅读全文
摘要:Adam(Adaptive Moment Estimation)算法可以直观理解为“智能调整步长的动量法”,结合了动量加速和自适应学习率的优势。以下是逐步解释: 1. 核心思想:动量和自适应学习率的结合 动量(惯性):类似滚下山坡的球,利用历史梯度方向保持运动惯性,减少震荡。 自适应学习率:根据每个
阅读全文
摘要:AdaGrad的两个好处的第一个解释如下 第一个benefit的含义是: Adagrad通过自动累加历史梯度平方值来调整学习率,省去了人为设定“梯度多大才算大”的阈值(threshold)。 具体解释: 原始方法的问题:例如在某些优化算法中,可能需要手动设定一个阈值,当梯度超过该值时,才调整学习率或
阅读全文
摘要:从零开始实现中,sgd_momentum这个函数中的循环一定是要原地修改的,具体原因见这篇博客
阅读全文
摘要:有效样本权重那里,翻译有错误。原文说的是在(随机)梯度下降中将 变为 ,而不是在动量法中。这样子做相当于在(随机)梯度下降中模拟了一个近似的动量法。但是有效样本权重真正的意思应该是吴恩达深度学习的第 篇博客
阅读全文
摘要:这里的偏差不是我们之前所说的偏置,而是下面 以性别歧视为例,假设经过 可视化之后的图像是下面这个样子 除偏的步骤如下 识别性别所代表的方向。我们在训练出来嵌入矩阵后,嵌入矩阵的每一行都是某个高维空间的一个坐标轴,我们使用SVD将这个高维空间中性别所代表的方向找出来 注意
阅读全文
摘要:情感分类是说将一个句子输入分类器,分类器判断这个句子是消极的还是积极的(不一定是二分类问题,分类器也可以输出消极或者积极的程度) 一个简单的分类器如下 简单来说就是求出各个单词的 之后将他们加起来并平均然后传入 层 这个算法有一个缺点就是忽略了单词的顺序,比
阅读全文
摘要:介绍一下 算法。非常简单的一个算法,训练集由 和 组成,前者是一个句子中的某一个单词,后者是这个句子中这个单词临近的某个词。举例如下 我们获得单词的嵌入向量后,就放入神经网络中去跑,再利用\(\t
阅读全文
摘要:以判断人名为例。如果我们只使用独热编码,那么我们的训练集不能太大(否则维度爆炸),所以遇到了下面这种情况 我们没有在训练集中坚果durian和cultivator,导致我们没有判断出来Robert Lin是人名 但是如果我们使用词嵌入,我们的训练集就可以很大(从网上下载即可),然后通过神经网络将词嵌
阅读全文
摘要:首先复习一下有放回抽样和无放回抽样的等价性。假设现在有 个不同物体,我们从中抽取 个物体。计算第 次抽到某个特定物品的概率。对于有放回抽样,概率为 ;对于无放回抽样,概率为\(\frac{A^{B-1}_{n-1}}{A^{B}_n}=\frac{
阅读全文
摘要:目录数据预处理导包查看数据特征工程目标变量特征衍生特征选择信用卡正常消费和盗刷对比交易金额和交易次数信用卡消费时间分析交易金额和交易时间的关系特征分布(非常重要,帮助筛选特征)特征缩放特征重要性模型训练过采样算法建模交叉验证模型评估精确度-召回率曲线ROC曲线各评估指标的对比 数据预处理 导包 除了
阅读全文
摘要:式 应该有误,不等号左边还应该有一个项 ,之所以没写估计是因为认为 非常接近 ,所以可以忽略;另外不等号右边的括号打错了,应该是 \[2\underset{t=1}{\overset{T}{\sum}}\et
阅读全文
摘要:式 的直观理解:最开始的时候梯度很大,为了防止震荡,我们需要减小步长,这是分母的作用,但是梯度大就表示参数更新也应该大,所以需要增大步长,这是分子的作用;迭代一段时间之后,梯度就变小了,此时为了加速收敛,我们需要增大步长,这是分母的作用(注意这里跟\(\text{AdaGrad}
阅读全文
摘要:这里的翻译好像有点问题,强制教学不是不包括eos,而是不包括最后一个词元(因为解码器接受的输入长度是固定的,这里要插入bos,就要忽视最后一个词元)。代码是这么表示的,英文版也是这么写的 l.sum().backward()可能改成l.mean().backward()更标准一点
阅读全文
摘要:回忆一下,super(MaskedSoftmaxCELoss, self).forward就相当于直接计算损失函数,这是nn.Module的普遍做法;还要注意nn.CrossEntropyLoss会对传入的数据做 ,不需要我们传入一个已经做了\(\text{Soft
阅读全文
摘要:这里的nn.GRU只传入了参数num_inputs和num_hiddens,那么为什么没有num_outputs呢?难道跟从零开始实现的代码一样,有num_inputs=num_outputs吗?实际上不是的,我们的GRU只会输出隐状态,最终的输出状态是需要再连接一个全连接层什么的。我们去看d2l.
阅读全文
摘要:训练时解码器使用目标句子作为输入,这样即使某一个时间步预测错了也不要紧,我们输入的目标句子一定是对的 repeat这个函数就是广播张量,但是具体机制好像很复杂,只解释书上那一句代码。现在X的形状是(num_steps,batch_size,embed_size),而在广播之前,context的形状是
阅读全文
摘要:编码器是一个没有输出的RNN 这里的nn.Embbeding见下 下面我们用一个具体的例子说明 PyTorch 中 nn.Embedding 的输出。假设: import torch import torch.nn as nn # 创建嵌入层 # 参数说明: # num_embeddings=3 →
阅读全文
摘要:“惩罚”那里,相当于对 正则化换了一种理解方法,我们给定了超参数 (假设 是最优的),去求解 ,相当于在求解极大极小问题,根据对偶性,可以转成极小极大问题,于是可以转换成带有约束的最优化问题,而这个约束就是限制 的 范数
阅读全文
摘要:目录导入数据将训练数据与测试数据合并查看数据描述性统计查看是否有异常值查看特征与标签之间的关系查看标签是否有偏态数据预处理填充缺失值特征工程特征创造同组识别筛选子集建模 导入数据 将训练数据与测试数据合并 查看数据 描述性统计查看是否有异常值 看看各个数据是否偏态,最值是否异常 查看特征与标签之间的
阅读全文
摘要:这里主要是在线广告的运用。广告一般采取CPC模式付费,即按照点击率付费,其中点击率 , 是点击次数, 是曝光次数。注意对于平台来说,不是说点击率越高收入就越高,这个要看商家为广告一次点击付的费用(一般来说,点击率
阅读全文
摘要:目录导入数据并观察合并数据提取出标签并对标签进行处理合并训练集和测试集变量转化正确化变量属性对分类型特征进行独热编码填写数值型特征的缺失值标准化数值型特征建立模型分出训练集和测试集集成StackinhgBaggingBoostingXGBoost提交结果 导入数据并观察 合并数据 这里可能有个问题。
阅读全文
摘要:其中 使用已经很少了, 在中小型数据集上表现很好 目录了解场景和目标了解评估准则认识数据数据预处理数据清洗数据采样特征工程特征处理数值型类别型时间类文本型统计型组合特征特征选择过滤法包装法嵌入法模型融合BaggingStackingBoosting
阅读全文