算法

阿里资深Leader:组建技术团队的一些思考

主宰稳场 提交于 2020-02-28 11:17:16
转自 51CTO技术栈 背景 本文是我从 2019 年 1 月底接手 CRO 线 NLP 算法团队以来,在团队组建、能力建设、以及管理上的一些思考,全部是没有科学论证的主观判断,不过都进行了实践。 我没有任何管理学背景知识,把拙见没羞没臊地写出来,是为了抛砖引玉,和同学们交流讨论。 团队的定位是什么?——做正确的事 定位 团队的定位是重要的事情之一,有了偏差,后续做得越多错得越多。确定团队的定位花了我很长时间,中间还发生了一次组织变化,和两任主管有多次讨论。 首先,这个团队配置在 CRO 线,肯定要为风险管理业务服务;同时,这又是一支能力团队,还要考虑和业务团队的协同关系。 最终,我确定了三点: 能力建设为主,同时也需要有业务抓手。 不做业务团队已经做得好的事情。 立志高远,勇攀高峰,要做就做到最好。 壁垒与价值 不夸张地说,现在是 NLP 领域的大航海时代,新算法层出不穷,日新月异,后浪各种把前浪碾死在沙滩上。 尤其是 BERT 横空出世之后,整个 NLP 的研究范式都发生了变化,从原来的 task-specific 的模型结构设计转变到语言模型 pretrain+ 下游任务 finetuning 的模式,预训练模型是含金量高的工作。 研究一下预训练模型,你会发现这是个需要海量金钱+数据+技术才能玩的游戏。 这就陷入两难 :如果搞预训练模型,没那么多资源;如果不搞

算法之递归-c语言实现

流过昼夜 提交于 2020-02-28 11:13:36
文章来源: http://blog.seclibs.com/算法之递归-c语言实现/ 在上一篇文章里说了递归,这里就使用其中的上楼梯问题来进行代码实现,在上一篇文章里也说过了中间会有重复计算的情况,这里我们使用一维动态数组来进行存储,一维数组的索引值就与楼梯层数相同,可以更加清晰的理解其中的含义,代码如下 如果需要下载代码,请移步至文末 代码: GitHub 文章首发公众号和个人博客 公众号:无心的梦呓(wuxinmengyi) 博客: http://blog.seclibs.com/ 来源: oschina 链接: https://my.oschina.net/u/3677719/blog/3162945

上帝的天空之岛

梦想与她 提交于 2020-02-28 11:03:12
这一个月来,一直都在看地形光照的技术。如今终于渲出几张还像回事的地形。 光照用了“光照贴图”的技术,不过比较特别的是,没有单独使用一张光照贴图,而是在生成纹理的时候顺便对每像素做了光照计算(图省事,因为首先想看到效果对不对,然后才考虑优化)。光照计算用的是点光源+漫反射模型+阴影。算法简单讲一下:从纹理图中读取一个纹素出来,找到它在世界坐标系中所在的平面,然后计算该平面的法线。接着,利用这条法线,计算出点光源到该平面的光照分量(RGB三色值),这就是漫反射模型的原理。再来考虑如何生成阴影,从光源到该纹素引一条直线,投影到纹理图中,找到这条直线所占用的纹素格。针对每一个组成这条直线的纹素格,取得它的高度值与光路照射在该点的高度值比较,如果前者大于后者,即表示目标纹素被遮挡,因此判断该纹素位置为阴影。对于处于阴影中的纹素,光照分量进一步减弱(比如乘一个缩放因子)。 而其他方面,一如既往使用了已有技术:高度图的生成依然使用分形算法产生,而纹理图的生成也是使用过程生成技术产生。因此,这样的地形完全是过程生成的,事前不必插手,也无法插手。我自己也不知会生成一个什么场景。有那么一霎那,我感到自己就像在扮演上帝一样,随着手指敲打键盘,就创造了一个荒岛出来。这也是我最感到开心的地方。 测试:由于没有对算法做任何优化,因此渲染一幅比较大的地形会花很久的时间。 比如在公司的机子上,渲染一张65

算法之递归

