cos

NLP三大特征提取器全梳理:RNN vs CNN vs Transformer

血红的双手。 提交于 2020-08-19 11:12:35
  机器之心原创    编辑:陈萍    在进行 NLP 模型训练前,请先选择一个好的特征提取器。      在上一篇文章中我们介绍了自然语言处理的基础问题——文本预处理的常用步骤。本文将进阶讲述特征提取方面的相关算法。   如果用一句话总结目前 NLP 在特征提取方面的发展趋势,那就是「RNN 明日黄花,正如夕阳产业,慢慢淡出舞台;CNN 老骥伏枥,志在千里,如果继续优化,还可能会大放异彩;Transformer 可谓如日中天,在特征提取方面起着中流砥柱的作用」。至于将来,又会有什么算法代替 Transformer,成为特征提取界的新晋宠儿。我想一时半会儿可能不会那么快,毕竟算法开发可是个很漫长的过程。   现在我们就来探究一下,在 NLP 特征提取方面,算法是怎样做到一浪更比一浪强的。    RNN(循环神经网络)   RNN 与 CNN(卷积神经网络)的关键区别在于,它是个序列的神经网络,即前一时刻的输入和后一时刻的输入是有关系的。    RNN 结构   下图是一个简单的循环神经网络,它由输入层、隐藏层和输出层组成。      RNN 的主要特点在于 w 带蓝色箭头的部分。输入层为 x,隐藏层为 s,输出层为 o。U 是输入层到隐藏层的权重,V 是隐藏层到输出层的权重。隐藏层的值 s 不仅取决于当前时刻的输入 x,还取决于上一时刻的输入。权重矩阵 w

JavaScript动画实例:圆点的衍生

