如何有效阅读文献

news2025/2/23 13:58:00

作为研究生要保持看文献的能力,以《面向大规模图像定位的高效优先匹配(Efficient & Effective Prioritized Matching for Large-Scale Image-Based Localization)》文献为例,本文记录了自己在学习过程中如何阅读文献技巧。

文章目录

    • 一、标题
    • 二、摘要
      • 1、解决了什么问题,使用了什么方法
    • 三、引言
      • 1、描述了几类创新点(contributions)
      • 2、基于xxx的描述
    • 四、正文
      • 1、系统框图
      • 2、算法公式
      • 3、站在作者的角度想问题
    • 五、实验
      • 1、从全局角度上看
      • 2、描述图片
    • 六、结论

一、标题

首先看到一篇论文的情况下,先去从标题看一下内容做的是什么,第一个做的是匹配(Matching),匹配是方法,目标作用于定位(Localization),场景是大规模(Large-Scale)。标题需要仔细斟酌。
在这里插入图片描述

二、摘要

只需要明白两个问题:

1、解决了什么问题,使用了什么方法

问题:大尺度的匹配和定位 large scale image-based localization

方法:优先匹配算法 a novel prioritized matching step

有的文献可能不会明确解决的是什么问题,摘要里面直接讲创新点也是可能的,然后用突出创新点的方式完成整个摘要,最终大家想得到的结果就是这个方法我能不能用到我自己的算法里面。

三、引言

简介部分一般会介绍一些其他算法的缺陷和本文算法的创新点。主要需要关注的是:其他算法有什么缺陷,本文算法的创新点是什么还需要注意可能会描述论文在XX论文的基础上进行提出的,那最好再把基础的论文再看一遍。

文献的创新点可以从一下几个方向去看

1、描述了几类创新点(contributions)

有可能描述了三个创新点,最后实际落脚到了一个创新点,那么他如何把这一个创新点展开写成三个的,并且建议多看一些高质量的论文,这样才能看出写法上的区别,一个是看贡献,用了哪些方法,用了这些方法怎么去实施,换位思考如果是自己的话应该如何实施,你有可能想不到作者想到的方式,那么作者在引言的部分可能会讲到他之前的一些工作,或者受激励于的一些工作,有可能和其他的算法研究的同一个问题,那么你就可以循着摘要点进去看用什么样的方法做的同样的问题

需要注意创新点有没有和其他文章类似的,最好能从作者的角度。想一下,他是如何想到这个算法的,从哪里得到的启发

2、基于xxx的描述

以及基于……(base on…)那么就在下载他的参考文献,对比他们之间的不同,比如这篇文章写到(This paper is based on our previous publications [7], [8].)

那么就证明[7][8]这两篇文献引出了目前这篇文献,那么目前这篇文献是怎么想到的从那个角度想到的,怎么立足于[7][8]两篇文献,形成这样的思维惯性,这样看到其他论文再能引发你自己的想法

四、正文

算法具体描述没有语言上没有什么大的问题,注意逻辑性

1、系统框图

一个好的作者整个系统框图是非常缜密的,每个部分之间的联系。框图中有些地方可能没有创新性,有些地方有创新性,

2、算法公式

找一些基础性的公式,需要注意作图以及哪些公式或者图形是基础的,自己可以用到的。

3、站在作者的角度想问题

从中筛选内容,选择有价值的段落,联系几篇论文,形成这样的思维惯性,这样看到其他论文再能引发你自己的想法,这样就好自己有想法去创新,然后准备实施

五、实验

分析实验设计的步骤,为什么这么设计

1、从全局角度上看

查看逻辑性,学习实验为什么设计,对比数值是为什么

2、描述图片

作者对每副图片是怎么描述的,你会怎么描述,表达数据的方式,表格和图是不一样的,图更直观

优先匹配算法

# 二部图的匹配关系
graph = {'a': {1}, 'b': {1, 2}, 'c': {1, 2, 3}, 'd': {2, 3, 4}, 'e': {3, 4, 10}, 'f': {4, 5, 6}, 'g': {5, 6, 7},
         'h': {7, 8}, 'i': {9}}

from copy import deepcopy


