adaptive

gradient-descent

百般思念 提交于 2021-02-09 13:34:00
http://ruder.io/optimizing-gradient-descent/ https://www.quora.com/Whats-the-difference-between-gradient-descent-and-stochastic-gradient-descent https://en.wikipedia.org/wiki/Stochastic_gradient_descent https://zh.coursera.org/learn/deep-neural-network/lecture/lBXu8/understanding-mini-batch-gradient-descent https://zh.coursera.org/learn/deep-neural-network/lecture/qcogH/mini-batch-gradient-descent https://am207.github.io/2017/wiki/gradientdescent.html http://leon.bottou.org/publications/pdf/online-1998.pdf References Sutton, R. S. (1986). Two problems with backpropagation and other steepest

ICLR2020 | 深度自适应Transformer

人盡茶涼 提交于 2021-02-08 14:57:35
作者 | kaiyuan 整理 | NewBeeNLP 一篇来自ICLR2020,facebook人工智能实验室的论文,关于改进Transformer推理速度的。 论文地址: https://arxiv.org/abs/1910.10073 写在前面 大模型在困难任务上表现非常好,而小模型也可以在比较简单的任务上表现出色。但是目前大模型在应用简单任务时的运算量同复杂任务一样,这就导致了不必要的资源浪费,此外还会导致推理速度变慢。对此,提出了一种 depth-adaptive transformer ,可以在推理阶段针对不同的token自动选择在合适的层进行停止并输出,在不损失模型效果的同时大大提高推理速度。 Anytime Prediction 传统的transformer decoder,所有的token都需要经过N个block,且最后的分类器是唯一的。但是一些简单的任务并不需要推理如此多步,可能在第 层模型已经得出结果了,再往上走并没有意义,于是可以选择在第 层就输出,这称为 「动态计算(Dynamic Computation)」 , 并且,每一层的分类器 可以选择不同或者相同。接下去就是怎么去实现上面的想法,即对于每个输入token,如何自动确定其在哪一层退出?文中提出了两种策略: Aligned training 对齐训练会同时优化所有分类器,并假设当前状态之前的所有状态

OpenCV 【二十二】霍夫线变换/霍夫圆变换

坚强是说给别人听的谎言 提交于 2021-02-05 16:38:00
目录 1. 霍夫线变换¶ 1.1 原理 1.2 霍夫线性变换 1.3 标准霍夫线变换和统计概率霍夫线变换¶ 1.4 代码 1.5运行结果 2 .霍夫圆变换¶ 2.1 原理¶ 2.2霍夫圆变换¶ 2.3代码 2.4 运行结果 1. 霍夫线变换 ¶ 使用OpenCV的以下函数 HoughLines 和 HoughLinesP 来检测图像中的直线. 1.1 原理 众所周知, 一条直线在图像二维空间可由两个变量表示. 例如: 在 笛卡尔坐标系: 可由参数: 斜率和截距表示. 在 极坐标系: 可由参数: 极径和极角表示 对于霍夫变换, 我们将用 极坐标系 来表示直线. 因此, 直线的表达式可为: 化简得: 一般来说对于点 , 我们可以将通过这个点的一族直线统一定义为: 这就意味着每一对 代表一条通过点 的直线. 如果对于一个给定点 我们在极坐标对极径极角平面绘出所有通过它的直线, 将得到一条正弦曲线. 例如, 对于给定点 and 我们可以绘出下图 (在平面 - ): 只绘出满足下列条件的点 and . 我们可以对图像中所有的点进行上述操作. 如果两个不同点进行上述操作后得到的曲线在平面 - 相交, 这就意味着它们通过同一条直线. 例如, 接上面的例子我们继续对点: , 和点 , 绘图, 得到下图: 这三条曲线在 - 平面相交于点 , 坐标表示的是参数对 ( ) 或者是说点 , 点 和点

[计算机视觉论文速递] 2018-04-19

