分类归档 AI

通过文章小助手

微软公开了其Bing搜索服务背后的关键算法

下载黄金原野APP赢取现金红包

微软 今天宣布它开源了一个关键部分,使其Bing搜索服务能够快速将搜索结果返回给用户。通过开放这项技术,该公司希望开发人员能够为其他用户搜索大量数据库(包括零售业)的用户构建类似的体验,尽管在这个数据丰富的时代,开发人员可能会发现很多其他企业和消费者使用案例。

该公司今天开源的软件是微软开发的一个库,它可以更好地利用它收集的所有数据以及它为Bing 构建的AI模型。

“仅在几年前,网络搜索很简单。用户输入几个单词并浏览结果页面,“该公司在今天的公告中指出。“今天,相同的用户可能会在手机上拍照并将其放入搜索框中,或使用智能助手提问而无需亲自触摸设备。他们也可能会输入一个问题并期待一个实际的答复,而不是一个可能答案的页面列表。“

利用空间分区树和图(SPTAG)算法作为开源Python库的核心,Microsoft能够在几毫秒内搜索数十亿条信息。

当然,矢量搜索本身并不是一个新想法。然而,微软所做的是将这一概念应用于深度学习模型。首先,团队采用预先训练的模型并将数据编码到矢量中,其中每个矢量代表一个字或像素。然后使用新的SPTAG库生成向量索引。随着查询的进入,深度学习模型将该文本或图像转换为向量,并且库在该索引中找到最相关的向量。

微软表示,“通过Bing搜索,矢量化工作已经扩展到搜索引擎索引的超过1500亿条数据,从而带来了对传统关键字匹配的改进。” “这些包括单个单词,字符,网页摘要,完整查询和其他媒体。一旦用户搜索,Bing就可以扫描索引的向量并提供最佳匹配。“

该库现在可在MIT许可下使用,并提供构建和搜索这些分布式矢量索引的所有工具。您可以在此处找到有关如何开始使用此库以及应用程序示例的更多详细信息。

扫一扫或点击黄金原野下载APP

扫一扫,关注微信公众号

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance 申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

67页PPT,学透机器学习算法、应用及数据处理

作为AI的重要分支,机器学习在推荐系统、在线广告、金融市场分析、计算机视觉、语言学、生物信息学等诸多领域都取得了巨大的成功。机器学习并不是像我们字面理解的那样,让冷冰冰的机器去学习,或者狭义的理解为让机器人去学习。
机器学习,从本质上来说,可以理解为算法学习(Algorithm Learning)、模型学习(Model Learning)或者叫函数学习(Function Learning)。今天这个PPT将为大家详细介绍机器学习-算法。

1 机器学习算法大致可以分为三类

监督学习算法 (Supervised Algorithms): 在监督学习训练过程中,可以由训练数据集学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。该算法要求特定的输入/输出,首先需要决定使用哪种数据作为范例。例如,文字识别应用中一个手写的字符,或一行手写文字。主要算法包括神经网络、支持向量机、最近邻居法、朴素贝叶斯法、决策树等。

无监督学习算法 (Unsupervised Algorithms): 这类算法没有特定的目标输出,算法将数据集分为不同的组。

强化学习算法 (Reinforcement Algorithms): 强化学习普适性强,主要基于决策进行训练,算法根据输出结果(决策)的成功或错误来训练自己,通过大量经验训练优化后的算法将能够给出较好的预测。类似有机体在环境给予的奖励或惩罚的刺激下,逐步形成对刺激的预期,产生能获得最大利益的习惯性行为。在运筹学和控制论的语境下,强化学习被称作“近似动态规划”(approximate dynamic programming,ADP)。

2 基本的机器学习算法:

线性回归算法 Linear Regression

支持向量机算法 Support Vector Machine,SVM

最近邻居/k-近邻算法 K-Nearest Neighbors,KNN

逻辑回归算法 Logistic Regression

决策树算法 Decision Tree

k-平均算法 K-Means

随机森林算法 Random Forest

朴素贝叶斯算法 Naive Bayes

降维算法 Dimensional Reduction

梯度增强算法 Gradient Boosting

Apriori算法

最大期望算法Expectation-Maximization algorithm, EM

PageRank算法

黄金原野
扫一扫或点击黄金原野下载APP

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

AI之战一旦爆发,或将碾压核竞赛

本周,斯坦福伦理与社会中心、斯坦福人类中心人工智能研究所以及斯坦福人类中心联合举办了一次活动,邀请到人工智能领域的先驱李飞飞和畅销书《人类简史》、《未来简史》作者尤瓦尔·赫拉利(Yuval Noah Harari)。

我们不仅面临着一场技术危机,同时还有哲学危机

Yuval:在我看来,现代社会的哲学框架仍然来源于17世纪和18世纪,人类能动性、个人自由意志等理念正在受到前所未有的挑战,这种挑战并非来源于其他哲学理念,而是来源于现代科学技术。越来越多原本属于哲学领域的问题,正在转变成工程类问题。这非常可怕,因为工程师不像哲学家那么耐心,哲学家们可以为一个问题讨论个几千年,如果没有找到满意的答案,那么他们就不会停歇,工程师们则争分夺秒。

这也就是说,我们已经没有太多的时间。为了简单概括一下我们面临的危机,我可以列出这么一个等式:B×C×D=HH。其中B代表的是生物学知识,C代表的是计算机的能力,D代表数据,HH代表的是“hack human”。

而人工智能的革命并不只是涉足人工智能领域,这也和生物学有关,这是一种生物科技。人们更多的只是看到计算机和人工智能,这只看到了这个技术的一半,它的另一半则与脑科学、生物学方面的知识有关系。一旦你将其与人工智能联系上,那么你将获得hack human的能力。这里允许我解释一下hack human是什么意思,其字面意思是“黑入人类”,它指的是创建一种算法,能比你自己更了解你自己,因此它能够操纵你,完善你,甚至取代你。这正是我们哲学上的信仰,也就是人类的能动性和自由意志,具体表现为“用户就是上帝”、“投票者最了解自己”等等,而一旦我们具备了这种能力,这种信仰就会四分五裂。

这种能力就一定是被用来操纵或取缔人类的?它就不能用于完善人类吗?