孤街浪徒 提交于 2020-02-28 07:41:38
文章来源: http://blog.seclibs.com/算法之递归/ 递归是一种应用非常广泛的算法,在很多的数据结构和算法的编码中都会用到,理解递归是非常重要的。 递归在平时的生活中也是非常常用的,当你排队的时候需要知道自己排在第几个位置,而前面的人又比较多,你不能自己数出来,就可以询问你前一个人他的位置,在他的位置基础上加一便是你的位置,那如果他也不知道他的位置呢,就可以用同样的方法,继续向前询问,直到第一个人,第一个人就不用往前问了,他直到自己是第一个,这个过程就是一个递归的过程。 去问的时候叫做“递”,返回来的时候叫做“归”,假设自己是第n排,求自己位置的函数为f(n),f(n-1)就是前一个人的位置,我们的位置就是f(n-1)+1,同样前一个人的位置也可以用这个公式来计算, 直到第一个人f(1)=1,这一整套流程便是递归的实际利用,编写成代码如下 在编写递归代码的时候,有两点必要的条件: 一个问题可以分解为多个结构相同,规模不同的子问题。 存在终止条件。 如果结构不同,那就不能构造递归了;如果不存在终止条件的话,将会无限循环,看上面的那个例子,它的终止条件就是执行到第一个人的时候,开始往后返回。 递归就这样完成了,上面这个例子是只有一个递归调用的分支,还是比较好理解的,如果有多个递归分支的话,单纯靠人脑是很难理解清楚的,计算机比较适合做重复的工作

2019-2020-1 20175203 20175206 实验五 通讯协议设计

半世苍凉 提交于 2020-02-28 06:45:11
实验五 通讯协议设计-1 任务详情 在Ubuntu中完成http://www.cnblogs.com/rocedu/p/5087623.html中的作业 提交运行结果截图 作业: 研究OpenSSL算法,测试对称算法中的AES,非对称算法中的RSA,Hash算法中的MD5 基于Socket实现TCP通信,一人实现服务器,一人实现客户端 选用合适的算法,基于混合密码系统实现对TCP通信进行机密性、完整性保护。 学有余力者,对系统进行安全性分析和改进 因为之前作业中使用过openssl,所以无需再次下载 openssl: 多用途的命令行工具,包openssl,可以执行交互或批量命令。 openssl的加密算法: OpenSSL一共提供了8种对称加密算法,其中7种是分组加密算法,仅有的一种流加密算法是RC4。这7种分组加密算法分别是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持电子密码本模式(ECB)、加密分组链接模式(CBC)、加密反馈模式(CFB)和输出反馈模式(OFB)四种常用的分组密码加密模式。其中,AES使用的加密反馈模式(CFB)和输出反馈模式(OFB)分组长度是128位,其它算法使用的则是64位。事实上,DES算法里面不仅仅是常用的DES算法,还支持三个密钥和两个密钥3DES算法。 OpenSSL一共实现了4种非对称加密算法,包括DH算法

KNN算法--python实现

江枫思渺然 提交于 2020-02-28 05:37:40
1.KNN算法作为分类的算法,也被成为k近邻算法。 2.KNN算法的核心思想是新增一个样本在特征空间中,k个最近的样本大多数是 一类的,那么这个样本也属于这一类。 这里我们利用欧拉公式计算样本间的距离。 import math import numpy as np from sklearn import datasets import matplotlib . pyplot as plt raw_data_X = [ [ 3.393533211 , 2.331273381 ] , [ 3.110073483 , 1.781539638 ] , [ 1.343808831 , 3.368360954 ] , [ 3.582294042 , 4.679179110 ] , [ 2.280362439 , 2.866990263 ] , [ 7.423436942 , 4.696522875 ] , [ 5.745051997 , 3.533989803 ] , [ 9.172168622 , 2.511101045 ] , [ 7.792783481 , 3.424088941 ] , [ 7.939820817 , 0.791637231 ] ] raw_data_y = [ 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 ] X_train = np .

在有向图中检测周期的最佳算法

