自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 Nesterov Momentum简介

Standard Gradient Update:沿着梯度的反方向改变参数(梯度指示增长的方向,我们通常希望最小化损失函数)。假设一个参数向量x和梯度dx,其更新公式为:# Vanilla updatex += - learning_rate * dxMomentum Update:这种更新方式从物理角度看待优化问题,在深度网络上往往能有更好的收敛率。具体而言,损失可以视为山丘地区的高度(因此有势能U=mgh,且U∝h),用随机数初始化参数视为给一个在某处的粒子0初始速度。那么优化过程可以视为粒

2021-04-07 11:51:20 985

原创 《Cost-Sensitive BERT for Generalisable Sentence Classification with Imbalanced Data》阅读笔记

https://arxiv.org/pdf/2003.11563.pdf1.常见NLP数据增强+BERT在失衡数据上的表现任务为2分类。正负样本比例为28% vs. 72%(这里以正/负指代文中的propaganda/non-propaganda)。BERT模型采用BERT_base,增加全连接层,用于对句子编码分类。常见NLP数据增强方法详见https://arxiv.org/pdf/1901.11196.pdf评估结果如下:用同一份数据集中75%训练,25%测试...

2021-03-30 17:50:09 263

原创 《Dice Loss for Data-imbalanced NLP Tasks》阅读笔记

https://arxiv.org/pdf/1911.02855.pdf1.几种loss函数:2.关于交叉熵loss交叉熵方法是accuracy-oriented的,每个样本的贡献相同。如果测试集上以f1 score作为主要评估,则更重视对正样本的考量。若在样本不均衡的情况下使用交叉熵训练会造成训练和测试间的性能差异。3.关于weighted cross entropy系数a在[0,1]内,它可以是inverse class frequence 或是一个可调的超参数。使用

2021-03-30 11:29:15 500

原创 leetcode162为什么能用二分法求解

这道题。。我第一遍没做出来。参看了一些题解后,感觉它们大部分都没讲明白这道题为什么可以用二分法。所以这里就把我的思考分享出来吧。首先,我们需要注意题目的三个条件:(1)限定了nums[i]!=nums[i+1],这为我们排除了出现连续相等子序列的情况。(2)num[-1]和num[N]的值为负无穷,那么数组在左边界单调增,在右边界单调减,简单分析可知,这使得数组中一定存在一个极大值。(3)只需找到任意一个极大值的索引。那么,基于减治的思想,我们可以在数组中寻找满足条件(2)的子数..

2021-03-09 11:54:03 122

原创 Google Dialogflow中的基本概念

对话流复杂的对话框通常涉及多个对话主题。每个主题都需要多轮对话才能让代理获取最终用户的相关信息。对话流用于定义这些主题和关联的对话路径。每个代理都有一个名为默认的流。对于简单的代理,可能只需要这一个流。较复杂的代理可能需要更多的流,不同的开发团队成员可以负责构建和维护这些流。页面每个对话流可以定义多个页面,其中组合页面可以处理该流所针对的主题的完整对话。在任何给定时刻,只有一个页面是“活跃”的,与该页面关联的流被视为活跃流。每个流都有一个特殊的初始页面。当流最初处于活跃状态时,初始页

2021-03-03 19:39:10 1250 1

原创 RASA中的填槽

RASA1.x中的填槽处理填槽指在会话中从用户处收集完成任务所需的信息。如果需要连续收集多条信息,可以创建一个FormAction。FormAction中含有一个循环的逻辑来询问用户所需的槽值。配置Form在domain文件中定义:使用Form则需要在config文件中引入FormPolicy。FormPolicy是MemoizationPolicy的一个扩展,负责填槽。当FormAction被调用后,FormPolicy会继续预测后序应该采取的FormAction,直...

2021-02-24 21:01:11 2402 2

原创 简介RASA中的TED Policy