Yuval:它当然可以用来提高人类的能力。但问题是,谁来断定,这种强化到底是往好的方向还是往坏的方向?所以我们首先需要确定的是,我们必须回归到最传统的人类理念,“用户永远是对的”,“用户会自行决定自己的强化方向”。或者说“投票者永远是对的”,他们自己会决定政治上的决策。如果这种强化方向感觉不错,那么就继续做,我们只需要根据自己的想法去做事就好了。但如果人类被大规模地“被黑”,那么这种情况将不复存在。你甚至不敢相信自己的感觉和投票权。那些信奉自由意志的人反而最容易被操控,因为他们不认为自己会被操控。所以说我们应该如何决策自己的改进方向,这是一个非常有深度的道德和哲学方面的问题——到底什么是“好”的。我们应该强化自己身上的哪些方面。如果用户不可信,投票不可信,自己的感觉也不可信,那我们该何去何从?

Yuval的公式是否成立?Yuval给我们指引的方向是否正确?

李飞飞:我非常羡慕哲学家,因为他们只需要提出问题,却不一定要回答问题。作为一个科学家及工程师,我觉得我们现在有必要解决这个危机。

为什么在20年后人工智能会演化成一场危机?

这是一项革命性的技术,它还处于萌芽阶段,相比物理学、化学、生物学,它还很不成熟。但在数据和计算机的支撑下,人工智能的确在改变人们的生活,影响深刻且广泛。为了回答这些问题,以及应对人类的危机,我们能否改变教育、研究以及与利用人工智能的方式,让它变得“以人为本”?当然我们不急着今天就找到答案,但我们可以逐渐改变人类学家、哲学家、历史学家、政治科学家、经济学家等各行各业的人来研究和推动人工智能进入新的篇章。

人们认为AI会带来很多危机,例如失业、歧视,甚至担心AI会出现自己的意识,这意味着什么?

李飞飞:任何人类创造的技术最初都是一把双刃剑。它能改善生活、工作,造福社会,但同时也会有不利的一面,人工智能也不例外。每天醒来我都要担心各种问题,包括用户的隐私、公正性,以及对劳动力市场的影响。我们必须考虑这些问题,但也正因为如此,我们要继续研究,人工智能的开发策略和互动方式也不应该局限于代码和产品,还应该考虑到人类的生存空间以及社会问题。因此我绝对同意开放对话,并针对这些问题进行研究。

Yuval:我一部分的忧虑正是源于对话。人工智能专家和哲学家、历史学家、文学评论家对话,都可以。我最害怕的是他们与生物学家交流。当他们产生共同语言,才真正有可能入侵人类的思想。人工智能将不仅仅是搜集我们的搜索关键字、购买习惯和出行信息,它还会更深入一步,直接搜集我们内心所想的数据。

AI的诞生,正是源于人工智能科学家与神经科学家的对话。AI给医疗保健行业带来了巨大的改善。机器学习帮助收集了大量的生理学和病理学数据。

Yuval:这只是其中的一部分。一门科学技术如果没有任何收益,那么它就不会有任何危险,因为就没有人去研究它。我认为AI会带来巨大的利益,尤其是当它和生物学结合在一起的时候。目前全世界的医疗水平已经达到了历史以来的新高,数十亿人只需要点一点手机就能获得便宜、可靠的服务。这也是我们无法抗拒它的原因。尽管有人认为这会引发隐私方面的问题,但在隐私和健康比起来,显然后者更重要。但我必须指出它带来的危险。特别是硅谷地区的人,已经习惯了AI带来的好处,但他们很少考虑它的危害。

如果这种事情真的发生,那么我们生活中的所有决策都将源于算法。这将产生两种形式的反乌托邦。我们所有的决策都将是由算法帮我们决定的。这不仅包括早晨吃什么、去哪里购物,还包括去哪里工作和学习、和谁约会、和谁结婚、投票给谁等。我想知道的是,人类思想中是否有什么东西是无法被机器入侵的这种技术将来作出的决策是否会优于人类。这是其中一种反乌托邦。还有则是,基于一个能监控一切的系统,我们将产生一种高度集权的政体,这类似于上个世纪出现过的集权政体,但借助生物传感器,它能全天候地监控到每一个人。

李飞飞:当你问我这个问题时,我脑海里蹦出来的第一个词是“爱”。你觉得爱也会被机器取代吗?

Yuval:这个问题得看你指的是哪一种爱。如果你指的是希腊哲学中的爱或者佛教中的爱,那么这个问题会更加复杂。如果你指的是生物学意义上的,与哺乳动物之间求偶有关的,那么我的回答是“yes”。

人类之所以是人类,那是因为我们不止会求偶,对吗?这部分也会被机器取代吗?

Yuval:我认为你在大多数科幻小说中看到过答案。当来自外星的邪恶机器人入侵地球时,人类节节败退,但最后关头人类绝地反击,反败为胜,因为机器不懂什么是爱。

李飞飞:科幻小说中通常是一个白种人拯救人类。Yuval所说的两种反乌托邦,我找不到答案。但我要强调的是,正是因此,我们现在就要寻找解决方案,现在就要寻找人类学家、社会科学家、商业巨头、公共社会和国家政府进行会谈,联手谱写人工智能的新篇章。我认为你的确引发了人们对这场潜在危机的关注。但我觉得,除了面对它,更重要的是采取行动。

Yuval:我也觉得我们应该让工程师与哲学家、历史学家进行更加密切的合作。从哲学的角度看,我认为工程师身上也存在一些很优秀的东西。工程师们少说多做。哲学家们总喜欢弄一堆稀奇古怪的比喻。所以如果工程师问哲学家“你到底想表达什么?”那么这些理论大多都站不住脚,因为他们很少能解释这些理论——我们需要的就是这种合作。

如果我们都不能解释爱,不能用代码来表达爱,那么AI可以感受它吗?

Yuval:我不认为机器能感受到爱,但如果只是为了监控、预测和操纵这种感受,那么机器也没必要感受到它。正如机器不可能喜欢玩游戏,但它就是具备这种功能。

李飞飞:个人而言,我们这段对话存在两个非常重要的前提。

第一,人工智能已经达到了一个全知全能的地步,它具备了感知能力,甚至爱的能力。但我要强调的是,这和目前的人工智能存在非常遥远的差距,这种技术还很不成熟,目前媒体对它的炒作居多,具体实施还需要很多年的努力。

第二,我们所处的这个世界将存在一个非常强大的人工智能,或者这个技术只属于少部分人,然后他们企图用它来统治全人类。但实际上,人类社会非常复杂,人类数量非常多。在历史上,我们已经见过很多科技落入少数恶棍手中,在缺少监管、协作、法律法规和道德准则的约束下,这些技术的确给人们社会带来了巨大的伤害。

但总体上看,我们的社会在朝着更好的方向发展,人们也更倾向于对话解决问题。所以我们不仅要谈论人工智能成为“人类终结者”的问题,也要谈论一些眼下更紧急的问题:多样化、隐私、劳动力、法律调整和国际政治等。

