新型类脑神经网络仅凭极少样本就成功攻破验证码

2023-11-03 08:40

本文主要是介绍新型类脑神经网络仅凭极少样本就成功攻破验证码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章来源: https://www.toutiao.com/i6482213361084793357/?tt_from=weixin&utm_campaign=client_share&from=groupmessage&app=news_article&utm_source=weixin&iid=16626894920&utm_medium=toutiao_android&wxshare_count=1

DeepTech深科技

(《麻省理工科技评论》中英文版APP现已上线,年度订阅用户每周直播科技英语讲堂,还有科技英语学习社区哦~)

毫无疑问,用于图像识别的计算机算法,尤其是针对特定动物,或者人类面部的识别方面已经取得了长足的进步,软件可以自动为大规模图像库进行归类。但现在,关于图像识别的研究已经到达了一个瓶颈期,接下去要做的事情,目前看来计算机可能还无法胜任。

实际上,一旦把图像本身放到具体环境中,由于发生了变形、遮挡或者反光等,现在的算法就无法将它准确识别出来。举个例子,在使用 Google 搜索时,很多人可能遇到过一种人机身份验证方式:在下列图片中选出含有交通标志的那些,如下图所示:

新型类脑神经网络仅凭极少样本就成功攻破验证码!

图丨Google 常用的人机身份验证方式

然而,现有的算法一般化的能力太弱,遇到这类情况时识别效果非常有限,比如熟悉的图像发生变形,或掩藏在大量噪声中。当然,同类型的人机身份验证码也包括对文字的扭曲变形,是人还是机器,高下立判。

好了,如果你现在还依旧认为上述的人机身份验证码(CAPTCHA)能完美区分人类和机器,下面提到的技术可能会让你失望了。在《Science》最新刊出的一篇论文中,一家位于湾区、名为 Vicarious 的AI初创公司,描述了一种由他们发明的全新算法,算法在经过极少量的训练之后,能轻而易举的搞定文字类人机身份验证,当然,一般的文字识别任务也完全不在话下。

新型类脑神经网络仅凭极少样本就成功攻破验证码!

图丨Vicarious 在《Science》上发表论文,宣称用视觉模型破解验证码

坚信计算机也能拥有想象力是 Vicarious 公司创始人们的动力。而在这个神秘的人工智能公司背后,提供支持的是硅谷最著名的成功人士们。公司的早期投资者包括 Facebook 前CTO Dustin Moskovitz、Quora 联合创始人 Adam D’Angelo。其他的资金来源还包括彼得·蒂尔(Peter Thiel)、马克·扎克伯格(Mark Zuckerberg)、杰夫·贝佐斯(Jeff Bezos)以及伊隆·马斯克(Elon Musk)。

Vicarious 公司 CEO 斯科特·菲尼克斯(Scott Phoenix)曾表示,人工神经网络最明显的缺点之一是信息只能单向流动。“如果你观察一个典型的人工神经网络,你会发现它是一种馈结构,”他说,“在大脑中有更多的反馈连接,而不仅是前馈连接。所以,至少有一半的信息流丢失了。”

新型类脑神经网络仅凭极少样本就成功攻破验证码!

图丨Vicarious 公司技术团队

然而,Vicarious 对目前人工智能的繁荣也并不乐观。在过去几年,谷歌、Facebook、亚马逊以及微软等公司都在研究“深度学习”,通过将海量的数据输入大型的人工神经网络而取得了显著的成果。比如说,当深度学习系统通过足够多的训练样例后,的确能够以极高的精确率分辨一张独特的脸或者某一种动物。但是,这些人工神经网络相对于真实的大脑,仅仅是一种非常粗糙的近似产物。

与众不同的是,Vicarious 展示了一种新的神经网络算法,它能够考虑到更多的生物学特性。其中一个重要的特性是,它有能力将已经学习到的信息在不同的情境中描绘出来,就像是一种人工的想象力。

新型类脑神经网络仅凭极少样本就成功攻破验证码!

