社会计算实例:10秒钟验证码能干什么?

本文介绍了一种名为CAPTCHA的技术,即验证码,用于区分真实用户与自动注册软件。此外,还介绍了reCAPTCHA技术,它不仅能够阻止自动注册,还能利用用户的输入帮助校对古老文献中的难以辨识的文字。
        你一定见识过这种情况:电脑提示——“请输入验证码”,然后是几个数字,或者一个字符串,你得小心辨认,然后把辨认出来的字符,输进去,让机器判断你到底是真人,还是计算机软件。
  这种情形叫做“验证码”,英文名字比较长,叫做CAPTCHA,Completely Automated Public Turing test to tell Computers and Humans Apart,意思是“全自动区分计算机和人类的图林测试”,据说最早是在2000年,由卡内基梅隆大学的Luis von Ahn提出的。
  图林测试的妙用
  使用验证码,是为了杜绝通过软件设计的“注册机器人”恶意注册信息,产生大量的垃圾用户(或者僵尸用户)、垃圾点评信息的行为。图灵测试,是计算机科学的奠基人阿兰•图林,在1950年提出的一种测试方法,该方法的目的是回答这样一个基础问题:如何判断人机对话的另一端,到底是人还是机器?
  这个问题换个角度,就是:如何判定一台电脑,是否具备智能?或者说,看上去“像一个人”。
  图林的办法很朴素:他设想把一台机器摆在一间空屋子里,人通过连线与这台电脑交互;人可以提出任何的问题,假如电脑对答如流,令人看不出任何破绽的话,就可以断定这台机器“具有像人一样的智能”。
  图林测试成为检验机器是否具备智能的著名测试方法。不过,真正通过图林测试的电脑,严格说还遥不可及(这么说很不严谨,准确说法请参考各种百科)。
  半个世纪以来,图林测试除了确立了一种直观、苛刻的机器智能检验标准,惹得众多计算机科学家、发烧友一试身手外,一直没找到什么实际用途。这种情况在10年前出现了转变。
  让多余的动作有价值
  话题回到验证码。雅虎公司最早受到机器注册的困扰。大量通过机器程序自动注册的行为,给雅虎带来了无尽的烦扰,他们找到了21岁的Luis von Ahn,这个刚从杜克大学获得数学学位,进入卡内基•梅隆大学硕博连读的小伙子,研究了一种通过强制用户输入某个适当变形的字符串,来检验注册者到底是机器还是人。按照现有的计算机技术,还没有哪台电脑能通过这种测试——人为扭曲变形的验证码毫无规律可言,而且是以图形方式呈现,注册者必须通过肉眼辨识,才能通过验证。
  事情并未就此止步。Ahn是个追求完美的计算机天才。他发现,输入验证码固然可以把机器注册行为挡在系统门外,但这毕竟是“多此一举”。能不能给这个“多余的动作”找到点用处呢?假如每次人们输入验证码需要花费10秒钟的话,按照每天6千万次使用,这可是15万小时的劳动力资源啊!
  2005年,在Ahn拿到博士学位之后,他的努力有了结果。他把这种验证方式叫做reCAPTCHA,基本原理是这样的:注册者输入验证码时,提供两个字符串,一个是真正的验证码,另一个字符串则来自某个古老文献中难以辨识的单词或者词组。注册者需要根据自己的辨识,输入这两个字符串,奥妙就在第二个字符串上。
  其实从验证码的角度说,有第一个字符串就足够了;但是,为了让这种“多余的动作”产生价值,第二个字符串就很有用了——这个通过扫描仪、OCR软件,甚至古籍整理者都难以辨识的古老文献中的字符串,竟然可以通过大量注册者“举手之劳”的辨认,很快得到解决!
  有人曾作过这样的计算,如果要把互联网档案馆的文本校对一遍,按照每天处理100万个单词的速度,需要400年!采用reCAPTCHA方法,每天可以校对160本书,精度可以超过99%。
  2009年9月17日,Google购买了这项技术,作为书籍扫描中难以辨认字符的识别工作。
  Louis von Ahn的办法,构思精妙,而且简单易行。这是典型的“社会计算”的成功范例。
  群体智慧:社会计算的精髓
  作为一门日益受到重视的计算机学科,人机交互(HCI)一直是计算机学科最具生命力的代表。近些年人机交互成绩斐然,已经大大突破了狭义的、线性的、基于键盘、打印、屏幕等传统交互方式的樊篱。
  苹果公司的iPhone、iPad,让触摸屏技术风靡全球,下一代体感游戏(如Kinect)正引起游戏发烧友的青睐,3D虚拟场景、数字头盔、数字手套,甚至可穿戴电脑,植入式芯片技术,无一不在重新定义着人机交互的边界,不断改写着用户体验。
  但是,Ahn的方法具有更加深刻的意义。他所使用的办法,可称之为“社会计算”。
  “社会计算”,简单说就是通过“群体智能”的方式,让众多网民表面上看似无关的计算行为,总体上产生有序的、有意义的结果。目前最为流行的社会计算模式,是所谓“推荐算法”(参见2011年1月21日,财经网周末版技术专栏文章《推荐引擎:未来互联网的发动机》,http://www.caijing.com.cn/2011-01-21/110625040.html)。
  据说,最近Ahn又提出了一款新产品的创意,名字叫做Duolingo,它最初的设想,是把互联网的网页翻译成多语版本,这可是浩大的社会工程。Ahn的创意又一次显现出独特的视角:他看到,全世界有10亿人在学习外语,这么大的群体通过协作,或者就在阅读网页的过程中,通过举手之劳,自然地贡献自己的点滴力量,就能把网页转换成更多的语种。
  这种“聚沙成塔、集腋成裘”的办法,是社会计算的精髓,也是未来计算模式变迁的核心动力。
  顺便说,Ahn当年的博士论文,就是“Human Computation”。
训练数据保存为deep_convnet_params.pkl,UI使用wxPython编写。卷积神经网络(CNN)是一种专门针对图像、视频等结构化数据设计的深度学习模型,在计算机视觉、语音识别、自然语言处理等多个领域有广泛应用。其核心设计理念源于对生物视觉系统的模拟,主要特点包括局部感知、权重共享、多层级抽象以及空间不变性。 **1. 局部感知与卷积操作** 卷积层是CNN的基本构建块,使用一组可学习的滤波器对输入图像进行扫描。每个滤波器在图像上滑动,以局部区域内的像素值与滤波器权重进行逐元素乘法后求和,生成输出值。这一过程能够捕获图像中的边缘、纹理等局部特征。 **2. 权重共享** 同一滤波器在整个输入图像上保持相同的权重。这显著减少了模型参数数量,增强了泛化能力,并体现了对图像平移不变性的内在假设。 **3. 池化操作** 池化层通常紧随卷积层之后,用于降低数据维度并引入空间不变性。常见方法有最大池化和平均池化,它们可以减少模型对微小位置变化的敏感度,同时保留重要特征。 **4. 多层级抽象** CNN通常包含多个卷积和池化层堆叠在一起。随着网络深度增加,每一层逐渐提取更复杂、更抽象的特征,从底层识别边缘、角点,到高层识别整个对象或场景,使得CNN能够从原始像素数据中自动学习到丰富的表示。 **5. 激活函数与正则化** CNN中使用非线性激活函数来引入非线性表达能力。为防止过拟合,常采用正则化技术,如L2正则化和Dropout,以增强模型的泛化性能。 **6. 应用场景** CNN在诸多领域展现出强大应用价值,包括图像分类、目标检测、语义分割、人脸识别、图像生成、医学影像分析以及自然语言处理等任务。 **7. 发展与演变** CNN的概念起源于20世纪80年代,其影响力在硬件加速和大规模数据集出现后真正显现。经典模型如LeNet-5用于手写数字识别,而AlexNet、VGG、GoogLeNet、ResNet等现代架构推动了CNN技术的快速发展。如今,CNN已成为深度学习图像处理领域的基石,并持续创新。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值