如何避免数字专政?

Yuval:关键问题就是如何管理数据的归属权。因为我们不可能停止生物学领域的研发,也不能停止研究计算机科学和人工智能。所以之前的公式中,最好控制的就是数据,但这也非常困难。目前虽然已经作出了一些举措,但要控制数据这同时涉及哲学和政治两个方面。拥有数据,以及管理数据所有权,到底是什么意思?在过去几千年里,我们已经充分理解了,什么是土地拥有权,但很少了解什么是数据拥有权,以及应该如何进行管理。但这正是我们要解决的问题。

我承认AI没有某些人想的那么强大。但我们必须把握这个度,我们不需要完全了解人类的AI,只需要它比我们更了解自己。这并不困难,因为很多人根本不了解自己,所以经常犯下决策错误,包括理财和爱情等方面。所以将这些判断题交给算法,可能仍然很糟糕,但只要比我们做的好一些,那么这种趋势仍然会存在。

将来可能会出现这种情景,你可以写出各种的算法帮助你了解自己。但如果这些算法不止把这些信息分享给你,也把它们交给广告商或者政府会怎样?我觉得我们不应该只思考太遥远、太极端的情景,而是更关注我们生活中的例子。

人工智能存在着机遇和风险,目前最重要的事情是什么?

李飞飞:我们现在有太多的事情可以做,这一点我非常同意Yuval的看法。斯坦福大学认为,未来的人工智能应该是以人为本的,我们需要坚持三个主要原则。

第一,要投资具有人类思维特征的人工智能技术。目前大多数人工智能都依赖于数据,以及对数据的管理政策,这样可以控制人工智能带来的影响。但我们应该开发一种可以解释人工智能的技术,以及能对人类智力产生更细微的理解的技术。同时还要投资那些不太依赖于数据的人工智能,它能反应人类的直觉、知识和创造性等。

第二,为人工智能的研究设立更多的准则。让经济、道德、法律、哲学、历史和认知科学等多个领域的人参与研究。任何单一领域的研究人员都不能单独解决这个问题。

最后,除了上述操作性的建议,我认为我们在做这些事情时,我们应该抱着警惕和理解,同时又要将这种技术运用到正途。

如果我们自己都不了解自己,那么计算机可能比我们更容易解释这些决策吗?

李飞飞:两位数的乘法对我们来说很难,但对计算机来说很简单。有些事情人类觉得困难的,未必难得倒机器。毕竟这些算法都是基于非常简单的数学逻辑。对此我们采用了包含数百万个节点的神经网络。诚然,决策的解释很困难,但相关研究已经在进行,一旦成功它将会带来突破性的进展。而且有了这种技术,人们就很难用人工智能去作弊。

Yuval:但是人工智能的决策逻辑可能和人类完全不同,哪怕它解释了,我们恐怕也无法理解。例如申请银行贷款被拒,人工智能可能会告诉你,这些数据有数万个来源,同时进行了加权和统计分析,某些数据的权重为什么是这么多……这完全可以写一本书。

科学越来越难向公众解释很多理论和发现,这也是为什么很多人对气候变化持怀疑态度。这不是科学家的错,而是科学技术越来越复杂,而人类社会更复杂。人类的思维无法理解它,正如它无法理解为什么要拒绝一个人的贷款申请。

我们应该如何确保数据没有种族倾向?

李飞飞:说实话我个人也回答不上这个问题,但机器学习系统存在偏见已经是个既定的事实。但这种偏见的成因非常复杂。斯坦福大学有人专门研究这个问题,如何去除数据的偏见,让决策更加中立,同时也有人类学家在谈论什么是偏见,什么是公平。什么情况下的偏见是好的,什么情况下是坏的。之前就有研究通过脸部识别算法发现好莱坞女演员的出镜率更低。

Yuval:至于是否应该剔除数据中的种族特征或是性别特征,还需要具体分析。这也是一个需要工程师和伦理学家、心理学家以及政治科学家合作的地方。将来还可能包括生物学家。这又回到了一个问题上,我们应该怎么做?也许我们应该在未来的程序员培训过程中加入伦理课程。在那些设计人工智能工具的大公司里,同样也要配备伦理专家这样的团队,他们需要考虑设计人员会在不经意间加入哪些偏见,它会给政治或文化方面带来什么样的影响。而不是等到恶果出现了,才追悔莫及。

是否存在道德和人工智能预测精准性的问题?与全力研发技术相比,边研究技术边考虑道德问题,进度是否会更慢?

Yuval:这就是一个类似军备竞赛的问题。我觉得,这是AI目前面临非常危险的一个问题。越来越多的国家意识到这种技术的重要性,都担心自己会被别的国家甩在后面。避免这种军备竞赛的唯一方法,就是进行更充分的交流。这听起来有些虚幻,因为我们现在完全是在背道而驰。我们的工作就是要让人们明白,AI的恶性竞争就类似于核战争,谁都不会成为赢家。美国人可能会说自己是好人,但这个人工智能领域的领先者,只服务于美国自己的利益,谁又能相信它的公正性?

Yuval:我认为全球合作可能非常脆弱。核武器的军备竞赛虽然会让一大批核弹问世,但是人们从没使用过它,人工智能不一样,它一直在被使用,最终孕育出一个集权政体。因此我认为它更加危险。

如果不同的国家之间存在巨大的技术差距,那会发生什么?会像19世纪工业革命那样,少数掌握工业力量的国家统治了整个世界的经济和政治?如何避免悲剧重演?哪怕没有战争,全球大多数人仍然处于被剥削状态,大部分人的劳动所得最终都属于少数几个国家。

李飞飞:不同地区的技术研究进度的确不同。不同于19世纪和20世纪,技术正在以非常快的速度全球化。任何基础性的科研论文都能在网上查到。不同国家可能因为制度不同,在技术研究上可能存在一定差距,但我认为你所描述的情况,还是很难发生的。

Yuval:我说的可不只是科研论文。是的,论文是全世界共享的,但如果我生活在也门、尼加拉瓜、印尼或者加沙,我没有数据和基础设施,我就算上网下载了论文又能如何。你要看看那些拥有所有数据的大公司来自哪里,基本只有两个地方,其中不包括欧洲,毕竟欧洲没有谷歌、亚马逊、百度或者腾讯。你再看看拉美、非洲、中东和大部分东南亚地区,他们也能学到这些知识,但想要借此对抗亚马逊还远远不够。

拥有数据和更高计算能力的人是否将获得更多的权力,收入的不平等也会因此加剧?