简单的会话中,可以直接根据意图映射动作。但实际情况中,会话中会发生闲聊或场景切换,需要参考历史来选择动作。在TEDPolicy中,Rasa提取特征,并通过特征来决定采取何种动作。特征包含用户消息中的意图、实体、当前的槽值和之前所采取的动作。所有特征向量拼接起来成为最终的feature_t,TEDPolicy对{feature_t, feature_t-1, … ,feature_t-n}和action_t之间的映射关系建模。这里用到一个单向的Transformer来处..

2021-02-23 16:24:02 1589

原创 RASA对话管理简介

简介RASA用policy来决定对话中每个步骤采取的action。有机器学习、基于规则两类policy可选。Policy的配置在cofig.yml文件中,可同时配置多个policy。配置后的每个policy会在回话中预测下一个机器人action,并且给出对应置信度,最终采用置信度最高的action。1.policy优先级Rasa为每种policy分配了优先级,如: RulePolicy优先级为6 MemoizationPolicy / Augment...

2021-02-05 16:46:08 2361

原创 《LightSeq: A High Performance Inference Library for Sequence Processing and Generation》阅读笔记

LightSeq的技术亮点主要在于定制的Operation、动态GPU内存复用和层级的解码优化,本文对这三方面分别做个粗浅的介绍。论文链接:https://arxiv.org/pdf/2010.13887.pdf1 定制的Operation大多数深度学习框架通过调用方法库中的kernel function来实现编码器-解码器计算。这些kernel function一般是细粒度的,通常需要调用多个kernel function来实现一个功能模块。以tensorflow实现的layer nor.

2021-01-12 21:51:31 276

原创 《Natural language Inference Over Interaction Space》阅读笔记

1.主要贡献提出了一种新型的网络结构(Interactive Inference Network, IIN),能够从交互空间(interaction space)中抽取句子对的语义特征;基于注意力权重有助于理解文本的假设,提出一种词对词的注意力(交互张量),越密集的交互张量含有的语义信息越丰富;2.模型结构2.1 Interactive Inference Network如下图左侧所示,IIN由5个部分组成,每个部分都可以以多种方式灵活实现。(1)Embedding Lay.

2020-12-30 20:52:07 161

原创 三分钟了解循环排序

