- 博客(17)
- 收藏
- 关注
原创 移除链表元素——C语言
while循环的条件是p的下一个结点不为空。循环内部,检查p的下一个结点的值是否与val相等,如果相等,就是用声明的临时节点temp指向要删除的结点,然后进行删除操作,如果不相等,p就移向下一个结点。循环结束后将哑结点的下一个结点赋值给head,释放哑结点,返回head。同时定义了结点p,初始化指向哑结点,p是为了向后进行遍历链表。dummy是声明的一个哑结点,指向链表的头结点head;
2024-04-15 20:49:41 329
原创 相交链表——C语言
作者:nkion 链接:https://leetcode.cn/problems/intersection-of-two-linked-lists/solutions/2477297/cyu-yan-10xing-dai-ma-by-jian-ting-yuan-59sq/ 来源:力扣(LeetCode)著作权归作者所有。当两个链表长度相等的时候,curA和curB会在交点相遇,当两个链表长度不相等时,由于curA和curB都会遍历两个链表,所有会在第二次遍历的时候在交点相遇。
2024-04-15 20:18:40 340
原创 数据结构——线性表
1、结构体包括数据域和指针域,指针域的指针类型也是LNode类型的,因为指针指向的是下一个结点。2、LNode表示的是这个结点,LinkList表示的是指向这个结构体的指针类型。
2024-04-14 14:54:59 952
原创 环形链表——C语言
如果快指针的下一个结点为NULL,那么在下一次循环的时候fast->next->next就会发生错误。条件fast == NULL表示的是快指针为NULL,走到了链表的末尾,说明没有环。,同样表明是没有环的。只有当这两个条件都不满足的时候,才能继续激动快慢指针。条件fast->next == NULL ,快指针每次走两步,慢指针每次走一步。代码的核心是使用两个指针,
2024-04-14 13:21:16 223
原创 栈的应用——有效的括号
4、当ch的值不为零的时候,即当前遍历的是右括号,那么就要看栈中是否还有元素,或者栈顶的元素是否与ch的值相等,如果栈为空或者栈顶元素与ch不相等,那么返回的就是false;5、当ch的值为零的时候,即当前遍历的是左括号,那么就将元素入栈,并将top的值++;paris(char a),当为右括号时,返回的是左括号,当为左括号时,返回的是0。1、首先计算包含括号的字符串的长度,如果为奇数个,那么一定是不匹配的。,当遇到右括号的时候,应该将相应的左括号出栈,定义的。,为0的时候说明遍历的是左括号。
2024-04-13 15:01:21 469
原创 BERT:Pre-training of Deep Bidirectional Transformers for Language Understanding
BERT即Bidirectional Encoder Representations from Transformers。与ELMo和GPT不同,BERT是用来设计去训练深的双向的表示,使用没有标号的数据,联合上下文的信息。因为BERT模型的设计,使得可以只用加一个额外的一个输出层,在许多NLP的任务上就可以得到一个不错的结果,包括问答,语言推理等。(第一段)补充:GPT其实是单向的结构,使用左边的信息来预测未来,而BERT是使用了左侧和右侧的信息,是一个双向的ELMo使用的是RNN。
2024-04-12 22:32:19 1204
原创 ResNet
总结:1、残差块使得很深的网络更加容易训练,甚至可以训练一千层的网络2、残差网络对随后的深层神经网络设计产生了深远的影响,无论是卷积类网络还是全连接类网络。训练一个深的神经网络是一个比较困难的事情,这里使用一种残差连接的框架使得对深的神经网络的训练更加容易。提供了许多实验的证据,说明残差网络非常容易训练,并且能够得到很好的精度。
2024-04-11 20:17:10 256
原创 attention 和 self-attention
attention机制是一个比较宽泛的概念,简单来说只要QKV相乘就是注意力机制,但是并没有说明QKV是怎么来的。self-attention的QKV本质是是相等的,是由一个值分别进行线性变换后得到的。attention是包括了self-attention的。没有规定QKV怎么来,规定了QKV怎么做。Q和V不同源,K和V同源。
2024-04-10 21:48:49 184
原创 Attention is all you need
(序列转录模型:给一个序列,生成一个序列 eg:给一个中文,生成一个英文)在主流的序列转录模型中,主要使用的是带有encoder和decoder的复杂的循环或者是卷积神经网络,表现的比较好的模型中间会使用attention的机制。但是transformer的模型只使用了attention的机制,并用实验表明模型具有更好的并行性,而且需要的训练时间更少,并且transformer模型运用在一些泛化的模型上是比较好的。
2024-04-10 21:31:31 992
原创 神经网络概述
但是感知机只能处理线性分类的问题,无法解决非线性的问题(如:异或问题)作用:降低特征图参数量,保留图像显著特征,降低过拟合和扩大感受野。单层感知机本质上是一个二分类器,只有输入层和输出层,没有隐藏层。非线性 连续可微性 有界性 单调性 平滑性。CNN核心 1、局部感知 2、局部共享。隐藏层的层数越多,神经网络的分辨能力越强。初始化的位置,步长等都会影响梯度下降算法。神经网络包括输入层、隐藏层和输出层。解决方法:添加了隐藏层。单核卷积 相乘再相加。
2024-04-06 23:03:52 560
原创 C语言指针
由上述结果可以看出,int型指针和char型指针所占的大小是相同的,即在固定的系统下指针所占的字节是相同的。2、使用指针传递输出参数,利用主函数和子函数使用同一套数据的特性,实现数据的返回,实现多返回值函数的设计。指针就是指针变量,用来存储其它数据单元(变量,数组,结构体,函数等)的首地址。//p是int型的指针,加的是一个int型的大小,并不一定是1。对于单独的变量而言,一般不执行p++;,则这个指针指向这个数据单元,如果存放的值为0,则这个指针为空指针。何种类型的指针在固定的系统下所占的字节是固定的。
2024-04-04 16:24:48 239
原创 Transformer
表示在生成b1的时候只能考虑a1,在生成b2的时候只能考虑a1和a2,在生成b3的时候只能考虑a1,a2和a3,在生成b4的时候考虑a1,a2,a3,a4。与AT不同的是,NAT是一次输入多个begin,但是这就有一个问题,如何确定输入的begin的数量(因为输入是不确定的)?过程概述图(只有红框里面的数据是未知的,需要通过training data找出来的,其余的数据都是已知的)与a1的关联性越强,即得到的α' 的值越大,那么最后计算b1的时候的影响就会越大,就会越接近。
2024-03-31 16:54:52 850 1
原创 数据结构——线性表
typedef int Status 表示为int 定义一个新的名称Statusint length;}SqList;SqList是这个结构体的名称,结构体中包含元素和长度,里面的元素使用指针类型是为了动态分配内存,使用指针允许我们在运行时动态地分配和重新分配内存。
2024-03-30 23:45:00 350
原创 AlexNet补充
每一个神经元有50%的概率被随机掐死,即随机阻断该神经元的前向和反向传播,那么每一个神经元与其它的神经元的合作就是随机的,打破了他们的联合依赖适应性。2、随图片的颜色和 光照等进行随机的变换,一张图会变成很多张图。1、对一张图片进行裁剪,平移转换等,一张图片可以变为很多张图片。sigmoid和tanh是饱和的激活函数,会造成梯度消失的问题,学习速率降低。减少过拟合之数据增强(增加图片的数量,参与训练)文章认为这种方法可以防止过拟合。把模型并行的放在两个GPU上。减少过拟合之dropout。
2024-03-30 17:02:21 123
原创 AlexNet
摘要的主要内容是说训练了一个很大很深的卷积神经网络用于对大量的图片进行分类,并且说明了测试的结果优于之前的数据;接着对模型进行了介绍,参数和神经元的熟练,池化层和全连接层等等;然后说使用GPU进行对模型进行了加速;最后说使用模型参加比赛,结果很好。ps:对于论文而言摘要写得并不是很好第一遍看过后文章的结果很好,使用神经网络实现的。
2024-03-30 13:18:04 840
原创 LASSO回归
在线性回归损失函数的基础上增加正则化项,对权重进行限制,将有限的权重放到更重要的特征维度上。:使每个权重都不会过大,若某个权重过大,自变量x一旦发生微小的改变,就会导致输出发生巨大的变化,容易过拟合。加上正则化项之后精度降低,稳定性升高权重计算的过程:λ的值越大,表示数据对最终权重w的影响越小,λ值增加,不重要的维度的权重会随之减少,避免求逆不存在的现象。(X转置X)求逆容易出现不存在的现象,加入了λ之后可以避免。
2024-03-29 21:52:52 224
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人