Yuval:正如我所说的,这很可能还只是个开始。它在经济和政治方面带来的影响将是灾难性的。那些依赖手工劳动力的国家的经济体系可能会因此崩溃,它们没有足够的教育资金去参与人工智能竞争。洪都拉斯和班加罗尔的生产基地将搬回美国和德国,因为人力成本不再重要,加州生产的衬衫可能比洪都拉斯便宜。这些国家的人又该何去何从,新生的岗位是留给软件工程师的,洪都拉斯的孩子可没有钱去学习编程。

李飞飞:的确,Yuval预想到了很多我们面临的危机,因此我们需要更多人来研究和思考这些问题。但目前全世界的国家、政府和公司都还有时间思考自己的数据及人工智能策略,意识到当下是他们的国家、地区和公司的关键时刻。而这些潜在危机正是因为他们还没意识到要跟上数字时代的潮流,也是时候引起他们的注意了。

Yuval:是的,这非常紧急。某种程度上讲,这就是一种数字殖民:从巴西、印尼等国家搜集数据,然后由美国来处理,最后生产出更好的设备和技术,卖回殖民地。尽管它和19世纪的殖民存在差别,但这种类比值得我们留意。

人们如何建设AI公司,是推动数字殖民,还是改正它?又该怎么看待人工智能,以及如何去学习?

Yuval:就我个人而言,我认为不论是否在斯坦福大学深造,是否是工程师,都一定要更加了解你自己,因为你正处于一场竞争中。这也是所有哲学书中最经典的建议。苏格拉底、孔夫子、释迦摩尼都给出过类似的看法。但在释迦摩尼或苏格拉底的时代,你不了解自己也没关系,你只是错过了顿悟的机会。如今你们处于竞争中,如果不了解自己,你就完了。对于工程师或学生,我希望实验室和工程部门出现两件东西。第一,我希望出现一种离心化的系统,而不是中心化的系统,我不知道该怎么做,但我希望你们可以尝试,我听说区块链在这方面挺有潜力的。这是对我们民主制度的保护。

第二,我希望出现一种专门为人服务的工具,而不是为企业或者政府服务。也许我们无法阻止人工智能了解自己,那么我希望它了解我们是为了保护我们不受其它人工智能的侵袭。就像我的身体不能对抗电脑病毒,但是我的电脑可以装杀毒软件。

黄金原野
扫一扫或点击黄金原野下载APP

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

刷新三项COCO纪录!姿态估计模型HRNet开源了,中科大微软出品 | CVPR

中科大和微软亚洲研究院,发布了新的人体姿态估计模型,刷新了三项COCO纪录,还中选了CVPR 2019。

这个名叫HRNet的神经网络,拥有与众不同的并联结构,可以随时保持高分辨率表征,不只靠从低分辨率表征里,恢复高分辨率表征。

如此一来,姿势识别的效果明显提升:

在COCO数据集的关键点检测、姿态估计、多人姿态估计这三项任务里,HRNet都超越了所有前辈。

更加优秀的是,团队已经把模型开源了。
结构不一样

HRNet,是高分辨率网络 (High-Resolution Net) 的缩写。

团队希望,在表征学习(Representative Learning) 的整个过程中,都能保持高分辨率表征。

所以,他们为模型设计了并联结构,把不同分辨率的子网络,用新的方式连在一起:

△并联

对比一下,前辈们连接各种分辨率,常常是用简单的串联,不论由高到低,还是由低到高:

△串联

那么,仔细观察一下HRNet的并联网络。

它从一个高分辨率的子网络开始,慢慢加入分辨率由高到低的子网络。

特别之处在于,它不是依赖一个单独的、由低到高的上采样(Upsampling) 步骤,粗暴地把低层、高层表征聚合到一起;

而是在整个过程中,不停地融合(Fusion) 各种不同尺度的表征。

△交换单元

这里,团队用了交换单元 (Exchange Units) ,穿梭在不同的子网络之间:让每一个子网络,都能从其他子网络生产的表征里,获得信息。

这样不断进行下去,就能得到丰富的高分辨率表征了。横扫各大数据集

团队先在COCO数据集的val2017验证集上,对比了HRNet和一众前辈的关键点检测表现。

结果是,在两种输入分辨率上,大模型HRNet-W48和小模型HRNet-W32,都刷新了COCO纪录。

其中,大模型在384 x 288的输入分辨率上,拿到了76.3的AP分。

然后,团队又在COCO的test-dev2017测试集上,为HRNet和其他选手举办了姿态估计比赛。

结果,大模型和小模型,也都刷新了COCO纪录。大模型的AP分达到了77.0。

另外,在多人姿态估计任务上,HRNet又超越了前辈们在COCO数据集上的成绩。

那么,其他数据集能难倒它么?

在MPII验证集、PoseTrack、ImageNet验证集上,HRNet的表现都好过所有同台的对手。

详细的成绩表,请从文底传送门前往。开源啦

刷榜活动圆满结束。

团队把这个振奋人心的模型开了源,是用PyTorch实现的。

除了估计姿势,这个方法也可以做语义分割,人脸对齐,物体检测,等等等等。

所以,你也去试一试吧。

论文传送门:
https://arxiv.org/abs/1902.09212

代码传送门:
https://github.com/leoxiaobin/deep-high-resolution-net.pytorch

黄金原野
扫一扫或点击黄金原野下载APP

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

腾讯开源天使项目出现在机器学习领域

科技巨头百度和腾讯提供的两个开源项目将专注于机器和深度学习的进步,其长期目标是让人工智能技术更容易使用,同时使用深度学习框架推进云服务。

Linux基金会表示,它将把这两个项目添加到其深度学习社区项目中,重点是促进人工智能、机器学习和深度学习的生态系统。腾讯的Angel项目是一个基于Apache Spark和YARN上的分布式机器学习平台。百度的弹性深度学习(EDL)框架旨在允许云服务提供商使用深度学习工具构建集群云产品。

百度跟随谷歌和其他美国科技公司向开源社区稳步发布其机器学习工具,称EDL项目将使用其PaddlePaddle工具和TensorFlow来加速集群云服务部署。 EDL使用Kubernetes容器协调器作为集群控制器以及PaddlePaddle自动缩放器。 该组合将分布式作业的进程数量更改为群集中的空闲硬件资源,以及新的容错架构。

该项目声称在Apache 2.0许可下提交了近1000次。百度深度学习技术部负责人马艳军表示:作为划桨式桨的弹性深度学习框架,相信EDL将极大地有利于大规模深度学习服务的部署。