半世苍凉 提交于 2021-02-02 14:46:58
通知:这篇文章有8篇论文速递信息,涉及目标识别、SLAM、3D Model、密集点集配准、立体匹配等方向(含6篇CVPR论文) 目标识别 [1]《Hierarchical Novelty Detection for Visual Object Recognition》 CVPR 2018 Abstract:深度神经网络在具有预定义类别的大规模视觉对象识别任务中取得了令人瞩目的成功。然而,在训练期间识别新类(即未被看见的对象)仍然具有挑战性。在文献中已经讨论了检测这种新类的问题,但是之前大多数工作都是提供简单的二元或回归决策,例如,输出将是“已知的”,“新颖的”或相应的置信区间。在本文中,我们研究更多的基于分层分类框架的信息新颖性检测方案。对于一个新类的对象,我们的目标是在已知类的分层分类中找到它最接近的超类。为此,我们提出了两种不同的方法,称为自顶向下和扁平化方法,以及它们的组合。我们方法的基本组成部分是置信度校正分类器,数据重新标记以及在分层分类法下对新类进行建模的“一次退出”策略。此外,我们的方法可以生成分层嵌入,结合其他常用的语义嵌入,可以提高广义零点学习性能。 arXiv: https://arxiv.org/abs/1804.00722 SLAM [2]《CodeSLAM - Learning a Compact, Optimisable Representation

浅谈个人对职业发展的一点思考

守給你的承諾、 提交于 2021-01-06 22:54:19
题图 from unsplash 一、写在前面 工作多年,岗位职责经历了开发->策略->模型的变化,服务过N多业务方,也在PC互联网黑灰产泛滥的时代,封停过上亿风险账户。人设也逐步从一个青涩年轻的毕业青年,变为一个中年油腻大叔。整个过程,回忆起细节感觉很长很长,毕竟1999年已经是20年前了,然而粗枝大叶的再一想,仿佛第一天步入职场就在昨天。 每个人在不同的时期的经历,思考,沉淀,都会留下了不同的体验和积累,点点滴滴的积累,又会逐步形成每个人的职场风格。这里就这些年工作过程中的一些思考,在特定时期内,一直在团队内讲的,跟具体工作无关的东东(定语比较多),整理出来,跟大家分享下。有些是一直在恪守的,有些是想做做不到但是希望别人做到的,有些是曾经很确定现在没那么笃定的。希望能给处在不同时期的“新”同学、师弟带来一些启发和思考(一些观点成型于特定时期,有一些背景在,可能会有失偏颇)。 二、关于职业发展: 1、世界的规律是波动。在最低谷的时候斜率已经是正的了,反之亦然,要耐得住。 2、入职到专家的过程,是一个不断“装”的过程,直到大家都看不出装了,就是真的专家了。 3、职场要经历一个从有用到靠谱,靠谱到专业的过程。先能被使用,然后被信任和授权,然后被仰仗。 4、学习其实是一个模型训练的过程,先给一些样本,多看看实际的真实的数据,慢慢的脑子里就有模式了。 5、干的久了,工作就是工具

语音专题第一讲,麦克风阵列的语音信号处理技术

痞子三分冷 提交于 2020-12-19 06:24:29
https://blog.csdn.net/ffmpeg4976/article/details/52397000 转载自地平线机器人大讲堂,主讲人徐荣强。 2011年11月毕业于英国爱丁堡大学通信与信号处理专业,曾任诺基亚,联想,微软高级音频工程师。现在Horizon-Robotics负责语音相关硬件系统设计,涉及远场高灵敏度麦克风阵列设计,高精度音频硬件编解码器评估验证,远场语音前处理算法的评估验证,涉及声源定位,波束形成,盲信号分离,回声抑制及平稳降噪等相关技术算法。 前言 随着人工智能与人们的生活越来越近,语音技术的发展也备受关注。传统的近场语音已经无法满足人们的需求,人们希望可以在更远的距离,更复杂的环境中语音控制智能设备。因此,阵列技术成为远场语音技术的核心。 阵列麦克风对人工智能的意义: 空间选择性:通过电扫阵列等空间定位技术可以获取声源的有效位置,智能设备在获取精准的声源位置信息,让我们的语音更加智能,通过算法获取高品质的语音信号质量。 麦克风阵列可以自动检测声源位置,跟踪说话人,同时可以获取多声源和跟踪移动声源的优势,无论你走到任何位置,智能设备都会对你的位置方向进行语音增强。 阵列麦克风增加了空域处理,对多信号空时频三维的处理弥补单信号在噪声抑制,回声抑制,混响抑制,声源定位,语音分离方面的不足,让我们的智能设备在复杂的环境中都可以获取高质量的语音信号

推荐系统中的注意力机制——阿里深度兴趣网络(DIN)