こ雲淡風輕ζ 提交于 2020-02-28 05:09:56
检测有向图内所有周期的最有效算法是什么? 我有一个有向图,表示需要执行的作业计划,其中作业是节点,而依赖项是边缘。 我需要检测此图中导致循环依赖性的循环的错误情况。 #1楼 我已经在sml(命令式编程)中实现了这个问题。 这是大纲。 查找入度或出度为0的所有节点。 这样的节点不能成为循环的一部分(因此请删除它们)。 接下来,从此类节点中删除所有传入或传出边缘。 将这个过程递归地应用于结果图。 如果最后没有剩下任何节点或边,则该图没有任何循环,否则就没有。 #2楼 https://mathoverflow.net/questions/16393/finding-a-cycle-of-fixed-length 我最喜欢这种解决方案,特别适合4种长度:) 此外,phys向导还说您必须执行O(V ^ 2)。 我相信我们只需要O(V)/ O(V + E)。 如果该图已连接,则DFS将访问所有节点。 如果该图具有连接的子图,则每次我们在该子图的顶点上运行DFS时,我们都将找到连接的顶点,并且在下次运行DFS时不必考虑这些顶点。 因此,为每个顶点运行的可能性是不正确的。 #3楼 没有一种算法可以在多项式时间内找到有向图中的所有循环。 假设有向图有n个节点,并且每对节点之间都有相互连接,这意味着您有一个完整的图。 因此,这n个节点的任何非空子集都表示一个周期,并且此类子集的数量为2 ^ n-1。

基于点云方式的6D姿态识别

白昼怎懂夜的黑 提交于 2020-02-28 05:09:25
作者:Tom Hardy Date:2020-2-26 来源: 基于点云方式的6D姿态识别 前言 除了对应点方式,还可以将点云将与整个形状对齐,获得6D姿态。通常,首先进行粗配准以提供初始对准,然后进行密集配准方法,如迭代最近点(ICP),以获得最终的6D姿态。针对点云方式,挑选了一些相关的paper,在这里做下基本思想分享。 1、Go-ICP: A Globally Optimal Solution to 3D ICP Point-Set Registration 迭代最近点(ICP)算法是目前应用最广泛的点集配准方法之一。然而,基于局部迭代优化的ICP算法易受局部极小值的影响。它的性能严重依赖于初始化的质量,并且只保证局部最优性。本文提出了在ICP定义的L2误差度量下,两个三维点集欧氏(刚性)配准的第一个全局最优算法Go-ICP。Go-ICP方法基于搜索整个3D运动空间SE(3)的分枝定界(BnB)方案。利用SE(3)几何的特殊结构,推导了新的配准误差函数的上下界。在BnB方案中引入局部ICP,在保证全局最优的同时加快了新方法的速度。本文还讨论了扩展,解决了异常值健壮性问题。实验结果表明,该方法能够在不考虑初始值的情况下产生可靠的配准结果。Go-ICP可应用于需要最佳解决方案或无法始终获得良好初始化的情况。 2、SUPER 4PCS Fast Global Pointcloud

KMP算法求循环节,为什么能求循环节

本秂侑毒 提交于 2020-02-28 03:50:20
众所周知,KMP算法可以求最小循环节,为什么可以求循环节呢? 博主之前对KMP算法的理解不够深入,最近突然又想起来了,就深入研究了一下。 KMP算法中最重要的就是next数组,next[i]表示是字符串中所有以 i 为结尾的非前缀子串中与前缀能匹配的长度的最大值。可能有点绕,缕一缕吧,这就是next[ ]数组的定义而已。 我们求最小循环节也是利用next[ ]数组求的。假设字符串是一个循环字符串,可以有一个循环节循环多次得到(假设多于一次),不妨假设循环节是 str1 ,原来的字符串肯定是由循环节循环而来,即 string=str1str1...str1 ,如果字符串长度为len,根据next[ ]数组的定义,next[len]就是以字符串结尾为结尾的非前缀与前缀匹配的最大长度,如果这个字符串能由一个循环节循环多次得到,那么next[n]中一定包含了至少一次循环节,而且是去掉了从头开始的第一个循环节后的整个字符串。自己在本子上画一下就好了。对齐方式肯定是下图这个样子,每一个方框都是一个循环节。 因为我们设的是最小循环节,如果认为有其他方法,那么一定可以将第二个字符串对齐的时候向前移动,如果这样的话那么它肯定不是最小循环节。既然这样,最小循环节长度就是 len - next[len] ,如果能由它循环多次得来,一定满足满足以下条件。 len % ( len - next[len] )