同时,腾讯的Angel项目是基于参数服务器设计,用于处理大规模机器学习问题。百度、谷歌和卡内基梅隆大学的研究人员首次提出了分布式机器学习框架。该平台运行在Spark和YARN上,能够处理包括数十亿参数在内的高级机器学习模型,其性能与大数据相当。

腾讯高级人工智能研究员、深度学习基金会成员表示,这种结合是为了让机器学习更加容易使用。

考虑到这一目标,腾讯表示,Angel项目使用“开箱即用”的机器学习算法,从而消除了分析师和数据科学家编写代码的需要。

到目前为止,Angel项目已经吸引了1000多名开发商的投资。

黄金原野
扫一扫或点击黄金原野下载APP

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

2018全球人工智能发展报告

摘要: 2018全球人工智能发展报告PPT

黄金原野
扫一扫或点击黄金原野下载APP

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

70年《人工智能简史》

概要: “图文简史” 涵盖了AI从概念起源到诞生、发展过程中的重要里程碑和技术节点,AI技术的主要分类方式和重要技术应用方向。70年AI发展史,一文纵览。

AI大事年表(1943-2014)

1943年,阿兰·图灵发明了“图灵机“,为智能机器的判定设置了基准:”能够成功骗过人类,让后者以为自己是人类的机器,称为智能机器。”

1950年,科幻作家阿西莫夫发表短篇科幻小说集《我,机器人》,书中提出了影响深远的“机器人三原则”。

1956年,约翰·麦卡锡首次提出“人工智能”的概念,当时盛行“由上至下“的思路。即由预编程的计算机来管治人类的行为。

1968年,首个通用式移动机器人诞生,能够通过周围环境来决定自己的行动。

1969年,MIT人工实验室创始人马文·明斯基为导演斯坦利·库布里克的电影《2001漫游太空》担任顾问,塑造了片中超级智能计算机HAL9000的银幕形象。

1973年 AI“寒冬“论开始出现。在AI上的巨额投入几乎未收到任何回报和成果,对AI行业的资助开始大幅滑坡。

1981年,“窄AI”的概念诞生。更多的研究不在寻求通用智能,而转向了面向更小范围专业任务的“窄AI“领域。

1990年,Rodney Brooks提出了“由下自上”的研究思路,开发能够模拟人脑细胞运作方式的神经网络,并学习新的行为。

1997年,超级计算机“深蓝”问世,并在国际象棋人机大战中击败人类顶尖棋手、特级大师加里·卡斯帕罗夫

2002年,iRobot公司打造出全球首款家用自动化扫地机器人。

2005年,美国军方开始投资自动机器人,波士顿动力的”机器狗”是首批产品之一。

2008年,谷歌在iPhone上发布了一款语音识别应用,开启了后来数字化语音助手(Siri、Alexa、Cortana)的浪潮。

2010年,上海世博会上,来自NAO公司的20个跳舞机器人献上了一段长达8分钟的完美舞蹈。

2011年,IBM Watson在Jeopardy答题竞赛中战胜了表现最优秀的人类选手。

2014年,在图灵测试诞生64年后,一台名为Eugene Goostman的聊天机器人通过了图灵测试。谷歌向自动驾驶技术投入重金,Skype推出实时语音翻译功能。

第一种AI分类方式:强AI和弱AI

强AI,又称“通用AI”,具备通用化的人类认知能力,具备足够的智能解决不熟悉的问题。

弱AI,又称“窄AI”,指专门针对特定任务而设计和训练的AI,比如苹果的虚拟语音助手Siri。
第二种AI分类方式: 从反应式机器到自我意识


反应式机器。代表性范例:深蓝。能够识别棋盘上的形势,并做出预测,但没有记忆。

有限记忆。能利用过去的记忆为未来决策提供帮助。代表性范例:自动驾驶。

意志理论:能够理解影响自身决策的观点、欲求和目的。目前这类AI尚不存在。

自我意识:具有自我意识的机器,能够理解自身目前的状态,并能利用现有信息推测他人的感觉。目前这类AI也不存在。

AI技术应用举例:


自动化机器人:对机器进行编程,使其高质量地完成一般由人完成的重复性任务,同时具备对不同任务条件的适应性。

机器视觉:让计算机能够“看见”的技术,利用摄像头捕获并分析视觉信息,完成模-数转换与数字信号处理。

机器学习:让计算机在未经编程的情况下运行。机器学习的子领域之一是深度学习,其目标是实现自动化的预测性分析。

自然语言处理:利用计算机程序处理人类语言。垃圾邮件检测、文本翻译、语义分析和语音识别等都属于该领域。

机器人技术:机器人能够比人类更精确、更持久地完成困难的重复性任务。
全球AI技术竞争中 最具优势的10大企业

1、DeepMind:目前居于AI研究企业第一位。

2、谷歌:旗下设谷歌大脑团队,在每个可能的领域聚焦长期AI研发。

3、Facebook:主要关注语言领域的问题,如动态记忆,问答系统开发等。

4、OpenAI:团队规模虽然不大,配置属于全明星级别。

5、百度:在语音交互、自动驾驶等领域表现出色。

6、微软:在AI领域耕耘多年,目前聚焦实时翻译。

7、苹果:正在研发面部识别技术,分析用户面对设备上出现广告的面部反应.

8、IBM:利用AI技术从照片、视频、语音和文本中提取语义。

9、亚马逊:目前多个部门业务向AI倾斜,比如无人商店、无人机货物配送,以及Alexa语音助理等业务。

10、英伟达:机器学习计算资源和硬件领域的领军者。
全球10大AI国家


1、美国:每年有100亿风投资金进入AI领域。

2、中国:在过去5年中,中国与AI相关的专利数量上涨了190%。

3、日本:制造业部门的自动化程度可能高达71%。

4、英国:英国政府每年资助1000位AI专业的博士。

5、德国:首都柏林的AI初创公司数量位居世界第四。

6、法国:到2022年,法国政府对AI行业的投资将达18亿美元。

7、加拿大:正在兴建价值1.27亿美元的AI研究设施。

8、俄罗斯:到2025年,俄罗斯30%的军事装备将实现机器人化。

9、以色列:自2014年以来,AI初创公司的数量增长了3倍。

10、爱沙尼亚:在处理与解决与AI相关的法律问题上走在世界前列。

AI 的未来

全面自动化的交通:AI技术将让未来的交通走向全面智能化和自动化。

赛博技术:AI和机器人技术将成功助我们超越认知和身体上的极限。


代替人类从事危险职业:机器人和无人机将代替我们完成炸弹拆除等危险任务,我们不必为了完成这些任务冒上生命危险。

解决气候变化问题:有朝一日,AI可以利用大数据获得判断趋势的能力,并利用这些信息解决气候变化这样的重大问题。

