英文算法
A. algorithm与arithmatic的区别,到底那个词在英文中是算法的意思
词性不同,algorithm是名词,algorithmic是形容词.
algorithm
[英]['ælɡərɪðəm][美][ˈælɡəˌrɪðəm]
n.运算法则; 算法; 计算程序;
An algorithm then scrapes the web for relevant historical content--newsclippings, pictures, video footage.
记录完故事后,Story Coach的算法会在互联网上搜索与故事相关的历史资料——新闻片段、图片、视频等.
algorithmic
[英]ˌælgə'rɪðmɪk [美]ˌælgə'rɪðmɪk
adj. 算法的,规则系统的
[例句]Professional criminals are increasingly likely to outflank legitimate companies in competing for google 's algorithmic attention , security professionals say.
网络安全专家表示,在争取谷歌(google)搜索算法的关注度方面,职业犯罪分子越来越可能比合法公司智高一筹.
B. (十)EM算法
EM算法的英文全称是 Expectation Maximization Algorithm——期望极大化算法 ,它采用迭代的方式逼近带隐变量的似然函数。通过对似然函数的一个下界求偏导,得到每一步参数估计的过程。
这个名称由于缺乏作用对象,让人一头雾水。这里的期望是什么?为什么我们要极大化这个期望,我们试图优化什么?
这里的期望的含义其实是针对 极大似然估计 中的 似然函数 来说的,这里的期望就是似然函数的一个 下界 ,我们的目的是求这样一个期望: 这个下界是根据 詹森不等式(Jensen's inequality) 放缩得到的,为什么要放缩呢?因为我们试图找出一个下界,极大化这个带参数的下界之后,可以无限近似于似然函数。你想,如果这个做法ok的话,意味着什么?意味着我们可以通过这个过程找出极大似然估计或最大后验估计的参数近似解。这也意味着我们可以搞一个迭代法来得到一个近似解。但是即便我说的天花乱坠,这个下界要是不收敛那也白搭。而下界要收敛必须满足两个条件:
1.这个下界的取值要单调递增(因为每回迭代的结果要比上一次的取值更大)
2.这个下界必须有上界(这个上界就是对数似然函数,且这一点可以由詹森不等式保证,这个也是EM的核心)
大白话就是 单调有界必有极限 。
我们来证明一下它确实是收敛的。
首先,在极大似然估计中,我们的目的是根据手头上的 个样本,最大化 后,将参数 估计出来;引入对数: ;此时引入辅助变量 ;我们的对数似然函数就变成了:
设置变分函数: ;那么:
根据琴生不等式,对数函数为凸函数(因为 :等号在 为常数时取到):
上面的这个下界,就是用来逼近原对数似然函数的,这里我们已经证明了算法收敛的一个条件, 有界性 ;但是在继续进行下一步的时候,我们还有一个问题没搞清楚,那就是变分函数 的具体形式,实际上,我们可以通过琴生不等式等号成立的条件导出我们要的这个变分函数q。
令 为常数:
接着我们代入变分函数 的形式,定义这个下界的第一项:
定义下界的第二项:
对于第二项,我们看看随着迭代步数的增大,它是否是递增的,
我们将不同参数的 与 看作是两个分布,那么这个结果实际上是一个KL散度,它表征两个分布的相似度,其结果总是大于等于0的。
大于等于0的原因:
所以:
H为一个递增的序列,那么剩下的就是Q是否递增了,基于前面提到的这个下界是有上界的,上界就是我们的对数似然函数。在这个前提下,现在我们只要证明,Q递增是整个下界递增的充分必要条件即可。
必要性:
当整个下界递增,即:
那么:
所以 单调递增,必要性得证。
充分性:
因为:
前面已经证明:
又因为:
所以:
即,在 递增的情况下,整个下界递增。
充分性得证。
证毕。
这个算法名称里提及的期望究竟是什么?
我们说了这么多,实际都是要做一件事,那就是:
由于前面证明过整个下界有界。且只要找到让第i次迭代的Q函数最大的 作为下一次迭代的参数,我们就可以让Q递增,让算法收敛。
我们来看看Q的形式。
这就是为什么叫期望最大算法的原因。
我们以概率PCA,来展开EM的应用:
当然这里的应用只涉及变分函数已知情况下的应用,并不涉及广义EM的内容,日后看完文献在来唠唠广义EM,AVE,GAN等内容。
我们先来算一下PPCA的EM期望的形式:
在 概率PCA 中,我们有提到:
所以:
所以期望里面是这个式子:
我们的目的是要估计出 和 ;那么我们分别对它们求偏导:
所以:
因为:
代入偏导中
所以:
我们偏导得到的结果就是:
我们会发现我们还有两个估计量没解决,一个是一阶估计量 ,另一个是二阶估计量
在概率PCA中,我们提到过:
那么我们就有了一阶估计量:
二阶估计量可以通过简单的计算得到:
剩下的代入即可.
结果展示:
C. dfs算法是什么
dfs算法是深度优先搜索。
深度优先搜索属于图算法的一种,英文缩写为DFS。其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。
深度优先搜索是一种在开发爬虫早期使用较多的方法,它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链的HTML文件)。
主要思想
借用一个邻接表和布尔类型数组(判断一个点是否查看过,用于避免重复到达同一个点,造成死循环等),先将所有点按一定次序存入邻接表,再通过迭代器,对邻接表的linklist和布尔数组做出操作,从而达到不重复递归遍历的效果。
D. 伪·从零开始学算法 - 1.2 算法的历史
我在写1.1节的时候本来是要写这个的,但是突然就忘了……就作为一节来写吧。
顺便说一下,1946年的今天,世界上第一台通用电脑——电子数值积分计算机在美国宾夕法尼亚大学正式启用,就是那个ENIAC。
别只想着情人节,要不是几十年来科技的进步,你们才没机会在朋友圈、空间什么的大秀恩爱。
中文的“算法”一词至少在唐代就出现了,在此之前也有“术”“算术”等词,最早出现在《周髀算经》《九章算术》。而且,“算法”一词的含义从古到今几乎没有发生变化。
英文的“算法”(algorithm)一词来源于9世纪波斯数学家花拉子米(al-Khwārizmī,780?~850?)——就是那个解决一次方程及一元二次方程的方法的人。花拉子米的拉丁文译名是“Algoritmi”。英文对“算法”原译为“algorism”,意思是花拉子米的运算法则,在18世纪演变为“algorithm”。这个词出现于12世纪,指的是用阿拉伯数字进行算术运算的过程。
对于算筹、算盘的操作的方法,我不知道是否属于算法。
约公元前300年记载于《几何原本》中的辗转相除法(欧几里得算法)被人们认为是史上第一个算法,可以求两数的最大公约数。直到今天,它还有很大的用途。
《九章算术》给出了四则运算、最大公约数、最小公倍数、开平方根、开立方根、求素数的埃拉托斯特尼筛法,线性方程组求解的算法。
三国时代的刘徽给出求圆周率的算法:刘徽割圆术,比阿基米德割圆术得出的结果更加精确。祖冲之使用该方法将圆周率的准确值计算到了3.1415926和3.1415927之间,保持了世界最准确圆周率达900年之久。
唐代以来,历代更有许多专门论述“算法”的专着。宋代的秦九韶提出的秦九韶算法,直到今天仍是多项式求值比较先进的算法。
在9世纪的阿拉伯世界,花拉子米写成《代数学》,其对解决一次方程及一元二次方程的方法催生了代数——大家熟知的求多元(尤其是二元)一次方程和一元二次方程的解法就来源于此。700多年后,三次方程、四次方程的求根公式才被得出。
牛顿于1671年提出的牛顿法,相比于二分法可以更快速地求函数的根或者是函数的极值。
17世纪起,早期的机械计算机出现了。从加法到傅里叶变换,它们的功能越来越强大。
工业革命带来了纺织业的变革,出现了可以自动织出带花纹的布的织布机,它们使用打孔卡输入指令。这种设计也被英国数学家查尔斯·巴贝奇设计的分析机使用。
拜伦的女儿爱达·勒芙蕾丝(Ada Byron;Ada, Countess of Lovelace)于1842年为这个想象中的机器编写求解伯努利微分方程的程序,因此爱达·勒芙蕾丝被大多数人认为是 世界上第一位程序员 。但是,这个机器因为种种原因,直到巴贝奇去世也没有被真正地制造出来。
后来的数学家对算法的贡献大多在于数理逻辑的构建上,在此我因为知识缺乏,看不懂资料,不便讲述。感兴趣的话可以看一下参考资料。
20世纪的英国数学家图灵提出了着名的图灵论题,并提出一种假想的计算机的抽象模型,这个模型被称为图灵机。图灵机的出现解决了算法定义的难题,图灵的思想对算法的发展起到了重要的作用。
在此之后,算法更偏向于计算机科学领域,各种解决不同问题的算法也层出不穷,涉及排序、统计、线性规划、搜索、压缩等方面。
到了现在,随着人工智能和机器学习的发展,涉及到神经网络的算法变得越发重要。
The Best of the 20th Century: Editors Name Top 10 Algorithms
http://www.uta.e/faculty/rcli/TopTen/topten.pdf
E. 翻译一段英文算法
1、根据第二节中的描述构建对称非负n×n阶矩阵M;
2、设x是M的主特征向量,并用nx1阶零向量将x初始化;用待处理作业数据初始化L;
3、查找a= argmaxa2L(x(a)).如果x(a) = 0停止并返回x,否则令x(a)=1并将a从L中移除。
4、将L中所有可能与a=(i,i0)冲突的作业数据从L中移除,作业数据中形式为(i, k) 和(q, i0)的数据与a是一一对应的约束条件。(而(i,k)这样的形式是一对多的约束条件)。
5、如果L为空,则返回结果x,否则转到第三步。
F. 英文词干提取算法(Porter stemmer)
NLTK 中包括一个用于单词词干提取的类 nltk.stemmer.porter.PorterStemmer ,Porter stemmer 并不是要把单词变为规范的那种原来的样子,它只是把很多基于这个单词的变种变为某一种形式!换句话说,它不能保证还原到单词的原本,也就是"created"不一定能还原到"create",但却可以使"create" 和 "created" ,都得到"creat"。
参考链接:
https://tartarus.org/martin/PorterStemmer/
https://www.cnblogs.com/huiyang865/p/5571421.html
G. 什么叫算法
算法,对应的英文单词是algorithm,这是一个很古老的概念,最早来自数学领域,是用于解决某一类问题的公式和思想。
计算机科学领域的算法,本质是一系列程序指令,用于解答特定的运算和逻辑问题。一般运用时间复杂度和空间复杂度来衡量算法好坏。
算法的应用领域多种多样:
运算,例如计算两个数的最大公约数。
查找,例如使用谷歌、网络搜索某一关键词得出数据和信息。
排序:例如浏览电商网站时,商品按价格从低到高进行排序。
最优决策:例如游戏中让AI角色找到迷宫的最佳路线。
参考资料:魏梦舒(@程序员小灰),《漫画算法:小灰的算法之旅》:电子工业出版社,2019-05
H. 计算机编程的算法是什么意思
算法,对应的英文单词是algorithm,这是一个很古老的概念,最早来自数学领域,是用于解决某一类问题的公式和思想。
计算机科学领域的算法,本质是一系列程序指令,用于解答特定的运算和逻辑问题。一般运用时间复杂度和空间复杂度来衡量算法好坏。
学习算法,不需要死记硬背那些冗长复杂的背景知识、底层原理、指令语法,需要做的事零五算法思想、理解算法对内存空间和性能的影响,以及开动脑筋去寻求解决问题的最佳方案。
数据结构是算法的基石,是数据的组织、管理和存储的格式,其目的是为了高效地访问和修改数据。数据结构的组成方式有:线性结构、树、图等。有了数据结构这个舞台,算法才可以尽情舞蹈,所以在学习算法之前最好先系统学习数据结构。在解决问题时,不同的算法会选用不同的数据结构。例如排序算法中的堆排序,利用的就是二叉堆这样一种数据结构。
I. 算法 英文怎么读
算法
[词典] algorithm; arithmetic;
[例句]在开发软件原型中,提出了一种进行不规则区域求交的新算法。
During the development of the antitype, proposed a new calculation to seek anomalous area overlapping.
J. 算法是什么意思 谢谢
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
算法中的指令描述的是一个计算,当其运行时能从一个初始状态和(可能为空的)初始输入开始,经过一系列有限而清晰定义的状态,最终产生输出并停止于一个终态。一个状态到另一个状态的转移不一定是确定的。随机化算法在内的一些算法,包含了一些随机输入。
(10)英文算法扩展阅读:
算法分类:
1、有限的,确定性算法 这类算法在有限的一段时间内终止。他们可能要花很长时间来执行指定的任务,但仍将在一定的时间内终止。这类算法得出的结果常取决于输入值。
2、有限的,非确定算法 这类算法在有限的时间内终止。然而,对于一个(或一些)给定的数值,算法的结果并不是唯一的或确定的。
3、无限的算法 是那些由于没有定义终止定义条件,或定义的条件无法由输入的数据满足而不终止运行的算法。通常,无限算法的产生是由于未能确定的定义终止条件。