实际上,Vicarious 最新的研究成果也正是基于上述思想。想知道他们用来攻破文字验证码的秘密武器?其实很简单,就是借鉴哺乳动物视觉皮层处理图像的原理,并建立类似的 AI 模型。借助这一方法,机器凭借很少数据训练就能准确识别,而且就算环境噪声变了也不受影响。

在处理视觉的大脑皮层中,不同群组的神经用来识别接收到图像的边缘或表面特征(当然,还有其他类型的神经用来做动作识别,但那是另一回事,与本文无关)。但这些皮层神经并不会单纯的只是把这些场景视或物体视为不同对象的集合,相反的,这些神经群会互相进行沟通,搞清楚哪些特征是某个对象的组成部份。

当目标对象被建立以及被识别后,整个场景就可以依照目标对象被逐层建立起来,而不是仅作为独立特征。这种以目标对象为基础的分类方式,可以成功识别出具有类似特征的图像集合。只要这些图片的特征有相关性,即便这些图形特征的方向不同,甚至有部分被刻意模糊化,都可以被成功识别出来。

这也是为什么我们人类在阅读上下、左右、前后颠倒,或者是被埋藏在充满噪声的背景图像中的文字时,仍可以毫无障碍的了解语义的原因。或者直接引用 Vicarious 在论文中所举的例子:“用冰雕刻成的椅子,对我们而言仍是椅子。”

新型类脑神经网络仅凭极少样本就成功攻破验证码!

图丨以字母 A 为例,展示从特征到场景的逐层建构方式

回到 Vicarious 这次发表的研究成果本身,为了要对大脑的行为进行仿真模拟,研究团队建立了一个叫做“递归皮层网络”(Recursive Cortical Network, RCN)的模型。研究最关键的一步,在于识别轮廓、特征这些可以定义一个对象的边缘以及内部结构的因素。另一组 Agent 则是负责表征提取,比如说由这些轮廓所定义的表面平整度等。

根据上述模式被识别出来的特征集,则是依照与物理实体的相关性被归类到不同群组。然后这些群组库又可以在彼此之间建立连结,以此来影响其他库的特征选择,从而形成一个在特征识别方面相互连接、相互影响的网络。

新型类脑神经网络仅凭极少样本就成功攻破验证码!

图丨Vicarious 算法的可视化模型

以此类推,特征相关的群组以类似的处理模式就被分层建立起来。在层级模型中,提取的最基本特征在最底层,这些特征随着层级上升一层层向上组合抽象。位于底层的特征既可以被不同的高层应用,还能相互作用,以达到对重叠、变形的图像的识别。

而在这个层级模型的最上层,可能就是需要被识别对象的最终参考结果,研究人员将其定义为“对象假设”(object hypotheses)。为了要使用这些被定义出来的对象去分析整个场景,得到最终语义,RCN 必须经历需多轮的信息评估。

另外,RCN 会为这些已建立的对象假设建立一个评分机制,把分数最高的假设和其他分数较低的假设重新进行比对,确保这些假设都是基于同样的相邻 2D 空间。

最后,当一个对象假设重复经过选择和验证之后,就可确认出最接近的语义,即便这个对象的大小、角度已经被大幅改变,也可成功识别。

新型类脑神经网络仅凭极少样本就成功攻破验证码!

图丨特征识别单元被逐层建立起来,并最终得出对象假设。与哺乳动物视觉皮层工作原理非常类似

这个算法最令人惊异的地方就在于其训练的高效。当研究端对决定着手对付文字图像识别验证(reCAPTCHA)时,他们仅是简单的比对了计算机字库里可用的几种字体。他们给了 RCN 每个字符五个样本,这些样本都进行了某种程度的角度扭转,在识别可靠性上,RCN 达到了 94%的识别准确率。

而在标准的 reCAPTCHA 测试中,RCN 成功解开了三分之二的验证问题,相较之下,人类进行 reCAPTCHA 验证的准确率仅为 87%,这也被证明了 reCAPTCHA 已经不再是个有效的安全管理机制,即便被自动识别的机率只有 1%……

