近年来机器学习、AI领域随着深度神经网络(DNN)的崛起而迎来新一波的春天,尤其最近两年无论学界还是业界,或是各大媒体,甚至文盲老百姓都言必称“智能”。关于这方面,可讨论的东西实在太多太多,我不想写成一本厚厚的书,所以在此仅以机器学习在计算机视觉和图像领域的人脸识别应用作为一个例子,来陪着大家看看这场热潮、浮华背后有哪些被专家学者们忽视或轻视,但却有着根本性重要的东西,并同时提出本领域的若干值得展开的创新性研究方向。好了,废话少说,且看DNN的大戏上演。

2014年对于人脸识别领域来讲可谓是“欢欣鼓舞”的一年,在LFW数据集(labeled faces in the wild)上的评测结果被连续“刷表”,首先是Facebook的AI Lab发表论文DeepFace报告了accuracy达到97.25%,紧接着Face++的《Learning Deep Face Representation》小小胜出达到97.3%,结果板凳还没坐热就被香港中文大学的Xiaoou Tang和Xiaogang Wang实验室的GaussianFace刷到了98.52%,宣称首次超越了“人类的识别能力”(97.53%)。然后,此次在新加坡VISVA 2014 winter-school上看到Xiaogang Wang报告,他们最新的DeepID2将上述记录刷到了99.15%。下图1是引自GaussianFace一文,作为展示各大新近算法那“优美”ROC曲线的一个示例。

图1:多种算法在LFW数据集上的ROC曲线

可以想象,各大科技媒体、投资机构、业界巨头等都将目光、热忱投向了AI领域,仿佛双目所及都是满满的“$_$”;各大砖家学者、大虾菜鸟也都或奔走相告、粉墨登场如巡回演唱般,或摩拳擦掌、疯狂涌入想着趁热沾沾光、分一杯羹。

古人云,“不知者不罪”,对于那些不懂AI、机器学习以及深度神经网络(后简称DNN)理论及方法的人还情有可原,但是那些具备多年知识积淀和实战经验的砖家们,我就分不清他们是真的“too young too naive”还是另有原因了。在这场浮华背后,我为大家拨开云雾,看看那些被忽视或掩盖起来的本质问题。

1Unfair comparison

各大研究机构论文中报告的accuracy,通常都会同时与其它的多个算法系统进行对比,但是这些对比是unfair的!因为它们在模型的训练阶段,使用的training data差别迥异,而且绝大多数image都是不在LFW数据集里面out-set data。众所周知,欲对比算法、模型的优劣,必先固定训练数据集与测试数据集,为各candidates营造公平的周边条件和评价准绳。

2算法之间的性能差异未经统计检验——不靠谱

“拍拍脑袋,设计了一个新算法,一顿coding之后,放到XXX数据集上一跑,做个10-fold cross validation,拿着accuracy rate跟其它论文方法一对比,发现有0.5个百分点的提升,于是欣喜若狂、普大喜奔、paper满天飞”……这就是计算机视觉领域乃至整个AI领域的现状。然而,学过统计的人都应该提这样的问题:“算法A与算法B的差异,究竟是随机因素引起的波动,还是具有统计显著性的?它们的output error rate波动特性如何?……”这本身又可以看成一个假设检验问题,例如可使用ANOVA、F-test、t-检验等来研究,看看是否在 (=0.05)显著性水平上,算法A优于算法B这个假设是可接受的。但可笑的是,从未见有人用这种“科学”态度和精神来对待这些“科学问题”!

3人脸识别算法性能超越人类?——我读书少,你别骗我

假设某算法A在某数据集X上的accuracy比某“人”的识别结果高,能断言算法A优于“人类”的识别性能吗?请别欺我没学过统计。这个问题有点类似上述问题2,但是稍微更复杂点。

对于一个具体的人,例如张三,他的decision model可以简记为“算法B”。而“人类”是一个类属概念,可以认为是很多不同的decision models构成的model-class。好吧,至此在我有限的知识范围内,纵观数学和计算机学界还没有人提出过一个合理的metric(度量),来评价一个算法A与某个“模型族”的性能差异,以及该差异的统计检验指标……

如果有哪位专家对此领域颇有建树,已经超越美帝、秘密而低调地走在国际最前沿,还敬请回信指教,在此我先行谢过。

4只看数字指标,忘了产品和应用“标的”

究竟我们研究人脸识别算法干嘛用?这里简单谈两个方面的应用,一者娱乐用,另一者那是相当的“不娱乐”啊。先说前者,举个栗子就是百度魔图去年搞的“pk大咖明星脸”(测测你与哪个明星长得像,如图2a)和“全民大穿越”(看看你跟各种电视剧里的谁比较像,图2b)。显然,对于这样的非严肃场景,即使识别错了也无妨,甚至还错得蛮可爱的。在这类应用中,根本无需太追求算法的accuracy,更遑论绞尽脑汁、苦苦地追寻那97%到98%的微不足道的、毫无意义的提升。