早过忘川 提交于 2020-08-19 01:09:13
考虑如下的曲线方程: R=S*sqrt(n) α=n*θ X=R*SIN(α) Y=R*COS(α) 其中,S和θ可指定某一个定值。对n循环取0~999共1000个值,对于每个n,按照给定的坐标方程,求得一个坐标值(x,y),然后以(x,y)为圆心绘制一个半径为6的圆,可以得到一个螺旋状的图形。 编写如下的HTML代码。 <html> <head> <title>衍生的圆点</title> </head> <body> <canvas id="myCanvas" width="600" height="600" style="border:3px double #996633;"> </canvas> <script> var canvas = document.getElementById('myCanvas'); var ctx = canvas.getContext('2d'); var scale = 10; var theta = 30; for (n=0;n<1000;n++) { var radius = scale * Math.sqrt(n); var angle = n * theta * (Math.PI / 180); var x = radius * Math.cos(angle) + canvas.width / 2; var y = radius *

JavaScript动画实例:动感小球

烈酒焚心 提交于 2020-08-19 00:55:13
已知圆的坐标方程为: X=R*SIN(θ) Y=R*COS(θ) (0≤θ≤2π) 将0~2π区间等分48段,即设定间隔dig的值为π/24。θ初始值从0开始,按曲线方程求得坐标值(x,y),并在当前坐标处绘制一个半径为r(相比R,r小得多)实心圆。之后每隔0.05秒,清除画布,将θ的初始值加π/24后,按曲线方程求得新坐标值(x,y),并在求得的新坐标处再绘制一个半径为r的实心圆,这样,可以得到半径为r的圆绕半径为R的圆形轨道动态旋转的动画效果。旋转一周后(即θ的值为2π),令θ重新从初值0开始继续动画过程。 编写如下的HTML代码。 <!DOCTYPE html> <html> <head> <title>绕圆周旋转的小球</title> </head> <body> <canvas id="myCanvas" width="500" height="400" style="border:3px double #996633;"> </canvas> <script type="text/javascript"> var canvas = document.getElementById('myCanvas'); var ctx = canvas.getContext('2d'); var i=0; setInterval(move,50); function move() {

IPV4报文格式详解

若如初见. 提交于 2020-08-18 23:36:07
ipv4报文格式  版本(version) :4比特(bit),4(二进制0100)代表ipv4,6(二进制0110)代表ipv6;  报文头长度(IHL,IP Header Length) :4比特(bit),该值以 4字节(Byte) 为一个单位,因此最长可以表示15*4=60字节(Byte);最小为20(不带Option字段),最长为60;  服务类型(TOS,Type of Service) :8比特(bit),用于实施QOS,RFC 791中TOS 的IP Precedence分为8个优先级,值越大优先级越高。RFC2474中对TOS重新定义,前6位定义成DSCP,可以标识64中等级,后两位保留;  报文总长度(Total Length) :长度16比特(bit),以 字节(Byte) 为单位,包含报文头和数据,所有IP报文最长65535字节(Byte),2的16次方等于65536;  标识符(Identification) :16比特(bit),主机每发一个报文,加1,分片重组时会用到该字段,与Flags和Fragment Offset联合使用进行分段操作,一个大包分段为多个小包时标记为相同的值;  标记(Flags) :3比特(bit),第一位不使用,第二位是DF(Don’t Fragment)位,表示是否分片,0表示可以分片,1表示不能分片;第二位是MF

HTML学习笔记

烂漫一生 提交于 2020-08-18 14:03:13
什么是HTML HTML Hyper Text Markup Landuage(超文本 标记语言 ) 超文本包括:文字、图片、音频、视频、动画等 HTML5的优势 世界知名浏览器厂商对HTML5的支持 微软 Google 苹果 Opera Mozilla 市场的需求 跨平台 W3C标准 W3C World Wide Web Consortium(万维网联盟) 成立于1994,Web技术领域最权威和具影响力的国际中立性技术标准机构 http://www.w3.org/ http://www.chinaw3c.org/ W3C标准包括 结构化标准语言(HTML、XML) 表现标准语言(CSS) 行为标准(DOM、ECMAScript) HTML基本结构 <body>、</body>等成对的标签分别叫做开放标签和闭合标签 单独呈现的标签(空元素),如<hr/> 意味用 / 来关闭空元素 网页基本信息 DOCTYPE声明 title 标签 meta 标签 <!-- DOCTYPE:告诉浏览器,我们要使用什么规范 --> <!DOCTYPE html> <html lang="en"> <!-- head标签代表网页头部 --> <head> <!-- meta 描述性标签,它用来描述我们网站的一些信息 --> <!-- meta一般用来作SEO(搜索引擎优化) --> <meta

Unity中四元数quaternion的学习笔记

强颜欢笑 提交于 2020-08-18 08:15:45
笔记来自《游戏引擎架构》Jason Gregory著 第二版,4.4四元数,Page144。 引入:矩阵变换的三个问题 3*3矩阵可以表示三位中的任何旋转,但是他又三个问题。 1.9个浮点型表述只有三个自由度的旋转显得多余。 2.矩阵乘法过于复杂对于计算机来说,我们需要运算更快的旋转方法。 3.不能平滑插值。 如此,我们有quaternion q = {x,y,z,w} 四元数由威廉哈密顿爵士发明,作为复数的衍生,其定义x,y,z为虚部,w为实部,即x^2 = y^2 = z^2 =-1,w^2 = 1。 我们并不需要使用虚数 ,四元数并不是为旋转而生,我们只需要知道, 单位长度四元数 可以表示旋转, 即x^2 + y^2 + z^2 + w^2 = 1。 需要注意 :四元数同矩阵一样代表一种变换而不是一个具体到位置的旋转,四元数的作用对象是向量而不是一个点,你可以让一个箭头绕轴旋转90度,但是你不能让一个点旋转,因为点是没有方向的。这可能影响你理解四元素。 旋转的三维表现 矢量vector 标量scalar。 以下标粗字母为矢量 。 q = [ qv ,qs], qv 矢量部分是一个Vector3,qs标量部分为float。 q = [ a *sinθ/2 , cosθ/2],在三维中, a 为旋转轴的单位向量,绕轴a按右手法则旋转θ,即为该q定义的旋转。 旋转的乘法 注意

《计算方法 》

雨燕双飞 提交于 2020-08-18 08:07:16
一、4种插值方法及其误差估计 1、多项式插值(以单项式为基地) (Ⅰ)解题思路 \[P_n(x)=a_0+a_1x+……+a_nx^n \] 将 \(\{x\}_{i=0}^n\) 代入,构造出一个关于系数 \(a_0,a_1,……,a_n\) 的 \(n+1\) 元线性方程组,并解出 \(\{a\}\) 。 由于这种插值方法是最繁杂的,所以一般不会用到(除非在小学生面前装*),所以也不会考虑其误差,如果非得考虑的话,由 范德蒙德矩阵 可知,矩阵非奇异所以 \(P_n(x)\) 存在且唯一,故而误差和其他插值方法的误差是一样的,这里就不做讨论了。 (Ⅱ)例题(参考《数值分析 第五版》 \(P_{48}\ T_1\) ) 题目: 当 \(x=1,-1,2\) 时, \(f(x)=0,-3,4\) ,用单项式基底求 \(f(x)\) 的二次差值多项式。 解答: 构造插值函数: \(P_2(x)=a_0+a_1x+a_2x^2\) ,这时代入 \(\{x\}_{i=0}^2\) ,得到如下的3元线性方程组: \[\begin{cases} P_2(x_0)=a_0+a_1x_0+a_2x_{0}^2=0\\\\ P_2(x_1)=a_0+a_1x_1+a_2x_{1}^2=-3\\\\ P_2(x_2)=a_0+a_1x_2+a_2x_{2}^2=4 \end{cases}

对图像进行变形失真

老子叫甜甜 提交于 2020-08-18 06:37:47
实现参考 原图 #include <QApplication> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc.hpp> using namespace cv; static double PID2 = 3.141592653 * 0.5; static double param1 = 0.25; static double param2 = 0.25; static double param3 = 0.25; int SIGN(float x) { if (x < 0) return -1; else return 1; } int Eval(int mapping, double x, double y, double *xnew, double *ynew) { double phi, radius, radius2; double xtmp, ytmp; double denom; /* Some things that may be needed */ radius2 = x * x + y * y; radius = sqrt(radius2); phi = atan2(y, x); switch (mapping) {

JavaScript动画实例:圆点的衍生

一曲冷凌霜 提交于 2020-08-18 05:44:15
考虑如下的曲线方程: R=S*sqrt(n) α=n*θ X=R*SIN(α) Y=R*COS(α) 其中,S和θ可指定某一个定值。对n循环取0~999共1000个值,对于每个n,按照给定的坐标方程,求得一个坐标值(x,y),然后以(x,y)为圆心绘制一个半径为6的圆,可以得到一个螺旋状的图形。 编写如下的HTML代码。 <html> <head> <title>衍生的圆点</title> </head> <body> <canvas id="myCanvas" width="600" height="600" style="border:3px double #996633;"> </canvas> <script> var canvas = document.getElementById('myCanvas'); var ctx = canvas.getContext('2d'); var scale = 10; var theta = 30; for (n=0;n<1000;n++) { var radius = scale * Math.sqrt(n); var angle = n * theta * (Math.PI / 180); var x = radius * Math.cos(angle) + canvas.width / 2; var y = radius *

万物皆可 Serverless 之使用云函数 SCF 快速部署验证码识别接口

試著忘記壹切 提交于 2020-08-18 04:55:15
验证码识别是搞爬虫实现自动化脚本避不开的一个问题。通常验证码识别程序要么部署在本地,要么部署在服务器端。如果部署在服务器端就需要自己去搭建配置网络环境并编写调用接口,这是一个极其繁琐耗时的过程。 本文来自 Serverless 社区用户「乂乂又又」供稿 但是现在我们通过腾讯云云函数 SCF,就可以快速将本地的验证码识别程序发布上线,极大地提高了开发效率。 效果展示 可以看到,识别效果还是蛮好的,甚至超过了肉眼识别率。 操作步骤 传统的验证码识别流程是 图像预处理(灰化,去噪,切割,二值化,去干扰线等) 验证码字符特征提取(SVM,CNN 等) 验证码识别 下面我就带大家一起来创建、编写并发布上线一个验证识别云函数 第一步:新建 python 云函数 参见系列文章 《万物皆可Serverless之使用 SCF+COS 快速开发全栈应用》 第二步:编写验证识别云函数 Life is short, show me the code. 这里我就以一个最简单的验证码识别程序为例,直接上代码 import io import os import time from PIL import Image as image import json #字符特征 chars = { '1': [1, 1, 1, 0, 1, ...], '2': [1, 0, 0, 1, 0, ...], '3': [0,