新型类脑神经网络仅凭极少样本就成功攻破验证码!

图丨reCAPTCHA 验证范例

然而,不光是 reCAPTCHA,这个系统也搞定了网络服务中常见的机器人侦测系统,在 Yaohoo 和 PayPal 系统中也达到了 57%的识别正确率。而这些侦测系统的不同,在于所使用的字体,以及部分手动调整的变形,以及背景噪声变量。

以类似的精确度来说,一般神经网络系统的训练量必须达到 50,000 个被解密的 erCAPTCHA 字体图片样例,而 RCN 仅仅需要 260 个训练样例就能达到同样效果。而如果 reCAPTCHA 对其问题库的文字扭曲或噪声变量进行调整,这些传统的标准神经网络系统就必须重新训练,否则就无法识别,但 RCN 就没有这个问题!

新型类脑神经网络仅凭极少样本就成功攻破验证码!

图丨Vicarious(蓝色曲线)RCN 与深度神经网络(绿色曲线)在的训练效率及识别成功率方面的对比

为了把 RCN 应用到真实世界中的文字影像识别中,研究团队为 RCN 提供了文字的共同外观(co-appearance)以及被应用的频率,同时也包含了几何分析能力。因此,RCN 打败了最优秀的模型,虽然仅超出 1.9 个百分点。但考虑到 RCN 模型所需要的训练量远小于其他模型,比如在这场测试赛中,对手经过 790 万张图片的训练,而 RCN 的训练量仅仅只有 1406 张图片,所以毫无疑问,RCN 全面碾压了传统神经网络。

这个极高的训练效率,其实带来了一个很大的问题——这意味着 RCN 把破解这个世界最常用的网络安全验证机制所需要的硬件门坎降到极低的水平,很多网络服务大厂可能会因此大伤脑筋了。

但一般而言,这也将成为 AI 的一大跃进。正如围棋 AI 并不是个通用型 AI,这个系统其实也并不知道验证码的真正含义,无法在不同语义见相互转换,也无法依照其识别结果进行任何下一步行动。但 RCN 为我们提供了一种看待 AI 的全新视角,那就是 AI 不需要与真实的智能严格区分开来。当我们从大脑的运作机制研究中运作中获得更多知识,我们就能借此改进 AI 算法的运行效率。

在很长一段时间里,AI 技术的进步源于硬件性能的升级,更密集的电子元件,以及越来越大的数据集。而 Vicarious 的例子告诉我们,回归算法优化的原点,也许会是个不错的方向。



这篇关于新型类脑神经网络仅凭极少样本就成功攻破验证码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/336972

相关文章

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

SpringBoot整合kaptcha验证码过程(复制粘贴即可用)

《SpringBoot整合kaptcha验证码过程(复制粘贴即可用)》本文介绍了如何在SpringBoot项目中整合Kaptcha验证码实现,通过配置和编写相应的Controller、工具类以及前端页... 目录SpringBoot整合kaptcha验证码程序目录参考有两种方式在springboot中使用k

SpringBoot如何集成Kaptcha验证码

《SpringBoot如何集成Kaptcha验证码》本文介绍了如何在Java开发中使用Kaptcha生成验证码的功能,包括在pom.xml中配置依赖、在系统公共配置类中添加配置、在控制器中添加生成验证... 目录SpringBoot集成Kaptcha验证码简介实现步骤1. 在 pom.XML 配置文件中2.

使用 Python 和 LabelMe 实现图片验证码的自动标注功能

《使用Python和LabelMe实现图片验证码的自动标注功能》文章介绍了如何使用Python和LabelMe自动标注图片验证码,主要步骤包括图像预处理、OCR识别和生成标注文件,通过结合Pa... 目录使用 python 和 LabelMe 实现图片验证码的自动标注环境准备必备工具安装依赖实现自动标注核心

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边