图2:百度魔图的两个娱乐应用

然而对于另一类应用,例如biometric(生物身份识别),那就千万马虎不得了。打个比方某银行推出了“刷脸取钱”的快捷服务,就是你往ATM机前一站,它能自动识别你是张三还是李四,然后验证通过就咔咔吐出一堆钞票,确实挺酷。现在拿目前最先进的算法DeepID2来看,号称accuracy 99%。于是张三在ATM机前多晃悠几十次,就没准碰上被误识别为李四,毕竟1%的概率嘛(这是个戏谑的概数,严谨来说不是这个值,此处暂且按下不表),然后把李四账户的钱全卷跑了。

通常,在金融系统中,要求在0.1%的FAR(false accept rate)下verification rate达到99%,才可以投入实用。而根据最新的研究发现,在FAR=0.1%的约束下,目前最好的算法verification rate=41.66%,还远远达不到实用的地步。

至此,我所理解的全世界专家们孜孜不倦地追求high accuracy的算法,应该是要应用到类似biometric这样的严肃场合。那么问题来了,他们为何不直接采用这类场合通用的评价标准“verification rate @ low FAR”,却笼统地用了个掩耳盗铃的accuracy。

5全自动机器学习?——作为“人”还是别对自己的智商妄自菲薄吧

很多技术论坛以及国际学术会议上,都常常听到某些“看起来像是”砖家大神的,吐沫横飞地讲着“用DNN可以让机器实现全自动地学习,并超越人类handcrafted的特征和方法”,抑或是言必称DNN多么多么复杂,不把自己显得高大上誓不罢休。其实在我看来,DNN是非常非常简单的一个东西,它的外在的、看似复杂的样子也只是由内在的很多简单的组件加在一起所展现出来的表面的繁杂而已(在此暂不展开说)。而且更重要的是,说handcrafted或启发式方法不好,那纯粹是一种恶意的诋毁。

首先,DNN本身的结构中,layer的数量、每个layer的node数、卷积层与全连接层的组合模式、卷积kernel的大小、max-pooling层的位置、输出层的log-transform、输入层的数据模式等等,无一不是handcrafted。除了结构和参数,就连训练方法中也融入了很多启发式的设置,例如采用drop-out来缓解耦合与过拟合,又如神经元之间以及相邻layer之间的locality-influence方式来帮助增强稀疏化。

其次,除了DNN外,无论logistic regression(LR)还是SVM或是其它很多模型,都是人类智慧的结晶,是非常美的东西。例如LR中sigmod函数(也常被用于DNN)的平滑、对称和双边饱和特性,又如SVM的最大间隔原理和VC维理论所刻画的简单性原理,这些都是极其符合自然美学的设计,也彰显了大繁至简。其实将最大间隔与VC维的理念融入DNN,寻找结合点,也是很值得研究的方向之一,直觉能够为DNN带来再一次的不小的提升。

此外,还有值得一提的是,DNN的高层网络中,某些神经元的刺激响应模式类似图3a所示,对人脸和猫脸的轮廓会输出极大响应值。联想PCA人脸识别方法中的eigenface,如图3b所示,其实两者存在很多相似的地方,这绝非偶然。实际上,DNN在某种意义上可以理解为一种级联的变换或encoder,在information loss和对非线性的处理能力上增强了;而PCA是一种线性变换,对于数据的非线性特性和丰富的细节,描述能力较差(information loss较大),所以出现图3这样的差别就不难理解了。在某种意义上可以把DNN看做“非线性化的PCA”。事实上,笔者思考和粗略提出了clustering-based PCA以及multi-stage residual-boosting PCA方法,感兴趣的读者可以交流并一起尝试研究,或许可以揭示DNN与PCA的某些内在关联。

图3:DNN人脸&猫脸(a)与PCA的eigenface(b)

行文至此,作为总结,皆化作一句话:“面临机器学习尤其是DNN被大肆吹捧的热潮和浮华,诸君当冷静而理性视之,做到不卑不亢、静水流深,方能真正登堂入室”。

本文来源于"中国人工智能学会",原文发表时间"2015-10-19"