class HK_algorithm(object):
    def __init__(self, graph):
        """
        初始化和接受配对关系图,初步处理
        :param graph:为了方便操作,二部图的左右集合我们用不同的数据类型来表示
        """
        self._graph = deepcopy(graph)
        self._left_set = set(self._graph.keys())
        self._right_set = set()

        self._matching = {}
        self._dfs_paths = []
        self._dfs_alternately = {}

        self.iter_times = 0

        # 处理 右端点 的端点,放入 self._right
        graph_values = set
        for value in self._graph.values():
            for i in value:
                self._right_set.add(i)
        print(self._right_set)

        # 为了找增广路径, 需要将右端点,可以连接的左端点处理成为一个相应的 graph 字典
        for left_node in self._left_set:
            for neighbour in self._graph[left_node]:
                if neighbour not in self._graph:
                    # 防止重复
                    self._graph[neighbour] = set()
                    self._graph[neighbour].add(left_node)
                else:
                    self._graph[neighbour].add(left_node)
def breadth_first_search(self):
        visited = set()
        layers = []  # index = layer 按照层存储点 待遍历的点
        layer = set()

        for node in self._left_set:
            if node not in self._matching:
                layer.add(node)

        layers.append(layer)

        while True:
            new_layer = set()
            layer = layers[-1]  
            for node in layer:
                if node in self._left_set:
                    visited.add(node)
                    for neighbour in self._graph[node]:
                        if neighbour not in visited and (
                                node not in self._matching or neighbour != self._matching[node]):
                            new_layer.add(neighbour)
                else:
                    visited.add(node)
                    for neighbour in self._graph[node]:
                        if neighbour not in visited and (node in self._matching and neighbour == self._matching[node]):
                            new_layer.add(neighbour)

            layers.append(new_layer)

            if len(new_layer) == 0:
                return layers
            for node in new_layer:
                if any(node in self._right_set and node not in self._matching for node in new_layer):
                    return layers

六、结论

有些论文的结论部分会有未来展望,可以看看,作为自己的新方向

一些大作者的展望,可以跟踪一下他近期的成果,多关注这方面的论文

总结:推荐IEEE TRANSACTIONS,论文质量都很高的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/755352.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第八节 学生管理系统 (阶段案例)

学生管理系统 1.1 设计背景 管理系统,主要任务就是使用计算机对学生的各种信息进行日常管理,如: 添加删除修改查询退出系统 程序设计思路 1.2 需求设计分析 打印 “学生管理系统” 的功能菜单,提示用户选择功能序号; print_menu() 打印函…

WebSocket协议基础

文章目录 什么是websocketwebsocet 特点 一、websocket 建立连接流程二、websocket 握手流程客户端握手包2.服务端握手包 三、websocket数据总结参考 什么是websocket WebSOcket 是基于TCP的应用层协议。该协议和http或https 相似,但是却区别于http的一种新的协议。…

AD Class 、设计参数、规则的创建

设计 生产 线宽 间距 过孔 根据生产的要求进行桥接 Class 电源走线 和 信号走线 设计—》类里有 将所有的电源都添加进电源类里 新建的类别可以在Panls的PCB中看到 并且可以在这里面改变线的颜色 区分电源 对于走线的宽度,电源主要是用来载流的,信号主要是用来做信…

彻底理解Handler的设计之传送带模型

作者:彭泰强 0 这篇文章的目的 有时候在Handler相关的文章中可以看到,会把Handler机制的几个角色类比成一个传送带场景来理解。 例如,这篇文章中写到: 我们可以把传送带上的货物看做是一个个的Message,而承载这些货物…

6.2.8 网络基本服务----万维网(www)

6.2.8 网络基本服务----万维网(www) 万维网即www(World Wide Web)是开源的信息空间,使用URL也就是统一资源标识符标识文档和Web资源,使用超文本链接互相连接资源,万维网并非某种特殊的计算机网…

力扣 198.打家劫舍【中等】

198.打家劫舍 1 题目2 思路3 代码4 结果 1 题目 题目来源:力扣(LeetCode)https://leetcode.cn/problems/house-robber 题目:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃…

【Vue3】初始化和Composition API(组合式)

Vue3 创建Vue3.0工程查看自己的vue/cli版本,使用Vue/cli创建使用vite创建 查看Vue3.0工程vue.config.js中,关闭语法检查,main.js讲解app.vue讲解 常用的Composition API(组合式)1.拉开序幕的setup返回对象返回渲染函数…

降级npm后,出现xxx 不是内部或外部命令解决方法

