![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深度学习
the animal
这个作者很懒,什么都没留下…
展开
-
transforms
每一个block都是输入一段向量,然后输出一段向量。每一个block所做的事情,大概是先输出一段向量,做self-attention,考虑整个seq,然后输出。再将输出输入到全连接层中,最后的输出就是block的输出。在transforms的encoder中,所做的事更为复杂。将相加的结果,也就是residual,再经过规范化。将规范化后的结果作为全连接层的输出,再输出的时候,仍然要加上自身。最后在经过规范化,就是block的输出。在输入的时候,除了词向量之外,还需要加入位置编码,用来确定其相对位置。原创 2023-07-18 23:28:17 · 81 阅读 · 0 评论 -
机器学习原理
在large|H|中,理想中的L(h_all,D_all)比较小,但是现实的L(h_train,D_all)却比较大,两者相聚较远。如果D_train是坏的,那么至少有一个H,使得损失的差值大于预定的值。所以我们需要找到一个合适的具有代表性得Data,使得在其上面训练得来的h,在全部data上面,也可以得到较好的结果。D_train是我们能找到的样本数据,h_train是在我们能找的样本训练而来的临界值。由于宝可梦的图片比较简洁,而数码宝贝的图片就显得比较复杂,我们计算出他们的轮廓,求出白色数量的多少。原创 2023-07-12 21:26:05 · 502 阅读 · 0 评论 -
注意力机制[矩阵]
其中q(i,1)与q(i,2)是与两个不同的矩阵,相乘得出的。将 q(i,1)与对应的K(i,1)和K(j,1)相乘,再与V(i,1)和V(j,1)分别相乘,得出b(i,1)和b(i,2),再通过以下转换,输出。将A‘的第一列,也就是取q1和其他的k1,k2,k3,k4相乘的值,再经过softmax转换后,与vlue值相乘,再相加就得出b1。I矩阵有a1,a2,a3,a4组成,Wq为权重矩阵,将I与Wq相乘求得Q(q1,q2,q3,q4)。将求得出来的K,转置为竖向量与Q相乘,就可以得出α11,α12…原创 2023-07-06 16:31:39 · 1991 阅读 · 0 评论 -
RNN其中的X.reshape
28,2是batchsize可以理解为有几句话,5是timestep可以理解为有几个词,28是vocab_size。如下就是两个句子,每个句子由5个单词组成。28则为每个单词的词向量,在此略去。28,将时间步转变为第一个维度。因为我们只要在时间的维度上,才能观察到以前的信息。我们可以每次竖着观察,就是以时间步为第一维度。在输入的时候,首先需进行。假设RNN中的输入为2。,其中X.T将输入为2。原创 2023-06-28 18:08:30 · 658 阅读 · 0 评论 -
独热编码和Embedding
神经网络语言模型的第二层,为隐层,包含 h 个隐变量,H 代表权重矩阵,因此隐层的输出为 Hx+d,其中 d 为偏置项。而由于在独热编码中词与词之间余弦相似度均为0,就是词与词之间相似度为0,这是不合适的,所有又引入词向量。上图所示有一个 V×m 的矩阵 Q,这个矩阵 Q 包含 V 行,V代表词典大小,每一行的内容代表对应单词的 Word Embedding 值。例子·:给我任何一个词,判断” --》 独热编码w1 [1,0,0,0,0],w1*Q =c1 (“判断”这个词的词向量)。原创 2023-06-27 18:46:58 · 292 阅读 · 0 评论 -
序列到序列学习
对于长匹配的Pn,当n越大时,则2的n次方分之一越小,Pn为小于1的预测值,当指数越愈小,则结果越大。在训练的时候,我们是知道目标句子的,在解码器RNN输入的时候,即便是上次预测的结果不正确,但我们也可以用正确的结果作为输入。在推理的时候,没有真正的句子,本时刻的输入,只能用上一时刻的输出。特定的“”表示序列开始词元,表示开始翻译。P3:预测序列中BCD在标签序列中出现过,其余的ABB,BBC均没有出现,所以是1/3。将编码器最后一次的隐藏状态与解码器的第一次的输入,放在一起作为隐藏层的输入。原创 2023-06-26 11:55:25 · 167 阅读 · 0 评论 -
LSTM
记忆单元:输入门 It控制采用多少来自 ~Ct的新数据,而遗忘门 Ft控制保留多少过去的记忆元 Ct的内容。如果遗忘门始终为 1且输入门始终为 0,则过去的记忆元 Ct-1将随时间被保存并传递到当前时间步,也即是记忆元始终没有改变,引入这种设计是为了缓解梯度消失问题,并更好地捕获序列中的长距离依赖关系。只要输出门接近 1 1 1,就能够有效地将所有记忆信息传递给输出层预测输出的输入以及传递到下一个时间步,而对于输出门接近 0 0 0,只保留记忆元内的所有信息,而不需要更新隐状态,原创 2023-06-24 09:52:18 · 329 阅读 · 0 评论 -
门控循环单元
相反,当Zt接近时0, 新的隐状态Ht就会接近候选隐状态。在计算真正的隐藏层状态的时候,需要使用当前关于Xt的多少信息。候选隐状态:当重置门中的项接近1时, 我们恢复一个普通的循环神经网络。对于重置门中所有接近的项0, 候选隐状态Xt是以作为输入的多层感知机的结果。在更新新的隐藏状态的时候,需要使用多少上次的隐藏状态。在这里有两种门,一种是就是这个数据比较重要,要用他尽量去更新我们的隐藏状态。另外一个叫做重置门,就是说输入或者隐藏状态的一些东西不重要,我们可以忘记一些东西。Rt为重置门,Zt为更新门。原创 2023-06-22 08:15:08 · 92 阅读 · 0 评论 -
文本预处理
3. 建立一个词表,将拆分的词元映射到数字索引。4.将文本转换为数字索引序列,方便模型操作。2. 将字符串拆分为词元(如单词和字符)。1.将文本作为字符串加载到内存中。原创 2023-06-14 22:43:23 · 87 阅读 · 0 评论 -
RNN
火箭就是一个正样本,而负样本假如选取篮球,桌子之类的,这样就非常容易选择出来,我们可以选择一些与火箭类似的词,比如:导弹等,这样才可以让模型真正学习到东西。,剩下的2999都均为负样本,这样负样本太多了,在负样本做一个采样,选取9个,现在就是一个十分类任务。由于RNN记得太多,LSTM加控制单元,一个信息,一个词来之后,哪些该记,哪些不该记。以下条件的情况下,计算输入:首先是batch,每个batch均是句子,句子由长度一百的词组成,每一个词由300维的向量组成,也就是64。CBOW使用上下文词,来预测。原创 2023-06-13 20:01:49 · 64 阅读 · 0 评论 -
卷积神经网络
假设x为第十九层,然后保存他的参数信息。将x经过20,21层训练后的结果F(X)。若F(x)结果不理想,则这两层的权重置为0。使得H(X)为原来保留的参数信息,继续原来的参数进行训练。边缘填充主要是为了那些在角落或者边缘区域的像素点在输出中采用较少,意味着丢掉了图像边缘位置的许多信息。W0,W1为权重,output为特征图。因为经过太多次卷积,会得到过多的特征,所以进行压缩。3的区域计算而来,而是第一块5*5的区域计算而来。H1为输入特征图大小,FH为卷积核大小,2。最大池化:每个区域选择最大的。原创 2023-06-07 23:03:16 · 42 阅读 · 0 评论 -
读写文件
这将保存模型的参数而不是保存整个模型。原创 2023-06-05 11:12:06 · 31 阅读 · 0 评论 -
自定义层
定义具有参数的层, 这些参数可以通过训练进行调整。我们可以使用内置函数来创建参数,这些函数提供一些基本的管理功能。原创 2023-06-05 09:53:37 · 58 阅读 · 0 评论 -
延后初始化
【代码】延后初始化。原创 2023-06-03 17:57:03 · 52 阅读 · 0 评论 -
参数管理
【代码】参数管理。原创 2023-06-03 15:50:08 · 106 阅读 · 0 评论 -
自定义块和顺序块
块(block)可以描述单个层、由多个层组成的组件或整个模型本身。从编程的角度来看,块由类(class)表示。它的任何子类都必须定义一个将其输入转换为输出的前向传播函数, 并且必须存储任何必需的参数。注意,有些块不需要任何参数。最后,为了计算梯度,块必须具有反向传播函数。在编写的时候,块由class定义,首先需要继承Module,然后实现__init__函数和前向传播函数。顺序块为了实现自己的Sequential。原创 2023-06-01 22:43:34 · 57 阅读 · 0 评论 -
环境和分布偏移
训练集由真实照片组成,而测试集只包含卡通图片。假设在一个与测试集的特征有着本质不同的数据集上进行训练, 如果没有方法来适应新的领域,可能会有麻烦。训练的数据没有测试的数据(x的改变,输入数据)在以前发烧头疼,可能是感冒。而现在发烧头疼,可能是新冠了。随着时间的推移,标签的分布就发生了改变。(y的比例改变,输出改变)在训练集和测试机y的分布不一样。协变量偏移是指在模型的训练和测试数据中,输入特征的分布发生了变化,导致模型的性能下降。输入x,输出不同的y。比如说,在不同地方,一个词的意思不一样。原创 2023-05-31 17:11:12 · 120 阅读 · 0 评论 -
线性回归的从零开始实现
生成数据集true_w和true_b为真实的权重和偏重。x为1000×2张量的标准正态分布,y=x*w+b再加上噪声。我们首先需要设置一个真实的w和b,用y=x*w+b生成数据集。然后初始化W和B,使用生成的数据集训练求出W和B。w和b为需要求出的参数,squared_loss为损失函数。原创 2023-05-19 17:13:41 · 48 阅读 · 0 评论 -
python绘图
【代码】python绘图。原创 2023-05-18 14:58:33 · 36 阅读 · 0 评论 -
线性代数 pytorch
【代码】线性代数 pytorch。原创 2023-05-16 13:14:35 · 34 阅读 · 0 评论 -
数据预处理
【代码】数据预处理。原创 2023-05-16 10:56:45 · 70 阅读 · 0 评论 -
数据的操作
【代码】数据的操作。原创 2023-05-16 10:39:34 · 50 阅读 · 0 评论 -
矩阵求导计算
L2范数(norm):为x向量各个元素平方和的1/2次方,L2范数又称Euclidean范数或者Frobenius范数。dA/dB矩阵求导的本质就是矩阵A中的每一个元素对矩阵B中的每一个元素进行求导。原创 2023-05-14 17:58:58 · 400 阅读 · 0 评论