机器视觉与深度神经网络—洗去浮华,一窥珠玑相关推荐

  1. hikey970学习-012 hikey970上移植图像去雨深度神经网络算法

    摘要:本文在hikey970嵌入式设备上运行图像去雨深度神经网络算法,验证hikey970运行神经网络模型的性能与效果. 一.图像去雨简介     图像去雨处理指的是对于一张雨中的图片,去除画面中的雨 ...

  2. [译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)...

    译自:http://sebastianruder.com/multi-task/ 1. 前言 在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI.为了达到这个目标,我 ...

  3. 神经网络 深度神经网络,深度神经网络训练

    有哪些深度神经网络模型? 目前经常使用的深度神经网络模型主要有卷积神经网络(CNN) .递归神经网络(RNN).深信度网络(DBN) .深度自动编码器(AutoEncoder) 和生成对抗网络(GAN ...

  4. 深度神经网络对人工智能推动的发展评述与应用分析

    大数据人工智能培训? 大数据人工智能培训推荐选择[达内教育].大数据人工智能需要学习的东西如下:1.数学基础.数学基础知识蕴含着处理智能问题的基本思想与方法,也是理解复杂算法的必备要素. 这一模块覆盖 ...

  5. 神经网络 深度神经网络,深度神经网络应用实例

    深度学习在现实生活中到底有什么作用?会给生活带来什么变化? 其实咱们的实际生活中已经有很多应用深度学习技术的案例了. 比如电商行业,在浏览淘宝时,页面中有很多都是符合你的爱好并且最近有意向购买的商品, ...

  6. 深度神经网络的特征表示,神经网络识别图像原理

    有哪些深度神经网络模型? 目前经常使用的深度神经网络模型主要有卷积神经网络(CNN).递归神经网络(RNN).深信度网络(DBN).深度自动编码器(AutoEncoder)和生成对抗网络(GAN)等. ...

  7. 深鉴科技联合创始人汪玉:针对机器视觉的深度学习处理器(附视频、PPT下载)...

    本内容选自清华大学电子系副教授.深鉴科技联合创始人汪玉于2018年4月27日在清华大学主楼接待厅数据科学研究院举办的第二届"大数据在清华"高峰论坛所做题为<针对机器视觉的深度 ...

  8. 用深度神经网络搭建马赛克神器,高清无码效果感人

    目录 1.项目背景 2.适用范围 3.使用方法 1.项目背景 相信一提起马赛克这个东西,不少小伙伴都痛心疾首,虽然最近几年也频繁传出有在研发去除马赛克的软件,一直没有成品问世.不过最近一位程序员及经过 ...

  9. non-local神经网络:通过非局部操作解决深度神经网络核心问题

    译者 | 李杰 出品 | AI科技大本营(ID:rgznai100) 回想一下我们熟悉的CNN.RNN.如下图所示,这些神经网络模型都是基于局部区域进行操作,属于local operations.为了 ...

最新文章

  1. 《系统集成项目管理工程师》必背100个知识点-01项目特点
  2. 计算机配置 凭据分配,win7怎样添加凭据?-win7添加凭证的方法 - 河东软件园
  3. CODING 受邀参加《腾讯全球数字生态大会》
  4. 根据java实体生成js实体_端午前福利!Java/Python实体书赠送
  5. python逢7跳过_python实现逢七拍腿小游戏的思路详解
  6. 无人驾驶之入门(开篇)
  7. 7.卷2(进程间通信)---互斥锁和条件变量
  8. 苦劝学弟学妹们,explain一定要学明白,以后有大用途
  9. KVM虚拟化教程(超详细)
  10. sql按照字符串格式拼接
  11. 锡兰1.0.0现已上市
  12. (3)Android常见界面控件
  13. 【数学】有理分式的拆解技巧
  14. 学习arduino esp32相关例程(1)深度睡眠与唤醒
  15. 激光雷达错位拼接技术
  16. FER基于卷积神经网络: 处理少量数据和训练样本订单FER with CNN:Coping with few data and the training sample order
  17. 自动焊锡机加锡时的注意事项
  18. FFmpeg[32] - x264 [error]: high422 profile doesn‘t support lossless
  19. 【历史上的今天】6 月 19 日:iPhone 3GS 上市;帕斯卡诞生;《反恐精英》开始测试
  20. 【Camera基础(一)】Camera摄像头工作原理及整机架构

热门文章

  1. 3d旋转相册代码源码_原生 JS 实现 3D 立方体
  2. 第七天学习Java的笔记(IDEA环境配置)
  3. mac下用vim编写程序
  4. ssm mysql动态分页_SSM项目手动分页详解
  5. 一些重要的算法(转)
  6. DOS下perl调试命令
  7. Java基础day22
  8. PowerBI随笔(7)-lookupvalue、divide
  9. 【Python】你的表格太丑了!能美化下吗?
  10. 【数据竞赛】99%情况下都有效的特征筛选策略--Null Importance。