探索新的边界:机器人可以帮我们进一步探索太空和海洋。

预测未来:机器学习利用过去的信息预测未来,谁将开启一段浪漫之旅?

黄金原野
扫一扫或点击黄金原野下载APP

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

Deep Fakes AI 换脸系列,当了英雄的我现在很慌…

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

《复仇者联盟4:终局之战》上映已经有一段时间了,内地累计票房便已突破20亿。电影精彩之处离不开钢铁侠、雷神、美国队长等各位超级英雄的实力支撑。

每个英雄各具特色,让人一次就能记住。尤其是特效支撑的人物动作,潇洒、自如、美观让人欲罢不能。

更多的宅男想看的是这个:

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀
我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

一直幻想有一天自己成为电影里面的主角,然后施展能力拯救世界。

近日,外国的网友创建了一个Avenge Them网站,可以将《复联》中的英雄一键换脸,几秒钟就能让复联增加一个“新面孔”。也就说通过AI技术,能够将你的照片替换到复仇者联盟主角的身上,妥妥的让你过把拯救世界的瘾。

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

这个网站可以更换的人物非常多,美队、钢铁侠、雷神、黑寡妇等人都在其中,而且变换之后还是动态的图片,总之十分有趣。

使用方法也很简单,网站上有多种动图供你选择。以替换钢铁侠的面部为例,看一看操作步骤。原图是这样的☟

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

然后点击钢铁侠的那张动图,会出现让你上传图片的画面。

注意,如果使用照片的话,最好在明亮的地方拍摄,并且需要直视摄像头,然后脸部表情自然些就好。

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

在这里,文摘菌选用了一张油管最火AI领域up主siraj的正面照片~

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

将照片上传后,网页便会自动开始换脸,大概需要等待 10-20 秒吧。生成完动图后,你就能将图片下载到电脑或手机上了。

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

下面是见证奇迹的时刻☟

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

效果可以说非常棒,这张照片给出的是正面,经过AI算法的加工却也能将侧面完美的构造了出来。细思极恐呀!!!

下面我们试一张性别不同的~看看奇异博士的POS,姑娘摆起来是不是也那么自然!

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

经过深思熟虑,就挑选这位姑娘了~

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

经过等待,效果是这样的☟

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

嗯嗯,确实有些违和感☹☹☹,我奇异博士的短发呢!!!那清爽干练的短发呢!!蒙娜丽莎小姐的秀发的优势也没能展示出来呀。

突发奇想,如果一张照片中有两个人物,这个AI算法该怎么处理,我们用奇异博士试试下面这对动漫CP~

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

嗯,识别出了葛小伦,都是硬汉,感觉效果比蒙小姐要好很多,至少头发看起来比较顺眼~

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

除了自己上传之外,该网站还支持,妇联角色相互换脸~

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

例如,将黑豹大哥换成我寡姐,活生生的刚中带柔呀~

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

除此之外,还有蜘蛛侠,鹰眼等等英雄供你选择~

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀
我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

换脸背后的技术支撑:Deep fakes

换脸技术如此成熟,离不开一个名为Deep fakes deep 的软件被匿名开源发布。它本质上是一种使用AI深度学习,能够将一张图片中人的脸换到其他人的图片上的技术。通过这种技术,我们可以创建一个非常逼真的“假”视频或图片,“换脸”因此得名。

这项技术对硬件和视频、换脸人图片的质量甚至是数量要求极高,在硬件方面,尽量1060往上,内存至少8g,这只是标配,当然低于这个配置也能运行,但是效果怎么样就不好说了。而且在标准配置下,图片训练时间至少为6小时。

其实说,视频在此技术用也是被拆分为图片了,所以它和换脸人的图片要求基本一样,视频要清晰,但是也不用过分清晰,视频中要只出现被换脸人的一个人的脸,如果有其他人的脸,需要把它去掉。

有了数据和质量的要求,如果你想自己训练一个AI换脸模型需要3个步骤:一是提取数据,二是训练,三是转换。其中第一和第三步都需要用到数据预处理,另外第三步还用到了图片融合技术。所以主要包含的内容有:图像预处理、网络模型、图像融合。

具体原理思路为:对于每张脸,都训练一套编码器和相应的解码神经网络。编码时,使用的是第一个人的图片。而解码时,却是使用第二个人解码器。

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

也就是说,既然我们想要将两张脸互换,那么我们可以设计两个不同的解码网络,也就是使用一个编码网络去学习两张不同人脸的共同特征,而使用两个解码器去分别生成他们。

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

图片来自简书,具体来源见文末

如上图,也就是设计一个输入端或者说一个编码器,分别输入两个不同的脸,然后两个输出端或者说两个解码器,这样我们就可以通过隐含层来分别生成两张不同的人脸了。

对于训练部分,在这个网站中,其用复仇者联盟里面的明星来做训练很容易,毕竟有大量的网络公开图片视频。

图片不足时,还可以从现有视频中提取。在神经网络训练并学习了关于每个人面部的特征之后,它自己就能预测想出这个人还没摆出来的姿势。

比如,训练生成John Oliver。

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀
我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

在此技术出现之前,人们想换个脸只能依赖手动PS。这就要花费很多人工和时间,而且想在视频里换个脸更难,每一帧都得换。

但自从这个叫做“deep fakes”的软件被匿名开源发布,一切都不一样了。

AI换脸暗藏法律风险

目前人脸识别已经广泛应用到消费金融、安防、电商等场景,AI换脸实际上冲击着网络安全、伦理、法律等相关行业的安全壁垒。

AI换脸在我们普通人看来可能只是简单的认为很有趣,但是对于一些心怀不轨的人来说这件事恐怕就没有那么简单了。

比方说你憎恨某个人,那你就收集他的照片,用deepfake技术与色情片演员换脸,伪造色情视频,在网上传播。

偷窥狂、性报复者,不用提心吊胆地安装针孔摄像头了,只要偷拍女性的照片、或者在网上收集,接着利用deepfake技术,就能做出伪造精良的色情视频。

著名演员斯嘉丽·约翰逊成为了被使用最多的女明星,深受其害的她在华盛顿邮报的采访中表示:“让任何一个人成为这项技术的攻击目标只是时间问题。”在过去的一年中,已经被叠加到数十个性爱视频中,其中一个“走光”视频已经在一个主要的色情网站上观看了超过 150 万次。

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

现在的中国明星换脸的视频已经在这些色情网站上大量存在了,而且售卖视频已经成了一个地下生意。

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

图片来自X博士