循环排序的特点:循环排序是一种不需要额外空间的比较型算法,它将待排序的序列看成若干个有向图,通过让每个图中的节点按边的方向位移一次,达到有序状态。在写操作的执行次数方面,循环排序理论上是最优的。一个元素要么正好在正确的位置上,不需要被写到别处,要么仅需一次被写到正确的位置上。循环排序基本代码框架:void cyclic_sort(vector<int>& nums) { int i = 0, n = nums.size(); while(i &l...

2020-12-19 00:31:00 1651 1

原创 《ABCNN-Attention-Based Convolutional Neural Network for Modeling Sentence Pairs》阅读笔记

1.主要贡献1.1 可用于多种需要对句子队建模的任务,如: answer selection 选取答案,QA匹配; paraphrase identification 复述鉴别,判断两个句子意思是否相同; textual entailment 文本蕴含,第一句是否意味着第二句;1.2 提出三种注意力机制: 它们将句子间的相互影响整合到CNN中,因此每个句子的表示都考虑到了它对应的句子。 这些相互依赖的句子对表示比独立的句子表示更强。2.BCNN...

2020-12-17 16:18:34 227

原创 《Hierarchical Attention Networks for Document Classification》阅读笔记

动机:通过将文档结构知识纳入模型结构,可以获得比之前方法更好的表征。在应答一个请求时,并不是文档中的所有部分都与之相关;为了确定那些相关的部分,需要对词之间的互动建模,而不是仅对它们的出现单独建模;贡献:提出一个新的神经网络结构(Hierarchical Attention Network)来捕捉文档结构中的两种基本特征:(1)对文档继承结构建模:先构建句子的表征再合并成文档的表征;(2)对同一个词/句子再不同上下文中的不同重要性建模:采用了词级和句子级上的两种注意力机制;注..

2020-12-16 20:00:17 184

原创 搜索推荐资料整理

1.Paper List"Learning to rank"type title description overview Learning to Rank for Information Retrieval Learning to Rank: From Pairwise Approach to Listwise Approach pairwise Learning to...

2020-12-07 21:28:54 191 1

原创 使用docker搭建ubuntu16+scala开发环境

本文介绍了一种使用docker搭建ubuntu16+scala开发环境的方法。该方法在ubuntu16.04系统上测试可行,其他系统的使用者可在该方法上进行修改。该方法可分为以下4个步骤:步骤1:安装docker,过程详见 https://docs.docker.com/ 。步骤2:创建并编辑一份dockerfile,其内容如下:#scala.Dockerfile#Author: jsh...

2019-04-22 18:25:52 774

原创 回溯算法学习笔记

回溯是一种系统的遍历所有搜索空间中可能配置的方法。这些配置可以代表对象所有可能的排列(permutation)或所有可能构造子集(subset)的方式。其他的情况可能是:枚举一个图的所有生成树、两个顶点间的所有路径或所有将顶点按颜色分类的可能的方式。这些问题的共同点在于我们必须生成每一个可能的配置,并且不能重复也不能遗漏。这意味着我们得定义一个系统的生成顺序。在回溯算法的每一步中,我们尝试...

2018-05-21 00:02:54 213

原创 项目日志:caffe预测模块和yolo追踪模块的多gpu多线程改进

之前的模式是每个线程都有一个单独的模块实例,需要进行重复的模型加载。为了实现模型为多个线程所复用,需要对模块进行改进。嫌疑人识别模块和嫌疑车识别模块的结构是一致的,它们都先用yolo进行追踪,然后用caffe进行分类,所以涉及到这两个深度学习框架在多线程应用方面的改进。caffe方面,它的部分代码采用了单例模式,并用boost::thread_specific_ptr来管理这部分代码(...

2018-05-18 21:58:49 1438 1

原创 协程coroutine学习笔记

起源协程的概念源自Melvin Conway对COBOL编译器的设计:“在 Conway 的设计里,词法和语法解析不再是两个独立运行的步骤,而是交织在一起。编译器的控制流在词法和语法解析之间来回切换:当词法模块读入足够多的 token 时,控制流交给语法分析;当语法分析消化完所有 token 后,控制流交给词法分析。词法和语法分别独立维护自身的运行状态。”协程概念的关键在于控制流的主动...

2018-05-04 16:51:26 425

原创 ucontext 学习笔记(manpage 翻译)

ucontext定义ucontext的定义如下:#include &lt;ucontext.h&gt;typedef struct ucontext{ struct ucontext *uc_link;//指向当前context终止后将被恢复的context sigset_t uc_sigmask;//在这个context中被block的信号集合...

2018-05-04 16:06:24 603

原创 Reactor模式和Proactor模式

I/O复用机制依赖于一个解复用器(demultiplexor),它是一个将来自有限数量源的I/O事件调度给合适的读写事件handler的对象。开发者登记感兴趣的具体事件并提供事件handler或者callback。事件解复用器将被请求的事件分发给事件handle     两个引入了事件解复用器的模式叫做Reactor和Proactor。Reactor模式包含同步I/O,而Proactor模

2018-05-02 17:10:21 144

原创 《Action recognition by dense trajectories》论文笔记

为什么要用dense trajectories?(1)在图像分类中,密集采样比稀疏感兴趣点的结果更好(2)trajectories通常通过KLT tracker得到,而它是被设计来追踪稀疏感兴趣点的(3)匹配密集SIFT descriptor计算量非常大     本文提出了一种有效的,提取dense trajectories的方法。通过使用光流场来跟踪密集采样的点获

2018-05-02 16:57:20 982

原创 我对同步/异步&阻塞/非阻塞概念的理解

同步与异步:指的是两种消息处理机制。同步:发出“调用”请求后,同步(同时)接受“调用”返回值和“调用”结果。异步:发出“调用”请求后,异步(不同时)接受“调用”返回值和“调用”结果。做个通俗一点的比方:我问ww:“帮我算一下1+1等于几?”,ww算好后,说:“好的”,“等于2”——这是同步的方式。另外一种情况是:我问完,ww说:“好的”,然后开始算,算好

2018-05-02 16:41:17 130

原创 二叉树的Morris非递归遍历

Morris loop定义一个Morris loop是一个从一个节点,比如说v,开始到同一个节点结束的路径,路径上的第一个链接是(v, v.l),其余链接的形式都是(u, u.r)。这个节点v,被称作已标记的节点。一个Morris线索树是一个有根的图G,它满足:(1)如果将所有指向已标记节点的右链接替换成空节点,则G会变成一个二叉树;(2)存在一个节点a,它对于所有已标记节点都是右可达的(ri...

2018-05-02 16:32:17 182

原创 一个小目标(?)

近两年在印象笔记上基类了约400篇笔记,内容包括读书笔记、资料整理、遇到的技术问题和解决方法等。因为本来只想写给自己看,所以写的比较糙。前段时间看了《暗时间》,觉得花些功夫在技术博客上也不失为一件有意义的事情。于是,我打算把印象笔记上的东西挑选一下,整理整理发到这个博客里。虽然以我这种菜的抠脚的水平也写不出什么高大上的东西,但算是给自己研究生阶段的技术之路留下点印记吧。

2018-05-02 15:43:14 125

原创 epoll manpage翻译

之前闲得无聊,翻译了一下epoll的manpage。正文如下:epoll通过监视多个fd来查看其中任何fd上I/O是否可用。epoll API可以选择边缘触发或水平触发,它在需要监控的fd数量巨大时也能工作。有以下三个系统调用函数用来创建和管理一个epoll实例: epoll_create创建一个epoll的实例并且返回一个代表它的fd。(epoll_create1扩展了它的功能)。 通过epo

2018-05-02 15:26:50 344

原创 callback模型与future模型的比较

这篇文章主要讨论callback与future两种异步模型的一些异同。首先两者在概念上有一些相同的地方: 1.一个开始异步操作的初始函数。这个函数的参数提供了执行异步操作所需的必要信息。 2.一个后续函数(可调用对象),指定了异步操作完成时继续执行的代码。对于callback模型,后续函数作为参数被传给初始函数。比如:void async_listen(args, callback);当异步操作

2018-05-02 14:57:35 2699

原创 快速判断一个数是否是素数

#include &lt;iostream&gt;#include &lt;math.h&gt;#include &lt;stdlib.h&gt;bool isPrime(unsigned long n){ if(n == 2 || n == 3) return true; if(n%6 != 1 &amp;&amp; n%6 != 5)//素数聚集原理 retur...

2018-03-21 17:05:30 1876

原创 当shared_ptr指向“this”对象

     在学习boost.asio的时候遇到了enable_shared_from_this&lt;&gt;,它与shared_ptr指向“this”对象的情况有关,查阅资料后,我通过下面链接文章中的“special case”章节理解了它的作用。                       http://www.umich.edu/~eecs381/handouts/C++11_smart_p...

2018-03-01 17:01:12 1955

原创 除法散列的散列值问题

除法散列法中,散列函数为:h(k) = k mod m其中k为关键字,关键字全域为自然数集N;m为槽的个数。为什么《算法导论》上说“m = 2^p,则h(k)就是k的p个最低位数字”呢?我的思路是:由于10的p次(和p次以上)幂可以整除2的p次幂,所以决定余数的,实际是k最低p位,这部分的大小在10的0次幂到p-1次幂之间。

2017-09-18 15:32:26 684

原创 编译《Pedestrian detection at 100 frames per second 》代码遇到的问题与解决方法

记录一下编译《Pedestrian detection at 100 frames per second 》代码遇到的问题与解决方法,希望能帮到其他像我这样的菜鸡。环境:ubuntu16.04问题1 由于我同时安装opencv2.4.9和opencv3.2,而该项目只支持opencv2,导致编译到最后出现链接动态库opencv_calib3d失败的“DSO missing from c

2017-06-22 23:41:38 641

原创 opencv-contrib3.2安装问题

opencv-contrib安装问题

2017-06-12 15:17:26 259

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除