≡放荡痞女 提交于 2020-12-18 00:54:12
参考: https://zhuanlan.zhihu.com/p/51623339 https://arxiv.org/abs/1706.06978 注意力机制顾名思义,就是模型在预测的时候,对用户不同行为的注意力是不一样的,“相关”的行为历史看重一些,“不相关”的历史甚至可以忽略。那么这样的思想反应到模型中也是直观的。 如果按照之前的做法,我们会一碗水端平的考虑所有行为记录的影响,对应到模型中就是我们会用一个average pooling层把用户交互过的所有商品的embedding vector平均一下形成这个用户的user vector,机灵一点的工程师最多加一个time decay,让最近的行为产生的影响大一些,那就是在做average pooling的时候按时间调整一下权重。 上式中, 是用户的embedding向量, 是候选广告商品的embedding向量, 是用户u的第i次行为的embedding向量,因为这里用户的行为就是浏览商品或店铺,所以行为的embedding的向量就是那次浏览的商品或店铺的embedding向量。 因为加入了注意力机制, 从过去 的加和变成了 的加权和, 的权重 就由 与 的关系决定,也就是上式中的 ,不负责任的说,这个 的加入就是本文70%的价值所在。 那么 这个函数到底采用什么比较好呢?看完下面的架构图自然就清楚了。 => 如何生成注意力

「MySQL系列」存储引擎InnoDB结构和原理深入刨析

天涯浪子 提交于 2020-12-14 17:19:54
参考黑马架构课程。从InnoDB体系结构、逻辑存储结构、chekpoint、插入缓存、两次写、自适应hash索引、异步IO、刷新临时页、 InnoDB事务隔离级别、隔离级别实现对InnoDB刨析。 一 存储引擎体系 1.1 MySQL体系架构 上图描述 Connection Pool : 连接池组件 Management Services & Utilities : 管理服务和工具组件 SQL Interface : SQL接口组件 Parser : 查询分析器组件 Optimizer : 优化器组件 Caches & Buffers : 缓冲池组件 Pluggable Storage Engines : 存储引擎 File System : 文件系统 1. 连接层 最上层是一些客户端和链接服务,包含本地sock 通信和大多数基于客户端/服务端工具实现的类似于TCP/IP的通信。主要完成 一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的客户端提供线程。 同样在该层上可以实现基于SSL的安全链接。服务器也会为安全接入的每个客户端验证它所具有的操作权限。 2. 服务层 第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行。所有 跨存储引擎的功能也在这一层实现,如 过程、函数等

Android studio新建文件出现setContentView(R.layout.activity_main);中的R标红错误解决方法

邮差的信 提交于 2020-12-08 06:21:48
今天打开Android studio突然出现了setContentView(R.layout.activity_main);中的R标红错误,这已经不是第一次出现这个错误了,真心的觉得Android studio是真的不稳定,找了半天发现我的资源文件res下面的好多文件出现了乱码,(我也是醉了)。把他们一个一个的替换成正确的代码终于rebulid project不再出现错误了。 <?xml version= " 1.0 " encoding= " utf-8 " ?> <adaptive-icon xmlns:android= " http://schemas.android.com/apk/res/android " > <background android:drawable= " @drawable/ic_launcher_background " /> <foreground android:drawable= " @drawable/ic_launcher_foreground " /> </adaptive-icon> 这是mipmap下的ic_lanucher和ic_lanucher_round通用的代码。 <?xml version= " 1.0 " encoding= " utf-8 " ?> <vector xmlns:android= " http:/

jdk和dubbo的SPI机制

百般思念 提交于 2020-12-06 18:35:00
前言 :开闭原则一直是软件开发领域中所追求的,开闭原则中的"开"是指对于组件功能的扩展是开放的,是允许对其进行功能扩展的,“闭”,是指对于原有代码的修改是封闭的,即不应该修改原有的代码。对于一个高度集成化的、成熟、稳健的系统来讲,永远不是封闭、固守的,它需要向外提供一定的可扩展的能力,外部的实现类或者jar包都可以调用它。在面向对象的开发领域中,接口是对系统功能的高度抽象,因为 SPI 可谓是"应运而生",本篇博客就开始走进SPI,探究java自身的SPI和Dubbo的SPI到底是什么原理 目录 一:SPI是什么 二:jdk的SPI 三:dubbo的SPI 四:总结 正文 一:SPI是什么? spi全称英文是service provider Interface,翻译成中文也就是服务提供接口,在jdk 1.6开始,就已经提供了SPI.它的使用比较简单。即在项目的类路径下提供一个META/services/xx文件,配置一个文件,文件名为接口的全路径的名称,内容为具体的实现类全路径名。jdk将会使用 ServiceLoader.load()方法去解析和加载接口和其中的实现类,按需执行不同的方法。 举个简单的例子:在jdbc中,jdk提供了driver(数据库)接口,但是不同的厂商实现起来的方式不同,比如mysql、oracle、sqlLite等厂商底层的实现逻辑都是不同的