而在国内,AI换脸技术突现在公众面前的事件,还是前段时间朱茵换脸杨幂在B站爆火这件事情。

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

其实,这个换脸的应用还好,毕竟创作者没有什么恶搞的心态在里面。而蔡徐坤因为“鸡你太美”恶搞视频状告B站,确确实实算是有理有据了,因为有些经过AI技术处理的蔡徐坤视频,确确实实带有恶意调侃的。

蔡徐坤维权并不顺利,因为现行的《民法通则》中,只规定了“未经本人同意,不得以营利为目的使用公民的肖像。

显然,根据一些up主的说法,他们这些剪辑的视频并未用于盈利,只是用来交流~

我试了下《复仇者联盟》AI换脸系列,当了英雄的我现在很慌…-爱尖刀

用于交流的剪辑视频,图片来源于“百家号”,链接见文末

而国家有关部门也充分注意到了这一点,日前,全国人大常委会审议的《民法典人格权编(草案)》里,正式加了一条:任何组织和个人不得以利用信息技术手段伪造的方式侵害他人的肖像权。

而草案的第八百零三条也被修改为:其他人格权的许可使用和自然人声音的保护,参照适用本章的有关规定。

也就是说,如果草案通过了正式的立法流程审核,民法典正式颁布施行,如果你不经过别人的同意,随便的把明星或者其他公众的肖像进行处理,妥妥的,你违法了。另外,不仅是脸,根据草案的第八百零三条声音也不能随便换!

如果情节严重的还可能触犯刑法,例如《刑法》第246条:“以暴力或者其他方法公然侮辱他人或者捏造事实诽谤他人,情节严重的,处以三年以下有期徒刑、拘役、管制或者剥夺政治权利。”

也就是说,如果用DeepFakes、鬼畜等各种方式处理别人的脸,还没经过别人同意。很有可能触及到“恶意诽谤”、“恶意剪辑”、“侵犯名誉权”等刑法管辖范围。

黄金原野
扫一扫或点击黄金原野下载APP

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。

通过文章小助手

Github标星2w+,热榜第一,如何用Python实现所有算法

学会了Python基础知识,想进阶一下,那就来点算法吧!毕竟编程语言只是工具,结构算法才是灵魂。

新手如何入门Python算法?

几位印度小哥在GitHub上建了一个各种Python算法的新手入门大全。从原理到代码,全都给你交代清楚了。为了让新手更加直观的理解,有的部分还配了动图。

标星已经达到2.7W


给出Github地址☟

https://github.com/TheAlgorithms/Python

这个项目主要包括两部分内容:一是各种算法的基本原理讲解,二是各种算法的代码实现。

算法的代码实现

算法的代码实现给的资料也比较丰富,除了算法基础原理部分的Python代码,还有包括神经网络、机器学习、数学等等代码实现。

例如在神经网络部分,给出了BP神经网络、卷积神经网络、全卷积神经网络以及感知机等。

卷积神经网络代码示例

代码以Python文件格式保存在Github上,需要的同学可以自行保存下载。

再次给出github地址:

https://github.com/TheAlgorithms/Python

算法原理

在算法原理部分主要介绍了排序算法、搜索算法、插值算法、跳跃搜索算法、快速选择算法、禁忌搜索算法、加密算法等。

当然,除了文字解释之外,还给出了帮助更好理解算法的相应资源链接,包括维基百科、动画交互网站链接。

例如,在一些算法部分中,其给出的动画交互链接,非常完美帮助理解算法的运行机制。

交互动画地址:

https://www.toptal.com/developers/sorting-algorithms/bubble-sort

排序算法

冒泡排序

冒泡排序,有时也被称做沉降排序,是一种比较简单的排序算法。这种算法的实现是通过遍历要排序的列表,把相邻两个不符合排列规则的数据项交换位置,然后重复遍历列表,直到不再出现需要交换的数据项。当没有数据项需要交换时,则表明该列表已排序。

桶排序算法