比如我安装了anyproxy npm install anyproxy -g 之后在cmd中输入anyproxy 发现 anyproxy 不是内部或外部命令解决方法. 一般出现这样的问题原因是npm安装出现了问题,全局模块目录没有被添加到系统环境变量。 Windows用户检查下npm的目录是否加入了系统变量P…

时序预测 | MATLAB实现Hamilton滤波AR时间序列预测

时序预测 | MATLAB实现Hamilton滤波AR时间序列预测 目录 时序预测 | MATLAB实现Hamilton滤波AR时间序列预测预测效果基本介绍程序设计参考资料预测效果 基本介绍 预测在很大程度上取决于适合周期的模型和所采用的预测方法,就像它们依赖于过滤器提取的周期一样。标准 Hodrick-P…

Top-down方法学

Top-down方法学由Intel提出,是一种软件性能分析技术。 x86处理器的PMU一般提供8个PMC,其中4个是固定的PMC,其对应的监控信号是不能配置的。另外4个PMC监控的信号是可以配置的。 Top-down方法学的动机 通过PMC,软件工程师可以获…

【观察】超融合+软件定义,构建双活数据中心“新范式”

随着数字化转型的加速,企业的业务经营活动越来越多依赖于数据中心等基础设施,“全天候”业务连续性运营也正成为大中型企业追求的目标,如何实现减少甚至消除正常和非正常的停机对业务可用性造成的影响,不但是企业IT建设与运维团队…

Spring - 更简单的获取 Bean 对象

目录 二、获取 Bean 对象(对象装配或者对象注入) 1. 属性注入 1.1 属性注入的优点和缺点: 2. Setter注入 2.1 Setter注入的优点和缺点 3. 构造方法注入(spring 官方推荐的对象注入方式) 3.1 构造方法的优点和缺点…

【PHP面试题47】Redis的持久化有哪几种?有什么区别?谈谈你的理解

文章目录 一、前言二、RDB(Redis数据库)持久化方式2.1 触发条件2.2 RDB文件的格式2.3 RDB持久化原理2.4 RDB方式的优缺点 三、AOF(Append Only File)持久化方式3.1 触发条件3.2 AOF文件的格式3.3 AOF持久化原理3.4 AOF方式的优缺点…

cmake项目相关的变量

cmake项目相关的变量 在cmake项目中,通常需要对路径进行操作,比如我们需要知道源码的顶级目录,源码的构建目录和某个project名字相关的一些目录等。 CMAKE_SOURCE_DIR,这个变量的值代表的是源码的顶级目录。但是这个变量的值可能…

Python(十一)变量多次赋值

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

【hadoop】部署hadoop的本地模式

hadoop的本地模式 本地模式的特点部署本地模式测试本地模式是否部署完成 本地模式的特点 没有HDFS、也没有Yarn只能测试MapReduce程序,作为一个普通的Java程序处理的数据是本地Linux的文件一般用于开发和测试 部署本地模式 进入该路径 /root/training/hadoop-2.7…

吴恩达机器学习2022-Jupyter

1 可选实验室: Python、 NumPy 和矢量化 简要介绍本课程中使用的一些科学计算。特别是 NumPy 科学计算包及其与 python 的使用。 2 目标 在这个实验室里将回顾课程中使用的 NumPy 和 Python 的特性。 Python 是本课程中使用的编程语言。NumPy 库扩展了 python 的基本功能&a…

mac 如何批量修改图片名称

mac 如何批量修改图片名称?很多使用mac电脑的小伙伴一直有这样一个疑问,怎么在电脑上一次性的批量修改大量图片的名称,很多小伙伴在电脑上整理图片的时候都需要批量重命名,批量处理的功能可以让我们节省不少的时间和精力&#xff…

抖音seo怎么选择关键词

要查找抖音的关键词,以进行SEO优化,可以按照以下步骤进行: 1. 关键词分析与筛选: 首先,你需要确定你的目标受众和内容类型。了解你的目标用户是谁,他们可能会搜索什么样的内容。然后,使用关键…

虾皮一面:手写一个Strategy模式(策略模式)

说在前面 在40岁老架构师 尼恩的读者交流区(50)中,最近有指导一个小伙伴面试架构师,面试的公司包括虾皮、希音、美团等大厂,目标薪酬50K以上,遇到了一个比较初级的问题: 请手写一个Strategy模式(策略模式…