[论文阅读] (30)李沐老师视频学习——3.研究的艺术·讲好故事和论点
《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期待与您前行,加油。
前一篇带来李沐老师对论文写作和科学研究的分享,介绍找问题和明白问题的重要性(Asking Questions, Finding Answers),核心为Topic、Question和So What三点。这篇文章将详细讲解讲一个故事,能让读者信我讲的东西(讲好论文的卖点),怎么样提出我的论点和论据来支撑我要讲的故事,在第四部分会讲怎么样把这个故事写下来。基础性文章,希望对您有所帮助。一方面自己英文太差,只能通过最土的办法慢慢提升,另一方在面是自己的个人学习笔记,并分享出来希望大家批评和指正。这些大佬是真的值得我们去学习,献上小弟的膝盖~fighting!
参考李沐老师github和原视频地址,感谢、感恩和推荐大家阅读:
- https://github.com/mli/paper-reading/
- https://www.bilibili.com/video/BV1WB4y1v7ST
- “爱喝水的崩奔”老师的笔记:https://www.bilibili.com/h5/note-app/view?cvid=17586472
文章目录
- 前文回顾
- Making an Argument(怎么样讲故事)
- 第7章 Making Good Arguments: An Overview
- 1.Argument as a conversation with readers
- 2.Supporting your claim
- 3.Connecting claims and reasons with warrants
- 4.Building a complex argument out of simple ones
- 5.Creating an ethos by thickening your argument
- 第8章 Making Claims
- 1.Determining the kind of claim you should make
- 2.Evaluating your claim
- 3.Qualifying claims to enhance your credibility
- 总结及个人感受
前文赏析:
- [论文阅读] (01)拿什么来拯救我的拖延症?初学者如何提升编程兴趣及LATEX入门详解
- [论文阅读] (02)SP2019-Neural Cleanse: Identifying and Mitigating Backdoor Attacks in DNN
- [论文阅读] (03)清华张超老师 - GreyOne: Discover Vulnerabilities with Data Flow Sensitive Fuzzing
- [论文阅读] (04)人工智能真的安全吗?浙大团队外滩大会分享AI对抗样本技术
- [论文阅读] (05)NLP知识总结及NLP论文撰写之道——Pvop老师
- [论文阅读] (06)万字详解什么是生成对抗网络GAN?经典论文及案例普及
- [论文阅读] (07)RAID2020 Cyber Threat Intelligence Modeling Based on Heterogeneous GCN
- [论文阅读] (08)NDSS2020 UNICORN: Runtime Provenance-Based Detector for Advanced Persistent Threats
- [论文阅读] (09)S&P2019 HOLMES Real-time APT Detection through Correlation of Suspicious Information Flow
- [论文阅读] (10)基于溯源图的APT攻击检测安全顶会总结
- [论文阅读] (11)ACE算法和暗通道先验图像去雾算法(Rizzi | 何恺明老师)
- [论文阅读] (12)英文论文引言introduction如何撰写及精句摘抄——以入侵检测系统(IDS)为例
- [论文阅读] (13)英文论文模型设计(Model Design)如何撰写及精句摘抄——以入侵检测系统(IDS)为例
- [论文阅读] (14)英文论文实验评估(Evaluation)如何撰写及精句摘抄(上)——以入侵检测系统(IDS)为例
- [论文阅读] (15)英文SCI论文审稿意见及应对策略学习笔记总结
- [论文阅读] (16)Powershell恶意代码检测论文总结及抽象语法树(AST)提取
- [论文阅读] (17)CCS2019 针对PowerShell脚本的轻量级去混淆和语义感知攻击检测
- [论文阅读] (18)英文论文Model Design和Overview如何撰写及精句摘抄——以系统AI安全顶会为例
- [论文阅读] (19)英文论文Evaluation(实验数据集、指标和环境)如何描述及精句摘抄——以系统AI安全顶会为例
- [论文阅读] (20)USENIXSec21 DeepReflect:通过二进制重构发现恶意功能(恶意代码ROI分析经典)
- [论文阅读] (21)S&P21 Survivalism: Systematic Analysis of Windows Malware Living-Off-The-Land (经典离地攻击)
- [论文阅读] (22)图神经网络及认知推理总结和普及-清华唐杰老师
- [论文阅读] (23)恶意代码作者溯源(去匿名化)经典论文阅读:二进制和源代码对比
- [论文阅读] (24)向量表征:从Word2vec和Doc2vec到Deepwalk和Graph2vec,再到Asm2vec和Log2vec(一)
- [论文阅读] (25)向量表征经典之DeepWalk:从Word2vec到DeepWalk,再到Asm2vec和Log2vec(二)
- [论文阅读] (26)基于Excel可视化分析的论文实验图表绘制总结——以电影市场为例
- [论文阅读] (27)AAAI20 Order Matters: 二进制代码相似性检测(腾讯科恩实验室)
- [论文阅读] (28)李沐老师视频学习——1.研究的艺术·跟读者建立联系
- [论文阅读] (29)李沐老师视频学习——2.研究的艺术·明白问题的重要性
- [论文阅读] (30)李沐老师视频学习——3.研究的艺术·讲好故事和论点
前文回顾
回去前两部分内容:
- 写文章的时候要跟读者建立联系,因为我们写的文章最后是要给读者来读的
- 在选题的时候要选择有价值的题,读者认为这个问题是值得解决的
现在假设你的研究已经正常的展开,已经做了一半或者甚至是一大半的时候,这时候就要开始想说怎么样来讲故事,写论文了。也就是说,我选的题已经保证了读者会来读我的文章,他有兴趣来看,但最终要干的任务是要让读者信我写的东西,包括我对一个问题提出了一个新的看法,要让大家认同这个看法。或者说提出了一个新的方法,使得大家相信这个新的方法确实能解决某一个问题。
- 这篇文章的核心是讲一个故事,能让读者信我讲的东西(讲好论文的卖点),怎么样提出我的论点和论据来支撑我要讲的故事,在第四部分会讲怎么样把这个故事写下来。
Making an Argument(怎么样讲故事)
怎么样讲我们的故事。Argument可以翻译成“论述”或“论据”,口语化中叫“故事”也可以。我们要讲一个故事(科研写作),肯定不能像小说或日常对话一样的讲故事,需要是有理有据的讲一个故事。
前言
怎么样收集一个研究的论述。你不能等到把所有的信息都收集全的时候,再去考虑故事要怎么写。 因为你可能很难把所有东西都收集,如果没有一个故事的话,也不知道应该怎么去收集你的东西。
You can’t wait to plan your argument until after you’ve gathered every last bit of data and found every last relevant source.
当然,想一个故事和做研究很多时候是一个并行或交错进行的过程。如果做过研究的话,很有可能一开始想做的东西是做问题A,但是你随着研究的深入,或者提出了新的方法或者是读了更多的文章以及做了更多的实验,会发现其实你更想解决的或更适合解决的是问题B,所以这时候整个研究的一个计划以及要说的故事都会跟着发生改变。
实际上,对大部分研究来讲,很难在一开始就能预测到想要怎么样的结果,如果在一开始就知道最后的方案是什么样子,结果是什么样子的话,很有可能这个就不叫——研究,这个东西一般叫做——工程。
- 工程就是我们一开始能想清楚答案,只要把它执行好就行了
- 对研究来讲,我们通常要去探索未知的一些答案
作者说我们需要有一个这样的故事在心中,去指导收集什么样的信息以及做什么样的实验;然后这个故事叫research argument(学术的论点或论述),就是用来回答所有我们可以预测的一些读者的问题,这样话,就知道你的研究还剩了多少可以做。这就是为什么,作者一开始就说,需要早一点想我们的故事,不要等到所有的研究做完了再去想。
- 比如:做实验证明算法很有效,但是如果我在最后发现故事发生变化的情况下,很有可能需要重新做一个实验。例如在不同的超参数或不同的情况下做一些实验,甚至是换一下数据集或应用。
- 所以,不能说我们已经做完了所有研究,剩下一点时间来写论文,写着写着就发现故事讲不通了,要换的时候再改就很麻烦了;而是说一边做实验一边讲故事,把大纲写出来,如果故事要发生变动的话,实验可以跟着变,这样子就是比较好的一个过程,不要等到最后开始写。
解释什么是argument
对于研究来讲,很多时候我们一开始是没有冲突的,只是说大家在信息的获取上面是不一样的,你的思考可能更前一点,所以我们要干的事情更多是跟读者做一个合作的探索,让读者在读了之后也达到跟我们同样的认知水平上。
这里重要的一点是说,不一定需要读者也认同我们的方法是最好的,更多是读者在读了我们的文章之后,他跟我们一起去探索解决一个重要问题,这个问题读者也是关心怎么样去解决它,然后在读者在这个过程中间也去思考。 他也许在思考后说:我的结论跟你是差不多的、我觉得你这方法很好;或者也会说:在这过程中我发现一个更好的想法,我可以在你的方法再做改进,得到一个新的研究,这个都是我们要追求的。
- support our claims with good reasons and evidence
- Why should I believe that? 证明你的论点是可信的,通过足够多的论据和原因
- 先前在研究问题中,在考虑研究问题为什么有价值时,我们需要不断去问So What这个问题。同样道理,在组织你的故事时候,我们要不断的从读者角度去问这个问题,为什么我应该相信这个事情(Why should I believe that?)。
如果整本书要抽出两个狠心问题,其实就是这两个问题:
- So What(研究动机在哪,我们现在做的东西So What,别人care不care,Motivating Your Question)
- Why should I believe that?(证明你故事的论点和论据,使人信服)
所以,在研究开始和研究结束的过程中,不断的给自己问这两个问题基本上就可能指导怎么样做研究了。
第7章 Making Good Arguments: An Overview
1.Argument as a conversation with readers
Making Good Arguments: An Overview(研究故事概述),整个论证里面几个核心的东西:
- 首先要提出一个论点(make a clam)
- 然后用一些原因和证据来支撑我们的论点(Assembling Reasons and Evidence)
- 有时候需要承认和回复一些别的观点(Acknowledgments and Responses)
- 最后有时候要提供你推理的一些逻辑原则(Warrants)
举例说明在日常对话中怎么充分利用这个东西。
当理解每一句话在整个论述中扮演的角色的时候,既能够帮我们去更好的读一篇文章,而且是用批判性的眼光去读一篇文章,也能帮助我们在构造自己故事的时候,能够让每一句话都在发挥它的用处。所以写作的核心是说,要在脑海中去预测这样子对话,使得在跟人真的对话之前,把所有这种可能性——别人攻击你的地方,以及缺失的理由、论点、论据全部补充起来,这样子就能写出别人相信的故事。
解释几个重要的元素:
- 论点:我们核心的理由是什么东西,很多时候文章最后就是一个核心的论点,当然论点还有别的子论点支撑;
Claim:what do you want me to believe? What’s your point? - 理由:为什么我们的论点是对的;
Why do you say that? Why should I argee? - 论据:一些数据点或者别人的工作;
How do you know? Can you back it up? - 承认和回复:对于别的一个观点的一个说明;
Acknowledgment and Response: But what about…? - 保证:这个逻辑是怎么样过来的,如果读者不理解的话,应该把它说出来,解释一下我们的理由为什么能解释我们的结论好。
Warrant: How does that follow? What’s your logic? Can you explain your reasoning?
2.Supporting your claim
核心要干的事情(支撑论点 Supporting your claim):
(1) 怎么用原因和论据来支撑你的论点
用原因来支撑的话,一般会有一个“because”这一个词在这个地方。在一般的情况下,很少只用一个理由来支撑你的论点,很有可能会用多个理由,而特别的是说,其实理由的本身也是一个论点。举例如下:小时候删除学语言。
(2) 以论据为基础
理由必须是在论据之上的(基于论据),结论是基于好的原因,理由又是基于好的论据。
- 所谓的论据就包括了做实验得出来的一些实验结果,或者前面值得信任那些工作里面的一些论点,论据相对客观,这个是现实存在;理由很多时候更多是一个思维的逻辑,是存在你脑海中的,论点也比较偏主观。一旦我们成功的把论点通过理由和论据支撑住了之后,被大家认可之后,我们的论点也会成为别人工作的一个论据。
我们一个论点需要有原因来支持,这些原因又基于我们的论据,所以我们要保证原因能够合理的解释我们的论点,反过来讲每一个原因也需要有它的论据来支撑才是合理存在的。
使用承认和回复:
作者提前的预测读者可能会提的一些反对意见,然后把答案写在这里,这样子在读者读且心中产生问题的时候,作者就在下面就把这些问题给回答掉。其实回答本身不是最难的问题,最难的是说在写的时候要假设他们这些问题的存在,就是你要想到你的读者可能会提这样子的问题。举例说明:
当你写一篇论文的时候,会很小心地想出各种情况,包括最初做实验、设计、写作等阶段,不管跟你的作者、导师推敲多久,一旦论文投到一个会议或杂志时,你总会发现评审人会问你一些问题,你根本就没有想到,但是这些问题的答案又很简单,你其实都能回答。然而,因为你没有预测到他们会问这些问题,所以在论文中你没有回答这些问题,导致只能在Rebuttal时候的时候再去解决。此时的效果要远远地差于你在文章刚开始就写清楚,别人会更加信任你的工作,而不是去反驳疑问。
- 学术论文rebuttal经验分享 - B站
核心观点是:我们得尽量考虑周全,去想象你的读者会问这样子的问题。
下面是框架图,我们有个论点,需要理由来支撑,这些理由也需要用论据来支撑。另一方面,我们的论点可能有一些反对的意见,或者不同的解释、不同的看法,这样子我们需要去承认这些东西的存在,并且给予回复。既要把正面的撰写清楚,也要把反面的考虑到。
3.Connecting claims and reasons with warrants
需要注意,用理由去支撑论文时,读者可能会看不出它们之间的关系。举例如下:
- 论点是说“我们看到在欧洲和北美有更多医疗开销,这是因为气候变换导致冰冻线往北移”。如果你对这块不了解,很可能看不懂为什么理由能支撑这个结论,它们之间的联系是怎么回事。在读者看不明白的时候,需要补充说明它们之间的联系,不然读者是不会买账的,至少李老师也看不懂。
这个补充说明一般是一些通用的原则,就是一些大家都能接触的东西,然后把它作为一个通用的原则。在这个原则之下,能够特立出我们的推理逻辑;
- 当一个区域有更少的冰冻时,会导致亚热带的昆虫被更少地杀死,从而使得人类需要跟亚热带昆虫带来的疾病做斗争,以至于医疗开销增加。
整个逻辑比较绕,所以使用类似的理由需要小心,保证大家能接受和认同。接下来大家要知道如何从通用原则,怎么样细化推理到具体的论点和论据上。对上面例子的补充说明如下:
- 当一个区域有更少的冰冻时,我们可能会有更多的医疗开销去处理亚热带昆虫带来的疾病。接下来是论点和原因,以及一个论据,即过去的一百年里冰冻线已经低了很多以及对应的速度,从而让读者更加信服。
因此,当原因和论点之间隔得比较远的时候,需要给出一些推理的保证,来使得读者能清楚的认识到我们的原因和论点是怎么样联系起来的。
4.Building a complex argument out of simple ones
实际上我们真正写的时候,整个逻辑可能是比较复杂的。
- 我们对一个论点通常会有两个或更多理由来支撑,这些原因可能本身又被另外的一些理由来支撑,而且每个理由需要有对应的论点,如果理由之间联系不紧密,还需要一些保证来给大家讲明白。
- 读者总会从反面去想你的论点,大家都是抱着批判的态度来看你的文章,你需要给出很多种反面的意见,使得你整个论据更加可信。
因此,可能就想说一个很简单的东西也可以变得比较复杂,想把一个文章写的有理有据、滴水不漏是一件很难的事情。
5.Creating an ethos by thickening your argument
要把argument弄得“厚一点”。在支撑论点的时候,正正反反都要多讲一点,因为我们的目的是要通过这些比较厚实的论述,让读者能够相信我们所说的内容,这也是我们科研写作的终极追求。
最后补充常见的错误:
- 当你刚进入一个新的领域时,甚至在别的领域已经做过研究了,新领域可能在摆道理的方法跟别的领域是不一样的。比如,写系统方向文章和算法方向文章是不一样的,它里面用来说明这些观点以及最终目的是由区别的。当然学科不同也存在差异,在科学技术领域,通常会引用数据或客观的知识,而文学会引用读过的经典文章论述或论点。因此,当新进入一个领域或者是换一个领域的时候,要去多读人家的文章去看其他人是怎么样去讲论述的。
- 如果在一个领域待的时间够久的时候,其实什么都懂了,这时候再去写的时候可能会写的比较简单一点。比如,你可能认为一个理由去支撑一个论点的联系是显然的,但是读者没这么熟悉,可能看不出来;另一个,你可能觉得论点的反面论据显然不对,但如果没有写出来,读者可能会觉得反面原因有一定道理。因此,在写作的时候,还是需要向主流人群来看拢。
第8章 Making Claims
Making Claims(支撑论点)。所谓声明,就是研究问题的答案,就是把答案浓缩成一句话变成声明,然后整个文章主要是围绕去支撑这个声明。本章将讨论怎么样识别不同种类的声明,告诉方法判断声明是否具体和重要。
声明通常要考虑那么下面这3个问题:
- 我在做一个什么样类别的声明(What kind of claim should I make?)
因为不同类别的声明,导致可能要支撑他的这些证据是不一样的 - 声明够不够具体(Is it specific enough?)
因为对于比较空洞的声明,大家读起来会不太信任 - 声明够不够重要(Will my readers think it is significant enough to need an argument supporting it?)
读者觉不觉得有必要去花一篇文章去支撑我这样子的声明
在之前找问题的时候,一定要找到有用的问题,读者觉得你这个问题是重要的。现在是说你的声明同样是重要的,我们要解决一个有价值的问题,然后我的解决的方法本身应该也要是有价值。
1.Determining the kind of claim you should make
首先,来看看这些声明怎么样分类。
偏概念性的分类:
- 声明一些什么东西存在,或者什么样的事实
- 声明一些什么样的定义,什么样的分类
- 声明什么样的原因,和它导致的一些后果
- 声明一些评论,是好是坏
- 声明对于解决某一个问题的话,需要采取什么样的行动,或者是什么样的政策
偏实际技术性的分类(我们写的文章声明属于该类):
- 我们的方法是可行的,可以花合理的时间和力气来实现它
e.g: 人工智能通常在讲提出一个什么样的算法,一个简单的办法是我的代码是开源的,我预训练好的模型是可以公开下载的,所以导致大家觉得你这东西是可以实现的 - 实现它的代价要少于你不解决这个问题给你带来的代价
e.g: 如果说你的问题很新,通常要去讲这件事情;如果你的问题不那么新,前人已经做了很多工作的情况下,可以忽略这个问题,防止出现大炮打蚊子的现象,花费大量精力却提升很小。 - 解决这个问题会不会创造一个更大的问题出来
e.g: 会不会创造一个有意识且对人类不友善的人工智能出来,会不会危害人类;或者你花了几千块GPU来训练模型,会不会造成环境污染;再或者当你模型部署在工业界解决实际问题时,会不会对社会的公平性造成危害。 - 我们的方法为什么要比别的替代的方法更加便宜、精度更高或更快,李老师觉得这是我们写文章主要声明的东西
2.Evaluating your claim
什么样的声明是比较好的。这本书写的比较通用一点,它无法告诉我们说,具体怎么去找到一个特别好的一个声明,声明需要是具体且重要的(both specific and significant)。
(1) Make your claim specific
举例怎么把声明变得更加具体。
声明增加层次感:
- 有一些领域可能不那么希望特别直白的一个声明,希望有那么一点点转折和一点点的层次。我们可以用一个 although 或者even though来开始,然后在结论的后面加上一个 because,把你的层次感增强,更加饱满。
- 举例如下,但技术领域通常不会把句子写这么长。
(2) Make your claim significant
怎么样把声明变得更重要一些。
- 第一类:对一个大家感兴趣的话题提供新的证据
- 第二类:不仅仅把数据展示出来而是要用数据去回答一个大家有争论、不那么确定的问题的答案
怎么样去看现在想到的声明重不重要,把结论反过来看一下结论是长什么样子。同时,我们的研究不一定要去追求一个大新闻,很多时候是做一个比较小的发现,能启发别人在你的工作上做出更有意思的东西,也是挺好的,比如人工智能领域每年出很多文章,但真正重要的可能就几百篇,剩下的文章可能只能影响到极少数的研究员。
3.Qualifying claims to enhance your credibility
怎么样把论点变得更加可信一点。
这其实是一个心理学的问题,如果想让别人信我们说的话,最好不要把话说的特别的满。同样,如果你想让别人觉得你特别厉害的话,你也不要总是自夸,谦虚一点承认自己在某些地方不足,很有可能会得到更多的尊重。作者给了两个不同的方法使得论点更加可信。
(1) Acknowledge limiting conditions
可以承认一些局限性的条件。有时候话说得不那么满,大家可能接受起来更加自然些。
- 很多时候去想限制条件的时候,是从读者角度来出发的。从他们的角度来讲,去想想我们的理由也好我们的论据也好,在哪些地方更加薄弱一点,把这些薄弱的地方作为限制条件给出来之话,那么对整个的可信度就会增加。
(2) Use hedges to limit certainty
使用一些降低语气确信度的词,使得论点显得没那么的强硬。
- 比如诺贝尔获奖作者70多年前发表在Nature上的工作,DNA双螺旋结构的文章。用到了“whsh to suggest”、“In our opinion”、“We believe”等词,觉得先前的工作不对,并且当时存在很多不确定性。
当然,如果讲的特别自信的话,读者会觉得更加的难以置信一些。如果用了大量这样子的不确定的词汇,整个文章可能会显得比较弱,别人会觉得你可能自己也不是那么的确信,尤其是技术论文,使用得不多。此外,中国人写作语气不会太满,因此不用太在意这一条建议。
但需要注意,一定要尽量要避免这些词汇:all、no one、every、always、never。它们比较情绪化,在科研写作需要避免。
- O(∩_∩)O attention is all you need
总结及个人感受
写到这里,李老师就讲完了第3部分,该部分主要是讲好故事和论点。
第七章:讲好故事(Good Arguments)
- 怎么样去组织你的故事,首先要提出一个论点,然后用一些原因和证据来支撑我们的论点,有时候需要承认和回复一些别的观点,最后有时候要提供你推理的一些逻辑原则。
第八章:支撑论点(Claims)
- 本章将讨论怎么样识别不同种类的声明,告诉方法判断声明是否具体和重要,整个论文主要是围绕去支撑这个声明。具体内容包括:在做一个什么样类别的声明、声明够不够具体、声明够不够重要,什么样的声明是比较好的,怎么样把论点变得更加可信一点。
个人感觉这个视频的核心要点:在写作的时候,可以先把故事的骨架写出来,论点是什么,理由和论据又分别是什么,把故事的逻辑先梳理清楚。故事的逻辑是不可能通过写作来弥补的,构思的时候就要想清楚。怎么样去支撑你的论点,核心就是你有一个论点,通过理由能够架在论据上面。论据要能站得住脚,理由要能撑住论点。同时还要考虑读者会有什么疑问,写的时候回应这些潜在的问题。最后,要保证论点和理由之间需要有充分的论述。
——BY B站读者:爱学习の竹子
再次感谢李沐老师的分享,推荐大家多看看李沐老师的视频和分享,值得大家学习,学无止境,受教受教。
- https://www.bilibili.com/video/BV11S4y1v7S2
真诚地感谢大家还记得一位名叫“Eastmount”的博客分享者。繁华尽处家人伴,一壶老酒醉春堤。新的征程,新的生活,新的开始。不忘来时脚下的路,不忘求学的初心。感恩奋进,继续加油!这篇文章就写到这里,希望对您有所帮助。由于作者英语实在太差,论文的水平也很低,写得不好的地方还请海涵和批评。同时,也欢迎大家讨论,且看且珍惜。
作者论文分享github地址:
- https://github.com/eastmountyxz/AI-Security-Paper
- https://github.com/eastmountyxz/AI-Sec-Paper-Sharing
(By:Eastmount 2023-06-04 周日夜于武汉 http://blog.csdn.net/eastmount/ )
相关文章:
[论文阅读] (30)李沐老师视频学习——3.研究的艺术·讲好故事和论点
《娜璋带你读论文》系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢。由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学术路上期…...
Java中List、Set、Map的区别和实现方式
Java中List、Set、Map的区别和实现方式 List List 是一个有序的集合,即元素按照插入的顺序进行排序,可以有重复的元素。因为是有序的,所以可以根据下标来获取元素或者遍历整个集合内的元素。常用的实现类包括 ArrayList 和 LinkedList。 A…...
@EnableScheduling和@Scheduled注解详解fixedrate和fixeddelay的区别
一、pom.xml中导入必要的依赖: <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.1.RELEASE</version></parent><dependencies><…...
打印金字塔图案总结
那么好了好了,宝子们,今天给大家总结一下“打印金字塔图案”,来吧,开始整活!⛳️ 最近在牛客网上刷题,遇到了这个打印类型的题目,我想总结一下,然后分享给大家。 一、正向金字塔 …...
SQL语句的执行顺序
1、SQL语句的一般执行顺序 1 from 找表 2 on 关联条件帅选 3 join 关联表操作 4 where 条件筛选 5 group by 进行分组 6 avg,sum… 执行函数 7 having 分组后筛选 8 select …...
Debian 版本代号与《玩具总动员》
作为最受欢迎的 Linux 发行版之一,Debian 是许多其他发行版的基础,许多非常受欢迎的 Linux 发行版,例如 Ubuntu、Knoppix、PureOS 、Tails、Armbian 以及 Raspbian,都基于 Debian。 经过近 20 个月的开发,2023 年 6 月…...
TypeScript 第一章
欢迎来到 TypeScript 学习!本章将为您介绍 TypeScript 的基础知识。 TypeScript 是 JavaScript 的一个超集,它提供了静态类型检查、类、接口等特性,使得编写大型应用程序变得更加容易和可维护。TypeScript 编写的代码可以被编译成 JavaScript…...
【SpringCloud入门】-- Ribbon入门
1.什么是Ribbon? Ribbon就是netflix公司的一个开源项目,主要功能是提供客户端负载均衡算法和服务调用。Ribbon客户端组件提供了完善的配置项,如连接超时,重试等等。Ribbon作为服务消费者的负载均衡器,有两种使用方式&…...
(二)Liunx下ElasticSearch快速搭建
1.下载安装 1)环境准备: 操作系统:centos7 es版本:8.8.1 jdk:17 es与jdk等兼容支持查看 2)下载安装包上传到服务器,官网地址 https://www.elastic.co/cn/downloads/elasticsearch 3)解压文件…...
神经网络编程基础
目录 1、二分类(Binary Classification) 2、逻辑回归(Logistic Regression) 3、逻辑回归的代价函数(Logistic Regression Cost Function) 4、梯度下降法(Gradient Descent) 5、使用计算图求导数 6、逻辑回归中的梯度下降&…...
2023年北京/上海/深圳DAMA-CDGA/CDGP数据治理工程师认证报名
DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业…...
Python之枚举类Enum定义错误码
在 web 项目中,我们经常使用自定义状态码来告知请求方请求结果以及请求状态;在 Python 中该如何设计自定义的状态码信息呢? 1、普通类字典设计状态码 class RETCODE:OK "0"ERROR …...
GIS大数据处理框架sedona(塞多纳)编程入门指导
GIS大数据处理框架sedona(塞多纳)编程入门指导 简介 Apache Sedona™是一个用于处理大规模空间数据的集群计算系统。Sedona扩展了现有的集群计算系统,如Apache Spark和Apache Flink,使用一组开箱即用的分布式空间数据集和空间SQL,可以有效地…...
C++基础(7)——类和对象(5)
前言 本文主要介绍C中的继承 4.6.1:继承和继承方式(公有、保护、私有) 4.6.2:继承中的对象模型,sizeof()求子类对象大小 4.6.3:子类继承父类后,两者构造和析构顺序 父类先构造、子类先析构 如…...
【Express.js】sql-knex 增删改查
Sql增删改查 本节使用knex作为sql框架,以sqlite数据库为例 准备工作 knex是一个运行在各自数据库Driver上的框架,因此需要安装相应的js版数据库Driver,如: PostgreSQL -> pg, mysql/mariadb -> mysql, sqlite -> sqlite3… 安装…...
构建基于前后端分离的医学影像学学习平台:Java技术实现与深度解析
在医学领域,影像学学习平台是一种重要的工具,用于帮助医学学生和专业人士学习和研究医学影像。本文将介绍如何使用Java构建一个基于前后端分离的医学影像学学习平台,通过结合前沿的Web开发技术和医学影像处理算法,为用户提供强大且高效的学习工具。 技术架构设计: 在构…...
从零开始学习R语言编程:完全指南
一、引言 R语言是一种流行的数据分析语言,广泛应用于学术界、商业界和社会科学研究等领域。与其它数据分析软件相比,R语言的优点包括免费开源、高效可靠、具有强大的数据分析和可视化能力等。R语言的编程基础包括了各种控制结构和函数,可以方…...
PulsarMQ系列入门篇
文章目录 介绍:部署安装讲解:安装单机版本测试(Linux下): 介绍: PulsarMQ 现托管于apache Apache 软件基金会顶级项目,2016年由雅虎公司开源的分布式多租户消息中间件 ,是下一代云原生分布式消息…...
编程的实践理论 第九章 交互
第九章 交互 根据状态的初始值和终止值,我们已经描述了计算。一个状态变量的声明如下: var x: T S ∃x, x′: T S 它说的是一个状态变量有两个数学变量,一个是初始值,一个是终止值。在这个 声明的作用域内,x和x…...
BSN全球技术创新发展峰会在武汉举办,“延安链”正式发布
原标题:《第二届BSN全球技术创新发展峰会在武汉成功举行》 6月9日,由湖北省人民政府指导,湖北省发展改革委、国家信息中心联合主办,中国移动、中国电信、中国联通、武汉市江汉区人民政府、区块链服务网络(BSN…...
8.4 IP地址与端口号
目录 IP地址 IP地址及编址方式 IP 地址及其表示方法 点分十进制记法举例 IP 地址采用 2 级结构 分类的 IP 地址 分类的 IP 地址 多归属主机 各类 IP 地址的指派范围 编辑 一般不使用的特殊的 IP 地址 编辑 分类的 IP 地址的优点和缺点 划分子网 无分类编址 CIDR 无…...
day56_springmvc
今日内容 零、 复习昨日 零、 复习昨日 一、JSON处理【重点】 springmvc支持json数据交互,但是自己本身没有对应jar,使用的是第三方Jackson,只需要导入对应依赖,springmvc即可使用 如果需要换用到FastJson 导入依赖配置文件中指定json转换的类型为FastJson本次课程没有替换,用的…...
SQL Server Management Studio (SSMS)下载,安装以及连接数据库配置
目录 (一)前言 (二)下载与安装 1. 下载 (1)下载地址 (2)SSMS对操作系统的要求 2. 安装 (1)存放下载好的安装包 (2) 双击进入安…...
go 错误 异常
自定义错误 Go语言中 错误使用内建的 error 类型表示, error类型是一个接口类型:定义如下: error 有一个 Error() 的方法‘所有实现该接口的类型 都可以当做一个错误的类型;Error()方法输入具体错误描述,在打印错误时…...
智慧加油站卸油作业行为分析算法 opencv
智慧加油站卸油作业行为分析系统通过opencvpython网络模型技术,智慧加油站卸油作业行为分析算法实现对卸油作业过程的实时监测。当现场出现卸油作业时人员离岗,打电话人员抽烟等违规行为,灭火器未正确摆放,明火和烟雾等异常状态&a…...
LiangGaRy-学习笔记-Day22
1、shell工具-tput 这个是tput bash工具 具体的操作如下: tput clear:清屏tput cup Y X 第Y行,第X列的位置 tput bold:字体加粗tput sgr0 : 重置命令tput setaf n n:代表数字0-7 0黑色1红色2绿色3黄色4蓝…...
数据库横表和竖表有什么区别
横表和竖表是描述数据库表结构的两种形式,它们之间的主要区别在于数据的组织方式和用途。 横表(宽表): 横表是一种常见的表结构,其特点是每一行数据包含所有相关属性,字段通常作为列出现。横表中的每行代表…...
哈希表--day1--基本理论介绍
文章目录 哈希表哈希函数哈希碰撞拉链法线性探测法 常见的三种哈希函数数组setmap 总结 哈希表 Hash table是根据关键码的值来直接进行访问的数据结构。 其实直白来讲其实数组就是一张哈希表,不过其索引是十分简单的,我们通过0来访问num[0],…...
基于OpenMV的疲劳驾驶检测系统的设计
一、前言 借助平台将毕业设计记录下来,方便以后查看以及与各位大佬朋友们交流学习。如有问题可以私信哦。 本文主要从两个方面介绍毕业设计:硬件,软件(算法)。以及对最后的实验结果进行分析。感兴趣的朋友们可以评论区…...
chatgpt赋能python:使用Python来寻找两个列表不同元素的方法
使用Python来寻找两个列表不同元素的方法 在编写Python程序时,我们经常需要比较两个列表的元素,找出它们之间的不同之处。在搜索引擎优化(SEO)方面,这种比较对于找出两个网站内容的差异也非常有用。在这篇文章中&…...
招聘网站源码下载/软文素材库
工程文件为AirCode,批处理文件为bulit.bat(与*.sln文件在同级目录)。 以下是批处理的代码: echo %~dp0rem set build_config"Debug|Win32" rem set build_config$ALL set build_config"Release|Win32"rem set…...
网站开发的最后五个阶段/什么是优化师
Git中删除文件可不太一样哦,我们一起来学习一下在Git中如果你想要删除文件,比平时我们删除文件要麻烦那么一点点,毕竟Git有两个地方:工作区、版本库,平时我们删除文件的方式,只是把工作区的文件给删除了&am…...
苏州做网站推广的/网上销售
最近更新的博客 华为OD机试 - 猴子爬山 | 机试题算法思路 【2023】华为OD机试 - 分糖果(Java) | 机试题算法思路 【2023】华为OD机试 - 非严格递增连续数字序列 | 机试题算法思路 【2023】华为OD机试 - 消消乐游戏(Java) | 机试题算法思路 【2023】华为OD机试 - 组成最大数…...
哪个网站可以做身份核验/上海网络seo公司
文章转自:http://blog.csdn.net/u012385432前面的几篇文章中提及了有关.Pak文件和文件下载的部分,这两部分组合起来,其实就是我们的资源热更新了.当然代码的热更新不在这个讨论范围内.代码的热更新的话就更加麻烦了.这次讨论的只限资源的热更新...前面文章链接:1.下载文件链接2…...
一个公司多个网站做优化/推广平台
1. net start/stop w3svc这个command主要用于开启/停止服务 www service this command is used to start or stop www service. it commonly uses to reset w3svc after the IIS configuration is modified. notes: 不要w3svc和当个website搞混了。如果net stop w3sv…...
搜索引擎优化简称seo/东莞seo网络营销
每次有点什么感想,想写blog的时候,都是不在电脑跟前的时候,慢慢的,我的blog有点开始荒凉了。就像这几天的长假,懒得连电脑都不想碰,每次想写点什么的时候,想想还要开机,就放弃了。这…...