桶排序(Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序,有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序。

鸡尾酒排序

鸡尾酒排序,也就是定向冒泡排序,鸡尾酒搅拌排序,搅拌排序(也可以视作选择排序的一种变形),涟漪排序,来回排序或快乐小时排序,都是冒泡排序的一种变形。此算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序。

译者注:

鸡尾酒排序等于是冒泡排序的轻微变形。不同的地方在于从低到高然后从高到低,而冒泡排序则仅从低到高去比较序列里的每个元素。他可以得到比冒泡排序稍微好一点的性能,原因是冒泡排序只从一个方向进行比对(由低到高),每次循环只移动一个项目。

以序列(2,3,4,5,1)为例,鸡尾酒排序只需要访问一次序列就可以完成排序,但如果使用冒泡排序则需要四次。但是在随机数序列的状态下,鸡尾酒排序与冒泡排序的效率都很差劲。

插入排序

插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序的额外空间的排序,因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

归并排序

归并排序(Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法,效率为O(n log n)(大O符号)。1945年由约翰·冯·诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。

堆(Heap)

堆(Heap)是一种基于比较的排序算法。它可以被认为是一种改进的选择排序。它将其输入划分为已排序和未排序的区域,并通过提取最大元素,将其移动到已排序区域来迭代缩小未排序区域。

译者注:

Heap 始于 J._W._J._Williams 在 1964 年发表的堆排序(heap sort),当时他提出了二叉堆树作为此算法的数据结构。

在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解决此类问题设计的一种数据结构。

基数排序

基数排序(Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulation Machine)上的贡献。

选择排序

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

Shell排序

ShellSort是插入排序的一种推广,允许交换相距很远的项。思路是安排元素列表,以便从任何地方开始,考虑到每个第n个元素都会给出一个排序列表。这样的列表叫做h排序。等效地,可以被认为是h交错列表,每个元素都是单独排序的。

拓扑

拓扑排序或有向图的拓扑排序是其顶点的线性排序,使得对于从顶点u到顶点v的每个有向边uv,u在排序中位于v之前。例如,图的顶点可以表示要执行的任务,并且边可以表示一个任务必须在另一个之前执行的约束;在这个应用程序中,拓扑排序只是任务的有效序列。当且仅当图形没有有向循环时,即,如果它是有向非循环图,则拓扑排序是可能的(DAG)。任何DAG都具有至少一个拓扑排序,并且已知算法用于在线性时间内构建任何DAG的拓扑排序。

时间复杂折线图

比较排序算法的复杂性(冒泡排序,插入排序,选择排序)

比较排序算法:

Quicksort是一种非常快速的算法,但实现起来相当棘手。Bubble sort是一种慢速算法,但很容易实现。为了对小数据集进行排序,冒泡排序可能是一个更好的选择。

搜索算法

线性搜索

线性搜索或顺序搜索是用于在列表中查找目标值的方法。它按顺序检查列表中的每个元素的目标值,直到找到匹配或直到搜索完所有元素。

假设一个数组中有N个元素,最好的情况就是要寻找的特定值就是数组里的第一个元素,这样仅需要1次比较就可以。而最坏的情况是要寻找的特定值不在这个数组或者是数组里的最后一个元素,这就需要进行N次比较。

Binary 二进制搜索

二进制搜索,也称为半间隔搜索或对数搜索,用于查找已排序数组中目标值的位置。它将目标值与数组的中间元素进行比较,如果它们不相等,则目标的一半被消除,并且在剩下的一半上继续搜索直到成功。

插值搜索

插值搜索是一种用于搜索已按照键值的数值排序的数组中键的算法。

最先由WW Peterson在1957年描述。插值搜索类似于人们在电话目录中搜索名称的方法(用于订购书籍条目的关键值):在每个步骤中,算法计算剩余搜索空间中的位置,基于搜索空间边界处的键值和所寻找的键的值,通常可以通过线性插值来寻找项目。

相比之下,二进制搜索总是选择剩余搜索空间的中间,丢弃一半或另一半,这取决于在估计位置找到的密钥与所寻找的密钥之间的比较。剩余的搜索空间缩小到估计位置之前或之后的部分。线性搜索仅使用相等性,因为它从一开始就逐个比较元素,忽略任何排序。

平均插值搜索使得log(log(n))比较(如果元素均匀分布),其中n是要搜索的元素的数量。在最坏的情况下(例如,键的数值以指数方式增加),它可以构成O(n)比较。

在插值顺序搜索中,插值用于查找正在搜索的项目附近的项目,然后使用线性搜索来查找确切项目。

跳转搜索

跳转搜索是指有序列表的搜索算法。它首先检查所有项目的Lkm,其中K∈N,并且m是块大小,直到找到大于搜索关键字的项目。为了在列表中找到搜索关键字的确切位置,在子列表L[(k-1)m,km]上执行线性搜索。

m的最优值是√n,其中n是列表L的长度。因为算法的两个步骤最多都是√n项,所以算法在O(√n)时间内运行。这比线性搜索更好,但比二分搜索差。优于后者的优点是跳转搜索只需要向后跳一次,而二进制可以向后跳转到记录n次。

在最终执行线性搜索之前,可以通过在子列表上执行多级跳转搜索来修改算法。对于k级跳跃搜索,第l级的最佳块大小ml(从1开始计数)是n(k1)/k。修改后的算法将执行k个向后跳转并在O(kn1/(k+ 1))时间内运行。

快速选择算法

快速选择(Quicksort)是一种从无序列表找到第k小元素的选择算法。它从原理上来说与快速排序有关。与快速排序一样都由托尼·霍尔提出的,因而也被称为霍尔选择算法。同样地,它在实际应用是一种高效的算法,具有很好的平均时间复杂度,然而最坏时间复杂度则不理想。快速选择及其变种是实际应用中最常使用的高效选择算法。

快速选择的总体思路与快速排序一致,选择一个元素作为基准来对元素进行分区,将小于和大于基准的元素分在基准左边和右边的两个区域。不同的是,快速选择并不递归访问双边,而是只递归进入一边的元素中继续寻找。这降低了平均时间复杂度,从O(n log n)至O(n),不过最坏情况仍然是O(n2)。

禁忌搜索

禁忌搜索(Tabu Search,TS,又称禁忌搜寻法)是一种现代启发式算法,由美国科罗拉多大学教授Fred Glover在1986年左右提出的,是一个用来跳脱局部最优解的搜索方法。其先创立一个初始化的方案;基于此,算法“移动”到一相邻的方案。经过许多连续的移动过程,提高解的质量。

密码

凯撒密码

凯撒密码,也称为凯撒密码,移位密码,凯撒代码或凯撒移位,是最简单和最广为人知的加密技术之一。

它是一种替换密码,其中明文中的每个字母都被字母表中的一些固定数量的位置的字母替换。例如,左移3,D将被A替换,E将变为B,依此类推。

该方法以Julius Caesar的名字命名,最初是他在私人通信中使用了它。由Caesar密码执行的加密步骤通常作为更复杂的方案的一部分,例如Vigenère密码,并且仍然在ROT13系统中具有现代应用。与所有单字母替换密码一样,Caesar密码很容易破解,在现代实践中基本上没有通信安全性。

Vigenère密码

Vigenère密码是一种通过使用基于关键字字母的一系列交织的凯撒密码来加密字母文本的方法。它是一种多字母替代形式。

Vigenère密码该方法最初由Giovan Battista Bellaso在其1553年的书“La cifra del”中提出。然而,该计划后来在19世纪被误用于BlaisedeVigenère,现在被广泛称为“Vigenère密码”。

虽然该密码易于理解和实施,但三个世纪以来它一直抵制所有打破密码的企图,因此也被称为这lechiffreindéchiffrable(法语为“难以理解的密码”)。Friedrich Kasiski是第一个在1863年发表破译Vigenère密码的通用方法。

转置密码

转置密码是一种加密方法,通过该加密方法,明文单元(通常是字符或字符组)所保持的位置根据常规系统移位,使得密文构成明文的排列。也就是说,单位的顺序改变(明文被重新排序)。

在数学上,双字符函数用于加密字符的位置和用于解密的反函数。

RSA (Rivest–Shamir–Adleman)

RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。

1973年,在英国政府通讯总部工作的数学家克利福德·柯克斯(Clifford Cocks)在一个内部文件中提出了一个与之等效的算法,但该算法被列入机密,直到1997年才得到公开。

ROT13

ROT13(“旋转13个位置”,有时用连字符ROT-13)是一个简单的字母替换密码,用字母表后面的第13个字母替换一个字母。ROT13是古罗马开发的Caesar密码的特例。

因为基本拉丁字母中有26个字母(2×13),所以ROT13是自身的反转,也就是说,要撤消ROT13需要相同的算法,因此可以使用相同的动作进行编码和解码。该算法几乎不提供加密安全性,并且经常被引用为弱加密的典型示例。

Github地址:

https://github.com/TheAlgorithms/Python

黄金原野
扫一扫或点击黄金原野下载APP

你与前沿金融只差一个AAI ( AAI Finance)

AAI Finance申明:我们将尊重作者/译者/网站的版权,我们不承担任何技术及版权问题,且不对内容负法律责任,为促进行业健康发展,如有错误、不完整之处或侵犯版权请与我们联系。