本文由微信公众号 「AI 前线」原创(ID:ai-front),未经授权不得转载

作者:Douglas Heaven

译者:王强

编辑:陈思

一辆自动驾驶汽车行驶前方是一个停车标志,但它并没有减速,而是加速冲入了繁忙的十字路口。后来的一份事故报告显示,停车标牌的表面被人贴上了四个小方块。这些小方块欺骗了汽车的车载人工智能(AI),将“停止”一词误读为“限速 45”。

这类事故在现实中还没有出现,但是 AI 被蓄意破坏的潜在风险是非常现实的。研究人员已经展示了如何在停车标志上精心放置贴纸(注 1)来使 AI 系统误读标志(https://arxiv.org/abs/1707.08945)。他们还在眼镜或帽子上贴上印刷图案,成功欺骗了人脸识别系统(https://arxiv.org/abs/1908.08705)。此外他们还在音频中插入一些白噪音模式来欺骗语音识别系统,使其以为自己听到了某些短语(https://arxiv.org/abs/1707.05373)。

这些只是一些例子,证明 AI 中最流行的模式识别技术——称为深度神经网络(DNN)——有多容易被攻破。事实证明,这类技术可以正确分类各种输入(包括图像、语音和有关消费者偏好的数据),表现非常出色。它们是人们日常生活的一部分,从自动电话应答系统到流媒体服务 Netflix 上的用户推荐系统,到处都能见到它们的踪影。然而,只需以人类通常难以察觉的微小变化的形式来更改输入,就可能让我们身边最优秀的神经网络陷入混乱。

加州大学伯克利分校计算机科学博士生 Dan Hendrycks 说,这些问题并不只是技术尚未成熟时才会有的那类奇特缺陷那么简单。像许多科学家一样,他开始认为这些缺陷是 DNN 在根本上就脆弱不堪的最有力证据:DNN 在自己熟悉的环境中出色地完成了工作,而一旦涉及陌生领域,它们就以无法预测的方式崩溃。

上图:几个方块就能让人工智能系统把停止标志认成是"限速 45";

下图:科学家做出了一些抽象模式图片——DNN 会识别为自己熟悉的物体

这可能会导致非常严重的问题。深度学习系统正在越来越多地走出实验室,走进现实世界,实践案例包括驱动无人驾驶汽车(https://www.nature.com/news/autonomous-vehicles-no-drivers-required-1.16832)到搜索罪犯(https://www.nature.com/news/there-is-a-blind-spot-in-ai-research-1.20805)和诊断疾病(https://www.nature.com/articles/d41586-019-02870-4)等。但今年的一项研究报告称,恶意添加到医学扫描结果中的像素可能会使 DNN 误检测出癌症(注 2)。另一份报告则指出黑客可以利用这些弱点劫持一个基于在线 AI 的系统,使其运行入侵者自己的算法(注 3)。

在努力找出问题所在的过程中,研究人员发现了许多 DNN 之所以失败的原因。“深度神经网络的根本脆弱性没有解决方案,”加州山景城谷歌公司的 AI 工程师 François Chollet 这样认为。他和其他一些人都说,要克服这些缺陷,研究人员需要使用额外的能力来增强模式匹配 DNN:例如,使 AI 能够自己探索世界,编写自己的代码并保留记忆。一些专家认为,这类系统将是 AI 研究领域未来十年的探索重点。

实际检验

2011 年,谷歌推出了一种可以识别 YouTube 视频中的猫的系统,之后不久就出现了一系列基于 DNN 的分类系统(https://www.nature.com/news/computer-science-the-learning-machines-1.14481)。“所有人都在说,'哇,这太神奇了,计算机终于可以理解世界了,'”位于拉勒米的怀俄明大学的 Jeff Clune 这样总结;他也是加州旧金山优步 AI 实验室的高级研究经理。

但是 AI 研究人员知道 DNN 实际上并不了解世界。它们是对大脑结构的粗略模拟,是由大量数字神经元组成的软件结构,这些数字神经元分布在许多层中。每个神经元都与其上和其下的层中的其他神经元相互连接在一起。

基本理念是,进入底层的原始输入的元素(例如图像中的像素)会触发其中一些神经元,然后这些神经元根据简单的数学规则将信号传递到上一层的神经元。训练 DNN 网络时,需要将其暴露于大量示例中,每次都调整神经元的连接方式,最终使顶层可以提供所需的答案——例如始终将一幅狮子的图片解释为狮子,即使 DNN 之前从未看到过这幅图片。

2013 年,谷歌研究员 Christian Szegedy 和他的同事发布了一篇名为“神经网络吸引人的特性”的预刊(注 4),第一次进行了严肃的实际检验。该团队证明,对于一张 DNN 可以识别的图像(例如狮子),可以通过更改少量像素使机器相信自己正在观看另一张图片(例如图书馆)。这个团队将篡改过的图像称为“对抗性示例”。

上图:在图像中加入一些精心调制的噪声后,人类还是能认出图像上的物体,但 DNN 会认成完全不一样的事物;

下图:这样一来,任何原始图像都可以被处理,使 DNN 认成研究者选择的目标图像。

一年后,Clune 和他当时的博士生 Anh Nguyen 与纽约伊萨卡市康奈尔大学的 Jason Yosinski 一起证明,有可能使 DNN 看到实际上不存在的东西,例如把一种波浪线模式认成是一只企鹅(注 5)。“接触过机器学习的人们都知道这些系统偶尔会犯一些愚蠢的错误,”深度学习的先驱,加拿大蒙特利尔大学的 Yoshua Bengio 这样说到。“令人惊讶的是错误的类型,”他说,“这真的很出乎人们的意料。我们无法想象会发生这样的错误。”

新的错误类型层出不穷。去年,现在就职于阿拉巴马州奥本大学的 Nguyen 证明,只是旋转图像中的对象就足以欺骗一些市面上最出色的图像分类器(注 6)。Hendrycks 和他的同事今年报告说,即使是未经处理的自然图像也仍然可以诱骗最先进的分类器制造出无法预测的失误,例如将蘑菇识别为椒盐脆饼或将蜻蜓识别为井盖(注 7)。

上图:只是旋转图像中的物体就能让 DNN 混淆,可能是因为它们和网络训练的数据差异太大;

下图:就算是自然图像也能愚弄 DNN,因为网络更关注图像的颜色、纹理或背景,而非找出人类会关注的明显特征。

问题不仅出在对象识别上:任何使用 DNN 来分类输入(例如语音)的 AI 都可以被愚弄。玩游戏的 AI 可能会被攻破:2017 年,加州大学伯克利分校的计算机科学博士生 Sandy Huang 和她的同事在研究一类 DNN,这些 DNN 经过培训可以通过称为强化学习的过程在 Atari 视频游戏中取胜(注 8)。在这种方法中,AI 被指定一个目标,并响应一系列输入,通过反复试验来学习达成该目标的方法。这是 AlphaZero(https://deepmind.com/blog/article/alphazero-shedding-new-light-grand-games-chess-shogi-and-go)和扑克牌机器人 Pluribus(https://www.nature.com/articles/d41586-019-02156-9)等超人游戏 AI 背后的技术。即便如此,Huang 的团队也只需在屏幕上添加一个或两个随机像素就能让 AI 输掉游戏。

今年早些时候,加州大学伯克利分校的 AI 博士生 Adam Gleave 和他的同事们证明,有可能将代理引入 AI 环境中,以执行旨在干扰 AI 反应的“对抗性政策”(注 9)。例如,一名 AI 足球运动员在模拟环境中训练将球踢过 AI 守门员的防守,而当守门员开始以意想不到的方式行事(例如在地上摔倒)时,射门的 AI 球员就没法得分了。

在模拟的点球赛中受训的 AI 足球员会因为 AI 守门员的"对抗性政策"行为而迷惑:后者摔倒在了地上(右图)。

如果黑客知道 DNN 的弱点在哪里,甚至可以接管一个强大的 AI。去年就有一个例子:当时谷歌的一个团队证明,使用对抗性示例不仅可以迫使 DNN 犯特定的错误,而且还可以对其完全重新编程,从而成功地让针对某项任务训练的 AI 去做另一件事情(注 3)。

原则上来说,许多神经网络(例如那些学习理解语言的神经网络)可以被写入其他任何计算机程序。“从理论上讲,你可以将聊天机器人变成你需要的任何程序,” Clune 说。“这就是令人头疼的地方。”他设想在不久的将来,黑客可能会劫持云中的神经网络来运行自己的垃圾邮件机器人算法。

对于加州大学伯克利分校的计算机科学家 Dawn Song 而言,DNN 就像等着挨打的靶子一样。“攻击系统的方式有很多,”她说:“而且防守起来非常非常困难。”

强大的力量带来极大的脆弱性

DNN 如此强大,是因为它们的多层结构意味着它们在尝试对输入分类时可以从输入的许多不同特征中找出模式。经过训练以识别飞机的 AI 可能会发现,诸如色块、纹理或背景之类的特征与我们眼中很明显的事物(如机翼)一样具有很强的预测能力。但这也意味着输入中的很小变化就可以将其转变为 AI 眼中明显不一样的状态。

一种解决方案就是给 AI 喂下更多数据;特别是要让 AI 反复遇到问题场景并纠正其错误。在这种“对抗性训练”形式下,一个网络学会识别物体,第二个网络试图改变第一个网络的输入,设法使其出错。这样,对抗性示例便成为 DNN 训练数据的一部分。

Hendrycks 和他的同事建议测试 DNN 在大量对抗性示例中的表现,从而量化 DNN 面对错误的稳健性。但他们说,培训网络抵御一种攻击可能会削弱它对抗其他攻击的能力(https://arxiv.org/abs/1908.08016)。伦敦谷歌 DeepMind 的 Pushmeet Kohli 领导的研究团队正在尝试给 DNN 接种错误疫苗(https://deepmind.com/blog/article/robust-and-verified-ai)。许多对抗性攻击的机制是不断对输入的组成部分做细微调整(例如巧妙地更改图像中像素的颜色),直到调整结果使 DNN 陷入错误分类为止。Kohli 的团队建议,健壮的 DNN 不应因其输入的微小变化而改变其输出,并且这种属性可能会在数学上进入网络,还会限制其学习方式。

然而,目前还没有人能从根本上解决脆弱 AI 的问题。Bengio 说,问题的根源在于 DNN 并没有很好的模型来识别真正重要的内容。当 AI 看到狮子篡改成图书馆的图像时,人们看到的还是狮子的图像,因为他们关于动物的心智模型是基于一系列高级特征——耳朵、尾巴和鬃毛等——这些特征让人们摆脱了底层的任意或偶然的细节影响。“我们从先前的经验中知道哪些特征是显著的,”Bengio 说:“那是来自对世界结构的深刻理解。”

解决此问题的一种尝试是将 DNN 与符号 AI 结合起来,这是机器学习流行之前 AI 研究中的主要范式。借助符号 AI,机器就可以使用关于世界运作方式的硬编码规则进行推理,这类规则可以包含离散的对象,这些对象以各种方式相互关联。一些研究人员,例如纽约大学的心理学家 Gary Marcus 说,混合 AI 模型是前进的方向。“深度学习在短期的用途如此突出,以至于人们对其长期发展视而不见,”Marcus 说到,他长期以来都对当前的深度学习方法持批评态度。今年 5 月,他在加州帕洛阿尔托与他人共同创立了一家名为 Robust AI 的初创公司,旨在将深度学习与基于规则的 AI 技术相结合,以开发可以与人一起安全操作的机器人。这家公司正在研究的内容细节仍处于保密状态。

即使人们可以将规则嵌入到 DNN 中,这些规则也顶多起到 DNN 所学习的数据的作用。Bengio 说,AI 代理需要在它们可以探索的更丰富的环境中学习。例如,大多数计算机视觉系统无法识别出一罐啤酒是圆柱形的,因为它们是在 2D 图像的数据集上训练的。这就是为什么 Nguyen 及其同事发现,从不同角度呈现熟悉的对象可以轻松愚弄 DNN 的原因所在。在真实或模拟的 3D 环境中学习会改善这个问题。

但 AI 的学习方式也需要改变。Bengio 说:“代理必须在它们可以实验和探索的世界中学习理解因果关系。” 另一位深度学习的先驱,瑞士曼诺市 Dalle Molle 人工智能研究所的 Jürgen Schmidhuber 也有类似的思路。他说,模式识别非常强大——足以使阿里巴巴、腾讯、亚马逊、Facebook 和谷歌等公司成为世界上最有价值的企业。“但是我们将迎来更大的浪潮,”他说:“机器将在真实世界中运作,并通过自己的行动创建自己的数据。”

从某种意义上说,使用强化学习赢得计算机游戏的 AI 已经在人工环境中做到了这一点:通过反复试验,它们以规则允许的方式操纵屏幕上的像素,直到达成目标为止。但是真实环境比当今大多数 DNN 训练所依据的模拟或精选数据集要丰富得多。

即兴机器人

在加州大学伯克利分校的一个实验室里,一条机械臂在混乱中上下翻腾:它拿起一个红色的碗,并用它在右边几厘米处轻推一个蓝色的烤箱手套;它扔下碗,拿起一个空的塑料喷雾瓶;然后它研究了一本平装书的重量和形状。经过几天的不间断筛选,机器人开始对这些外来物体以及它们可以做什么产生了理解。

这条机械臂正在使用深度学习来自学如何使用工具。给它一堆物体,它会轮流捡起并查看每个物体,看看自己将它们四处移动并将一个物体撞上另一个时会发生什么。

机器人利用深度学习来探索如何使用 3D 工具

当研究人员给机器人一个目标(例如给它展示一张没放什么东西的托盘图像,并要求机器人将物体布置成与图片匹配的状态)时,它会即兴表演,并且可以处理以前从未见过的物体,例如使用一块海绵清理掉桌子上的物品。它还能意识到,使用塑料水瓶清理物体比直接捡起这些物体要快得多。“与其他机器学习技术相比,它在工作中的广泛适应能力不断给我留下深刻的印象,”曾在伯克利实验室工作的 Chelsea Finn 说,他现在正在加州斯坦福大学继续这项研究(http://ai.stanford.edu/~cbfinn/)。

Finn 说,这种学习使 AI 对对象和整个世界有了更丰富的理解。如果你只在照片中看到水瓶或海绵,那么你也许可以在其他图像中识别它们。但是你不会真正理解它们的内涵或用途。“如果你没法与世界实际互动,那么你对世界的理解就要狭窄许多。”

但这种学习是一个缓慢的过程。在模拟环境中,AI 可以以闪电般的速度研究示例。2017 年,DeepMind 的自学型游戏软件的最新版本 AlphaZero,经过培训在短短一天之内就成为了 Go 的超人玩家,然后是国际象棋,然后是将棋(日本象棋的一种)。那时,它在每场比赛前都进行了超过 2000 万次的训练。

AI 机器人没法学的这么快。加州伯克利的 AI 和机器人技术公司 Ambidextrous 的联合创始人 Jeff Mahler 说,深度学习的几乎所有重大成果都很大程度上依赖于大量数据。“在单个机器人上收集数千万个数据点需要连续工作数年时间。”而且数据可能不够可靠,因为传感器的精度会随着时间变化,并且硬件可能会退化。

因此,大多数涉及深度学习的机器人工作仍使用模拟环境来加快培训速度。“你能学到什么取决于仿真器的性能,”亚特兰大乔治亚理工学院机器人学博士生 David Kent 说。模拟器一直都在进步,研究人员将虚拟世界中获得的经验教训转化为现实的工作也越来越熟练。但这种模拟仍然无法匹敌现实世界的复杂性。

Finn 认为,与使用人工数据学习相比,使用机器人学习在大规模扩展时要容易得多。她的使用工具的机器人花了几天时间来学习一个相对简单的任务,但这个过程不需要频繁监控。她说:“一旦你启动机器人后,就可以偶尔再做一次检查。” 她想象有一天,世界上会有很多机器人用它们自己的设备全天候学习。这应该是可行的——毕竟这就是人类理解世界的途径。Schmidhuber 说:“婴儿不会通过从 Facebook 下载数据来学习事物。”

从较少的数据中学习

婴儿也可以从少量几个数据点中识别出新的示例:即使他们以前从未见过长颈鹿,但在看过一次或两次之后,他们仍然可以学会认出一头长颈鹿。之所以速度如此之快,部分原因在于婴儿看过许多其他生物,即使那些生物不是长颈鹿,他也已经熟悉了它们的显著特征。

将这类能力赋予 AI 的一个统称术语是迁移学习:也就是将先前几轮培训中获得的知识转移到另一项任务的理念。一种方法是在训练新任务时复用全部或部分预训练的网络作为起点。例如,在学习识别长颈鹿的过程中,复用已经训练过识别某种动物的 DNN 的一部分(例如识别基本身体形状的那些层),可以为新网络提供很大的帮助。

迁移学习的一种极端形式是只用少数几个示例,有时只是一个示例来训练新网络。这被称为单次或数次学习,这在很大程度上依赖于预训练的 DNN。假设你要构建一个面部识别系统以识别犯罪数据库中的人员。一种快速方法是使用已经看到数以百万计面孔(不一定是数据库中的面孔)的 DNN,以便它对突出特征(如鼻子和下巴的形状)有一个很好的了解;现在当网络仅查看一张新面孔的实例时,它可以从该图像中提取有用的特征集;然后它可以比较该特征集与犯罪数据库中单个图像的特征集的相似程度,并找到最接近的匹配项。

拥有这种预先训练的记忆可以帮助 AI 无需查看很多模式就能识别新示例,从而加快机器人的学习速度。但是,当此类 DNN 面对与其经验相距太远的事物时仍然可能会无所适从。尚不清楚这些网络能有多大的通用性。

即使是最成功的 AI 系统,例如 DeepMind 的 AlphaZero,其专业领域也非常狭窄。可以训练 AlphaZero 的算法玩围棋和国际象棋,但同时玩两种棋是不行的。要重新训练模型的联系和响应来在国际象棋中取胜的话,它在围棋中积累的经验就都烟消云散了。Finn 说:“从人类的角度考虑这个问题,这实在有些荒谬。”人们不会这么容易忘记自己学到的东西。

学会如何学习

AlphaZero 在棋类运动中的成功不仅归功于有效的强化学习,还要感谢帮助其学习的算法(使用一种称为“蒙特卡洛树”搜索技术的变体)在可行的下一步选择中缩小范围(注 10)。换句话说,AI 被指导如何从其环境中最好地学习。Chollet 认为,AI 的下一步重点将是使 DNN 能够为自己编写此类算法,而不是使用人类提供的代码。

他认为,用推理能力对基本的模式匹配做补充,将使 AI 更好地处理超出其舒适范围的输入。多年来,计算机科学家一直在研究程序综合技术,使计算机可以自动生成代码。Chollet 认为,将该领域与深度学习相结合可能会使 DNN 系统更接近人类使用的抽象心智模型。

例如,在机器人技术方面,位于加州门洛帕克的 Facebook AI 研究所的计算机科学家 Kristen Grauman 和得克萨斯州奥斯汀的德州大学正在教机器人如何以最佳方式自己探索新环境。这可能涉及在面对新场景时应朝哪个方向看,以及选择哪种方式操纵对象以最好地理解其形状或目的。其背后理念是让 AI 预测哪个新视点或角度将为其提供最有用的新数据。

该领域的研究人员表示,他们在解决深度学习的缺陷方面正在取得进展,但也承认他们仍在寻求新技术以减少这个过程的脆弱性。Song 说,深度学习背后没有太多理论。“如果某件事出了问题,很难找出原因,”她说:“整个领域仍然非常依赖经验。你需要的只是不断做试验。”

目前,尽管科学家认识到了 DNN 的脆弱性及其对大量数据的依赖,但大多数人都认为这种技术前景光明。近十年来,人们意识到凭借大量的计算资源,可以训练神经网络很好地识别模式——但对其机制的认识依旧停留在懵懂状态。“没有人知道到底该如何改善它,” Clune 说。

注释

1.Eykholt, K. et al. IEEE/CVF Conf. Comp. Vision Pattern Recog. 2018, 1625–1634 (2018).(https://doi.org/10.1109%2FCVPR.2018.00175)

2.Finlayson, S. G. et al. Science 363, 1287–1289 (2019).(https://doi.org/10.1126%2Fscience.aaw4399)

3.Elsayed, G. F., Goodfellow, I. & Sohl-Dickstein, J. Preprint at https://arxiv.org/abs/1806.11146 (2018).

4.Szegedy, C. et al. Preprint at https://arxiv.org/abs/1312.6199v1 (2013).

5.Nguyen, A., Yosinski, J. & Clune, J. IEEE Conf. Comp. Vision Pattern Recog. 2015, 427–436 (2015).(https://doi.org/10.1109%2FCVPR.2015.7298640)

6.Alcorn, M. A. et al. IEEE Conf. Comp. Vision Pattern Recog. 2019, 4845–4854 (2019).

7.Hendrycks, D., Zhao, K., Basart, S., Steinhardt, J. & Song, D. Preprint at https://arxiv.org/abs/1907.07174 (2019).

8.Huang, S., Papernot, N., Goodfellow, I., Duan, Y. & Abbeel, P. Preprint at https://arxiv.org/abs/1702.02284 (2017).

9.Gleave, A. et al. Preprint at https://arxiv.org/abs/1905.10615 (2019).

10.Silver, D. et al. Science 362, 1140–1144 (2018).(https://doi.org/10.1126%2Fscience.aar6404)

原文链接:

https://www.nature.com/articles/d41586-019-03013-5

AI感兴趣的小伙伴,快来加入网易智能社群吧!

和我们一起探讨AI的故事~

网易智能的AI社群有很多种呢~

包括:

AI芯片、医疗AI、金融AI、电商AI、自动驾驶、

教育AI、AIoT、机器人、物流AI、等12个社群哦

快快添加智能菌微信kaiwu_club

说明身份即可加入

我们等着你呦!

为什么深度学习AI这么容易被欺骗?相关推荐

  1. 使用函数计算三步实现深度学习 AI 推理在线服务

    目前深度学习应用广发, 其中 AI 推理的在线服务是其中一个重要的可落地的应用场景.本文将为大家介绍使用函数计算部署深度学习 AI 推理的最佳实践,  其中包括使用 FUN 工具一键部署安装第三方依赖 ...

  2. faceswap深度学习AI实现视频换脸详解

    给大家介绍最近超级火的黑科技应用deepfake,这是一个实现图片和视频换脸的app.前段时间神奇女侠加尔盖朵的脸被换到了爱情动作片上,233333.我们这里将会从github项目faceswap开始 ...

  3. 深度学习AI美颜系列---AI美颜磨皮算法一

    深度学习AI美颜系列---AI美颜磨皮算法一 转自:https://blog.csdn.net/trent1985/article/details/80661230 首先说明一点,为什么本结内容是&q ...

  4. 本地函数定义是非法的_使用函数计算三步实现深度学习 AI 推理在线服务

    目前深度学习应用广发, 其中 AI 推理的在线服务是其中一个重要的可落地的应用场景.本文将为大家介绍使用函数计算部署深度学习 AI 推理的最佳实践, 其中包括使用 FUN 工具一键部署安装第三方依赖. ...

  5. 深度学习AI美颜系列---人脸数据增强

    深度学习AI美颜系列---人脸数据增强 在深度学习的训练中,我们经常会对较少的数据进行数据增强,一般而言,常用的数据增强包括如下几种: 1,旋转: 2,缩放: 3,镜像: 4,平移: 5,调色: 6, ...

  6. Infortrend存储 EonStor GSi 深度学习AI存储一体机

    要搭建一个深度学习环境的基本步骤相当繁琐,带有GPU的服务器首先需要安装OS以及深度学习框架的应用,在搭建时也需要考虑到交换机与存储系统,为了能简化繁琐的搭建过程,达到快速部署深度学习环境,Infor ...

  7. 深度学习AI美颜系列---肤色相似度计算(CIELAB色差计算)

    深度学习AI美颜系列---肤色相似度计算(CIELAB色差计算) 在AI美颜中,经常会用到肤色相似度计算,如何实现这个算法? 步骤如下: 1,人脸皮肤分割: 2,对人脸皮肤分割结果进行LAB颜色空间转 ...

  8. 深度学习AI美颜系列

    为什么要开始写AI美颜这个系列的内容? 人像美颜美妆滤镜现在来看,几乎成为了人们生活拍照,摄影的刚需,目前市面上绝大多数的算法依旧停留在传统的图像算法阶段,仅有少数的AI算法也尚属于探索研究阶段,比如 ...

  9. 深度学习AI打电话检测算法

    深度学习AI打电话检测采用深度学习算法,对消防场所,安全生产场所玩手机.打电话的行为进行抓拍预警,识别率可达99%以上 本算法具有如下特点: 支持上传中心管理平台选项 不受光线影响,逆光.强光.夜间红 ...

最新文章

  1. CF1398D Colored Rectangles (记忆化搜索DP)
  2. 启动过程以及故障排除
  3. 无人驾驶、VR、AR时代即将开启,中国电信2018年将完成5G商用版本
  4. Java Collection框架—List\ set \map 的异同世界
  5. IDA Pro 数据库文件、函数窗口、结构体窗口
  6. 趣学python3(9)-range
  7. 教大家python读取一行一行文件内容的方法
  8. pymongo查询列表元素_散列表:如何实现word编辑器的拼写检查?
  9. Mysql 的表级锁和行级锁
  10. Linux下的HDFS命令
  11. 解决:Assign object to a variable before exporting as module default
  12. 安装sql 无法重启计算机,win10系统安装sQL server 2008显示重新启动计算机失败的步骤介绍...
  13. java集合解析(没学过也能理解)
  14. zyb的面试 Hdu6468
  15. 睡眠手环APP开发优势特点
  16. element-ui前端页面消息提示框
  17. 电脑JAVA打开oracle太慢_oracle官网下载jdk跑不动太慢了,给出快速下载方式mac
  18. javascript基础复习之函数,定时器,erval函数
  19. A2021-A2022年度总结项目内容(三)
  20. C语言中double\float类型默认输出几位小数

热门文章

  1. 输入法9键 VS 26键,哪个更适合?
  2. 论文笔记:Succinct Zero-Knowledge Batch Proofs for Set Accumulators
  3. ANSA—外流场网格生成
  4. 【shell脚本】编写无交互的免密脚本
  5. 番茄闹钟二(引入react-router)
  6. 百度站长链接实时提交工具V1.0
  7. 微信windows版_Windows也可以安逸的无缝同步文件--从Mac OS 转战到Windows后的文件同步方案...
  8. 深度干货:阿里高管们的思考方式,厉害在哪里?
  9. 实现微信扫码或关注公众号后网站自动登录
  10. u3d 总是背向相机_大疆口袋云台相机升级,DJI Pocket 2更大、画质更佳,角度更广,配件更足...