
Algorithm
zkq_1986
这个作者很懒,什么都没留下…
展开
-
Distance Algorithm
1 Cos Distance2 余弦距离与欧式距离区别归一化后,欧氏距离和余弦值结果一致。但没有归一化的情况下,余弦距离是计算相似程度,而欧氏距离计算的是相同程度。一个大的照片和一个小的照片相异么? 你要用欧氏距离,那差别就大了,要是用余弦夹角就小啦不能说那个效果就好,要看应用场景的需求。原创 2016-08-15 19:59:08 · 692 阅读 · 0 评论 -
【推荐算法】今日头条推荐系统原理
据悉,今日头条的信息推荐算法自2012年9月第一版开发运行至今,已经经过四次大调整和修改。目前服务全球亿万用户。以下为曹欢欢关于《今日头条算法原理》的分享内容(已授权):本次分享将主要介绍今日头条推荐系统概览以及内容分析、用户标签、评估分析,内容安全等原理。一、系统概览推荐系统,如果用形式化的方式去描述实际上是拟合一个用户对内容满意度的函数,这个函数转载 2018-01-24 17:24:46 · 12343 阅读 · 0 评论 -
【算法】Bloom-Filter算法原理
1. Bloom-Filter算法简介 Bloom-Filter,即布隆过滤器,1970年由Bloom中提出。它可以用于检索一个元素是否在一个集合中。 Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有转载 2018-01-17 20:51:17 · 954 阅读 · 0 评论 -
【算法】辗转相除求最大公约数gcd
求最大公约数的最常用的算法是欧几里得算法,也称为辗转相除法。问题定义为求i和j的最大公约数gcd(i,j),其中i和j是整数,不妨设i>j。算法可以递归的表示:1. 如果j能整除i,那么gcd(i,j)=j;2. j不能整除i,令r=i%j,那么gcd(i,j)=gcd(j,r)。时间复杂度为log2(n),不过证明好像挺麻烦的,对于我这种数学渣渣,,,转载 2018-01-17 22:18:59 · 794 阅读 · 0 评论 -
【算法】最小生成树(Kruskal和Prim算法)
关于图的几个概念定义:连通图:在无向图中,若任意两个顶点vi与vj都有路径相通,则称该无向图为连通图。强连通图:在有向图中,若任意两个顶点vi与vj都有路径相通,则称该有向图为强连通图。连通网:在连通图中,若图的边具有一定的意义,每一条边都对应着一个数,称为权;权代表着连接连个顶点的代价,称这种连通图叫做连通网。生成树:一个连通图的生成树是指一个连通子图,它含有图中全部n个顶点,但只有足以转载 2018-01-09 14:57:22 · 288 阅读 · 0 评论 -
【算法】最优化之RDA正则化双平均
sgd:对损失项和正则化项一刀切,没对正则化项区别对待。以致1)优化速度慢;2)准确性不高。rda:regularized dual averaging正则双平均对损失项和正则化项区分考虑,获得正则化项的闭合形解。在优化速度方面优于sgd。为什么称为双平均?在损失项子梯度中,一是对历史子梯度的平均,二是对当前子梯度的平均。...原创 2018-02-28 10:40:51 · 1091 阅读 · 0 评论 -
【算法】浅谈L0,L1,L2范数及其应用
浅谈L0,L1,L2范数及其应用L0效果最好,L1效果次之,L2效果最差。L0基本很求解。L1也很难求解,运算时间较长,但要是能求出来,其解更偏向于全局最优解。L2求解速度较快,但容易陷入局部最优。在线性代数,函数分析等数学分支中,范数(Norm)是一个函数,其赋予某个向量空间(或矩阵)中的每个向量以长度或大小。对于零向量,另其长度为零。直观的说,向量或矩阵转载 2018-03-01 22:02:56 · 2924 阅读 · 0 评论 -
【算法】一致性哈希算法原理
一致性哈希算法原理一致性Hash算法背景 一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简单哈希算法带来的问题,使得DHT可以在P2P环境中真正得到应用。 但现在一致性hash算法在分布式系统中也得到转载 2018-03-27 09:21:10 · 227 阅读 · 0 评论 -
【算法】最小生成树算法原理详解
算法简单描述1).输入:一个加权连通图,其中顶点集合为V,边集合为E;2).初始化:Vnew = {x},其中x为集合V中的任一节点(起始点),Enew = {},为空;3).重复下列操作,直到Vnew = V:a.在集合E中选取权值最小的边<u, v>,其中u为集合Vnew中的元素,而v不在Vnew集合当中,并且v∈V(如果存在有多条满足前述条件即具有相同权值的边,则...原创 2019-02-01 11:01:35 · 978 阅读 · 0 评论 -
【算法】隐马尔科夫HMM之Viterbi维特比算法原理
Viterbi 算法的定义定义变量δt(i):表示时刻t状态为i的所有路径中的概率最大值,公式如下:过程:上面的符号之前都已经见过,这里不再解释,下面为了更好地理解这几步,我们来举个例子。例子还是盒子球模型。盒子和球模型λ= (A, B,π),状态集合Q={1, 2, 3},观测集合V={红, 白},已知观测序列O=(转载 2018-01-24 10:54:51 · 1118 阅读 · 0 评论 -
【热度排行】热度排行算法
热度排行算法:点击热度*权重+时间衰减*权重 reddit原创 2017-12-26 11:16:00 · 4654 阅读 · 0 评论 -
PageRank
其中β表示阻尼因子,用于表示继续往下点下去(点积链接)的概率,通常设为0.85。N表示所有网页数。m表示网页pip_i的入链数,Out(pjp_j)表示网页pjp_j的出链数。原创 2016-11-09 09:02:03 · 267 阅读 · 0 评论 -
KMP
public class KMP {public static void main(String[] args){ // TODO Auto-generated method stub run("acdccdcddef".toCharArray(), "cdcdde".toCharArray());}static void run(char[] s, char[] p){原创 2016-11-11 14:49:44 · 261 阅读 · 0 评论 -
贪心算法和动态规划区别
贪心算法全局最优解由局部最优解构成,下一步的局部最优解仅由上一步的局部最优解推导出,也就是说每次仅保留上一部的最优解。动态规划全局最优解肯定包含局部最优解,但下一步的局部最优解,不一定由上一步的局部最优解推导出,因此需要保留之前所有的最优解。原创 2017-04-25 14:36:19 · 615 阅读 · 0 评论 -
最优化理论与KKT条件
1. 最优化理论(Optimization Theory)最优化理论是研究函数在给定一组约束条件下的最小值(或者最大值)的数学问题. 一般而言, 一个最优化问题具有如下的基本形式:min.:f(x)其中. f(x)为目标函数, gi(x)≤0,i=1,2,…,p 为不等式约束条件, hj(x)=0,k=1,2,…,q为转载 2017-10-09 14:57:39 · 1223 阅读 · 0 评论 -
【算法面试题】从1-200中任意选出101个自然数,其中一个数必是另一个数的整数倍
【爱奇艺】现有1-200之间的正整数,假设从中任意抽取101个数,试证明其中必然有一个数可以被另外一个数整除?证明:任意整数都可以写成(2^a)*b的形式,其中a>=0且a为奇数.把这200个数分类如下:以上共分为100类,即100个抽屉。显然在同一类中的数若不少于两个,那么这类中的任意两个数都有倍数关系。从中任取101个数,根据抽屉原理,一定至少有两个转载 2017-12-13 16:45:24 · 4917 阅读 · 0 评论 -
【算法】动态规划与贪婪法区别
动态规划与贪婪算法学习笔记动态规划能求出全局最优解,不是贪心法。已算法导论图示为例两条生产线上,产品经过各个装配工作位直到加工完成所耗费的时间都标记出来了,同一生产线的装配工作位转移不花费时间。试图求出最快流程。动态规划是利用最优子结构自底向上求解。也就是说要求出最后完成的最快流程(Si,6)我们需要先知道Si,5工位的最快流程,而直到Si,5工位的最快流程原创 2017-12-14 15:48:36 · 623 阅读 · 0 评论 -
【算法】算法分析与设计的基本方法
算法分析与设计的基本方法1.递推法递推法是利用问题本身所具有的一种递推关系求问题解的一种方法。它把问题分成若干步,找出相邻几步的关系,从而达到目的,此方法称为递推法。2.递归递归指的是一个过程:函数不断引用自身,直到引用的对象已知3.穷举搜索法穷举搜索法是对可能是解的众多候选解按某种顺序进行逐一枚举和检验,并从众找出那些符合要求的候选解作为问题的解。4.贪婪法(又称转载 2017-12-14 15:50:51 · 3742 阅读 · 0 评论 -
【面试题】实现一个栈,要求Push(入栈),Pop(出栈),Min(返回最小值的操作)的时间复杂度为O(1)
问题描述:实现一个栈,要求Push(入栈),Pop(出栈),Min(返回最小值的操作)的时间复杂度为O(1) 分析问题:要记录从当前栈顶到栈底元素的最小值,很容易想到用一个变量,每push一个元素更新一次变量的值。那么问题来了,当执行pop操作时,上一次的最小值就找不到了。 解决问题:这里有两种方法解决这个问题 方法一 使用一个栈。元素x入栈时,执行一次push(x),再push(转载 2017-12-14 19:40:44 · 1479 阅读 · 0 评论 -
【算法】最大均值差异(Maximum Mean Discrepancy, MMD)损失函数原理与python代码
MMD介绍MMD(最大均值差异)是迁移学习,尤其是Domain adaptation (域适应)中使用最广泛(目前)的一种损失函数,主要用来度量两个不同但相关的分布的距离。两个分布的距离定义为:python代码样例:import torchdef guassian_kernel(source, target, kernel_mul=2.0, kernel_num=5, fix_si...原创 2019-02-02 16:38:07 · 24459 阅读 · 4 评论