![](https://img-blog.csdnimg.cn/ece9b8939d2946879bed48d241261be7.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
笔记
文章平均质量分 84
日常记录总结的笔记,方便日后查看~
HERODING77
本科大连理工大学软件工程,目前华东师范大学数据学院硕士在读,兴趣方向为智能体,LLM,自然语言处理,知识图谱,NER,联邦学习,数据结构与算法。
展开
-
【学习笔记】Understanding LSTM Networks
最近在整理LSTM相关的工作,看到了一篇非常经典的博客,遂沿着该博客的思路过了一遍LSTM,收获颇丰,故写下此篇笔记以帮助NLP初学者理解LSTM这个经典的模型,当然要想深入学习,还是看英文原版博客更合适。原创 2023-11-12 20:39:27 · 640 阅读 · 0 评论 -
【学习笔记】大模型并行化方法
最近跟着李沐老师的视频学习了深度学习分布式系统的发展。这里说是分布式系统,其实还是有点勉强,准确来说是分布式的框架,但是毕竟是系统的文章,基于提出的框架也做了很多系统上的优化,姑且算是分布式系统吧。深度学习近些年随着Transformer模型的流行,呈现出模型越来越大,层数越来越深的趋势,然而在硬件方面,由于成本和技术的限制,难以匹配模型容量的快速发展,比如现有最新的深度学习专业加速器H100,其在容量上也只有80G,连LLaMA 7B都训不起来,因此单机多卡或者多机多卡已经成为模型训练主流的硬件配置。原创 2023-09-29 00:09:30 · 909 阅读 · 1 评论 -
【学习笔记】多模态综述
本篇学习笔记虽然是多模态综述,本质上是对ViLT后多模态模型的总结,时间线为2021年至2022年,在这两年,多模态领域的模型也是卷的飞起,不断刷新领域的SOTA。在模型结构和数据上提出了很多高效有用的方法,如果你对多模态近两年的发展感兴趣,不妨看一看这一篇文章~上述的一系列工作可以总结为上面这张图。本文关于多模态的工作其实是从ViT出发的,之前多模态领域对于图像特征的抽取都需要借助CNN架构的模型和目标检测任务,效率低,性能差。随着ViT提出后,多模态领域终于实现文图框架上的统一,即ViLT工作的诞生。原创 2023-09-20 11:11:39 · 634 阅读 · 0 评论 -
【论文通读】CLIP改进工作综述
CLIP作为多模态对比学习里程碑式工作,在创新性,有效性和领域性三个方面都拉满了。本篇博客就来探讨在CLIP之后,各个领域是如何利用CLIP去提升当前领域的性能,以及如何利用CLIP信息整合的能力在多模态领域做大做强。将图文通过CLIP得到特征,然后将这些特征融合起来去做之前的任务,加强模型的训练。把CLIP特征作为teacher,和当前的模型做蒸馏,学习到更好的预训练知识。借鉴CLIP的思想,应用到当前领域,自己定义对比学习和正负样本。原创 2023-09-06 12:23:29 · 2769 阅读 · 0 评论 -
【论文通读】计算机视觉对比学习综述
本篇对比学习综述内容来自于沐神对比学习串讲视频以及其中所提到的论文和博客,对应的链接详见第六节。本篇博客所涉及的对比学习内容均应用在CV领域,算是到21年为止比较全面的对比学习综述内容讲解。对比学习作为一种自监督学习方法,其在CV领域的发展也印证着自监督学习的发展,科研工作者也在一步步揭开自监督学习的神秘面纱,通过构建不同的代理任务,采用不同的模型架构,来极力挖掘自监督学习的潜力。相信通过本篇博客的学习,你能够对对比学习有着更深刻的认识,万变不离其宗,当你领悟到对比学习的本质,你就能。原创 2023-08-28 21:33:02 · 1093 阅读 · 2 评论 -
【学习笔记】A Gentle Introduction to Graph Neural Networks
图无处不在,一系列对象的连接组合,可以自然表示为图。研究者已经针对图数据构建神经网络,并取得了很好的效果。现在的研究者已经在探索如何将图应用到实际的场景中,如药物发现、物理模拟、交通预测等。什么样的数据可以用来建模成图。为什么图和其它数据类型不同。GNN网络的结构。一个图由节点和关系组成,此外还包含全局的属性,如下图所示:为了进一步描述每个节点、边或者整个图,我们可以把信息存储到图中的每个部分中。原创 2023-08-07 17:22:20 · 447 阅读 · 0 评论 -
【课程笔记】分布式计算系统 徐辰
分布式系统:概念与设计》认为:分布式系统是若干独立计算机的集合,这些计算机对于用户来说是就像一个单机的系统。作用于若干独立计算机之上,使得这些计算机能够协同执行计算完成某项应用的软件系统。归根结底是为了解决某些类别的应用问题而设计的分布式系统。分类计算密集型应用:CPU 处理能力成为了首要限制因素。数据密集型应用:I/O 带宽成为了首要限制性因素(关键)。可靠的容错保障应该保证故障前后消息的一致性。至多一次:消息可能丢失至少一次:不会丢失但可能重复准确一次:不丢失不重复。原创 2023-06-24 15:04:00 · 1699 阅读 · 2 评论 -
论文缩写字符总结 HERODING的学习笔记
前言最近在阅读文献的时候发现了不少有趣的缩写字符,直接用翻译软件是翻译不出来的,只能通过网上查阅相关资料,索性在这里进行总结,把常见的缩写都总结一波,日后也会继续更新。缩写全称解释argargument参数变量,比如arg max f(x),即让f(x)最大的x的值w.r.twith respect to关于e.g.exempli gratia拉丁语,意思为“举例子”i.ephrase id est拉丁语,意思是“换言之”s.t.subj原创 2021-12-15 14:15:11 · 540 阅读 · 0 评论 -
【学习笔记】网络安全基础知识总结
网络安全基础知识总结前言一、网络安全概述1.1 引言1.2 密码学的发展1.3 密码学基础1.4 对称密码1.4.1 数据加密标准DES二、数论知识2.1 数论基础2.2 有限域2.2.1 群2.2.2 环2.2.3 域2.3 数论入门2.3.1 素数2.3.2 费马定理2.3.3 欧拉定理2.3.4 中国剩余定理三、网络安全进阶3.1 多重加密3.1.1 双重DES3.1.2 三重DES3.1.3 AES3.2 分组密码的工作模式3.2.1 电子密码本模式(ECB)3.2.2 密文分组链接模式(CBC)3原创 2022-03-06 09:42:52 · 7557 阅读 · 2 评论 -
【阅读笔记】Docker从入门到实践
Docker从入门到实践前言1. Docker简介1.1 什么是Docker1.2 Docker与虚拟机1.3 为什么用Docker2. 基本概念2.1 镜像2.1.1 分层存储2.2 容器2.3 仓库2.3.1 Docker Registry 公开服务2.3.2 私有Docker Registry3. Ubuntu安装Docker3.1 卸载旧版本3.2 使用APT安装3.3 使用Docker3.3.1 启动Docker3.3.2 建立Docker用户组3.3.3 测试Docker安装是否正确4. 使用镜原创 2022-02-22 22:39:24 · 1391 阅读 · 0 评论 -
【学习笔记】Ubuntu双系统+搭建个人服务器
Ubuntu双系统+搭建个人服务器前言1. Ubuntu+Win双系统1.1 制作U盘启动盘1.2 系统分盘1.3 安装Ubuntu系统2. 搭建个人服务器2.1 设置root2.2 配置ssh2.3 向日葵连接3. 内网穿透3.1 实现流程3. 总结前言前段时间整了一套主机,3060ti+intel 11600F,终于不用在轻薄本上跑机器学习代码了,也不用因为服务器价格昂贵而发愁了。但是这些仅限在家中使用,一旦外出或者返校,这套主机就在家里吃灰吧,想想一年在家不超过100天时间,买来实在是性价比不高,原创 2022-01-27 17:59:09 · 6008 阅读 · 5 评论 -
算法笔记 C++中const和auto的那些事 HERODING的算法之路
C++中const和auto的那些事前言1. const1.1 const修饰普通类型的变量1.2 const 修饰指针变量1.2.1 常量指针1.2.2 指针常量1.2.3 指向常量的常指针1.2.4 三者区别2. auto2.1 auto的用法2.2 auto的注意事项3. const与auto4. 总结前言最近做题在暴力的时候发现了一个问题,就是在一些数据量很大的时候(游离于内存的超出范围),如果是const auto& 遍历就不会出问题,但是auto或者const auto仍然会超时,所原创 2021-10-25 20:07:38 · 4509 阅读 · 0 评论 -
算法笔记 C++编程的小技巧 HERODING的LeetCode之路
万物皆可DP前言1. 有关头文件1.1 C语言的stdio.h1.2 其他头文件1.3 只用记住一个的头文件2. STL的相关操作2.1 Map的使用2.2 队列的使用2.3 vector的使用3. 常见细节3.1 小数点输出4. 总结前言坚持了这么多天编写代码,仍会时长出现一些被忽略的一些小细节,经常是百度一下或者回看之前的笔记,到最后还是忘记了。虽说大行不顾细谨,大礼不辞小让,但是真正到了编程的考场,到时候慌的就是自己了,为了让自己没有那么慌张,特此专门撰写了这篇有关C++小技巧的文章,注意是C++原创 2021-07-13 22:07:33 · 156 阅读 · 0 评论 -
算法笔记 万物皆可DP——动态规划常见类型 HERODING的算法之路
万物皆可DP前言1. 动态规划解题思路1.1 解题思路1.2 问题特点2. 背包问题2.1 01背包问题2.2 完全背包问题2.3 多重背包问题3. 字符串问题3.1 最长公共子序列3.2 分割回文串II前言如果说搜索算法占据了机试算法题的半壁江山,那么动态规划DP就占据了机试算法题的八分江山,可能有些夸张,但是在做题的时候明显可以感觉得到,万物皆可DP不是天方夜谭,什么组合的个数,最长匹配长度,最少的个数,凡是跟最优解有关的(无论最多还是最少)都可以用的上DP,所以之前的DFS、BFS中的最优解问题,原创 2021-07-12 21:21:08 · 851 阅读 · 1 评论 -
算法笔记 DFS的千层套路 HERODING的算法之路
DFS的千层套路前言1. 理解与审题1.1 树的DFS1.2 一维数据结构的DFS1.3 图的DFS2. 解法与优化2.1 树的DFS2.2 一维数据结构的DFS2.3 图的DFS3. 总结前言深度优先搜索DFS应该是各家大厂和高校机试的香饽饽,因为这类题型牵扯到图的遍历,略显复杂,但是用递归实现起来相对代码量少,还比较容易找到规律,所以在LeetCode中相当于中等题的难度,所以几乎每两题就会有一题能够使用DFS去解决,如果掌握了DFS的技巧,相信你一定能够在各大机试中锋芒毕露,斩获offer!1原创 2021-07-11 16:20:42 · 358 阅读 · 1 评论 -
算法笔记 揭开广度优先遍历BFS的神秘面纱 HERODING的算法之路
揭开广度优先遍历BFS的神秘面纱前言1. 审题1.1 树的BFS1.2 图的BFS2. 解法2.1 树的BFS2.2 图的BFS3. 总结前言最近到了面试的高峰时期,前段时间也刷了不少广度优先遍历的算法题,算是对广度优先遍历有了一点点的理解与思考吧,希望在此记录下来,为后人以及未来的自己提供一个回忆的捷径~1. 审题既然是使用广度优先算法,那么首先得明白遇到的题目是否能够使用BFS,这又分为两种情况,一个是树的层次遍历,一个是有关图的遍历(包括邻接矩阵和链表),下面我将分别对这两种情况进行说明。原创 2021-07-11 00:10:43 · 226 阅读 · 1 评论 -
算法笔记 揭开scanf(“%d“, &a)!=EOF的神秘面纱 HERODING的算法之路
前言许多时候,我们在编程或者参考他人的代码题时,在遇到循环输入的问题常常会见到while(scanf("%d", &a)!=EOF)的使用,这种用法并不少见,前面的while可以理解,循环嘛,那后面的输入到底该如何理解呢?以前也查阅过资料说EOF是end of file,也就是输入不等于文件结束,就可以继续输入,记是记下来了,还是无法理解,在复习这段时间,我又查阅了资料,终于弄明白是怎么一回事了,下面我将详细解释。前提知识点scanf是有返回值的!返回的是被输入函数成功赋值的变量个数。wh原创 2021-05-19 09:26:31 · 1905 阅读 · 1 评论 -
算法笔记 排序算法完整介绍及C++代码实现 HERODING的算法之路
数据结构刚好复习到排序部分,排序主要分为三种类型,插入排序、交换排序、选择排序,为了更好理解和记忆,这里我将代码和记录下来,以备遗忘之用,亦可为后人参考~原创 2021-05-18 19:36:04 · 233 阅读 · 1 评论 -
算法笔记 KMP算法 HERODING的算法之路
前言使用暴力算法进行的字符串匹配操作往往不够高效,一般的时间效率为O(m*n),而KMP算法可以优化到O(m + n),这究竟怎么做到的呢?观察暴力匹配的方法,我们可以注意到匹配的指针会不断回退,这就导致了许多不必要的重复操作,而KMP在主字符串中指针不会回退,这就是高效所在之处。当然,一般情况下,普通模式匹配的实际执行时间复杂度近似O(m + n),因此至今仍被采用。算法介绍KMP算法的核心,是一个被称为部分匹配表(Partial Match Table)的数组,以及前缀和后缀。比如对于字符串“a原创 2021-05-02 10:23:51 · 566 阅读 · 0 评论 -
算法笔记 二叉树已知后序与中序输出前序[二叉树 前序遍历] HERODING的算法之路
二叉树已知后序与中序输出前序。后序:3, 4, 2, 6, 5, 1(左右根)中序:3, 2, 4, 1, 6, 5(左根右)解题思路:递归的方式,每次输出根节点,因为前序遍历的每个点都是大大小小子树的根节点,明白这个一切都好说了。因为后序的最后一个总是根结点,令i在中序中找到该根结点,则i把中序分为两部分,左边是左子树,右边是右子树。因为是输出先序(根左右),所以先打印出当前根结点,然后打印左子树,再打印右子树。左子树在后序中的根结点为root – (end – i + 1),即为当前根结点-(右原创 2021-05-01 00:00:01 · 244 阅读 · 1 评论