计算机视觉一年——第 1 部分,共 4 部分
—第一部分:分类/定位、目标检测&目标跟踪
简介
计算机视觉通常指的是赋予机器视觉能力的科学学科,或者更生动地说,使机器能够从视觉上分析它们的环境和其中的刺激。这个过程通常涉及对一个图像、多个图像或视频的评估。英国机器视觉协会(BMVA)将计算机视觉定义为“,从单一图像或图像序列中自动提取、分析和理解有用信息。【1】
术语理解为视觉的其他机械定义提供了一个有趣的对比点,它用来展示计算机视觉领域的重要性和复杂性。仅仅通过视觉表现是无法真正理解我们的环境的。相反,视觉线索通过视神经传播到初级视觉皮层,并由大脑以高度风格化的方式进行解释。从这种感官信息中得出的解释包含了我们自然编程和主观体验的几乎全部,即进化如何让我们生存下来,以及我们一生中对世界的了解。
在这方面,视觉只与图像的传输有关,用于解释;而计算所述图像更类似于思维或认知,利用了大脑的多种能力。因此,许多人认为,计算机视觉是对视觉环境及其背景的真正理解,由于其跨领域的掌握,它为强人工智能的未来迭代铺平了道路。
然而,放下干草叉,因为我们仍然处于这个迷人领域的萌芽阶段。这篇文章旨在展示 2016 年最大的计算机视觉进步。并希望将这些进步建立在预期的近期社会互动和我们所知的生命终结的半开玩笑的预言的健康结合上。
虽然我们的作品总是写得尽可能容易理解,但由于主题的原因,这一特定作品中的部分有时可能是倾斜的。我们确实从头到尾提供了基本的定义,但是,这些仅仅传达了对关键概念的浅显理解。为了将我们的重点放在 2016 年的工作上,为了简洁起见,经常会有省略。
一个明显的遗漏与卷积神经网络(下文称为 CNN 或 ConvNets)的功能有关,卷积神经网络在计算机视觉领域中无处不在。AlexNet[2]在 2012 年的成功,一个让 ImageNet 竞争对手措手不及的 CNN 架构,证明是该领域事实上的革命的煽动者,许多研究人员采用基于神经网络的方法作为计算机视觉新时代“正常科学”的一部分。[3]
四年后,CNN 的变体仍然构成了视觉任务的新神经网络架构的主体,研究人员像乐高积木一样重建它们;开源信息和深度学习力量的有效证明。然而,对 CNN 的解释可以很容易地跨越几个帖子,最好留给那些在这个主题上有更深的专业知识和使复杂的东西可以理解的亲和力的人。
对于希望在继续之前快速了解基础知识的普通读者,我们推荐下面的前两个资源。对于那些希望更进一步的人,我们订购了以下资源来帮助他们:
深度神经网络如何看待你的#自拍Andrej Karpathy 是我们帮助人们理解 CNN 背后的应用和功能的最爱之一。[4]
Quora:“什么是卷积神经网络?”— 不缺很棒的链接和解释。特别适合那些没有事先了解。[5]
来自斯坦福大学的 CS231n:用于视觉识别的卷积神经网络是获得更多深度的优秀资源。[6]
深度学习 (Goodfellow,Bengio &库维尔,2016)在第九章中提供了 CNN 特性和功能的详细解释。该教材由作者以 HTML 格式免费提供。[7]
对于那些希望了解更多关于神经网络和深度学习的人,我们建议:
神经网络和深度学习(尼尔森,2017 年)是一本免费的在线教科书,它为读者提供了对神经网络和深度学习复杂性的真正直观的理解。即使只是完成了第一章,对于第一次接触的人来说,也能很好地阐明这篇文章的主题。[8]
作为一个整体,这部作品是不连贯和断断续续的,反映了作者的兴奋和精神,这是打算利用它,一节一节。使用我们自己的启发和判断来划分信息,这是一种必要的妥协,因为所介绍的大部分工作都受到跨领域的影响。
我们希望读者从我们在这里收集的信息中受益,不管他们以前有什么经验,都可以加深自己的知识。
来自我们所有的贡献者,
米槽
分类/本地化
当涉及图像时,分类的任务通常是指给整个图像分配一个标签,例如“猫”。假设这一点,则定位可以指找到对象在所述图像中的位置,通常由对象周围的某种形式的边界框的输出来表示。ImageNet[9]上当前的分类技术很可能已经超越了一群训练有素的人。[10]由于这个原因,我们更加重视博客的后续部分。
图 1: 计算机视觉任务
Source: Fei-Fei Li, Andrej Karpathy & Justin Johnson (2016) cs231n, Lecture 8 — Slide 8, Spatial Localization and Detection (01/02/2016). Available: http://cs231n.stanford.edu/slides/2016/winter1516_lecture8.pdf
然而,随着类别数量的增加,更大的数据集的引入[11]可能会在不久的将来为进展提供新的衡量标准。在这一点上,Keras 的创建者 Fran ois Chollet[12]已经将包括流行的 architecture Xception 在内的新技术应用于包含 17,000 个类别的超过 3.5 亿多标签图像的内部 google 数据集。[13,14]
图 2: 来自 ils vrc(2010–2016)的分类/本地化结果
Note: ImageNet Large Scale Visual Recognition Challenge (ILSVRC). The change in results from 2011–2012 resulting from the AlexNet submission. For a review of the challenge requirements relating to Classification and Localization see: http://www.image-net.org/challenges/LSVRC/2016/index#comp
来源:贾登(2016)。 ILSVRC2016 对象定位:简介,结果。幻灯片 2。可用:http://image-net . org/challenges/talks/2016/ils vrc 2016 _ 10 _ 09 _ cls loc . pdf
ImageNet LSVRC(2016)的有趣收获:
- 场景分类是指给一幅图像贴上某种场景类别的标签的任务,比如“温室”、“体育场”、“大教堂”等。ImageNet 去年用 Places2[15]数据集的一个子集举行了一次场景分类挑战:用 365 个场景类别的 800 万幅图像进行训练。
海康威视[16]凭借深度初始型网络和不太深的残差网络的组合,以 9%的前 5 名误差胜出。 - Trimps-Soushen 以 2.99%的 top-5 分类误差和 7.71%的定位误差拿下 ImageNet 分类任务。该团队采用集成进行分类(对 Inception、Inception-Resnet、Resnet 和 Wide Residual Networks 模型的结果进行平均[17]),并基于标签使用更快的 R-CNN 进行定位。[18]数据集分布在 1000 个图像类中,有 120 万个图像作为训练数据。分割的测试数据进一步汇编了 10 万幅看不见的图像。
- 脸书的 ResNeXt 以 3.03%的错误率位居第二,它使用了一种新的架构,扩展了原来的 ResNet 架构。[19]
目标检测
可以想象,物体检测的过程就是这样做的,检测图像中的物体。ILSVRC 2016[20]为对象检测提供的定义包括输出单个对象的边界框和标签。这不同于分类/定位任务,它将分类和定位应用于许多对象,而不仅仅是单个主要对象。
图 3 :以人脸为唯一类别的物体检测
Note: Picture is an example of face detection, Object Detection of a single class. The authors cite one of the persistent issues in Object Detection to be the detection of small objects. Using small faces as a test class they explore the role of scale invariance, image resolution, and contextual reasoning. Source: Hu and Ramanan (2016, p. 1)[21]
2016 年物体探测的主要趋势之一是向更快、更高效的探测系统转变。这在 YOLO、SSD 和 R-FCN 等方法中是显而易见的,这是朝着在整个图像上共享计算的方向发展。因此,区别于与快速/更快的 R-CNN 技术相关的昂贵的子网。这通常被称为“端到端培训/学习”,贯穿整篇文章。
基本原理通常是避免单独的算法孤立地关注它们各自的子问题,因为这通常会增加训练时间并降低网络精度。也就是说,这种网络的端到端适配通常发生在初始子网解决方案之后,因此是一种回顾性优化。然而,快速/更快的 R-CNN 技术仍然非常有效,并且仍然广泛用于对象检测。
- SSD:单次多盒探测器【22】利用单个神经网络封装所有必要的计算,并消除了其他方法的昂贵提议生成。它实现了" 75.1%的 mAP,优于可比的更快的 R-CNN 模型(刘等,2016)。
- 我们在 2016 年看到的最令人印象深刻的系统之一来自名为“ YOLO9000:更好、更快、更强”[23]的系统,它介绍了 YOLOv2 和 YOLO9000 检测系统。[24] YOLOv2 从 2015 年年中[25]起极大地改进了最初的 YOLO 模型,并能够在非常高的 FPS 下实现更好的结果(使用原始的 GTX 泰坦 X 在低分辨率图像上高达 90 FPS)。除了完成速度之外,在某些对象检测数据集上,该系统还优于具有 ResNet 和 SSD 的更快的 RCNN。
- YOLO9000 实现了一种用于检测和分类的联合训练方法,将其预测能力扩展到可用的标记检测数据之外,即,它能够检测从未见过标记检测数据的对象。YOLO9000 模型提供了跨越 9000 多个类别的实时对象检测,缩小了分类和检测之间的数据集大小差距。更多细节、预训练模型和视频展示可点击此处获取。[26]
YOLOv2 Object Detection running on frames from James Bond with DragonForce
- 用于对象检测的特征金字塔网络【27】来自 FAIR【28】,利用“深层卷积网络固有的多尺度、金字塔式层级结构,以边际额外成本构建特征金字塔,这意味着表现仍然强大,而不会影响速度或内存。林等人(2016)在 COCO 上实现了最先进的(以下简称)单一模型结果。[29]结合更快的 R-CNN 系统,击败了 2016 年获胜者取得的成绩。
- R-FCN:通过基于区域的完全卷积网络进行物体检测【30】:这是另一种方法,通过使基于区域的检测器完全卷积并在整个图像上共享计算,避免在图像上应用昂贵的每区域子网络数百次。“我们的结果是在每幅图像 170 毫秒的测试时间速度下实现的,比更快的 R-CNN 同行快 2.5-20 倍”(戴等人,2016)。
图 4 :物体检测中的精度权衡
Note: Y-axis displays mAP (mean Average Precision) and the X-axis displays meta-architecture variability across each feature extractor (VGG, MobileNet…Inception ResNet V2). Additionally, mAP small, medium and large describe the average precision for small, medium and large objects, respectively. As such accuracy is “stratified by object size, meta-architecture and feature extractor” and “image resolution is fixed to 300”. While Faster R-CNN performs comparatively well in the above sample, it is worth noting that the meta-architecture is considerably slower than more recent approaches, such as R-FCN.
来源:黄等(2016 年第 9 期)[31]
黄等人(2016)[32]发表了一篇论文,对 R-FCN、SSD 和更快的 R-CNN 进行了深入的性能比较。由于围绕机器学习(ML)技术的准确比较的问题,我们想在这里指出产生标准化方法的优点。他们将这些架构视为“元架构”,因为它们可以与不同类型的特征提取器(如 ResNet 或 Inception)相结合。
作者通过改变元架构、特征提取器和图像分辨率来研究准确性和速度之间的权衡。例如,特征提取器的选择在元体系结构之间产生了很大的差异。
SqueezeDet[33]和 PVANet[34]的论文也证明了在保持实时商业应用(尤其是自动驾驶应用)所需精度的同时,使物体检测变得廉价和高效的趋势。而一家中国公司 DeepGlint 提供了一个很好的例子,即作为闭路电视集成的物体检测,尽管是以一种模糊的奥威尔方式:视频。[35]
DeepGlint Object Detection, Object Tracking and Face Recognition
ils vrc 和 COCO 检测挑战的结果
COCO36是另一个流行的图像数据集。然而,与 ImageNet 等替代方案相比,它相对更小,更精确,重点是在更广泛的场景理解背景下的对象识别。组织者举办了一年一度的目标检测、分割和关键点挑战赛。ILSVRC[37]和 COCO[38]检测挑战的检测结果如下:
ImageNet LSVRC 从图像中检测物体(DET): CUImage 66% meanAP。在 200 个物品类别中赢得了 109 个。
ImageNet LSVRC 视频对象检测(VID): NUIST 80.8%平均 AP
ImageNet LSVRC 从视频中检测目标并跟踪: CUvideo 55.8%平均 AP
COCO 2016 检测挑战赛(包围盒): G-RMI(谷歌)41.5% AP(比 2015 年冠军 MSRAVC 增加 4.2%绝对百分比)
在回顾 2016 年的检测结果时,ImageNet 表示,“MSRAVC 2015 为性能设立了非常高的标准[将 ResNets 引入竞争]。参赛选手在所有课程上的表现都有所提高。本地化在这两项挑战中都有很大提高。“小对象实例的高相对改进”(ImageNet,2016)。[39]
图 5 : ILSVRC 图像检测结果(2013–2016)
Note: ILSVRC Object Detection results from images (DET) (2013–2016). Source:ImageNet. 2016. [Online] Workshop Presentation, Slide 2. Available: http://image-net.org/challenges/talks/2016/ECCV2016_ilsvrc_coco_detection_segmentation.pdf
目标跟踪
指在给定场景中跟踪感兴趣的特定对象或多个对象的过程。传统上,它应用于视频和现实世界的交互中,在最初的物体检测之后进行观察;例如,这个过程对自动驾驶系统至关重要。
- 用于目标跟踪的全卷积暹罗网络【40】将基本跟踪算法与暹罗网络相结合,端到端训练,实现 SOTA,并以超过实时的帧速率运行。本文试图解决传统在线学习方法缺乏丰富性的问题。
- 使用深度回归网络学习以 100 FPS 进行跟踪【41】是另一篇试图通过在线训练方法改善现有问题的论文。作者制作了一种跟踪器,它利用前馈网络来学习围绕对象运动、外观和方向的一般关系,从而在没有在线训练的情况下有效地跟踪新对象。在标准跟踪基准上提供 SOTA,同时还管理“以 100 fps 的速度跟踪一般对象”(Held 等人,2016)。
GOTURN 视频(使用回归网络的通用对象跟踪)可用:视频【42】
- 用于视觉跟踪的深度运动特征【43】融合手工制作的特征、深度 RGB/外观特征(来自 CNN)、深度运动特征(在光流图像上训练)实现 SOTA。虽然深度运动特征在动作识别和视频分类中很常见,但作者声称这是他们第一次用于视觉跟踪。该论文还因“计算机视觉和机器人视觉”主题获得了 2016 年 ICPR 最佳论文奖。
本文介绍了在检测跟踪框架中深度运动特征的影响的研究。我们进一步表明,手工制作,深 RGB 和深运动特征包含互补信息。据我们所知,我们是第一个提出融合外观信息和深度运动特征进行视觉跟踪的人。综合实验清楚地表明,我们的具有深度运动特征的融合方法优于仅依赖外观信息的标准方法。
- 虚拟世界作为多对象跟踪分析的代理【44】解决了现有视频跟踪基准和数据集缺乏真实生活可变性的问题。该论文提出了一种用于真实世界克隆的新方法,该方法从零开始生成丰富的、虚拟的、合成的、照片般逼真的环境,具有全标签,克服了现有数据集中存在的一些无菌性。生成的图像自动标记有准确的地面实况,允许除对象检测/跟踪之外的一系列应用,例如深度和光流。
- 使用全卷积网络的全局最优目标跟踪 [45]处理目标变化和遮挡,将这些作为目标跟踪中的两个根本限制。“我们提出的方法通过使用完全卷积网络解决了对象外观变化问题,并通过动态编程处理遮挡问题”(Lee 等人,2016)。
在我们的网站上可以免费获得完整的出版物:www.themtank.org
我们鼓励读者通过我们自己的网站来查看这篇文章,因为我们包括嵌入的内容和简单的导航功能,使报告尽可能地动态。我们不通过我们的网站赚取收入,我们希望尽可能地让读者对我们的网站感兴趣和直观,所以我们衷心欢迎对我们的网站的任何反馈!
****关注我们下期关于媒体的简介(第 2 部分,共 4 部分),以及即将到来的人工智能研究领域的内容。请随意将所有反馈和建议放在评论区,我们会尽快回复。或者,您可以通过以下方式直接联系我们:info@themtank.com
非常感谢,
M 坦克
按出现顺序排列的参考文献
全文可从以下网址获得:http://www . them tank . org/publications/a-year-in-computer-vision
[1]英国机器视觉协会(BMVA)。2016.什么是计算机视觉?【在线】可在:【http://www.bmva.org/visionoverview】T2【21/12/2016 访问】
[2] Krizhevsky,a .,Sutskever,I .和 Hinton,G. E .,2012。使用深度卷积神经网络进行 ImageNet 分类, NIPS 2012:神经信息处理系统,内华达州太浩湖。可用:http://www . cs . Toronto . edu/~ kriz/imagenet _ class ification _ with _ deep _ 卷积. pdf
[3]库恩,T. S. 1962。科学革命的结构。第四版。美国:芝加哥大学出版社。
[4]卡帕西,A. 2015。深度神经网络怎么看待你的#自拍。【博客】 安德烈·卡帕西博客。可用:http://karpathy.github.io/2015/10/25/selfie/【访问时间:21/12/2016】**
[5] Quora。2016.什么是卷积神经网络?【在线】可用:https://www . quora . com/What-is-a-convolutionary-neural-network【访问时间:21/12/2016】
[6]斯坦福大学。2016.用于视觉识别的卷积神经网络。【在线】CS231n 。可用:http://cs231n.stanford.edu/【2016 . 12 . 21 访问】**
[7]古德费勒等人,2016 年。深度学习。麻省理工学院出版社。【在线】http://www.deeplearningbook.org/【访问时间:21/12/2016】注:第九章,卷积网络【可用:http://www.deeplearningbook.org/contents/convnets.html】**
[8]尼尔森,M. 2017。神经网络和深度学习。【在线】电子书。可用:http://neuralnetworksanddeeplearning.com/index.html【访问时间:2017 年 06 月 03 日】。**
[9] ImageNet 指的是计算机视觉的流行图像数据集。每年,参赛者都要参加一系列不同任务的竞赛,这些任务被称为 ImageNet 大规模视觉识别挑战(ILSVRC)。可用:http://image-net.org/challenges/LSVRC/2016/index
[10]参见 Andrej Karpathy 的“我在 ImageNet 上与 ConvNet 竞争时学到的东西”。这篇博客文章详细介绍了作者根据 ILSVRC 2014 数据集提供人类基准的旅程。错误率约为 5.1%,而当时最先进的 GoogLeNet 分类错误率为 6.8%。可用:http://karpathy . github . io/2014/09/02/what-I-learn-from-competing-against-a-convnet-on-imagenet/
[11]参见本文后面的新数据集。
[12] Keras 是一个流行的基于神经网络的深度学习库:https://keras.io/
[13]乔莱,F. 2016。用于大规模图像分类的信息论标签嵌入。【在线】arXiv: 1607.05691 。可用:arXiv:1607.05691 v1**
[14]乔莱,F. 2016。例外:具有深度可分卷积的深度学习。【在线】 arXiv:1610.02357 。可用:arXiv:1610.02357 v2**
[15] Places2 数据集,可用细节:http://places2.csail.mit.edu/。另请参见新数据集部分。
[16]海康威视。2016.海康威视在 ImageNet 2016 挑战赛的场景分类中排名第 1。【在线】安全新闻台。可用:http://www . security news desk . com/海康威视-ranked-no-1-scene-class ification-imagenet-2016-challenge/【访问时间:20/03/2017】。**
[17]详见本出版物第四部分“剩余网络”。
[18]详情请见团队信息 Trimps-Soushen,来自:http://image-net.org/challenges/LSVRC/2016/results
[19]谢,s .,吉尔希克,r .,杜尔达,p .,涂,Z. &何,K. 2016。深度神经网络的聚合残差变换。【在线】 arXiv: 1611.05431 。可用:arXiv:1611.05431 v1**
[20] ImageNet 大规模视觉识别挑战赛(2016),第二部分,可用:http://image-net.org/challenges/LSVRC/2016/[访问日期:2016 年 11 月 22 日]
[21]胡与拉马南。2016.发现小脸。【在线】arXiv: 1612.04402。可用:arXiv:1612.04402 v1
[22]刘等 2016。SSD:单次多盒探测器。【在线】arXiv: 1512.02325v5 。可用:arXiv:1512.02325 V5**
[23]法尔哈迪·雷德蒙,2016 年。YOLO9000:更好、更快、更强。【在线】arXiv: 1612.08242v1 。可用:arXiv:1612.08242 v1**
[24] YOLO 代表“你只看一次”。
[25]雷德蒙等人,2016 年。你只看一次:统一的,实时的物体检测。【在线】arXiv: 1506.02640 。可用:arXiv:1506.02640 V5**
[26]雷德蒙。2017.YOLO:实时物体检测。【网址】pjreddie.com可用:https://pjreddie.com/darknet/yolo/【访问时间:2017 年 01 月 03 日】。**
[27]林等 2016。用于目标检测的特征金字塔网络。【在线】arXiv: 1612.03144 。可用:arXiv:1612.03144 v1**
[28]脸书的人工智能研究
[29]上下文中的通用对象(COCO)图像数据集
[30]戴等 2016。R-FCN:通过基于区域的完全卷积网络的目标检测。【在线】arXiv: 1605.06409 。可用:arXiv:1605.06409 v2**
[31]黄等 2016。现代卷积目标探测器的速度/精度权衡【在线】arXiv: 1611.10012 。可用:arXiv:1611.10012 v1**
32 同上
[33]吴等 2016。SqueezeDet:用于自动驾驶实时目标检测的统一、小型、低功耗全卷积神经网络。【在线】arXiv: 1612.01051 。可用:arXiv:1612.01051 v2**
[34]洪等 2016。PVANet:用于实时对象检测的轻量级深度神经网络。【在线】arXiv: 1611.08588v2 。可用:arXiv:1611.08588 v2**
[35]迪格林官方。2016.格灵深瞳 CVPR2016。【在线】Youtube.com。可用:https://www.youtube.com/watch?v=xhp47v5OBXQ【访问时间:2017 年 01 月 03 日】。**
[36]可可——共同的共同对象。2016.【网址】可用:http://mscoco.org/【访问时间:2017 年 4 月 1 日】。
[37] ILSRVC 的结果取自:ImageNet。2016.2016 年大规模视觉识别挑战赛。
【网站】物体检测。可用:http://image-net.org/challenges/LSVRC/2016/results【访问时间:2017 年 4 月 1 日】。
[38] COCO 检测挑战结果取自:COCO-常见的常见对象。2016.检测排行榜【网站】mscoco.org。可用:http://mscoco.org/dataset/#detections-leaderboard【访问时间:2017 年 5 月 1 日】。**
[39] ImageNet。2016.[在线] 研讨会演示文稿,幻灯片 31。可用:http://image-net . org/challenges/talks/2016/eccv 2016 _ ils vrc _ coco _ detection _ segmentation . pdf【访问时间:06/01/2017】。
[40] Bertinetto 等人,2016 年。用于目标跟踪的全卷积暹罗网络。【在线】arXiv: 1606.09549 。可用:https://arxiv.org/abs/1606.09549v2**
**[41]赫尔德等人,2016 年。学习用深度回归网络以 100 FPS 跟踪。【在线】arXiv: 1604.01802 。可用:【https://arxiv.org/abs/1604.01802v2 ****
42 戴维·赫尔德。2016.GOTURN——一个神经网络跟踪器。【在线】YouTube.com。可用:https://www.youtube.com/watch?v=kMhwXnLgT_I【访问时间:2017 年 3 月 3 日】。**
[43] Gladh 等人,2016 年。用于视觉跟踪的深度运动特征。【在线】arXiv: 1612.06615 。可用:arXiv:1612.06615 v1**
[44] Gaidon 等人,2016 年。虚拟世界作为多目标跟踪分析的代理。【在线】arXiv: 1605.06457 。可用:arXiv:1605.06457 v1**
[45] Lee 等人,2016 年。全卷积网络的全局最优目标跟踪。【在线】arXiv: 1612.08274 。可用:arXiv:1612.08274 v1**
计算机视觉一年——第 2 部分,共 4 部分
—第二部分:细分、超分辨率/色彩/风格转换、动作识别
下面这篇文章摘自我们的研究团队最近编辑的关于计算机视觉领域的出版物。第一和第二部分目前可以通过我们的网站获得,其余部分(第三和第四部分)将在不久的将来发布。
未来几周将在我们的网站上免费提供完整的出版物,第 1-2 部分现在可以通过:【www.themtank.org】获得
我们鼓励读者通过我们自己的网站来查看这篇文章,因为我们包括嵌入的内容和简单的导航功能,使报告尽可能地动态。我们的网站不会给团队带来任何收入,只是为了让读者尽可能地感受到这些材料的吸引力和直观性。我们竭诚欢迎对演示的任何反馈!
请关注、分享和支持我们的工作,无论你喜欢的渠道是什么(请尽情鼓掌!).如有任何问题或想了解对未来作品的潜在贡献,请随时联系编辑:info@themtank.com
分割
计算机视觉的核心是分割过程,它将整个图像分成像素组,然后对这些像素组进行标记和分类。此外,语义分割更进一步,试图从语义上理解图像中每个像素的作用,例如,它是猫、汽车还是其他类型的类别?实例分割通过对不同的类实例进行分割,例如用三种不同的颜色标记三只不同的狗,从而进一步发展了这一点。这是目前自动驾驶技术套件中采用的大量计算机视觉应用之一。
也许,细分领域的一些最佳改进来自 FAIR,他们从 2015 年开始继续建立他们的 DeepMask 工作[46]。DeepMask 在对象上生成粗糙的“遮罩”,作为分割的初始形式。2016 年,Fair 推出了 SharpMask[47],它细化了 DeepMask 提供的‘masks’,纠正了细节的损失,改善了语义分割。除此之外,MultiPathNet[48]还识别每个掩膜所描绘的对象。
"要捕捉一般的物体形状,你必须对你正在看的东西有一个高层次的理解(深度蒙版),但是要精确地放置边界,你需要回顾低层次的特征,一直到像素(清晰度蒙版)。”—Piotr Dollar,2016。[49]
图 6: 展示公平技术的应用
Note: The above pictures demonstrate the segmentation techniques employed by FAIR. These include the application of DeepMask, SharpMask and MultiPathNet techniques which are applied in that order. This process allows accurate segmentation and classification in a variety of scenes. Source: Dollar (2016)[50]
视频传播网络【51】试图创建一个简单的模型,通过整个视频序列以及一些附加信息来传播在第一帧分配的精确对象遮罩。
2016 年,研究人员致力于寻找替代网络配置,以解决上述规模和本地化问题。DeepLab[52]就是这样一个例子,它为语义图像分割任务取得了令人鼓舞的结果。Khoreva 等人(2016 年)[53]基于 Deeplab 的早期工作(大约 2015 年),提出了一种弱监督训练方法,其结果与完全监督网络相当。
计算机视觉通过使用端到端网络进一步完善了有用信息的网络共享方法,减少了多个全方位分类子任务的计算需求。使用这种方法的两篇关键论文是:
- 100 层提拉米苏【54】是一种全卷积 DenseNet,它以前馈方式将每一层与每一层连接起来。它还可以用更少的参数和训练/处理在多个基准数据集上实现 SOTA。
- 全卷积实例感知语义分割【55】联合执行实例掩码预测和分类(两个子任务)。
COCO 分段挑战冠军 MSRA。37.3% AP。
从 2015 年 COCO 挑战赛 MSRAVC 绝对跃升 9.1%。
虽然用于实时语义分割的 DNN 架构 ENet【56】不属于这一类,但它确实证明了降低计算成本和为移动设备提供更多访问权限的商业价值。****
我们的工作希望将尽可能多的这些进步与有形的公共应用联系起来。考虑到这一点,以下包含了 2016 年细分的一些最有趣的医疗保健应用;
- 结肠镜图像腔内场景分割的基准【57】
- 用于 MRI 皮质下分割的 3D 全卷积网络:一项大规模研究【58】
- 使用去噪自动编码器的半监督学习用于脑部损伤检测和分割【59】
- 三维超声图像分割综述【60】
- 一种基于全卷积神经网络的结构化预测方法,用于视网膜血管分割【61】
- 用于胶质母细胞瘤分割的三维卷积神经网络【62】
我们最喜欢的准医学分割应用之一是fusion net[63]——一种用于连接组学[64]中图像分割的深度完全残差卷积神经网络,以 SOTA 电子显微镜(EM)分割方法为基准。****
Semantic Segmentation applied to street views from a car
超高分辨率、风格转移和着色
并非所有的计算机视觉研究都是为了扩展机器的伪认知能力,通常,神经网络以及其他人工智能技术的虚构延展性有助于其他各种各样的新应用进入公共领域。去年在超分辨率、风格转换和色彩方面的进步占据了我们的空间。
超分辨率指的是从低分辨率图像估计高分辨率图像的过程,也是预测不同放大倍数下的图像特征,这是人类大脑几乎可以毫不费力地做到的事情。最初,超分辨率是通过双三次插值和最近邻等简单技术实现的。就商业应用而言,克服源自源质量的低分辨率限制和实现“CSI Miami”风格的图像增强的愿望推动了该领域的研究。以下是今年的一些进展及其潜在影响:
- Neural Enhance【65】是 Alex J. Champandard 的创意,结合了四篇不同研究论文的方法来实现其超分辨率方法。
实时视频超分辨率在 2016 年也有两次值得注意的尝试;[66], [67]
- RAISR: 谷歌的快速准确图像超分辨率[68]通过用低分辨率和高分辨率图像对训练过滤器,避免了神经网络方法的高成本内存和速度要求。RAISR 作为一个基于学习的框架,比竞争算法快两个数量级,并且与基于神经网络的方法相比,具有最小的内存需求。因此,超分辨率可扩展到个人设备。这里有个研究博客。[69]
图 7: 超分辨率 SRGAN 示例
Note: From left to right: bicubic interpolation (the objective worst performer for focus), Deep residual network optimised for MSE, deep residual generative adversarial network optimized for a loss more sensitive to human perception, original High Resolution (HR) image. Corresponding peak signal to noise ratio (PSNR) and structural similarity (SSIM) are shown in two brackets. [4 x upscaling] The reader may wish to zoom in on the middle two images (SRResNet and SRGAN) to see the difference between image smoothness vs more realistic fine details.
Source: Ledig et al. (2017) [70]
生成对抗网络(GANs)的使用代表了超分辨率的当前 SOTA:
- SRGAN [71]使用经过训练的鉴别器网络来区分超分辨率和原始照片级逼真图像,在公共基准上从严重欠采样的图像中提供照片级逼真纹理。
从质量上来说,SRGAN 表现最好,尽管 SRResNet 在峰值信噪比(PSNR)度量方面表现最好,但 SRGAN 获得了更精细的纹理细节,并获得了最好的平均意见得分(MOS)。据我们所知,这是第一个能够推断出 4 倍放大因子的照片级自然图像的框架【72】所有之前的方法都无法在大的放大因子下恢复更精细的纹理细节。
- 图像超分辨率的缓冲 MAP 推断【73】提出了一种使用卷积神经网络计算最大后验概率(MAP)推断的方法。然而,他们的研究提出了三种优化方法,目前 GANs 在真实图像数据上的表现都明显更好。
图 8 :尼库林&诺瓦克风格转移
Note: Transferring different styles to a photo of a cat (original top left).
Source: Nikulin & Novak (2016)
毫无疑问, Style Transfer 体现了神经网络的一种新用途,这种用途已经退入公共领域,特别是通过去年的 facebook 整合以及 Prisma [74]和 Artomatix [75]等公司。风格转移是一种更古老的技术,但在 2015 年随着艺术风格的神经算法的发表而转化为神经网络[76]。从那以后,风格转换的概念被 Nikulin 和 Novak [77]扩展,并应用于视频[78],这是计算机视觉中的常见进展。
图 9 :风格转移的进一步示例
Note: The top row (left to right) represent the artistic style which is transposed onto the original images which are displayed in the first column (Woman, Golden Gate Bridge and Meadow Environment). Using conditional instance normalisation a single style transfer network can capture 32 style simultaneously, five of which are displayed here. The full suite of images in available in the source paper’s appendix. This work will feature in the International Conference on Learning Representations (ICLR) 2017.
Source: Dumoulin et al. (2017, p. 2) [79]
一旦形象化,风格转移作为一个主题是相当直观的;拿一幅图像,想象它具有不同图像的风格特征。例如,以著名绘画或艺术家的风格。今年脸书发布了 Caffe2Go,[80]他们的深度学习系统集成到移动设备中。谷歌还发布了一些有趣的作品,试图融合多种风格来产生完全独特的图像风格:研究博客[81]和全文[82]。
除了移动集成,风格转移在游戏资产的创建中也有应用。我们团队的成员最近看了 Artomatix 的创始人兼首席技术官 Eric Risser 的演示,他讨论了该技术在游戏内容生成方面的新颖应用(纹理突变等)。)并因此极大地减少了传统纹理艺术家的工作。
着色是将单色图像转变为新的全彩色图像的过程。最初,这是由人们手工完成的,他们煞费苦心地选择颜色来代表每幅图像中的特定像素。2016 年,这一过程实现了自动化,同时保持了以人为中心的着色过程的真实感。虽然人类可能不能准确地表现给定场景的真实颜色,但是他们的真实世界知识允许以与图像和观看所述图像的另一个人一致的方式来应用颜色。
着色的过程很有趣,因为网络根据对物体位置、纹理和环境的理解为图像分配最可能的颜色,例如,它知道皮肤是粉红色的,天空是蓝色的。
在我们看来,今年最有影响力的三部作品如下:
- 张等人发明了一种方法,能够在 32%的实验中成功愚弄人类。他们的方法堪比“着色图灵测试”[83]
- Larsson 等人[84]使用深度学习进行直方图估计,使他们的图像着色系统完全自动化。
- 最后,Lizuka、Simo-Serra 和 Ishikawa [85]展示了一个同样基于 CNN 的着色模型。这项工作超过了现有的 SOTA,我们[团队]觉得这项工作在质量上也是最好的,似乎是最现实的。图 10 提供了比较,但是图像取自 Lizuka 等人的文章。
图 10 :着色研究对比
Note: From top to bottom — column one contains the original monochrome image input which is subsequently colourised through various techniques. The remaining columns display the results generated by other prominent colourisation research in 2016. When viewed from left to right, these are Larsson et al. [84] 2016 (column two), Zhang et al. [83] 2016 (Column three), and Lizuka, Simo-Serra and Ishikawa. [85] 2016, also referred to as “ours” by the authors (Column four). The quality difference in colourisation is most evident in row three (from the top) which depicts a group of young boys. We believe Lizuka et al.’s work to be qualitatively superior (Column four). Source: Lizuka et al. 2016 [86]
此外,我们的架构可以处理任何分辨率的图像,不像大多数现有的基于 CNN 的方法。
在一项测试中,为了了解他们的色彩有多自然,用户从他们的模型中随机抽取一张图片,并被问及“你觉得这张图片看起来自然吗?”
他们的方法达到了 92.6%,基线达到了大约 70%,地面真实(实际的彩色照片)在 97.7%的时间里被认为是自然的。
动作识别
动作识别的任务指的是给定视频帧内动作的分类,以及最近的算法,该算法可以预测动作发生前仅给定几帧的交互的可能结果。在这方面,我们看到最近的研究试图将上下文嵌入算法决策,类似于计算机视觉的其他领域。这一领域的一些重要论文包括:
- 动作识别的长期时间卷积【87】利用人类动作的时空结构,即特定的运动和持续时间,使用 CNN 变体正确识别动作。为了克服细胞神经网络对长期动作的次优时间建模,作者提出了一种具有长期时间卷积的神经网络(LTC-CNN)来提高动作识别的准确性。简而言之,LTCs 可以查看视频的更大部分来识别动作。他们的方法使用并扩展了 3D CNNs,“能够在更完整的时间尺度上表现动作”。
"我们报告了两个具有挑战性的人体动作识别基准 UCF101 (92.7%)和 HMDB51 (67.2%)的最新结果。”
- 用于视频动作识别的时空残差网络 [88]将双流 CNN 的变体应用于动作识别任务,该网络结合了传统 CNN 方法和最近流行的残差网络(ResNets)的技术。双流方法的灵感来自视觉皮层功能的神经科学假设,即不同的路径识别物体的形状/颜色和运动。作者通过在两个 CNN 流之间注入剩余连接,结合了 ResNets 的分类优势。
"每个流最初独立执行视频识别,对于最终分类,softmax 分数通过后期融合进行组合。迄今为止,这种方法是将深度学习应用于动作识别的最有效方法,尤其是在训练数据有限的情况下。在我们的工作中,我们直接将图像转换为 3D 架构,并显示出比双流基线有很大提高的性能。”—在 UCF101 上为 94%,在 HMDB51 上为 70.6%。Feichtenhofer 等人对传统的改进密集轨迹(iDT)方法进行了改进,并通过使用这两种技术产生了更好的结果。
- 从未标记的视频中预测视觉表示【89】是一篇有趣的论文,尽管不是严格的动作分类。该计划预测的行动,很可能会发生给定一系列的视频帧前一秒钟的行动。该方法使用视觉表示,而不是逐像素分类,这意味着通过利用深度神经网络的特征学习属性,程序可以在没有标记数据的情况下运行[90]。
我们方法背后的关键思想是,我们可以训练深度网络来预测未来图像的视觉表现。视觉表示是一个有前途的预测目标,因为它们在比像素更高的语义级别上编码图像,但却是自动计算的。然后,我们将识别算法应用于我们预测的表示,以预测对象和动作。
Thumos 动作识别挑战赛的组织者发布了一篇论文,描述了过去几年中动作识别的一般方法。本文还概述了 2013 年至 2015 年的挑战、挑战的未来方向以及如何通过动作识别让计算机更全面地理解视频的想法。我们希望图莫斯行动认可挑战赛在(似乎)意外中断后于 2017 年回归。
跟随我们下期关于媒体的简介——第 3 部分,共 4 部分:走向对世界的 3D 理解。
请随意将所有反馈和建议放在评论区,我们会尽快回复。或者,您可以通过以下方式直接联系我们:info@themtank.com
完整版本可在:www.themtank.org/a-year-in-computer-vision获得
非常感谢,
M 坦克
按出现顺序排列的参考文献
[46]皮涅罗、科洛波特和多勒。2015.学习分割候选对象。【在线】arXiv: 1506.06204 。可用:arXiv:1506.06204 v2**
[47]皮涅罗等人,2016 年。学习细化对象段。【在线】arXiv: 1603.08695 。可用:arXiv:1603.08695 v2**
[48] Zagoruyko,S. 2016 年。用于目标检测的多路径网络。【在线】arXiv: 1604.02135v2. 可用:arXiv:1604.02135 v2**
[49]美元,第 2016 页。学习分段。【博客】交易会。可用:https://research.fb.com/learning-to-segment/**
[50]美元,第 2016 页。用 SharpMask 分割和细化图像。【在线】脸书码。可用:https://code . Facebook . com/posts/561187904071636/segmented-and-refining-images-with-sharp mask/**
[51] Jampani 等人,2016 年。视频传播网络。【在线】arXiv: 1612.05478 。可用:arXiv:1612.05478 v2**
[52]陈等,2016。DeepLab:使用深度卷积网络、阿特鲁卷积和全连接 CRF 的语义图像分割。【在线】arXiv: 1606.00915 。可用:arXiv:1606.00915 v1**
[53] Khoreva 等人,2016 年。简单易行:弱监督实例和语义分割。【在线】arXiv: 1603.07485v2. 可用:arXiv:1603.07485 v2**
[54]杰古等人,2016 年。一百层提拉米苏:用于语义分割的全卷积 DenseNets。【在线】arXiv: 1611.09326v2. 可用:arXiv:1611.09326 v2**
[55]李等 2016。完全卷积的实例感知语义分割。【在线】arXiv: 1611.07709v1 。可用:arXiv:1611.07709 v1**
[56] Paszke 等人,2016 年。ENet:一种用于实时语义分割的深度神经网络架构。【在线】arXiv: 1606.02147v1 。可用:arXiv:1606.02147 v1**
[57]巴斯克斯等人,2016 年。结肠镜图像腔内场景分割的基准。【在线】arXiv: 1612.00799 。可用:arXiv:1612.00799 v1**
[58] Dolz 等人,2016 年。MRI 皮质下分割的 3D 全卷积网络:一项大规模研究。【在线】arXiv: 1612.03925 。可用:arXiv:1612.03925 v1**
[59]亚历克斯等人,2017 年。使用去噪自动编码器的半监督学习用于脑损伤检测和分割。【在线】arXiv: 1611.08664 。可用:arXiv:1611.08664 v4**
[60]莫扎法里和李。2016.三维超声图像分割综述。【在线】arXiv: 1611.09811 。可用:arXiv:1611.09811 v1**
61 达斯古普塔和辛格。2016.基于全卷积神经网络的视网膜血管分割结构化预测方法。【在线】arXiv: 1611.02064 。可用:arXiv:1611.02064 v2**
[62]易等 2016。用于胶质母细胞瘤分割的三维卷积神经网络。【在线】arXiv: 1611.04534 。可用:arXiv:1611.04534 v1**
[63]全等 2016。FusionNet:用于连接组学中图像分割的深度全残差卷积神经网络。【在线】arXiv: 1612.05360 。可用:arXiv:1612.05360 v2**
[64]连接组学是指绘制生物神经系统内的所有连接,即神经元及其连接。
[65]尚标准,美国法学家委员会,2017 年。神经增强(2016 年 11 月 30 日最新提交)。【在线】Github 。可用:https://github.com/alexjc/neural-enhance【访问时间:2017 年 11 月 2 日】**
[66] Caballero 等人,2016 年。基于时空网络和运动补偿的实时视频超分辨率。【在线】arXiv: 1611.05250 。可用:arXiv:1611.05250 v1**
[67]石等,2016。使用有效的亚像素卷积神经网络的实时单幅图像和视频超分辨率。【在线】arXiv: 1609.05158 。可用:arXiv:1609.05158 v2**
[68]罗马诺等人,2016 年。RAISR:快速准确的图像超分辨率。【在线】arXiv: 1606.01299 。可用:arXiv:1606.01299 v3**
[69]米兰法尔,第 2016 页。增强!通过机器学习提高清晰图像。【博客】谷歌研究博客。可用:https://research . Google blog . com/2016/11/enhance-raisr-sharp-images-with-machine . html【访问时间:20/03/2017】。**
70 同上
[71]莱迪格等人,2017 年。使用生成对抗网络的照片级单幅图像超分辨率。【在线】arXiv: 1609.04802 。可用:arXiv:1609.04802 v3**
72 同上
[73]s nderby 等人,2016 年。图像超分辨率的缓冲 MAP 推理。【在线】arXiv: 1610.04490 。可用:arXiv:1610.04490 v1**
[74]普里斯马。2017.【网址】Prisma 。可用:https://prisma-ai.com/【访问时间:2017 年 01 月 04 日】。**
75 arto matix。2017.【网址】Artomatix 。可用:【https://services.artomatix.com/ 【访问时间:2017 年 1 月 4 日】。**
[76] Gatys 等人,2015 年。艺术风格的神经算法。【在线】arXiv: 1508.06576 。可用:arXiv:1508.06576 v2**
[77]尼库林&诺瓦克。2016.探索艺术风格的神经算法。【在线】arXiv: 1602.07188 。可用:arXiv:1602.07188 v2**
[78] Ruder 等人,2016 年。视频的艺术风格转换。【在线】arXiv: 1604.08610 。可用:arXiv:1604.08610 v2**
79 同上
[80]贾和瓦杰达。2016.在您的手掌中交付实时人工智能。【在线】脸书电码。可用:https://code . Facebook . com/posts/196146247499076/delivering-real-time-in-the-palm-of-your-hand/【访问时间:2017 年 1 月 20 日】。**
[81] Dumoulin 等人,2016 年。增压风格转移。【在线】谷歌研究博客。可用:https://research . Google blog . com/2016/10/supercing-style-transfer . html【访问时间:20/01/2017】。**
[82] Dumoulin 等人,2017 年。艺术风格的学术表现。【在线】arXiv: 1610.07629 。可用:arXiv:1610.07629 V5**
[83]张等,2016。彩色图像彩色化。【在线】arXiv: 1603.08511 。可用:arXiv:1603.08511 V5**
[84] Larsson 等人,2016 年。自动着色的学习表示。【在线】arXiv: 1603.06668 。可用:arXiv:1603.06668 v2**
**[85] Lizuka,Simo-Serra 和 Ishikawa。2016.要有色彩!:用于具有同时分类的自动图像彩色化的全局和局部图像先验的联合端到端学习。【在线】图形上的 ACM 事务(Proc。SIGGRAPH 的),35(4):110 。可用:【http://hi.cs.waseda.ac.jp/~iizuka/projects/colorization/en/ ****
86 同上
[87] Varol 等人,2016 年。动作识别的长时卷积。【在线】arXiv: 1604.04494 。可用:arXiv:1604.04494 v1**
[88] Feichtenhofer 等人,2016 年。用于视频动作识别的时空残差网络。【在线】arXiv: 1611.02155 。可用:arXiv:1611.02155 v1**
[89] Vondrick 等人,2016 年。预测来自未标记视频的视觉表示。【在线】arXiv: 1504.08023 。可用:arXiv:1504.08023 v2**
[90]康纳-西蒙斯,a .,戈登,R. 2016 年。教机器预测未来。【在线】麻省理工新闻。可用:https://news . MIT . edu/2016/teaching-machines-to-predict-the-future-0621【访问时间:03/02/2017】。**
[91] Idrees 等人,2016 年。“野外”视频动作识别的 THUMOS 挑战赛。【在线】arXiv: 1604.06182 。可用:arXiv:1604.06182 v1**
计算机视觉一年——第 3 部分,共 4 部分
—第三部分:走向对世界的三维理解
下面这篇文章摘自我们的研究团队最近编辑的关于计算机视觉领域的出版物。第一、第二和第三部分目前可以通过我们的网站获得,剩下的第四部分将于下周一发布。
未来几周,完整的出版物将在我们的网站上免费提供,第 1-3 部分现在可通过:【www.themtank.org】获得
我们鼓励读者通过我们自己的网站来查看这篇文章,因为我们包括嵌入的内容和简单的导航功能,使报告尽可能地动态。我们的网站不会给团队带来任何收入,只是为了让读者尽可能地感受到这些材料的吸引力和直观性。我们竭诚欢迎对演示的任何反馈!
请关注、分享和支持我们的工作,无论你喜欢的渠道是什么(请尽情鼓掌!).如有任何问题或想了解对未来作品的潜在贡献,请随时联系编辑:info@themtank.com
介绍
计算机视觉的一个关键目标是从世界的 2D 观测中恢复潜在的 3D 结构。”—Rezende 等人(2016,第 1 页)[92]
如我们所见,在计算机视觉中,场景、物体和活动的分类,以及边界框和图像分割的输出是许多新研究的焦点。本质上,这些方法应用计算来获得图像的 2D 空间的“理解”。然而,批评者指出,3D 理解对于系统成功解释和导航真实世界是必不可少的。
例如,一个网络可以在一幅图像中找到一只猫,给它的所有像素着色,并将其归类为一只猫。但是,在猫的环境背景下,网络是否完全理解图像中的猫在哪里?
有人可能会说,计算机从上述任务中学到的关于 3D 世界的知识很少。与此相反,即使在检查 2D 图片时,人类也理解 3D 世界,即透视、遮挡、深度、场景中的对象如何相关等。将这些 3D 表示及其相关知识传授给人工系统代表了计算机视觉的下一个伟大前沿之一。这样想的一个主要原因是,一般来说;
场景的 2D 投影是组成场景的摄像机、灯光和对象的属性和位置的复杂函数。如果具有 3D 理解能力,代理可以从这种复杂性中抽象出来,形成稳定、清晰的表示,例如,在不同的光照条件下,或者在部分遮挡的情况下,识别出椅子是椅子,无论是从上面还是从侧面看。【93】
然而,3D 理解传统上面临几个障碍。第一个问题涉及“自身和正常遮挡”以及符合给定 2D 表示的大量 3D 形状。由于无法将相同结构的不同图像映射到相同的 3D 空间,以及在处理这些表示的多模态时,理解问题进一步复杂化[94]。最后,地面实况 3D 数据集传统上非常昂贵且难以获得,当与用于表示 3D 结构的不同方法结合时,可能导致训练限制。
我们认为在这一领域开展的工作值得关注。从未来 AGI 系统和机器人的早期理论应用,到增强、虚拟和混合现实中令人着迷的沉浸式应用,这些应用将在不久的将来影响我们的社会。我们谨慎地预测,由于利润丰厚的商业应用,计算机视觉领域将呈指数级增长,这意味着很快计算机可能会开始推理世界,而不仅仅是像素。
3D 对象
该第一部分是分散的,充当应用于用 3D 数据表示的对象的计算、从 2D 图像推断 3D 对象形状和姿态估计的总括;从 2D 图像确定物体的 3D 姿态的变换[95]。重建的过程也在下一节明确讨论它之前悄悄进行。但是,考虑到这几点,我们将展示在这一领域最让我们团队兴奋的工作:
- OctNet:在高分辨率下学习深度 3D 表示 [96]延续了卷积网络的最新发展,卷积网络使用 3D 卷积对 3D 数据或体素(类似于 3D 像素)进行操作。OctNet 是“一种新颖的 3D 表示,它使具有高分辨率输入的深度学习变得易于处理”。作者通过“分析分辨率对几个 3D 任务的影响,包括 3D 对象分类、方向估计和点云标记”来测试 OctNet 表示这篇论文的主要贡献是利用了 3D 输入数据的稀疏性,从而能够更有效地利用内存和计算。
- ObjectNet3D:用于 3D 对象识别的大规模数据库【97】——为 3D 对象识别提供数据库,呈现 100 个对象类别的 2D 图像和 3D 形状。*我们数据库中[取自 ImageNet]的图像中的对象与[取自 ShapeNet 存储库]的 3D 形状对齐,这种对齐为每个 2D 对象提供了精确的 3D 姿势注释和最接近的 3D 形状注释。*基线实验包括:区域建议生成、2D 目标检测、联合 2D 检测和三维目标姿态估计,以及基于图像的三维形状检索。
- 3D-R2N2:单视图和多视图 3D 对象重建的统一方法【98】—使用来自任意视点的对象实例的单个或多个图像,以 3D 占据网格的形式创建对象的重建从对象的图像到 3D 形状的映射主要使用合成数据来学习,并且网络可以在不需要“任何图像注释或对象类别标签”的情况下进行训练和测试。该网络包括一个 2D-有线电视新闻网、一个三维卷积 LSTM(一种新创建的架构)和一个三维去卷积神经网络。这些不同的组件如何相互作用并被端到端地训练在一起,这是神经网络分层能力的完美例证。
图 11:3D-r2n 2 功能示例
Note: Images taken from Ebay (left) and an overview of the functionality of 3D-R2N2 (right). Source: Choy et al. (2016, p. 3) [99]
****来自来源的注释:我们[作者]希望重建的对象的一些样本图像——注意视图被一个大基线分开,对象的外观显示很少纹理和/或非朗伯的。(b)我们提出的 3D-R2N2 的概述:该网络将来自任意(未校准)视点的图像序列(或仅仅一个图像)作为输入(在该示例中,扶手椅的 3 个视图),并生成体素化的 3D 重建作为输出。随着网络看到对象的更多视图,重建被逐渐细化。
3D-R2N2 使用 ShapeNet 模型生成“渲染图像和体素化模型”,并在运动结构(SfM)和同步定位和映射(SLAM)方法通常失败的情况下促进 3D 对象重建:
我们的大量实验分析表明,我们的重建框架 I)优于单视图重建的最新方法,ii)在传统 SFM/SLAM 方法失败的情况下,能够实现对象的 3D 重建。”
- 从多个物体的 2D 视图进行的 3D 形状归纳【100】使用“投影生成对抗网络”(PRG ans),其训练深度生成模型,允许 3D 形状的精确表示,鉴别器仅显示 2D 图像。投影模块捕获 3D 表示,并在传递到鉴别器之前将它们转换成 2D 图像。通过迭代训练循环,生成器通过改进其生成的 3D 体素形状来改进投影。
图 12 : PrGAN 架构段
Note from source: The PrGAN architecture for generating 2D images of shapes. A 3D voxel representation (323) and viewpoint are independently generated from the input z (201-d vector). The projection module renders the voxel shape from a given viewpoint (θ, φ) to create an image. The discriminator consists of 2D convolutional and pooling layers and aims to classify if the input image is generated or real.
Source: Gadhelha et al. (2016, p. 3) [101]
以这种方式,推理能力是通过无监督的环境学习的:
投影模块的添加使我们能够在学习阶段不使用任何 3D、视点信息或注释的情况下推断基本的 3D 形状分布。
此外,形状的内部表示可以插值,这意味着体素形状的离散共性允许从对象到对象的变换,例如从汽车到飞机。
- 图像三维结构的无监督学习 [102]提出了一个完全无监督的生成模型,首次证明了“学习推断世界三维表示的可行性”。简而言之,DeepMind 团队提出了一个模型,该模型“学习 3D 结构的强大深度生成模型,并通过概率推理从 3D 和 2D 图像中恢复这些结构”,这意味着输入可以是 3D 和 2D。
DeepMind 的强大生成模型运行在体积和基于网格的表示上。在 OpenGL 中使用基于网格的表示允许内置更多的知识,例如,光如何影响场景和使用的材料。使用基于 3D 网格的表示,并在循环中使用成熟的黑盒渲染器进行训练,可以学习物体的颜色、材料和纹理、灯光位置以及其他物体之间的相互作用[103]
模型质量高,捕捉不确定性,并服从概率推理,允许在 3D 生成和模拟中的应用。该团队在 3D MNIST 和 ShapeNet 上实现了第一个 3D 密度建模的定量基准。这种方法表明,模型可以在 2D 图像上进行端到端的无监督训练,不需要地面真实的 3D 标签。
人体姿态估计和关键点检测
人体姿态估计试图找到人体部分的方向和配置。2D 人体姿态估计或关键点检测通常指的是定位人体的身体部位,例如找到膝盖、眼睛、脚等的 2D 位置。
然而,3D 姿态估计通过找到身体部位在 3D 空间中的方向而更进一步,然后可以执行形状估计/建模的可选步骤。在过去的几年里,这些子领域已经有了巨大的进步。
在竞争评估方面"COCO 2016 关键点挑战包括同时检测人和定位他们的关键点 "[104]。欧洲计算机视觉公约(ECCV) [105]提供了关于这些主题的更广泛的文献,但是我们想强调:
- 使用部分亲和场的实时多人 2D 姿态估计。[106]
这种方法以 60%的平均精度(AP)在首届 MSCOCO 2016 关键点挑战赛上创造了 SOTA 的表现,并在 ECCV 获得了最佳演示奖,视频:视频【107】
Realtime Multi-Person 2D Human Pose Estimation using Part Affinity Fields, CVPR 2017 Oral
- 保持 SMPL:从单一图像自动估计三维人体姿态和形状【108】。该方法首先预测 2D 身体关节位置,然后使用另一个称为 SMPL 的模型来创建 3D 身体形状网格,这允许它理解 2D 姿势估计的 3D 方面。3D 网格能够捕捉姿态和形状,而以前的方法只能找到 2D 人的姿态。作者在这里提供了他们工作的精彩视频分析::视频 [109]
SMPLify: 3D Human Pose and Shape from a Single Image (ECCV 2016)
我们描述了第一种从单幅无约束图像中自动估计人体的 3D 姿态及其 3D 形状的方法。我们估计了一个完整的 3D 网格,并显示仅 2D 关节就携带了惊人数量的关于身体形状的信息。这个问题很有挑战性,因为人体、关节、遮挡、服装、照明的复杂性,以及从 2D 推断 3D 的固有模糊性【110】。
重建
如前所述,前一节介绍了一些重建的例子,但一般侧重于对象,特别是它们的形状和姿态。虽然其中一些是技术上的重建,但是该领域本身包括许多不同类型的重建,例如场景重建、多视图和单视图重建、运动结构(SfM)、SLAM 等。此外,一些重建方法利用额外的(和多个)传感器和设备,例如事件或 RGB-D 相机,并且通常可以将多种技术分层以推动进展。
结果呢?整个场景可以无拘无束地重建,并随时间和空间而变化,例如,你自己和你的动作的高保真重建,实时更新。
如前所述,围绕 2D 图像到 3D 空间的映射仍然存在问题。以下论文介绍了大量创建高保真实时重建的方法:
- Fusion4D:挑战场景的实时性能捕捉【111】转向计算机图形领域,然而,计算机视觉和图形之间的相互作用不能被夸大。作者的方法使用 RGB-D 和分割作为输入,以形成使用体素输出的实时多视图重建。
图 13 :实时进给的融合 4D 实例
Note from source: “We present a new method for real-time high quality 4D (i.e. spatio-temporally coherent) performance capture, allowing for incremental non-rigid reconstruction from noisy input from multiple RGBD cameras. Our system demonstrates unprecedented reconstructions of challenging non-rigid sequences, at real-time rates, including robust handling of large frame-to-frame motions and topology changes.”
资料来源:窦等(2016 年第 1 期)[112]
Fusion4D 创建实时、高保真的体素表示,在虚拟现实、增强现实和远程呈现中具有令人印象深刻的应用。微软的这项工作很可能会给运动捕捉带来革命性的变化,很可能是在体育直播中。该技术在实时应用中的一个例子如下:视频 [113]
Fusion4D: Real-time Performance Capture of Challenging Scenes
holoportation: virtual 3D teleportation in real-time (Microsoft Research)
- 使用事件摄像机进行实时 3D 重建和 6 自由度跟踪【115】在 2016 年欧洲计算机视觉大会(ECCV)上获得最佳论文。作者提出了一种新的算法,能够使用单个事件摄像机实时跟踪 6D 运动和各种重建。
图 14 :实时三维重建示例
Note from source: Demonstrations in various settings of the different aspects of our joint estimation algorithm. (a) visualisation of the input event stream; (b) estimated gradient keyframes; © reconstructed intensity keyframes with super resolution and high dynamic range properties; (d) estimated depth maps; (e) semi-dense 3D point clouds. Source: Kim et al. (2016, p. 12) [116]
与传统摄像机相比,事件摄像机因其更短的延迟、更低的功耗和更高的动态范围而受到计算机视觉研究人员的青睐。事件摄像机输出的不是常规摄像机输出的帧序列,而是"一串异步尖峰,每个尖峰都有像素位置、符号和精确的定时,指示各个像素何时记录阈值对数强度变化。【117】
有关事件摄像机功能、实时 3D 重建和 6 自由度跟踪的解释,请参见本文随附的视频:视频【118】
Real-Time 3D Reconstruction and 6-DoF Tracking with an Event Camera
当考虑到使用单个视点所涉及的实时图像渲染和深度估计时,这种方法令人难以置信:
我们提出了一种方法,该方法可以从单个手持事件摄像机执行实时 3D 重建,而无需额外的感测,并且在没有先验知识的非结构化场景中工作。
- 用于单视图深度估计的无监督 CNN:拯救的几何学【119】提出了一种用于训练深度 CNN 的无监督方法,用于单视图深度预测,其结果可与使用监督方法的 SOTA 相比。用于单视图深度预测的传统深度 CNN 方法需要大量人工标记的数据,然而无监督方法通过消除这种必要性再次证明了它们的价值。作者通过使用立体声装备,以类似于自动编码器的方式训练网络,实现了这一点。
其他未分类的 3D
- im2 CAD【120】描述了将“图像转换为 CAD 模型”的过程,CAD 是指计算机辅助设计,这是一种用于为建筑描绘、工程、产品设计和许多其他领域创建 3D 场景的重要方法。
"给定一张房间的照片和一个大型家具 CAD 模型数据库,我们的目标是重建一个尽可能与照片中描绘的场景相似的场景,并由从数据库中提取的对象组成。
作者介绍了一个自动系统,它“迭代优化对象的位置和比例”,以最佳匹配来自真实图像的输入。使用深度 CNN 训练的度量,渲染的场景对照原始图像进行验证。
图十五:im2 CAD 渲染卧室场景示例
Note : Left: input image. Right: Automatically created CAD model from input.
Note from source: The reconstruction results. In each example the left image is the real input image and the right image is the rendered 3D CAD model produced by IM2CAD.
Source: Izadinia et al. (2016, p. 10) [121]
为什么要在意 IM2CAD?作者解决的问题是劳伦斯·罗伯茨在 1963 年展示的技术的第一个有意义的进步之一,该技术允许使用已知对象数据库从照片中推断 3D 场景,尽管是在非常简单的线条画的情况下。
尽管罗伯特的方法很有远见,但半个多世纪以来对计算机视觉的后续研究仍然没有导致他的方法在现实图像和场景上可靠工作的实际扩展。”
作者介绍了该问题的一个变体,旨在使用从 3D 对象模型数据库中获取的对象来重建照片中的高保真场景。**
im2 CAD 背后的流程相当复杂,包括:
- 一个完全卷积的网络,被端到端地训练以找到用于房间几何估计的几何特征。
- 用于目标检测的快速 R-CNN。
- 在图像中找到对象后,CAD 模型对准完成,以在 ShapeNet 存储库中找到与检测到的对象最接近的模型。例如,椅子的类型、给定的形状和近似的 3D 姿势。将每个 3D 模型渲染到 32 个视点,然后将其与在使用深度特征的对象检测中生成的边界框进行比较[122]。
- 场景中的对象放置
- 最后,场景优化通过优化渲染场景和输入图像的相机视图之间的视觉相似性来进一步改进对象的放置。
在这个领域,ShapeNet 再次证明了其价值:
"首先,我们利用 ShapeNet,它包含数百万个物体的 3D 模型,包括数千种不同的椅子、桌子和其他家居用品。这个数据集是 3D 场景理解研究的游戏改变者,也是我们工作的关键。
- 学习视频中的运动模式【123】提出使用合成视频序列来教导网络,以解决独立于摄像机运动确定物体运动的问题。“我们方法的核心是一个完全卷积的网络,它完全从合成视频序列及其真实光流和运动分割中学习。“作者在名为 DAVIS、【124】的新运动对象分割数据集以及 Berkeley 运动分割数据集上测试了他们的方法,并在两个数据集上实现了 SOTA。
- 深度图像单应性估计【125】来自 Magic Leap 团队,这是一家秘密的美国初创公司,从事计算机视觉和混合现实领域的工作。作者将单应性估计的任务重新分类为“一个学习问题”,并提出了形成“单应性网络的两种深度 CNN 架构:直接估计实值单应性参数的回归网络,以及产生量化单应性分布的分类网络。
术语单应来自射影几何,指的是一种将一个平面映射到另一个平面的变换。从一对图像中估计 2D 单应性是计算机视觉中的一项基本任务,也是单目 SLAM 系统的重要组成部分。
作者还提供了一种从现有的真实图像数据集(如 MS-COCO)中产生“看似无限的数据集”的方法,这抵消了更深层网络的一些数据需求。他们设法通过将随机投影变换应用于大型图像数据集来创建几乎无限数量的标记训练样本。**
- gvnn:几何计算机视觉的神经网络库【126】为 Torch 引入了一个新的神经网络库,Torch 是一个流行的机器学习计算框架。Gvnn 旨在“弥合经典几何计算机视觉和深度学习之间的差距”。gvnn 库允许开发者将几何能力添加到他们现有的网络和训练方法中。
在这项工作中,我们构建了最初在空间变换网络中提出的 2D 变换层,并提供了各种新颖的扩展来执行几何计算机视觉中经常使用的几何变换。
**“这开启了 3D 几何变换的学习不变性在位置识别、端到端视觉里程计、深度估计和通过针对图像重建误差的参数变换的扭曲的无监督学习中的应用。”
3D 求和与 SLAM
在本节中,我们将在 3D 理解领域大展拳脚,主要关注姿态估计、重建、深度估计和单应性。但是有更多的优秀作品我们不会提及,因为我们受到数量的限制。因此,我们希望为读者提供一个有价值的起点,这绝不是绝对的。
大部分突出的作品可以归入几何视觉,这通常涉及直接从图像测量现实世界的量,如距离、形状、面积和体积。我们的启发是,基于识别的任务更多地关注更高层次的语义信息,而不是几何视觉中的典型应用。然而,我们经常发现 3D 理解的这些不同领域有着千丝万缕的联系。
最大的几何问题之一是同时定位和映射(SLAM),研究人员正在考虑 SLAM 是否会成为深度学习解决的下一个问题。对深度学习的所谓“普遍性”持怀疑态度的人有很多,他们指出 SLAM 作为一种算法的重要性和功能性:
"视觉 SLAM 算法能够在追踪摄像机位置和方向的同时,构建 3D 世界地图。【127】SLAM 方法的几何估计部分目前不适合深度学习方法,端到端学习仍然不太可能。SLAM 代表了机器人学中最重要的算法之一,并且是根据来自计算机视觉领域的大量输入而设计的。这项技术已经在谷歌地图、自动驾驶汽车、谷歌 Tango [128]等增强现实设备甚至火星车等应用中找到了自己的位置。
也就是说,托马斯·马利西维茨提供了一些杰出研究人员在这个问题上的轶事聚合意见,他们同意“语义对于构建更大更好的 SLAM 系统是必要的。【129】这潜在地展示了深度学习在 SLAM 领域的未来应用前景。
我们联系了 Plink and Pointy 的联合创始人马克·卡明斯(Mark Cummins),他向我们提供了他对这个问题的想法。Mark 在牛津大学获得了大满贯技术的博士学位:
"SLAM 的核心几何估计部分通过当前的方法得到了很好的解决,但是高级语义和低级系统组件都可以从深度学习中受益。具体来说:
深度学习可以极大地提高地图语义的质量,即超越姿态或点云,全面理解地图中不同种类的对象或区域。这对于许多应用程序来说更加强大,并且也有助于一般的健壮性(例如通过更好地处理动态对象和环境变化)。
在较低的水平上,许多组件可能通过深度学习得到改进。明显的候选是位置识别/循环闭合检测/重新定位,稀疏 SLAM 方法的更好的点描述符等
总体而言,SLAM 解算器的结构可能保持不变,但组件有所改进。可以想象用深度学习做一些全新的事情,比如完全抛弃几何图形,拥有一个更加基于识别的导航系统。但对于目标是精确几何地图的系统来说,SLAM 中的深度学习可能更多地是改善组件,而不是做一些全新的事情。
综上所述,我们认为 SLAM 不太可能被深度学习完全取代。然而,随着时间的推移,这两种方法完全有可能相互补充。如果你希望了解更多关于 SLAM 及其当前 SOTA 的信息,我们全心全意地推荐 Tomasz Malisiewicz 的博客:实时 SLAM 和深度学习 vs SLAM 的未来 [130]
****更新:2018 年 1-5 月。我们之前所说的可能与最近的一些研究略有矛盾,例如:
跟随我们下期关于媒体的简介——第 4 部分,共 4 部分:ConvNet 架构、数据集、不可组合的附加内容。
请随意将所有反馈和建议放在评论区,我们会尽快回复。或者,您可以通过以下方式直接联系我们:info@themtank.com
完整版本可在:www.themtank.org/a-year-in-computer-vision获得
非常感谢,
M 坦克
按出现顺序排列的参考文献
[92] Rezende 等人,2016 年。图像三维结构的无监督学习。【在线】arXiv: 1607.00662 。可用:arXiv:1607.00662 v1**
93 同上
94 同上
[95]姿态估计可以仅指对象的方向,或者指 3D 空间中的方向和位置。
[96]里格勒等人,2016 年。OctNet:学习高分辨率的深度 3D 表示。【在线】arXiv: 1611.05009 。可用:arXiv:1611.05009 v3**
[97]向等,2016。ObjectNet3D:用于 3D 对象识别的大规模数据库。【在线】斯坦福大学(cvgl.stanford.edu)计算机视觉和几何实验室。来自:http://cvgl.stanford.edu/projects/objectnet3d/**
[98] Choy 等人,2016 年。3D-R2N2:单视图和多视图三维物体重建的统一方法。【在线】arXiv: 1604.00449 。可用:arXiv:1604.00449 v1**
【99】同上
[100] Gadelha 等人,2016 年。从多个物体的 2D 视图归纳三维形状。【在线】arXiv: 1612.058272 。可用:arXiv:1612.05872 v1**
101 同上
[102] Rezende 等人,2016 年。图像三维结构的无监督学习。【在线】arXiv: 1607.00662 。可用:arXiv:1607.00662 v1**
[103]科尔耶,2017 年。图像三维结构的无监督学习。【博客】晨报。可用:https://blog . acolyer . org/2017/01/05/unsupervised-learning-of-3d-structure-from-images/【访问时间:2017 年 4 月 3 日】。**
[104]可可。2016.欢迎参加 COCO 2016 关键点挑战赛!【网上常见】常见的对象(mscoco.org)。可用:http://mscoco.org/dataset/#keypoints-challenge2016【访问时间:27/01/2017】。**
105 ECCV。2016.网页。【在线】欧洲计算机视觉公约(【www.eccv2016.org】)。可用:http://www.eccv2016.org/main-conference/【访问时间:26/01/2017】。****
[106]曹等,2016。使用局部相似场的实时多人 2D 姿态估计。【在线】arXiv: 161108050 。可用:arXiv:1611.08050 v1**
[107]曹哲。2016.使用部分亲和场的实时多人 2D 人体姿态估计,CVPR 2017 口头。【在线】YouTube.com。可用:https://www.youtube.com/watch?v=pW6nZXeWlGM【访问时间:2017 年 04 月 03 日】。**
[108] Bogo 等人,2016 年。保持 SMPL:从单幅图像自动估计三维人体姿态和形状。【在线】arXiv: 1607.08128 。可用:arXiv:1607.08128 v1**
109 迈克尔·布莱克。2016.SMPLify:从单幅图像中获得 3D 人体姿势和形状(ECCV 2016)。【在线】YouTube.com。可用:https://www.youtube.com/watch?v=eUnZ2rjxGaE【访问时间:2017 年 04 月 03 日】。**
110 同上
[111]窦等,2016。Fusion4D:挑战场景的实时性能捕捉。【在线】SamehKhamis.com。可用:http://www.samehkhamis.com/dou-siggraph2016.pdf**
112 同上
113 微软研究院。2016.Fusion4D:挑战场景的实时性能捕捉。【在线】YouTube.com。可用:https://www.youtube.com/watch?v=2dkcJ1YhYw4&feature = youtu . be【访问时间:04/03/2017】。**
114 I3D 过去的项目。2016.全息传送:实时虚拟三维传送(微软研究院)。【在线】YouTube.com。可用:https://www.youtube.com/watch?v=7d59O6cfaM0&feature = youtu . be【访问时间:03/03/2017】。**
[115] Kim 等人,2016 年。用事件摄像机进行实时三维重建和六自由度跟踪。【在线】伦敦帝国理工学院计算机系(www . doc . IC . AC . uk)。可用:https://www . doc . IC . AC . uk/~ ajd/Publications/Kim _ et al _ ECC v2016 . pdf****
116 同上
[117] Kim 等人,2014 年。用事件摄像机同时进行镶嵌和跟踪。【在线】伦敦帝国理工学院计算机系(www . doc . IC . AC . uk)。可用:https://www . doc . IC . AC . uk/~ ajd/Publications/Kim _ et al _ bmvc 2014 . pdf**
[118]汉姆·金。2017.事件的实时三维重建和六自由度跟踪。【在线】YouTube.com。可用:https://www.youtube.com/watch?v=yHLyhdMSw7w【访问时间:2017 年 3 月 3 日】。**
[119]加尔格等人,2016 年。用于单视图深度估计的无监督 CNN:几何学拯救。【在线】arXiv: 1603.04992 。可用:arXiv:1603.04992 v2**
[120] Izadinia 等人,2016 年。IM2CAD。【在线】arXiv: 1608.05137 。可用:arXiv:1608.05137 v1**
121 同上
[122]然而更多的神经网络溢出
[123] Tokmakov 等人,2016 年。学习视频中的运动模式。【在线】arXiv: 1612.07217 。可用:arXiv:1612.07217 v1**
124 戴维斯。2017.戴维斯:密集注释的视频分割。【网站】戴维斯挑战赛。可用:http://davischallenge.org/【访问时间:27/03/2017】。**
[125]迪通等人,2016 年。深度图像单应性估计。【在线】arXiv: 1606.03798 。可用:arXiv:1606.03798 v1**
[126] Handa 等人,2016 年。几何计算机视觉的神经网络库。【在线】arXiv: 1607.07405 。可用:arXiv:1607.07405 v3**
127 马利西维茨。2016.实时 SLAM 和深度学习 vs SLAM 的未来。【博客】Tombone 的计算机视觉博客。可用:http://www . computer vision blog . com/2016/01/why-slam-matters-future-of-real-time . html【访问时间:01/03/2017】。**
[128]谷歌。2017.探戈。【网址】get.google.com。可用:https://get.google.com/tango/【访问时间:23/03/2017】。**
129 同上
130 马利西维茨。2016.实时 SLAM 和深度学习 vs SLAM 的未来。【博客】Tombone 的计算机视觉博客。可用:http://www . computer vision blog . com/2016/01/why-slam-matters-future-of-real-time . html【访问时间:01/03/2017】。**
计算机视觉一年——第 4 部分,共 4 部分
—第四部分:ConvNet 架构、数据集、不可分组的附加内容
下面这篇文章摘自我们的研究团队最近编辑的关于计算机视觉领域的出版物。所有零件现在都可以通过我们的网站以及媒体上的第 1 部分、第 2 部分和第 3 部分获得。
现在可以通过www.themtank.org在我们的网站上免费获得完整的出版物
我们鼓励读者通过我们自己的网站查看这篇文章,因为我们包括嵌入的内容和简单的导航功能,使报告尽可能动态。我们的网站不会给团队带来任何收入,只是为了让读者尽可能地感受到这些材料的吸引力和直观性。我们竭诚欢迎对演示的任何反馈!
请关注、分享和支持我们的工作,无论你喜欢的渠道是什么(请尽情鼓掌!).如有任何问题或想了解对未来作品的潜在贡献,请随时联系编辑:info@themtank.com
第四部分:ConvNet 架构、数据集、不可分组的附加内容
ConvNet 架构
ConvNet 架构最近在计算机视觉之外发现了许多新颖的应用,其中一些将在我们即将出版的出版物中介绍。然而,它们继续在计算机视觉中占据显著地位,架构的进步为本文中提到的许多应用和任务提供了速度、精度和训练方面的改进。
因此,ConvNet 架构对整个计算机视觉至关重要。以下是 2016 年一些值得注意的 ConvNet 架构,其中许多架构都是从 ResNets 最近的成功中获得灵感的。
- Inception-v4、Inception-ResNet 和剩余连接对学习的影响【131】—呈现 Inception v4,这是一个新的 Inception 架构,从 2015 年底开始建立在 Inception v2 和 v3 的基础上。[132]该论文还提供了使用剩余连接来训练初始网络以及一些剩余-初始混合网络的分析。
- 密集连接的卷积网络【133】或“DenseNets”直接从 ResNets 的身份/跳跃连接中获得灵感。该方法将这一概念扩展到 ConvNets,使每一层以前馈方式连接到每一层,共享来自先前层的特征地图作为输入,从而创建密集网络。
DenseNets 有几个引人注目的优点:它们缓解了消失梯度问题,加强了特征传播,鼓励特征重用,并大大减少了参数的数量。[134]
图 16:dense net 架构示例
Note: A 5-layer dense block with a growth rate of k = 4. Each layer takes all preceding feature-maps as input. Source: Huang et al. (2016)[135]
在 CIFAR-10、CIFAR-100、SVHN 和 ImageNet 上对模型进行了评估;它在很多方面都达到了 SOTA。令人印象深刻的是,DenseNets 实现了这些结果,同时使用更少的内存和降低的计算要求。有多个实现(Keras,Tensorflow 等)这里。[136]
- FractalNet 无残差超深度神经网络【137】—利用不同长度的交互子路径,没有直通或残差连接,而是使用滤波器和非线性变换来改变内部信号。
FractalNets 将多个平行层序列与不同数量的卷积块重复组合,以获得较大的标称深度,同时在网络中保持许多短路径。[138]
该网络在 CIFAR 和 ImageNet 上实现了 SOTA 性能,同时展示了一些附加属性。例如,他们对残差在极深网络的成功中的作用提出了质疑,同时也提供了对通过各种子网深度获得的答案的本质的洞察。
- 让我们保持简单:使用简单的架构来超越更深层次的架构【139】专注于创建一个简化的母架构。该架构在“CIFAR10/100、MNIST 和 SVHN 等数据集上实现了 SOTA 结果,或与现有方法相当,只需简单或无需数据扩充”。我们认为他们的原话是对这一动机的最好描述:
在这项工作中,我们提出了一个非常简单的 13 层完全卷积网络架构,对新功能的依赖最小,其性能优于几乎所有更深层的架构,参数减少了 2 到 25 倍。我们的架构可以成为许多场景的非常好的候选,尤其是在嵌入式设备中的应用。”
“可以使用深度压缩等方法对其进行进一步压缩,从而大幅降低其内存消耗。我们有意尝试创建一个对最近提出的新功能依赖最小的母架构,以展示一个精心制作但简单的卷积架构的有效性,该架构随后可以通过文献中介绍的现有或新方法进行增强。【140】
以下是一些补充 ConvNet 架构的附加技术:
- Swapout:学习深度架构的集合 [141]概括了丢弃和随机深度方法,以防止特定层和跨网络层的单元的共同适应。集成训练方法从包括“丢失、随机深度和剩余架构”的多个架构中采样。Swapout 在 CIFAR-10 和 CIFAR-100 上的表现优于相同网络结构的 ResNets,可以归类为一种正则化技术。
- SqueezeNet【142】认为,更小的 dnn 提供了各种好处,从更少的计算负担训练到更容易的信息传输和对存储或处理能力有限的设备的操作。SqueezeNet 是一个小型 DNN 架构,它实现了“AlexNet 级别的准确性,使用模型压缩技术显著降低了参数和内存需求,使其比 AlexNet 小 510 倍。”
传统上,校正线性单元(ReLU)是所有神经网络的主要激活函数。然而,这里有一些最近的选择:
- 串接整流线性单元(CRelu)【143】
- 指数线性单位(ELUs)【144】从 2015 年收盘
- 参数指数线性单元(PELU)【145】
向等方差转换
ConvNets 具有平移不变性,这意味着它们可以识别图像多个部分中的相同特征。然而,典型的 CNN 并不是旋转不变的——这意味着如果一个特征或整个图像被旋转,那么网络的性能就会受到影响。通常,ConvNets 通过数据扩充(例如,在训练期间有目的地以小的随机量旋转图像)来学习(某种程度上)处理旋转不变性。这意味着网络获得轻微的旋转不变属性,而无需将旋转不变性特别设计到网络中。这意味着旋转不变性在使用当前技术的网络中受到根本限制。这与人类有一个有趣的相似之处,人类通常在识别颠倒的字符方面表现更差,尽管机器没有理由遭受这种限制。
下面的论文解决了旋转不变变换。虽然每种方法都有新颖之处,但它们都通过更有效地使用参数来提高旋转不变性,从而最终实现全局旋转等变:
- 谐波 CNN【146】用‘圆谐波’代替常规 CNN 滤波器。
- 分组等变卷积网络(G-CNNs)【147】使用 G-卷积,这是一种新型层,与常规卷积层相比,享有更高程度的权重共享,并在不增加参数数量的情况下增加网络的表达能力。
- 利用卷积神经网络中的循环对称性【148】将四种操作呈现为层,这些层增强神经网络层以部分增加旋转等方差。
- **可控 CNN【149】—Cohen 和 Welling 在他们对 G-CNNs 所做工作的基础上,证明了“可控架构”在 CIFARs 上优于剩余和密集网络。它们还提供了不变性问题的简明概述:
**为了提高机器学习方法的统计效率,许多人寻求学习不变表示。然而,在深度学习中,中间层不应该完全不变,因为局部特征的相对姿态必须为进一步的层保留。因此,人们会想到 等变 的概念:如果网络产生的表示在输入的变换下以可预测的线性方式变换,则网络是等变的。换句话说,等变网络产生可操纵的表示。可操控性使得不仅可以在每个位置(如在标准卷积层中)应用过滤器,还可以在每个姿势中应用过滤器,从而允许增加参数共享。107
剩余网络
图 17:CIFAR 数据集上的测试错误率
**Note: Yellow highlight indicates that these papers feature within this piece. Pre-resnet refers to “Identity Mappings in Deep Residual Networks” (see following section). Furthermore, while not included in the table we believe that “Learning Identity Mappings with Residual Gates” produced some of the lowest error rates of 2016 with 3.65% and 18.27% on CIFAR-10 and CIFAR-100, respectively.
资料来源:阿卜迪和纳哈万迪(2016 年,第 6 页)[150]
继微软的 ResNet[151]取得成功之后,剩余网络及其变体在 2016 年变得非常受欢迎,现在有许多开源版本和预训练模型可用。2015 年,ResNet 在 ImageNet 的检测、定位和分类任务以及 COCO 的检测和分割挑战中获得第一名。虽然关于深度的问题仍然很多,但 ResNets 对消失梯度问题的处理为“深度增加产生高级抽象”哲学提供了更多动力,这种哲学支撑着目前的许多深度学习。
ResNets 通常被认为是较浅网络的集合,它通过运行与其卷积层平行的快捷连接,在某种程度上抵消了深度神经网络(DNNs)的分层性质。这些快捷方式或 跳过连接 通过允许梯度在整个网络层中更容易地反向传播,减轻了与 DNNs 相关联的消失/爆炸梯度问题。更多信息,这里有一个 Quora 线程可用。[152]
剩余学习、理论和改进
- 广泛的剩余网络【153】现在是一种极其常见的 ResNet 方法。作者对 ResNet 块的体系结构进行了实验研究,并通过增加网络的宽度和减少网络的深度来改善剩余网络的性能,从而缓解了特征重用问题。这种方法在多个基准上产生了新的 SOTA,包括在 CIFAR-10 和 CIFAR-100 上分别为 3.89%和 18.3%。作者表明,16 层深宽的 ResNet 在准确性和效率方面与许多其他 ResNet(包括 1000 层网络)一样好,甚至更好。
- 具有随机深度的深度网络 [154]本质上是将丢弃应用于整个神经元层,而不是单个神经元束。"我们从非常深的网络开始,但在训练过程中,对于每个小批量,随机丢弃一个子集的层,并用身份函数绕过它们。“随机深度允许更快的训练和更好的准确性,即使训练网络超过 1200 层。
- 利用剩余门学习身份映射【155】—“通过使用标量参数来控制每个门,我们提供了一种仅通过优化一个参数来学习身份映射的方法。“作者使用这些门控结果来改善深度模型的优化,同时提供‘对全层移除的高容忍度’,使得 90%的性能在随机显著移除后保持不变。使用宽门控结果,该模型在 CIFAR- 10 和 CIFAR-100 上分别实现了 3.65%和 18.27%的误差。
- 剩余网络的行为类似于相对较浅的网络的集合【156】——剩余网络可以被视为许多路径的集合,这些路径并不强烈依赖于彼此,因此强化了集合行为的概念。此外,剩余路径在长度上有所不同,短路径在训练过程中会产生梯度,而较深的路径在此阶段不会产生梯度。****
- 深度剩余网络中的身份映射 [157]是对原 Resnet 作者、何、、任、的改进。标识映射显示为允许“当用作跳过连接和添加后激活时,在任何 ResNet 块之间传播前向和后向信号”。该方法在 CIFAR-10 (4.62%误差)和 CIFAR-100 上使用 1001 层 ResNet,在 ImageNet 上使用 200 层 ResNet,改进了推广、训练和结果"。
- 多重残差网络:提高残差网络的速度和准确性 [158]再次倡导 ResNet 的整体行为,并支持对 ResNet 架构采用更广泛、更深入的方法。所提出的多残差网络增加了残差块中残差函数的数量。“精度提高后,CIFAR-10 和 CIFAR-100 的误差分别为 3.73%和 19.45%。图 17 中的表格摘自本文,考虑到 2017 年迄今所做的工作,有更多最新版本可用。
其他剩余理论和改进 虽然这是一个相对较新的概念,但目前有相当多的工作是围绕剩余理论创建的。以下是我们希望向感兴趣的读者强调的一些额外的理论和改进:
- 高速公路和剩余网络学习展开迭代估计【159】
- 残差网络的残差网络:多级残差网络【160】
- Resnet 中的 Resnet:一般化剩余架构【161】
- 更宽或更深:重新审视用于视觉识别的 ResNet 模型【162】
- 弥合剩余学习、递归神经网络和视觉皮层之间的差距【163】
- 卷积剩余记忆网络【164】
- 深度学习中的身份问题【165】
- 具有指数线性单元的深度残差网络【166】
- 深度网络的加权残差【167】
数据集
丰富的数据集对于机器学习的所有方面的重要性不能被夸大。因此,我们认为包含该领域中一些最大的进步是谨慎的。套用 Kaggle 的联合创始人兼首席技术官 Ben Hamner 的话,“一个新的数据集可以让一千篇论文繁荣发展”,[168]也就是说,数据的可用性可以促进新的方法,也可以为以前无效的技术注入新的活力。
2016 年,ImageNet[169]、上下文中的公共对象(COCO)[170]、CIFARs[171]和 MNIST[172]等传统数据集加入了大量新条目。我们还注意到,图形技术的进步刺激了合成数据集的兴起。合成数据集是人工神经网络(ann)的大数据需求的一个有趣的解决方案。为了简洁起见,我们选择了(主观上)最重要的 2016 年新数据集:**
- 地点 2【173】是一个场景分类数据集,即任务是给一幅图像标注一个场景类别,如“体育场”、“公园”等。虽然预测模型和图像理解无疑将通过 Places2 数据集得到改善,但根据该数据集训练的网络的一个有趣发现是,在学习对场景进行分类的过程中,网络学会了在没有明确学习的情况下检测其中的对象。例如,卧室里有床,水槽可以在厨房和浴室里。这意味着对象本身是场景分类的抽象层次中的较低级特征。
图 18:scene net RGB-D 的示例
Note: Examples taken from SceneNet RGB-D, a dataset with 5M Photorealistic Images of Synthetic Indoor Trajectories with Ground Truth. The photo (a) is rendered through computer graphics with available ground truth for specific tasks from (b) to (e). Creation of synthetic datasets should aid the process of domain adaptation. Synthetic datasets are somewhat pointless if the knowledge learned from them cannot be applied to the real world. This is where domain adaptation comes in, which refers to this transfer learning process of moving knowledge from one domain to another, e.g. from synthetic to real-world environments. Domain adaptation has recently been improving very rapidly again highlighting the recent efforts in transfer learning. Columns © vs (d) show the difference between instance and semantic/class segmentation.
资料来源:麦科马克等人(2017)[174]
- SceneNet RGB-D【175】—该合成数据集扩展了原始 scene net 数据集,并为场景理解问题(如语义分割、实例分割和对象检测)以及几何计算机视觉问题(如光流、深度估计、相机姿态估计和 3D 重建)提供了像素级的真实情况。数据集通过提供像素完美的表示来细化所选的环境。****
- cm places【176】是麻省理工学院的跨模态场景数据集。任务是识别自然图像之外的许多不同模态的场景,并在此过程中有希望跨模态传递该知识。一些模态是:真实、剪贴画、草图、空间文本(与对象的空间位置相对应的文字)和自然语言描述。本文还讨论了如何用交叉模态卷积神经网络处理这类问题的方法。
图 19 : CMPlaces 跨模态场景表示
Note: Taken from the CMPlaces paper showing two examples, bedrooms and kindergarten classrooms, across different modalities. Conventional Neural Network approaches learn representations that don’t transfer well across modalities and this paper attempts to generate a shared representation “agnostic of modality”.
资料来源 : Aytar 等人(2016)[177]
在 CMPlaces 中,我们看到明确提到迁移学习、领域不变表示、领域适应和多模态学习,所有这些都有助于进一步展示当前计算机视觉研究的趋势。作者专注于试图找到“领域/模态独立表示”,这可能对应于人类从中得出统一表示的更高级抽象。例如,以“猫”的各种形态为例,人类在书写中看到“猫”这个词,在速写本中画出一幅画,在现实世界中看到一幅图像,或者在讲话中提到,但我们仍然在这些形态之上的更高层次上抽象出相同的统一表示。
**“人类能够独立地利用他们感知的知识和经验,机器的类似能力将使检索和识别方面的一些重要应用成为可能”。
- MS-Cele b-1M【178】包含一百万个名人的图像,在面部识别的训练集中有一千万个训练图像。
- 开放图像【179】由谷歌公司提供,包含大约 900 万个带有多个标签的图像的 URL,这是对典型的单标签图像的巨大改进。开放图像涵盖 6000 个类别,比 ImageNet 之前提供的 1000 个类别(较少关注犬科动物)有了很大的改进,应该证明对机器学习社区是不可或缺的。
- YouTube-8M【180】也是谷歌提供的 800 万个视频网址,50 万小时的视频,4800 个课程,平均。每个视频 1.8 个标签。标签的一些例子是:“艺术&娱乐”、“购物”和“宠物&动物”。视频数据集更难以标记和收集,因此该数据集提供了巨大的价值。
也就是说,图像理解方面的进步,如分割、对象分类和检测,已经将视频理解带到了研究的前沿。然而,在这个数据集发布之前,现实世界中可用的视频数据集的种类和规模都非常缺乏。此外,该数据集最近刚刚更新,[181]今年,谷歌与 Kaggle 联合举办了一场视频理解比赛,作为 2017 年 CVPR 的一部分。[182]
关于 YouTube-8M 的一般信息:此处【183】
无法组合的额外项目和有趣的趋势
当这个作品接近尾声时,我们感叹我们不得不在这样的限制下创作它。事实上,计算机视觉的领域太过广阔,无法涵盖任何真实的、有意义的深度,因此出现了许多疏漏。不幸的是,其中一个遗漏是几乎所有不使用神经网络的东西。我们知道在 NNs 之外有很好的工作,我们承认我们自己的偏见,但是我们认为目前的动力在于这些方法,并且我们对纳入材料的主观选择主要基于从整个研究社区收到的接收(结果不言自明)。
我们还要强调的是,在上述主题中还有数百篇其他论文,这些主题并不是权威的,而是希望鼓励感兴趣的人沿着我们提供的入口进一步阅读。因此,这最后一节是对我们喜欢的一些其他应用程序、我们希望强调的趋势以及我们希望向读者提出的理由的总括。
应用/用例
- 脸书的盲人应用程序[184]和百度的硬件。[185]
- 情感检测结合了面部检测和语义分析,发展迅速。目前有 20 多个可用的 API。[186]
- 从航空影像中提取道路,[187]从航空地图和人口密度地图中进行土地利用分类。[188]
- Amazon Go 通过展示无队列购物体验进一步提升了计算机视觉的形象,[189]尽管目前仍存在一些功能问题。[190]
- 对于自动驾驶汽车,有大量的工作正在进行,而我们基本上没有触及。然而,对于那些希望深入研究总体市场趋势的人来说,Moritz Mueller-Freitag 有一篇关于德国汽车行业和自动驾驶汽车影响的 200 亿神经元的优秀文章。[191]
- 其他感兴趣的领域:图像检索/搜索,[192]手势识别,修复和面部重建。
- 围绕医学中的数字成像和通信(DICOM)以及其他医学应用,尤其是与成像相关的应用,有大量的工作要做。例如,已经存在(并且仍然存在)许多 Kaggle 检测竞赛(肺癌、宫颈癌),其中一些具有大量金钱激励,在这些竞赛中,算法试图在所讨论的分类/检测任务中胜过专家。
然而,当改进这些算法的错误率的工作继续进行时,它们作为医疗从业者的工具的价值越来越明显。当我们考虑到通过将人工智能系统【193】与医学专家相结合而实现的乳腺癌检测性能改善时,这一点尤为引人注目。[194]在这种情况下,机器人-人类共生产生的准确度远远大于其各部分的总和,达到 99.5%。
这只是深度学习/机器学习社区目前正在追求的医疗应用洪流的一个例子。我们团队中一些愤世嫉俗的成员开玩笑地将这些尝试视为一种手段,以迎合社会对人工智能研究作为一种无处不在的慈善力量的想法。但是,只要这项技术有助于医疗保健行业,并且是以安全和慎重的方式引入的,我们就全心全意地欢迎这种进步。
硬件/市场
- 机器人视觉/机器视觉(独立领域)的增长市场和物联网的潜在目标市场。我们个人最喜欢的是一个农民的儿子使用深度学习、覆盆子 Pi 和 TensorFlow 在日本根据独特的生产者启发式质量(如形状、大小和颜色)对黄瓜进行分类。[195]这大大减少了他母亲在挑选黄瓜上花费的时间。
- 计算需求的缩减和向移动设备迁移的趋势是显而易见的,但同时也伴随着急剧的硬件加速。很快,我们将到处看到口袋大小的 CNN 和视觉处理单元(vpu)。例如,Movidius Myriad2 用于谷歌的 Tango 和无人机项目。[196]
m ovidius Fathom stick[197]也使用了 Myriad2 的技术,允许用户将 SOTA 计算机视觉性能添加到消费设备中。Fathom 棒具有 USB 棒的物理属性,它将神经网络的能力带到了几乎任何设备上:棒上的大脑。
- 使用非可见光的传感器和系统。例子包括雷达、热成像相机、超光谱成像、声纳、磁共振成像等。
- 降低激光雷达的成本,它使用光和雷达来测量距离,并提供许多优于普通 RGB 相机的优势。目前有许多价格低于 500 美元的激光雷达设备。
- Hololens 和几乎无数的其他增强现实耳机[198]进入市场。
- 谷歌的探戈项目【199】代表了 SLAM 的下一个重大商业化。Tango 是一个增强现实计算平台,包括新颖的软件和硬件。Tango 允许在不使用 GPS 或其他外部信息的情况下检测移动设备相对于世界的位置,同时以 3D 方式绘制设备周围的区域。
企业合作伙伴联想在 2016 年向市场推出了价格实惠的 Tango 手机,使数百名开发者开始为该平台创建应用程序。Tango 采用了以下软件技术:运动跟踪、区域学习和深度感知。
更新 2019 年 10 月 : 谷歌的 Tango 怎么了?
基于即将出版的出版物的遗漏
在机器学习和人工智能中,计算机视觉技术和其他领域之间也有相当多且越来越多的重叠。这些其他领域和混合用例是 M Tank 即将发布的出版物的主题,与本文的全部内容一样,我们基于自己的启发对内容进行了划分。
例如,我们决定将两个完整的计算机视觉任务,图像字幕和视觉问答,与视觉语音识别一起放在我们即将推出的 NLP 作品中,因为涉及到 CV 和 NLP 的结合。而将生成模型应用于图像则是我们在生成模型方面的工作。这些未来作品中包括的例子有:
- 唇读:2016 年,我们看到了 LipNet[200]等程序在唇读方面的巨大进步,这些程序将计算机视觉和 NLP 结合到视觉语音识别中。
- 应用于图像的生成模型将成为我们对自回归模型(PixelRNN、PixelCNN、ByteNet、VPN、WaveNet)、生成对抗网络(GANs)、变分自动编码器之间激烈斗争的描述的一部分,正如你在此阶段所预期的,所有这些模型的变体、组合和混合体。*
*免责声明:监测组希望指出,他们不宽恕任何形式的网络对网络(非)暴力,并且同情向生殖性非对话网络(枪支)发展的运动。【201】
在最后一部分,我们将提供一些总结性的评论,并对我们发现的一些趋势进行概括。我们希望我们能够足够全面地展示计算机视觉领域的大致位置和近期发展方向的鸟瞰图。我们还要特别提请注意,我们的工作不涵盖 2017 年 1 月至 8 月。研究产出的快速增长意味着大部分工作可能已经过时;我们鼓励读者去看看,看看是否适合自己。但这种快速增长也带来了有利可图的机会,因为计算机视觉硬件和软件市场预计到 2022 年将达到 486 亿美元。
图 20 :应用市场计算机视觉收入【202】
Note: Estimation of Computer Vision revenue by application market spanning the period from 2015–2022. The largest growth is forecasted to come from applications within the automotive, consumer, robotics and machine vision sectors.
Source: Tractica (2016)[203]
结论
最后,我们想强调在我们的研究回顾过程中反复出现的一些趋势和反复出现的主题。首先,我们想提请注意机器学习研究社区对优化的贪婪追求。这在准确率的逐年变化中最为明显,尤其是在准确率的年内变化中。我们想强调这一点,过一会儿再回到这一点。
错误率并不是唯一狂热优化的参数,研究人员正在努力提高速度、效率,甚至是以全新的方式推广到其他任务和问题的算法能力。我们敏锐地意识到,随着一次性学习、生成模型、迁移学习以及最近的进化学习等方法的出现,研究开始崭露头角,我们认为这些研究原则正在逐渐对最佳表现工作的方法产生更大的影响。
虽然最后一点毫无疑问是对这一趋势的赞扬,而不是诋毁,但人们不禁将注意力投向人工通用智能(非常)遥远的幽灵,无论是否值得思考。我们绝不是危言耸听,我们只是希望向专家和外行人强调,这种担忧来自这里,来自计算机视觉和其他人工智能子领域已经显而易见的惊人进展。只有通过关于这些进步及其总体影响的教育,才能恰当地表达公众的关切。这可能会反过来平息媒体情绪的力量和人工智能中的错误信息。
我们选择关注一年时间表有两个原因。第一个因素与正在制作的作品数量有关。即使对于非常关注该领域的人来说,随着出版物数量呈指数级增长,跟上研究的步伐也变得越来越困难。第二个让我们回到年内变化的观点。
通过对一年的进展进行快照,读者可以开始理解目前的研究进度。我们在如此短的时间内看到了一个又一个的改善,但是为什么呢?研究人员已经培育了一个全球社区,在这个社区中,基于以前的方法(架构、元架构、技术、想法、技巧、古怪的黑客、结果等)进行构建。),以及基础设施(像 Keras、TensorFlow 和 PyTorch、GPU 等库。),不仅是鼓励,也是庆祝。一个以开源为主的社区,鲜有相似之处,它不断吸引新的研究人员,其技术被经济学、物理学和无数其他领域重新引用。
对于那些还没有注意到的人来说,重要的是要理解,在已经疯狂的不同声音的合唱中,宣告对这项技术的真实性质的神圣洞察力,至少有一致意见;一致认为这项技术将以令人兴奋的新方式改变世界。然而,对于这些变化将在什么时间展开,仍然存在很多分歧。
在我们能够准确模拟这些进展之前,我们将继续尽最大努力提供信息。通过这个资源,我们希望迎合人工智能经验的范围,从研究人员到任何只想获得计算机视觉和人工智能基础的人。我们的项目希望以此为开源革命增加一些价值,这场革命在一生的技术之下悄然进行。
非常感谢,
M 坦克
请随意将所有反馈和建议放在评论区,我们会尽快回复。或者,您可以通过以下方式直接联系我们:info@themtank.com
完整版本可在:www.themtank.org/a-year-in-computer-vision获得
按出现顺序排列的参考文献
[131] Szegedy 等人,2016 年。Inception-v4,Inception-ResNet 和剩余连接对学习的影响。【在线】arXiv: 1602.07261 。可用:arXiv:1602.07261 v2**
[132] Szegedy 等人,2015 年。重新思考计算机视觉的初始架构。【在线】arXiv: 1512.00567 。可用:arXiv:1512.00567 v3**
[133]黄等,2016。密集连接的卷积网络。【在线】arXiv: 1608.06993 。可用:arXiv:1608.06993 v3**
134 同上
135 同上
[136]刘庄 13。2017.密集连接卷积网络的代码。【在线】github.com。可用:https://github.com/liuzhuang13/DenseNet【访问时间:2017 年 03 月 04 日】。**
[137] Larsson 等人,2016 年。FractalNet:无残差超深度神经网络。【在线】arXiv: 1605.07648 。可用:arXiv:1605.07648 v2**
[138]黄等,2016 年。密集连接的卷积网络。【在线】arXiv: 1608.06993 。可用:arXiv:1608.06993 v3,pg。1.**
[139] Hossein HasanPour 等人,2016 年让我们保持简单:使用简单的架构来超越更深层次的架构。【在线】arXiv: 1608.06037 。可用:arXiv:1608.06037 v3**
140 同上
[141] Singh 等人,2016 年。Swapout:学习深层架构的合奏。【在线】arXiv: 1605.06465 。可用:arXiv:1605.06465 v1**
[142] Iandola 等人,2016 年。SqueezeNet: AlexNet 级精度,参数少 50 倍<0.5MB model size. 【在线】arXiv: 1602.07360 。可用:arXiv:1602.07360 v4
[143]尚等,2016。通过级联校正线性单元理解和改进卷积神经网络。【在线】arXiv: 1603.05201 。可用:arXiv:1603.05201 v2**
[144] Clevert 等人,2016 年。通过指数线性单元(ELUs)进行快速准确的深度网络学习。【在线】arXiv: 1511.07289 。可用:arXiv:1511.07289 V5**
[145] Trottier 等人,2016 年。深度卷积神经网络的参数指数线性单元。【在线】arXiv: 1605.09332 。可用:arXiv:1605.09332 v3**
[146]沃拉尔等人,2016 年。谐波网络:深度平移和旋转等值。【在线】arXiv: 1612.04642 。可用:arXiv:1612.04642 v1**
[147]科恩&韦林。2016.群等变卷积网络。【在线】arXiv: 1602.07576 。可用:arXiv:1602.07576 v3**
[148] Dieleman 等人,2016 年。利用卷积神经网络中的循环对称性。【在线】arXiv: 1602.02660 。可用:arXiv:1602.02660 v2**
[149]科恩&韦林。2016.可操纵 CNN。【在线】arXiv: 1612.08498 。可用:arXiv:1612.08498 v1**
[150] Abdi,m .,Nahavandi,S. 2016 年。多重残差网络:提高残差网络的速度和精度。【在线】arXiv: 1609.05672 。可用:arXiv:1609.05672 v3**
[151]何等,2015。用于图像识别的深度残差学习。【在线】arXiv: 1512.03385 。可用:arXiv:1512.03385 v1**
[152] Quora。2017.深度剩余网络的直观解释是什么?【网站】www.quora.com。可用:https://www . quora . com/What-a-intuitive-an-explain-of-Deep-Residual-Networks【访问时间:2017 年 03 月 04 日】。**
[153] Zagoruyko,s .和 Komodakis,N. 2017。广泛的剩余网络。【在线】arXiv: 1605.07146 。可用:arXiv:1605.07146 v3**
[154]黄等,2016。具有随机深度的深度网络。【在线】arXiv: 1603.09382 。可用:arXiv:1603.09382 v3**
[155] Savarese 等人,2016 年。用剩余门学习身份映射。【在线】arXiv: 1611.01260 。可用:arXiv:1611.01260 v2**
156 韦特、威尔伯和贝隆吉。2016.剩余网络的行为类似于相对较浅的网络的集合。【在线】arXiv: 1605.06431 。可用:arXiv:1605.06431 v2**
[157]他在阿尔 2016.深剩余网络中的身份映射。【在线】arXiv: 1603.05027 。可用:arXiv:1603.05027 v3**
[158] Abdi,m .,Nahavandi,S. 2016。多重残差网络:提高残差网络的速度和精度。【在线】arXiv: 1609.05672 。可用:arXiv:1609.05672 v3**
[159] Greff 等人,2017 年。公路和残差网络学习展开迭代估计。【在线】arXiv: 1612。07771 。可用:arXiv:1612.07771 v3**
160 阿布迪和纳哈万迪。2017.多重残差网络:提高残差网络的速度和精度。【在线】1609.05672 。可用:arXiv:1609.05672 v4**
[161] Targ 等人,2016 年。概化剩余架构。【在线】arXiv: 1603.08029 。可用:arXiv:1603.08029 v1**
[162]吴等,2016。更广还是更深:重新审视视觉识别的 ResNet 模型。【在线】arXiv: 1611.10080 。可用:arXiv:1611.10080 v1**
[163]廖和波焦。2016.弥合剩余学习、递归神经网络和视觉皮层之间的差距。【在线】arXiv: 1604.03640 。可用:arXiv:1604.03640 v1**
164 莫尼斯和帕尔。2016.卷积剩余记忆网络。【在线】arXiv: 1606.05262 。可用:arXiv:1606.05262 v3**
[165]哈特和马。2016.身份在深度学习中很重要。【在线】arXiv: 1611.04231 。可用:arXiv:1611.04231 v2**
[166] Shah 等人,2016 年。具有指数线性单位的深度剩余网络。【在线】arXiv: 1604.04112 。可用:arXiv:1604.04112 v4**
[167]沈、曾。2016.甚深网络的加权残差。【在线】arXiv: 1605.08831 。可用:arXiv:1605.08831 v1**
168 本·哈姆纳。2016.推特状态。【在线】推特。可用:https://twitter.com/benhamner/status/789909204832227329
169 ImageNet。2017.主页。【在线】可用:http://image-net.org/index【访问时间:2017 年 04 月 01 日】
[170]可可。2017.公共主页中的公共对象。【在线】可用:http://mscoco.org/【访问时间:2017 年 04 月 01 日】
171 CIFARs。2017.CIFAR-10 数据集。【在线】可用:https://www.cs.toronto.edu/~kriz/cifar.html【访问时间:2017 年 04 月 01 日】
172 MNIST。2017.MNIST 手写数字数据库。【在线】可用:http://yann.lecun.com/exdb/mnist/【访问时间:2017 年 04 月 01 日】
[173]周等,2016。地点 2。【在线】可用:http://places2.csail.mit.edu/【访问时间:2017 年 06 月 01 日】
174 同上
[175]麦科马克等人,2017 年。SceneNet RGB-D:具有地面真实性的合成室内轨迹的 5M 照片级真实感图像。【在线】arXiv: 1612.05079 v3。可用:arXiv:1612.05079 v3**
[176] Aytar 等人,2016 年。跨模态场景网络。【在线】arXiv: 1610.09003 。可用:arXiv:1610.09003 v1**
177 同上
[178]郭等,2016。MS-Celeb-1M:大规模人脸识别的数据集和基准。【在线】arXiv: 1607.08221 。可用:arXiv:1607.08221 v1**
[179]开放图像。2017.打开图像数据集。【在线】Github 。可用:【https://github.com/openimages/dataset 【访问时间:2017 年 8 月 1 日】**
[180] Abu-El-Haija 等人,2016 年。YouTube-8M:大规模视频分类基准。【在线】arXiv: 1609.08675 。可用:arXiv:1609.08675 v1**
[181]纳采夫,第 2017 页。更新的 YouTube-8M、视频理解挑战和 CVPR 研讨会。我的天啊。。【在线】谷歌研究博客。可用:https://research . Google blog . com/2017/02/an-updated-YouTube-8m-video . html【访问时间:26/02/2017】。**
[182] YouTube-8M。2017.CVPR 17 年关于 YouTube 的研讨会-8M 大规模视频理解。【在线】谷歌研究。可用:https://research.google.com/youtube8m/workshop.html【访问时间:26/02/2017】。**
[183]谷歌。2017.YouTube-8M 数据集。【在线】research.google.com。可用:https://research.google.com/youtube8m/【访问时间:2017 年 04 月 03 日】。**
[184]吴、皮克和。2016.使用人工智能帮助盲人“看见”脸书。【在线】脸书编辑部。可用:http://news room . FB . com/news/2016/04/using-artificial-intelligence-to-help-blind-people-see-Facebook/【访问时间:2017 年 02 月 03 日】。**
[185]梅斯。2016.人工智能终于进入了我们的日常世界。【在线】连线。可用:https://www . wired . com/2016/01/2015-was-the-year-ai-finally-entry-the-daily-world/【访问时间:2017 年 02 月 03 日】。**
[186]多尔费尔德。2015.20 多个情感识别 API 会让你印象深刻,并关注。【在线】北欧 API。可用:http://nordicapis . com/20-emotion-recognition-APIs-that-leave-you-impressed-and-concerned/【访问时间:2017 年 02 月 03 日】。**
[187]约翰逊,2016 年。trail behind/deep osm-使用 OpenStreetMap 功能和卫星图像训练深度学习网络。【在线】Github.com。可用:【https://github.com/trailbehind/DeepOSM 【访问时间:29/03/2017】。**
188 格罗和蒂埃克。2016.用更好的地图连接世界。【在线】脸书电码。可用:https://code . Facebook . com/posts/1676452492623525/connecting-the-world with-better-maps/【访问时间:2017 年 02 月 03 日】。**
[189]亚马逊。2017.常见问题— Amazon Go。【网址】Amazon.com。可用:https://www.amazon.com/b?node=16008589011【访问时间:29/03/2017】。**
[190]雷辛格特区,2017 年。亚马逊的免收银商店可能很容易被攻破。【在线】财富科技。可用:http://fortune.com/2017/03/28/amazon-go-cashier-free-store/【访问时间:29/03/2017】。**
[191]穆勒-弗莱塔格,M. 2017 年。德国在车轮上睡着了?[博客]两百亿神经元——Medium.com。可用:https://medium . com/twenty bn/Germany-sleep-at-the-wheel-d 800445 d6da 2**
[192]戈多等人,2016 年。深度图像检索:学习图像搜索的全局表示。【在线】arXiv: 1604.01325 。可用:arXiv:1604.01325 v2**
[193]王等,2016。用于识别转移性乳腺癌的深度学习。【在线】arXiv: 1606.05718 。可用:arXiv:1606.05718 v1**
[194]罗森菲尔德,J. 2016。人工智能实现了接近人类的乳腺癌检测。【在线】Mentalfloss.com。可用:http://mental loss . com/article/82415/ai-achieves-near-human-detection-breast-cancer【访问时间:27/03/2017】。**
[195]佐藤,K. 2016 年。一个日本黄瓜农民如何使用深度学习和 TensorFlow。【博客】谷歌云平台。可用:https://cloud . Google . com/blog/big-data/2016/08/how-a-Japanese-cucumber-farmer-is-use-deep-learning-and-tensor flow**
[196]班纳吉,第 2016 页。VPUs 的崛起:给机器眼睛。【在线】 www.digit.in 。可用:http://www . digit . in/general/the-rise-of-vpus-giving-eyes-to-machines-29561 . html【访问时间:22/03/2017。**
197m ovidius。2017.嵌入式神经网络计算框架。【在线】Movidius.com。可用:https://www . m ovidius . com/solutions/machine-vision-algorithms/machine-learning【访问时间:03/03/2017】。**
[198] Dzyre,N. 2016。你可以买到的 10 款即将上市的增强现实和智能眼镜。【博客】 洪家。可用:http://www . hongkiat . com/blog/augmented-reality-smart-glasses/【访问时间:2017 年 3 月 3 日】。**
[199]谷歌。2017.探戈。【网址】get.google.com。可用:https://get.google.com/tango/【访问时间:23/03/2017】。**
[200] Assael 等人,2016 年。LipNet:端到端的句子级唇读。【在线】arXiv: 1611.01599 。可用: arXiv:1611.01599v2**
[201] Albanie 等人,2017 年。制止 GAN 暴力:生成性非通用网络。【在线】arXiv: 1703.02528 。可用:arXiv:1703.02528 v1**
[202] Tractica。2016.到 2022 年,计算机视觉硬件和软件市场将达到 486 亿美元。【网址】【www.tractica.com】。可用:https://www . tractica . com/news room/press-releases/computer-vision-hardware-and-software-market-to-reach-4860 亿-by-2022/ 【访问日期:2017 年 12 月 3 日】。**
203 同上
马尔可夫链蒙特卡罗方法的零数学介绍
对于我们中的许多人来说,贝叶斯统计充其量是巫毒魔法,或者说是完全主观的胡说八道。在贝叶斯方法的商标中,马尔可夫链蒙特卡罗方法尤其神秘。它们肯定是数学密集型和计算昂贵的过程,但是它们背后的基本推理,就像数据科学中的许多其他东西一样,可以变得直观。这是我在这里的目标。
那么,什么是马尔可夫链蒙特卡罗(MCMC)方法呢?简短的回答是:
MCMC 方法用于通过概率空间中的随机采样来近似感兴趣参数的后验分布。
在这篇文章中,我将解释这个简短的答案,没有任何数学。
首先,一些术语。感兴趣的参数只是一些概括我们感兴趣的现象的数字。一般来说,我们用统计学来估计参数。例如,如果我们想了解成年人的身高,我们感兴趣的参数可能是以英寸为单位的平均身高。一个 分布 是我们参数的每一个可能值以及我们观察每一个的可能性的数学表示。最著名的例子是钟形曲线:
Courtesy M. W. Toews
在 贝叶斯 的统计方式中,分布有另外的解释。贝叶斯不仅仅表示参数的值以及每个值是真实值的可能性,而是认为分布描述了我们对参数的信念*。因此,上面的钟形曲线表明,我们非常确定参数值非常接近于零,但我们认为真实值在一定程度上高于或低于该值的可能性是相等的。*
碰巧的是,人类的身高确实遵循一条正态曲线,所以假设我们认为人类平均身高的真实值遵循一条钟形曲线,如下所示:
很明显,拥有这张图所代表的信念的人多年来一直生活在巨人中间,因为据他们所知,最有可能的平均成年人身高是 6 英尺 2 英寸”(但他们无论如何都不是超级自信)。
让我们想象一下,这个人去收集一些数据,他们观察了一系列 5 英尺到 6 英尺之间的人。我们可以用下面的数据,以及另一条显示人类平均身高的正态曲线来解释这些数据:**
在贝叶斯统计中,代表我们对一个参数的信念的分布被称为*,因为它捕捉了我们在看到任何数据之前的信念。 似然分布 通过表示一系列参数值以及每个参数解释我们正在观察的数据的似然性,总结了观察到的数据告诉我们的内容。估计使似然分布最大化的参数值只是在回答这个问题:什么参数值最有可能观察到我们已经观察到的数据?在没有先验信念的情况下,我们可能会止步于此。***
然而,贝叶斯分析的关键是结合先验和似然分布来确定 后验分布 。这告诉我们,考虑到我们先前的信念,哪些参数值最大化了我们观察特定数据的机会。在我们的例子中,后验分布看起来像这样:
上图中,红线代表后验分布。你可以把它看作是先验分布和似然分布的一种平均值。由于先验分布更短且更分散,它代表了一组对人类平均身高真实值“不太确定”的信念。同时,似然性汇总了相对较窄范围内的数据,因此它代表了对真实参数值的“更有把握”的猜测。
当先验似然性被结合时,数据(由似然性表示)支配了在巨人中长大的假设个体的微弱先验信念。尽管那个人仍然相信人类的平均身高比数据告诉他的要稍微高一些,但是他基本上被数据说服了。
在两条钟形曲线的情况下,求解后验分布是非常容易的。有一个简单的等式可以将两者结合起来。但是如果我们的先验分布和似然分布不那么好呢?有时,使用不具有方便形状的分布来模拟我们的数据或我们先前的信念是最准确的。如果我们的可能性最好用一个双峰分布来表示,并且出于某种原因,我们想要解释一些非常古怪的先验分布,那会怎么样呢?我通过手绘一个难看的先验分布,想象了下面的场景:
Visualizations rendered in Matplotlib, enhanced using MS Paint
如前所述,存在某种后验分布,其给出了每个参数值的可能性。但是很难看出它可能是什么样子,也不可能通过分析来解决。输入 MCMC 方法。
MCMC 方法允许我们在不能直接计算的情况下估计后验分布的形状。回想一下,MCMC 代表马尔可夫链蒙特卡罗方法。为了理解它们是如何工作的,我将首先介绍蒙特卡罗模拟,然后讨论马尔可夫链。
蒙特卡罗模拟只是一种通过重复生成随机数来估计固定参数的方法。通过获取生成的随机数并对其进行一些计算,蒙特卡罗模拟提供了一个参数的近似值,而直接计算它是不可能的或极其昂贵的。
假设我们想要估计下列圆的面积:
因为圆在一个边长为 10 英寸的正方形内,所以面积可以很容易地计算为 78.5 平方英寸。然而,相反,我们可以在正方形内随机下降 20 个点。然后我们计算落在圆内的点的比例,并乘以正方形的面积。这个数字是圆的面积的一个很好的近似值。
因为 20 个点中有 15 个点位于圆内,所以看起来圆大约有 75 平方英寸。对于只有 20 个随机点的蒙特卡洛模拟来说,这还不算太坏。
现在,假设我们想要计算由蝙蝠侠方程绘制的形状的面积:
这是一个我们从未学过方程式的形状!因此,找到蝙蝠信号的区域是非常困难的。然而,通过在包含该形状的矩形内随机放置点,蒙特卡罗模拟可以很容易地提供该区域的近似值!
蒙特卡洛模拟不仅用于估算复杂形状的面积。通过生成大量的随机数,它们可以用来模拟非常复杂的过程。在实践中,它们被用来预测天气,或者估计赢得选举的概率。
理解 MCMC 方法的第二个要素是马尔可夫链。这些只是概率上相互关联的事件序列。每个事件都来自一组结果,每个结果根据一组固定的概率决定下一个发生的结果。
马尔可夫链的一个重要特征是它们是 无记忆 :你预测下一个事件可能需要的一切在当前状态下都是可用的,了解事件的历史不会产生新的信息。像 Chutes and Ladders 这样的游戏展现了这种无记忆性,或者说 Markov Property, 但是现实世界中很少有事情是这样运作的。然而,马尔可夫链是理解世界的强有力的方法。
在 19 世纪,钟形曲线被视为自然界中的一种常见模式。(例如,我们已经注意到,人类的身高遵循钟形曲线。)高尔顿板模拟重复随机事件的平均值,通过将弹珠扔过装有钉子的板,再现弹珠分布的正态曲线:
俄罗斯数学家和神学家 Pavel Nekrasov认为钟形曲线,以及更普遍的大数定律,仅仅是儿童游戏和琐碎谜题的产物,其中每个事件都是完全独立的。他认为现实世界中相互依赖的事件,如人类行为,并不符合良好的数学模式或分布。
Markov 链就是以 Andrey Markov 命名的,他试图证明非独立事件也可能符合模式。他最著名的一个例子需要从一部俄罗斯诗歌作品中数出数千个双字对。利用这些配对,他计算了每个字符的条件概率。也就是说,给定前面的某个字母或空格,下一个字母很有可能是 A、T 或空格。利用这些概率,Markov 能够模拟任意长的字符序列。这是一个马尔可夫链。虽然最初的几个字符很大程度上是由起始字符的选择决定的,但 Markov 表明,从长远来看,字符的分布形成了一种模式。因此,即使是相互依赖的事件,如果它们服从固定的概率,也符合平均值。
举个更有用的例子,想象你住在一个有五个房间的房子里。你有卧室、浴室、客厅、餐厅和厨房。让我们收集一些数据,假设在任何给定的时间点你在哪个房间,我们只需要知道你接下来可能会进入哪个房间。例如,如果你在厨房,你有 30%的机会呆在厨房,30%的机会进入餐厅,20%的机会进入客厅,10%的机会进入浴室,10%的机会进入卧室。使用每个房间的一组概率,我们可以构建一个预测链,预测你接下来可能会住哪个房间。
如果我们想预测某人在厨房呆了一会儿后会在家里的什么地方,那么预测几个州之外的地方可能会有用。但是由于我们的预测只是基于对一个人在房子里的位置的观察,所以有理由认为它们不会很好。举例来说,如果有人从卧室去了浴室,他们更有可能直接回到卧室,而不是从厨房出来。所以马尔可夫性质通常不适用于现实世界。
然而,运行马尔可夫链数千次迭代,确实能给出你可能在哪个房间的长期预测。更重要的是,这个预测完全不受这个人从哪个房间开始的影响!直觉上,这是有意义的:为了模拟和描述他们长期可能在哪里,或者一般的,某人在某个时间点在房子的哪里并不重要。因此,马尔可夫链,这似乎是一种在几个时期内模拟随机变量的不合理方式,可以用来计算该变量的长期趋势,如果我们理解控制其行为的概率的话。**
有了蒙特卡罗模拟和马尔可夫链的一些知识,我希望 MCMC 方法如何工作的无数学的解释是非常直观的。
回想一下,我们试图估计我们感兴趣的参数,人类平均身高的后验分布:
I am not a visualization expert, nor apparently am I any good at keeping my example within the bounds of common sense: my example of the posterior distribution seriously overestimates average human height.
我们知道后验分布在我们的先验分布和我们的似然分布的范围内的某个地方,但是不管什么原因,我们不能直接计算它。使用 MCMC 方法,我们将有效地从后验分布中抽取样本,然后计算统计数据,比如抽取样本的平均值。
首先,MCMC 方法选择一个随机参数值来考虑。模拟将继续生成随机值(这是蒙特卡罗部分),但要遵守一些规则来确定什么是好的参数值。诀窍是,对于一对参数值,在给定我们先前的信念的情况下,通过计算每个值解释数据的可能性,可以计算出哪个是更好的参数值。如果一个随机产生的参数值比上一个更好,就以比好多少决定的一定概率加入到参数值链中(这是马尔可夫链部分)。
为了直观地解释这一点,让我们回忆一下在某一特定值的分布高度代表观察到该值的概率。因此,我们可以认为我们的参数值(x 轴)展示了高概率和低概率区域,显示在 y 轴上。对于单个参数,MCMC 方法从沿 x 轴随机采样开始:
Red points are random parameter samples
由于随机样本受制于固定的概率,它们往往会在一段时间后收敛于我们感兴趣的参数的最高概率区域:
Blue points just represent random samples after an arbitrary point in time, when convergence is expected to have occurred. Note: I’m stacking point vertically purely for illustrative purposes.
在收敛发生后,MCMC 采样产生一组点,这些点是来自后验分布的样本。在这些点周围画一个直方图,然后计算你喜欢的任何统计数据:
根据 MCMC 模拟生成的样本集计算的任何统计数据都是我们对真实后验分布统计数据的最佳猜测。
MCMC 方法还可以用来估计多个参数的后验分布(比如,人的身高和体重)。对于 n 个参数,在 n 维空间中存在高概率区域,其中某些参数值集合更好地解释观察到的数据。因此,我认为 MCMC 方法是在一个概率空间内随机抽样,以逼近后验分布。
回想一下“什么是马尔可夫链蒙特卡罗方法?”这个问题的简短回答这里又是一个 TL;博士:
MCMC 方法用于通过概率空间中的随机采样来近似感兴趣参数的后验分布。
我希望我已经解释了这个简短的答案,为什么你会使用 MCMC 方法,以及它们是如何工作的。这篇文章的灵感来自于我在 DC 的大会数据科学沉浸式课程中的一次演讲。那次演讲的目的是向非技术观众解释马尔可夫链蒙特卡罗方法,我在这里也试图这样做。如果你认为这个解释在某些方面不切实际,或者如果它可以变得更直观,请留下评论。
现实生活中的 AB 测试
一个甜蜜的实验故事
你喜欢烘焙,你的几个朋友都称赞你做的蛋糕好吃。最近,你一直在修补一些想法,将你的南瓜香料纸杯蛋糕带到一个全新的水平。但是你不确定你心目中的哪些改进会在你的朋友中成功或失败。
谢天谢地,你已经听说了的 A/B 测试。
在 A/B 测试中,您运行两个随机实验,测试两个变量 A 和 B,也称为对照和实验。这项技术被广泛用于微调移动和网络应用程序中的客户体验,因为它有助于根据用户与产品的交互方式做出商业决策。
一个常见的例子是测试网站用户界面的微小变化,目的是增加注册用户的数量。
例如,一个测试可以是创建一个比当前网站稍大的注册按钮。你将运行你的变种(更大的注册按钮),对网站的当前版本,也称为控制版本。在运行测试并比较了每个版本的转换率之后,您可以检查拥有一个更大的按钮是否对注册人数有任何影响。我们可以运行不同类型的测试,例如,改变图像,复制或网站的信息架构。
如果与控制版本相比,新版本的注册人数更高,那么您已经找到了一种既能改善网站体验又能提升业务的方法。然而,仅仅增加注册人数是不够的。你需要确保你的结果有足够的统计学意义。换句话说,你需要确保你的测试是以一种注册人数不会偶然增加的方式设计的。
你也可以将 A/B 测试应用到你的纸杯蛋糕实验中!
你可以将使用你的“旧”食谱烘焙的纸杯蛋糕作为对照,并将其与使用相同食谱但添加了少许柠檬皮的纸杯蛋糕进行比较,即实验、,并观察你的朋友们对此的反应。
我如何实际测试哪种配方最好?
为了测试添加柠檬皮的效果,你会把用原始配方烘焙的纸杯蛋糕交给一组朋友,而另一组拿到新配方。为了确保没有人有偏见,每个朋友都被随机分配到他们的小组。
为了以更具分析性的方式收集他们的意见,你可以让两组朋友回答一个问题。例如,你可以问
- 你会再吃一个同批次的纸杯蛋糕吗?
用这些简单的是/否问题,你的每一个朋友最多能给纸杯蛋糕加一分。结合你所有朋友的分数,你可以用这些数据点来比较两组,看看柠檬皮的味道是否比原来的味道更好。
A/B 测试的一个非常重要的方面是你应该一次只测试一个变体。如果你在同一个实验中引入了多种变化,你就不能把结果归因于某个特定的变化。
最后,如果柠檬皮食谱在你的朋友中更受欢迎,它将成为你的首选蛋糕食谱。
试验设计
最后,你将进行一项统计测试,以确定在纸杯蛋糕中加入柠檬皮是否真的有所改善。
在开始烘烤两批纸杯蛋糕之前,你需要准备好你的食谱和 A/B 测试清单。
A/B 测试清单
- 你想回答什么问题?
你可以把这个想成“我的假设是什么?”
无效假设是原味纸杯蛋糕和柠檬皮纸杯蛋糕的总分没有区别。它被称为零假设,因为它假设添加柠檬皮对人们是否喜欢这些纸杯蛋糕没有影响。
另一个假设是,想要第二个柠檬皮纸杯蛋糕的朋友数量比想要第二个用原始配方烘焙的纸杯蛋糕的朋友数量多。
2。你如何评价这个实验?
决定你的新食谱是否更受欢迎的是知道你的朋友是否会吃更多你的纸杯蛋糕。
你的衡量标准是有多少朋友愿意再吃一个同批次的纸杯蛋糕。如果越来越多的柠檬皮小组的朋友声称第二,这意味着在你的食谱中加入柠檬皮会使它更受欢迎。
3。想要的效果是什么?
在新配方中加入柠檬皮的情况下,加入这种新成分的影响微乎其微。
如果你要加入一种更贵的成分,比如每磅大约 100 美元的块菌,你可能会希望观察到结果有一定程度的改善,以证明金钱投资的合理性。通过在你的食谱中加入一种更昂贵的成分,这会让你对你正在做的投资更有信心。
4。实验需要多少人?
如果你给你的两个朋友打电话,让其中一个朋友吃柠檬皮纸杯蛋糕,另一个朋友吃用原始配方烘焙的纸杯蛋糕,你不会对你的测试有最大的信心。
为了弄清楚你需要邀请多少朋友来参加你的纸杯蛋糕品尝测试,你需要提前做一些决定
- 检验的统计功效
- 显著性水平
- 效果大小
- 基线度量
统计功效
统计功效是正确拒绝零假设的概率。你也可以把它解释为当有所述效果被观察时观察到效果的可能性,也就是说,当柠檬皮的食谱实际上比原始食谱更受你朋友的欢迎时。
在文献中,你可能会看到功率被定义为1-β、,因为它与产生所谓的第二类误差成反比,通常称为β。第二类错误是在应该拒绝零假设时失败的概率。
当你设计一个高功效的实验时,你就降低了犯第二类错误的可能性。
实验的统计功效通常设定为 80%。
显著性水平
显著性水平是你用来确保你的测试是以一种结果不是偶然得到的方式设计的。最常用的值是 1%和 5%。这些分别对应于 90%和 95%的置信区间。
效果大小和基线指标
如上所述,效果大小将帮助您确定您希望看到的测试结果的变化量。为了做到这一点,我们必须把它建立在我们今天所观察到的基础上。
这意味着你需要知道我们的基线度量是什么,也就是你用来评估测试功效的度量的当前值。
我们已经定义了,我们将使用朋友的数量作为测试成功的衡量标准,这些朋友想要从同一批中得到第二个纸杯蛋糕。
所以,如果今天尝过你的纸杯蛋糕的人中有 50%想吃第二个,你知道你的基线指标是 0.5。有鉴于此,你知道你的实验有多大的改进空间。例如,假设您的基线度量是 95%。
有了这些信息你就知道了
- 你的食谱已经很成功了😀
- 几乎没有改进的空间(5%),这可能证明运行更多测试来微调配方的努力是正确的,也可能不正确。
- 作为你测试的结果,你不能期望和改进大于 5%!这似乎是显而易见的,但在评估结果时,这是一个很好的检查。
准备好所有的东西后,你可以使用在线计算器或者使用 R 统计语言来确定你需要招募的朋友数量(样本大小)来品尝每一种食谱。
Using R to calculate the sample size
在我们的纸杯蛋糕实验中,我们需要 45 个朋友来尝试每一种食谱,假设我们的基线为 50% (p1),预期效果大小为 25% (p2 = p1+效果大小),显著性水平为 5%。
您还会注意到,我添加了备选项=单侧,这是因为将运行单侧统计测试。那是因为我们的另一个假设是想要第二个柠檬皮纸杯蛋糕的朋友数量比想要第二个用原始配方烘焙的纸杯蛋糕的朋友数量多
4。实验应该持续多长时间?
在我们的纸杯蛋糕食谱示例中,这并不一定适用。除非我们在你的许多朋友都在节食的时候运行它,他们的行为会与预期的大相径庭。
然而,在像提高注册转化率的实验这样的商业场景中,实验的持续时间非常重要。你需要考虑网站访问的趋势和季节性,选择一个足够宽的时间范围,这样它们就不会干扰实验。
例如,如果你在网上销售产品,你可能不应该在黑色星期五这一周进行实验,因为我们知道用户更有可能在不同的网站上寻找最佳交易。或者,如果你销售户外产品,并且你知道,从历史上看,七月是你表现最好的月份,你可能也应该避免在那个月进行测试。即使你可以利用较高的网站访问量,这些客户可能会非常渴望得到他们所有的露营装备,不管你做了什么改变,他们都会购买。
你让你的 90 个朋友尝试你的食谱。
在吃了原始配方纸杯蛋糕的朋友中,有 25 人想再吃一个同一批次的,相比之下,吃了柠檬皮纸杯蛋糕的朋友中有 32 人想再吃一个。
为了比较两组的结果,弄清楚加入柠檬皮是否真的有改善,你需要回到假设上来。零假设假设添加柠檬皮对人们是否喜欢这些纸杯蛋糕没有影响。
“d-hat”是两组朋友的结果之差。
另一个假设是,吃第二个柠檬皮纸杯蛋糕的朋友比吃第二个用原始配方烘焙的纸杯蛋糕的朋友多。
更多的朋友喜欢柠檬皮纸杯蛋糕。这是偶然的吗?
为了确定这些结果是否只是偶然,我们需要计算两组结果差异的置信区间。这个区间将让我们了解两组之间的差异值的范围。
因此,我们需要计算混合概率,这只是一种混淆的说法,即我们正在组合我们将要比较的两个样本的概率。
计算置信区间的最后一块是标准误差。它估计所获得的结果会有多大的变化,即样本分布中的值会有多广。
在这种情况下,我们将计算一个合并标准误差,它结合了两个样本的标准误差。
最后,我们的假设看起来像这样
因为我们选择了 5%的显著性水平,因此 95%的置信区间,我们将这 5%归因于钟形曲线两个尾部之间的机会。我们假设数据的分布是正态的。
然后,我们使用一个互补的累积 Z 分数表来查找 Z 统计值对应于 0.025 的值。
Part of the complementary cumulative Z-scores Table
**那就是 **1.96!这就是为什么我们在定义中有它的替代假设。为了拒绝零假设,我们想要证明观察到的差异大于某个值周围的某个区间,该值是指 5%的结果是由于偶然。因此,使用 z 分数和标准误差。
回到主要问题:柠檬皮纸杯蛋糕更受欢迎吗?
用所有的片段来计算另一个假设
一切都表明我们可以拒绝零假设。每组估计概率之间的差值大于我们不等式的右边。那么,是的,柠檬皮纸杯蛋糕在你的朋友中更受欢迎。
但是,柠檬皮食谱应该成为你的首选蛋糕食谱吗?
你还记得我们决定我们想要看到的最小效果至少是 25%吗?它现在会帮助我们!
基于我们选择的显著性水平(5%),我们可以定义我们的置信区间
当我们选择最小效应时,我们是说,我们希望至少看到,控制测试和实验测试结果之间的差异。
然而,如果我们看看置信区间,我们可以看到,这并不能完全保证我们会看到这么大的差异。即使置信区间包括 0.25 的最小效应(25%),我们也从区间的下限看到,存在最小效应不被保证的情况。因为它的值远低于 0.25。
结论
事实上,柠檬皮纸杯蛋糕在你的朋友中更受欢迎。
如果调整这一配方成本更高,或者需要更多的时间和人力来整合到当前配方中,建议保留原始配方**。因为你可能不会像你希望的那样,在你的朋友中多受 25%的欢迎。**
如果它相对便宜,并且在烘焙过程中不涉及太多的工作,那么它值得成为你的首选食谱。因为从测试来看,更多的人在吃了第一个蛋糕后,还想吃第二个柠檬皮蛋糕,这有可能比原来的配方好 25%。
感谢阅读!
关于谨慎选择你的优化算法
为什么模拟很重要?首先,我们需要它,因为许多现象(我甚至可以说是所有有趣的现象)无法用一个封闭的数学表达式来封装,而这基本上是你可以用笔和纸或数学软件来完成的。听起来很抽象?好的,那么让我给你举个例子,为什么我们需要模拟。假设你的工作是做优化,你有一个变量,你要做的就是在这个变量的定义范围内找到一个点,这个点给你一个最佳解。比方说,我们想算出煮肉酱面的最佳时间,以获得完美的味道。现在肉酱面可以从 0 分钟煮到 1200 分钟,这是一个非常宽的范围。也就是说,我们有一种方法来评估肉酱面是否完美,给定它被烹饪的分钟数。我们姑且称这个神奇的评价函数 f( t )。现在关于 f 的恼人的事情是,我们只能在给定一个 t 的情况下评估它,我们不知道它一般是什么样子。因此,我们必须搜索 t 来寻找给出完美味道的值。
由于这个原因,我们必须搜索整个空间,即模拟功能,直到我们对它的样子有一个清晰的概念。这里展示的景观只是一维问题中的一个例子。现在想象你有 D 个维度,你把每个维度分成 M 个部分。你可以很快意识到,这个空间随着维度的数量呈指数增长,这是一个讨厌的等式。这基本上意味着,如果你把 10 个变量分成 10 份,你将有 10 个⁰=10 十亿个可能的解来搜索。你觉得 100 亿听起来可以吗?嗯,也许是吧。但是接下来让我用计算时间来代替。假设你有一个相当复杂的评估函数,每秒只能评估 1000 个点。这意味着你将不得不在电脑上花费((1010)/1000)/3600)/24𐅽116 天的模拟时间来搜索这个景观。更糟糕的是,您可能需要搜索的大多数变量或参数很少能分解成 10 个有效部分。更常见的情况是,参数和变量本质上是连续的,这在原则上意味着“部分”的数量是无限的。出于各种实际原因,这可能意味着每个维度都需要数百个部件,产生了((((10010)/1000)/3600)/24)/360𐅽3.2)十亿年的计算时间。这几乎和我们的星球一样古老,我们的星球现在已经有 45 亿岁了。我们不能等那么久!
幸运的是,今天大多数计算机可以同时计算超过 2000 亿次运算,这意味着即使我们天真的计算也可以归结为((()10010)/200000000000)/3600)/24)/360𐅽16 年。这反过来意味着,如果你能把分裂的数目减少到 40 个,那么你就能在((((4010)/200000000000)/3600))𐅽14.5 时间)内搜索整个景观。事实证明,科学让我们有能力以非暴力的方式搜索风景,这意味着我们不必评估我们将空间切割成的所有点。我们可以评估梯度,也可以将函数拟合到指导空间探索的数据中。这一切都可以归结为,事实上,我们可以使用先进的方法在一天内搜索数百个变量和参数。我们现在将研究其中的一些方法!
我们想通过调整烹饪时间来优化肉酱面的质量。正如我们在上面看到的,这不是一个很好的优化函数,这使得它在鲁棒性和避免局部最大值的能力方面非常适合硬核测试算法。
由于有许多优化方法和算法,我将尝试对最常见的和我喜欢使用的方法和算法进行基准测试。这不是一个详尽的列表,可能还有更多值得添加的,但这是我知道的列表。希望它能引导你选择前进。
我们将要研究的算法主要是在 NLopt 中实现的,除了模拟退火来自于 R 中的标准 optim 函数。无论哪种方式,算法列表都是:
- 模拟退火
- 改进的随机排序进化策略( ISRES
- 通过线性逼近进行约束优化( COBYLA )
- 通过二次逼近的界限优化( BOBYQA
- 低存储 Broyden–Fletcher–gold farb–Shanno 算法( LBFGS )
- 扩充拉格朗日算法( AUGLAG )
- 内尔德-米德单纯形法
- 序列二次规划( SLSQP )
由于一些算法(甚至大部分算法)可能严重依赖于初始值和起始点,因此我们对所有算法运行 500 优化,并采用随机起始点。每个算法在每次迭代中接收相同的起点。因此,每个算法开始在 500 个不同的位置进行优化。在我看来这是个公平的安排。
那我们来看结果。下面你会看到 500 次试验中每个算法找到的最佳肉酱面质量的方框和须状图。毫无疑问,一切都很好。然而,增广拉格朗日,模拟退火和 BFGS 是迄今为止最差的。他们也是最不一致的人。这基本上意味着它们对局部极大值非常敏感,无法正确探索整个景观。这并不奇怪,因为它们是基于梯度信息的。不管是不是二阶,它仍然是梯度信息,而且我的朋友本质上总是局部的。
不同算法的优化都去哪里了?让我们做一个散点图,一探究竟!实线是我们最初的博洛尼亚函数,我们希望根据参数时序 t 对其进行优化。
实际上看起来很糟糕。尤其是对于许多基于梯度的方法,因为它们陷入局部最大值或 0 梯度区域。他们中的大多数人只能在某些时候找到正确的解决方案。这与盒须图一致。然而,我要说的是,它实际上比情节中出现的更糟。只是为了说明你得到了多少糟糕的优化,看看下面的图,我们抖动了方块上的点。
那么,博洛尼亚优化的平均结果是什么呢?为了了解这一点,我们将使用稳健的统计数据来确保我们确实选择了经过优化的值。在这种情况下,稳健统计将是中值。现在我们来说明不同算法得出的平均烹饪时间。为了好玩,我们也将向您展示平均结果。只是为了你的教育乐趣。
Performance of the different optimization algorithms!
上面的表格非常清楚。从优化的角度来看,平均、中值、最坏和最好情况的结果都很清楚。这里唯一的潜在问题是时间。进化算法是出了名的慢。所以你可以自己尝试一下,看看是否会得到类似的结果。
推理快乐!
最初发表于doktormike . github . io。
关于那些过于喜欢聚合的管理者
MS Excel is a dangerous lover | Image source: Pixabay
这是一个关于太喜欢聚合的公司的故事。数据驱动的决策似乎是管理中的新圣杯,但是数字总是可信的吗?在精通数据的企业中,什么是关键:人、合适的技术,还是——剧透——是更基本的东西?这些问题在新经济中变得尤为紧迫,因为未能接受数据可能会成为主要的增长障碍,甚至更糟,成为企业的死刑。
商业本能
最近,我和一个朋友一起吃午饭,他的工作是管理销售人员。我喜欢我们与工作有关的谈话:它们促使我从管理的角度看待问题,这与我通常的顾问视角截然不同。
我的朋友告诉我,他的一位同事更喜欢相信自己的直觉,而不是数字。
“哦,亲爱的,”我听到自己说。我能感觉到这位数据科学仙女又开始秃顶了。
但他的观点远非疯狂。他说,在像他的公司这样的全球性公司里,你看到的报告可能误导多于帮助。经理们经常处理总数:总销售额、预算或雇佣人数。这些数字本身就脱离了背景。当一次销售的总销售额超过一个级别时,允许这些小事件发生的条件就被抛弃了。除了地区、产品或销售人员等典型的描述符之外,很少有已知的细节。信息太少,无法全面阐述基本策略,什么有效,什么无效。管理层被认为是在这种高度概括的商业视野中运作的。
我们的经理认为总数太脱离上下文,不可信。有了这样的概括水平,就很容易通过数字撒谎,或者掩盖谎言。对她来说,跟着直觉做决定和其他策略一样有效。可悲的是,我觉得我背叛了我的工作原则,于是我同意了。她并没有犯根本性的错误;相反,她看穿了一个看似合法的系统的不稳定基础。
当总数增加时
我和我的朋友一致认为这种策略是不可持续的。Zara 在对话中提到:“这些家伙真的知道如何使用他们的数据。”
Zara 是一家非常成功的全球性公司。Zara 重新设计了他们的业务,以更快地响应市场:趋势,生产和交货方式。使这一战略奏效的关键因素之一是摆脱中央计划的收藏。Zara 意识到,除了 Zara 中国,他们的西班牙分公司还迎合其他客户的需求。市场差异是重组组织背后的力量。结果,决策权被分配给了各个地方实体。区域管理层只需担心自己的市场,因此它对变化的反应变得比任何中央机构都更快、更相关、更敏捷。Zara 欣赏市场多样性;一个单一的全球集合不会适合所有人。
我恍然大悟:真正的问题不是分析能做什么或不能做什么,而是它如何被企业应用。在我朋友的职业生涯中,经理们不信任商业智能,而他所钦佩的公司却全心全意地信奉商业智能。理论上,分析是做出明智决策的关键因素,但对一些组织来说,这显然适得其反。这些公司看到了主要趋势,但却忽略了所收集数据的多面性。
科技是罪魁祸首吗?我们都知道相反的情况:今天,经典分析与可视化工具和数据处理引擎的复杂性相结合,为我们提供了对数据的前所未有的访问。商业智能在多维信息分析中蓬勃发展:从不同角度查看数据是其构建原则。一个角度可以是回顾区域层面的销售,并与某个时刻进行比较:我们上个月在法国销售了多少?与去年同月相比有所增加吗?一个更复杂的角度是查看一个区域内各地区的数据分布,以了解不同地理位置之间购买行为的差异。另一种分析是研究买家的人口统计数据,将其与已知的一般人口和竞争对手的基数(在法律允许的范围内)进行比较。正式名称为“切片和切块”,自从商业智能系统出现以来,它就一直是商业智能系统的一个特征。
Happy sleeping seals are an excellent illustration of a successful aggregation | Image source: Ernie Witham
潜在的游戏规则改变者,分析被普遍滥用。商业智能报告可能是精心制作的,但只有少数人理解。经理们可能会欣赏分析的价值,但他们没有接受过处理数据的培训,也无法提出正确的问题来挑战别人的产品。**结果,这项技术被曲解、误用,或者充其量只是用来支持某人的直觉。**分析,无论多么聪明,都不是灵丹妙药——除非商业文化改变,否则根本不是灵丹妙药。
问题是系统性的。许多企业的现实是决策权高度集中。这些少数决策者经营的是扁平化的业务:分析为他们提供了正确的数据,但在详细描述其构成要素方面却不透明。一旦高层决定了战略,数据就会反馈给低层管理人员。自上而下的沟通让人们站在管理层的角度,但没有权力总结自己的观点。因此,他们根据别人的观点做决定,或者作为前面提到的经理,他们拒绝无关的数据,凭直觉行事。这种商业文化未能授权优秀的决策者根据可用数据采取行动。该系统旨在扼杀敏捷性和放弃上下文。
数据驱动的决策是管理中的新流行语,但是如果系统不允许改变,数据应该如何驱动改变呢?
数据驱动的决策修补
世界上充满了这样的例子:公司如此热爱聚合,以至于不再关注销售点发生的事情。这些公司中有许多是全球性的。它们受益于规模经济、技术壁垒,以及可能的极少竞争,这些都让它们对客户听不到声音。
所谓的“客户关怀”是商业无知的头号例子。大多数服务提供商(移动网络是最主要的例子)允许客户只处理一线支持。有大批受过训练的人会告诉你“这是他们能做的一切”,或者“这是公司的政策”。他们很少能提供比谷歌搜索更多的帮助,但你会得到一种你被倾听的印象。如果他们不能解决你的问题或提高你的报价,那么你就把你的不满带回家:这个案例甚至没有被记录。管理层不知道你。公司从不改变。然而,他们的总销售额仍然显示盈利。
大数据似乎已经开始改变现状。客户锁定,即不太可能更换服务提供商,已被视为业务增长的巨大障碍。据说获得一个新客户是昂贵的,因为它需要把这个人从竞争中抢走。留住客户的成本相对较低,因为他/她已经和我们在一起了,但回到第一点,失去一个客户的成本非常高。许多公司利用大数据来识别潜在的搅动者并阻止损失。人们的行为被分析:他们如何使用服务,他们如何支付,他们的朋友是否在使用服务?这显然比报告更上一层楼,但这只是延续了做生意的老一套方式。没有努力改变公司。不满意的客户的识别和可能发生在客户关怀层面的解决方案被延迟和处理,如果有的话。这是数据驱动的决策修补,而不是决策。
摘要
商业文化需要经历一场根本性的变革,成为数据驱动的。不是新的工具、更多的数据或拥有博士学位的员工会让这种变化发生。一个系统,一个程序,或者一个机器人,被设计成最合理,最有能力,最防失败的,只有在它运行的环境允许的情况下才被付诸行动。分析已经存在很多年了,但它们继续被滥用,因为它们所支持的商业模式本质上是不兼容的。按照设计,集中管理的组织阻碍变革;现在是决策变得更加民主和分布式的时候了,数据也是如此。
— — — — — — — — —本文原载于数据漫游。
如果你喜欢这篇文章,请务必查看我的上一篇文章,在这篇文章中,我寻找难以捉摸的数据科学家,并且在 Twitter 上关注我的更新!
关于走向数据科学
最后更新于 2022 年 11 月
我们努力呈现我们的读者乐于阅读的写得好、内容丰富的文章。
Photo by Ian Schneider on Unsplash
东方数据科学公司是一家在加拿大注册的公司。通过使用 Medium,我们为成千上万的人提供了一个交流思想和扩展我们对数据科学的理解的平台。
媒介生态系统
“你在其他地方找不到的想法和观点。”
对人而不是广告的强调使得媒体独一无二。它不仅有助于作家展示他们的原创思想,而且还为广大读者提供了一个清晰的阅读体验。
媒介生态系统保持清晰透明,具有用户友好的服务条款和简单的规则可供所有人使用。作家受到更好的保护,因为他们控制着他们作品的许可证。
此外,2017 年,Medium 推出了互联网的第一个开放付费墙。这种付费墙使创作者能够从相信想法和创意值得付费的读者群体中赚钱。我们很高兴成为其中的一员!
我们于 2016 年 10 月加入 Medium 充满活力的社区。起初,我们的目标只是收集好的帖子,并将其分发给更广泛的受众。仅仅几个月后,我们很高兴地看到,我们有一个非常快速增长的观众和许多新的贡献者。
今天,我们与超过 4 名编辑和 15 名志愿编辑(编辑助理)一起工作,为我们的观众准备最精彩的内容。我们使用 Medium 的私人笔记向我们的贡献者提供定制的反馈。这使我们能够在社交媒体上推广我们的最新文章,而不会增加使用其他平台时可能遇到的复杂性。
Photo by Rodion Kutsaev
令人印象深刻的贡献者
Medium 生态系统的成功吸引了越来越多渴望分享重要事物的独特声音。2017 年 2 月,Medium 首席执行官 Ev Williams 报告称,每周有超过 5 万名作家在 Medium 上发表文章。这个惊人的数字还在增长。更好的是,Medium 是一个面向所有人的平台,这意味着你可以找到来自世界各地的作者——他们是专业的,也是新手。
这个令人印象深刻的作者社区提升了我们的追随者,推动了数据科学的早期发展,并继续成为我们仍然存在的原因。2020 年 1 月,我们统计了全球各地的数千名作者,我们很高兴每天都能收到你们这么多的新投稿。
人们出于各种原因加入,无论是为了接触更广泛的受众,获得重要的反馈还是在我们的社区内建立专业网络。其他人喜欢和我们一起出版,因为他们仍然是他们原创作品的唯一所有者。无论我们的作者是选择每周一次、每月几次还是一年几次与我们一起发表,他们都做出了独特的贡献,成就了今天的我们。
例如, Jonny Brooks-Bartlett 发表了几篇关于概率的文章。 Susan Li 与数据科学社区分享了她最新的代码和教程。乔治·赛义夫解释了不同类型的聚类算法以及其他一些概念。
自从我们开始以来,我们对收到的帖子的质量感到惊讶。我们可以感受到努力工作和愿意分享一些重要的东西。我们很荣幸能够帮助和支持我们的贡献者传达他们的信息。
虽然我们允许独立作者根据我们的 规则和指南 发布文章和视频,但我们不认可每个作者的贡献。
Some of our most-read articles
目的和价值
我们的目的
“走向数据科学”最初是一个辅助项目,旨在帮助数据科学和机器学习社区共享概念、想法和代码。
现在是一个国际化的团队,我们日以继夜的工作在这个平台上分享的内容。每天,我们都会审查提交的内容,并向众多作者提供反馈。最重要的是,我们总是致力于新的项目,以帮助我们的贡献者达到我们的观众。
对于我们所做的一切,我们都尽可能地让社区参与进来。
我们的目标是呈现我们的读者乐于阅读的写得好、内容丰富的文章。最终,我们希望让世界变得更美好。我们相信共享和开发数据相关知识是实现这一目标的关键部分,因此我们努力为我们的社区带来价值。
“我们相信,数据相关知识对于让世界变得更美好至关重要。”
一路上我们做的一些选择
随着我们的出版物逐年增长,我们必须决定分享我们贡献者内容的最佳方式。以下是几个重要的例子:
**被托管在介质上。**我们很早就决定在 Medium 上进行托管,我们很高兴这样做了。Medium 是一个很棒的平台。它提供了速度,安全性,一个智能手机应用程序,它允许评论,亮点,笔记等等。
我们也理解 Medium 不允许广告。广告正在损害许多平台的声誉,我们不希望商家能够付费让他们的产品出现在你的眼前。它扰乱和破坏思想的交流。我们的作者可以选择他们是否想要付费,我们相信这个平台提供的系统鼓励更高质量的内容。
**成长与学习。**2016 年,我们开始作为一个开放的出版物,我们接受了我们收到的大部分投稿。我们只是很高兴开始与数据科学社区联系,分享想法和代码。随着我们的受众和责任的增加,我们努力提高 TDS 的质量。从那以后,我们发布了指南、规则和条款,并扩大了我们的编辑团队。我们不断努力,尽一切可能提高我们出版物的质量。
请注意,我们不一定赞同或同意我们成千上万的贡献者写的内容。当我们认为有可能引发有价值的讨论时,我们也会偶尔发表有争议的观点。我们知道看待一个问题有很多方式,我们鼓励我们的作者从不同寻常的角度来看待问题。我们渴望引发明智的讨论,我们喜欢读者们恭敬地提出自己的见解、解决方案和想法。
话虽如此,我们也是人。我们会犯错误,我们偶尔会错过我们发表的文章中的错误。如果你觉得你发现了违反 Medium 标准的东西,Medium 让你可以很容易地举报任何违反其规则的帖子和用户。我们还让我们的社区可以轻松地注册投诉,我们欢迎您的反馈和关注。
将最好、最独特的重要内容进行优先排序:我们在 TDS 所做的部分工作是决定哪些帖子比其他帖子获得更多曝光。我们决定在我们的出版物上刊登哪些文章,以及在我们的社交媒体渠道上分享多长时间和哪些文章。我们花时间试图找到最好的、最独特的、最重要的内容来分享和展示。
当我们使用术语“重要”时,我们指的是关键信息和未被充分表达的想法。例如,我们经常比其他文章更长时间地发布关于机器学习模型的公平性、偏见、安全性和可解释性的特殊帖子,因为我们希望确保尽可能多的人在我们的社区中看到和阅读它们。
我们创建了一个 集合,致力于我们认为我们的社区应该了解更多关于 的内容,并发布了我们认为有价值的帖子。如果你想投稿,你可以在这里找到更多信息。
我们的价值观
**保持乐观:**有时候,抗议的最好方式就是提出一些新的东西。我们帮助那些试图展示和分享新想法的人。我们提供的新想法和分享的知识越多,我们就能越快地解决紧迫的问题。
关注改进:因为我们关注长期,所以我们总是寻求实现可管理的渐进改进。我们一直希望赢得并建立读者的信任!
心存感激:没有媒体,或者没有我们的社区,我们永远不可能存在。我们感谢所有让这一切成为可能的人。我们特别感谢我们的作者、编辑同事以及其他在这一过程中帮助过我们的人。
土地确认函
TDS 是一份拥有全球读者和分布式编辑团队的出版物。我们公司在加拿大注册成立,注册办公地址在通常被称为“多伦多”的地方,这里是许多民族的传统领地,包括在这片土地上生活了 10,000 多年的密西沙加人、阿尼什纳人、齐佩瓦人、豪德诺索尼人和休伦-文达人。今天,这个聚会场所仍然是来自海龟岛的许多土著人的家园,我们承认我们作为非土著定居者在被盗土地上的地位。使用和参与土地确认函是承认该地区土著人民自古以来的持久存在和复原力的一种方式。它们也提醒我们,我们都要对这些关系负责,没有人可以免于追求和解和联盟。
我们对公平和公正的承诺超越了我们的地理位置和历史。TDS 是一份专注于数据科学和相邻领域的出版物,我们承认现代统计和计算的起源往往与优生学、种族主义和暴力行为密不可分。在我们的工作中,我们不仅努力承认这段历史,还积极倡导将数据科学作为反对歧视、偏见和边缘化的力量的声音和研究。
没有我们的编辑同事,我们的工作是不可能的。自从我们在 2017 年 10 月开始招聘以来,他们已经提高了在“走向数据科学”上发布的内容的质量。我们现在有一个善良、负责的团队,渴望学习、帮助和理解作者的想法。
像许多自下而上的运动一样,走向数据科学也是与朋友、家人和决定不求回报地提供帮助的人一起建立的。我们感谢他们和你所做的一切。
你可以在这里联系我们。
建模中的抽象与现实
我怀着病态的兴趣阅读了 N. N .塔勒布的最新长篇大论。
一方面,这是一种政治咆哮,关于他有强烈观点的问题。但是,与此同时,它也是对我们如何概念化的问题,建立模型,处理数据,并采取行动的评论。我不太关心前者,但我显然对后者着迷,所以这篇文章关注后者。
塔勒布不太在乎过于“学术”和“一维”的思维,这种思维将失败归咎于事后的“不确定性”,而没有“参与游戏”。这同时也是一种合理和不公平的批评。学术思维的全部意义恰恰在于,他们与游戏无关,他们能够冷静地审视问题,而不会过多地考虑对他们有什么好处,从而蒙蔽了他们的判断。(从这个意义上说,塔勒布所批评的政策制定者的问题是他们没有参与这场游戏吗?从某种意义上说,他们在这场游戏中有很多利益——如果他们“赢”了,他们会得到很多——但从另一种意义上说,如果他们失败了,他们不会失去很多。这似乎是“游戏中的皮肤”的最糟糕的形式,不幸的是,似乎每个人都想要。)为了能够清晰地看到感兴趣的特征,即使以现实主义为代价,建立模型的全部目的是故意过度简化,用 Weisberg 的话说,就是通过加入“故意的无知”。如果处理得当,事实上非常希望模型是“学术的”和“一维的”
真正的问题在于把模型看得太重,而不知道或不关心在构建它们时所采取的步骤,尤其是在游戏中使用了错误的皮肤时。然而,从某种意义上说,这些遗漏是自然的。我们雇佣专家来用最简单的术语告诉我们答案,而不是告诉我们事情很复杂,因为所有的警告都需要解释。我们希望利用模型来最大化收益和最小化风险,即在游戏中最大化错误的皮肤。这些不是失败,而是被设计的!
在我看来,唯一的长期解决办法是更广泛地传播更深层次的科学素养,理解科学理论的局限性。如果你愿意,科学之所以伟大,是因为科学家努力理解它在何时何地错得有多离谱,而不是因为他们无条件地相信它是正确的。如果处理得当,科学是一种尽量减少错误的努力。工程是尽量减少某些错误的努力。但是这两者都是建立在这样一个前提上的,即总会有错误,并且意识到会发生错误——诚实的科学和工程应该把这些认知放在最前面和最中心。
但是,当面对一个只对答案而不是问题感兴趣的市场,诚实和夸张的答案难以理清时,好的科学能占上风吗?斯蒂格利茨和格罗斯曼认为,一个完全信息的价格体系瓦解了其自身的内在矛盾,因为价格是可以自由观察到的,而搜索真实信息的成本很高。有用的信息一旦被使用,就会迅速反映在价格上,从而否定私人信息的价值——这一过程在今天比以往任何时候都要快。因此,以成本学习有用的东西的激励变成了愚蠢的浪费,而盲目跟随市场的羊群则变得明智——直到羊群集体跳下悬崖。但是,如果这种可能性足够小(希望如此),从众是更明智的做法——尤其是因为从众产生了大量行为良好的数据。同样的逻辑在许多其他环境中盛行,包括思想的市场——如果复杂的模型提供的收益很少,因为它们暗示的灾难是非常罕见的,为什么要麻烦呢?事实上,要不是我们在中期内(可能)永远不会看到的灾难,这些灾难可能不会产生足够大的 n 来进行有用的分析,我们甚至能区分好的复杂模型和坏的模型吗?
其含义似乎发人深省:简单但只有“相当好”的模型总是会比复杂和“非常好”的模型卖得更好,这些模型对于它们自己的好模型来说几乎无法区分。由于模型的一种彼得原理,偶尔会有灾难发生——它们被用在高于其效用的环境中,市场低估了罕见的风险。成熟的工程专业通过建立集体声誉的过度保险规范来管理风险——即使一座给定的桥梁可能不会那么容易倒塌,但在如此多的桥梁中,如果安全边际不是特别大,一些桥梁将在某处倒塌,对土木工程专业产生有害影响。或许这是一个值得效仿的模式。
PS。“大数据”带来的重要附加值是,数据的总体集合越大,可以用来帮助验证更好、更复杂的模型的小子集就越大。这增加了对数据的需求结构,无论是好的科学还是坏的科学。我们需要仔细考虑模型,并询问需要什么样的额外数据来验证模型的哪些方面。这可能需要 A/B 测试,或者只是将注意力集中在无需实验就能收集到的数据子集上。但是简单的更大的数据不是答案:你想要检查模型的哪些方面,你需要什么样的数据?但这需要的不仅仅是围绕大故事的简单故事讲述。你需要细微的差别,来理解为什么一些数据比仅仅有更多的数据更有价值。
从学术界到数据科学
我作为一名数据科学家已经工作了一年多,但在此之前,我在学术界担任博士后研究员。自从我转型以来,我的一些朋友问我关于我的工业数据科学之旅。他们中的许多人正在考虑离开学术界,数据科学是一个有吸引力的选择。虽然,我在数据科学领域的这一年有起有落,但我不后悔我的决定,我肯定会推荐它。然而,这种转变并不完全简单。这对于许多人来说是不同的,所以我写这篇文章,希望它能帮助那些仍然不知道如何实现这一飞跃的人。
我应该提到,我的经历是从一个具有学术研究背景的人的角度出发的,我经常使用数据科学技术方面通常使用的许多工具和技术。这意味着我不必真的从零开始,做许多过渡课程。然而,如果你觉得我的经历与你无关,你还是很幸运的。玫瑰花蕾安乌里。写了一篇关于她进入数据科学的之旅的精彩文章。这是一个非常成功的故事,值得一读。
我在学术界有什么问题?
当我在 2012 年开始攻读博士学位时,我并不确定自己以后想做什么,但我认为我最有可能留在学术界,成为一名教授(可能是应用数学或类似的专业)。学术界吸引人的一些因素,尤其是科学和数学,包括:
- 目标很明确。为了人类的利益,我们都想更多地了解我们周围的世界。这与工业相反,工业的目标是赚更多的钱。如果你在工业部门工作,你会被出卖的。
- 每个人都会在完美的协作中工作,我们希望其他人都好,因为我们有共同的目标。相比之下,创意在工业界是保密的,因为你需要自私才能赚钱。
- 完成工作不会有太大的压力,因为学术严谨是最重要的。因此,你总是知道你在做尽可能最佳的工作。
Me looking through a microscope for protein crystals that I grew. This photo was taken back in March 2015
哦,我是多么失望啊!以上都不是完全真实的。我觉得学术界的大多数问题都源于发表或灭亡文化,但那是另一篇博客文章的主题。
除了意识到我对上述的幻灭,还有其他原因让我想离开学术界。
- 我对我在生物学应用中使用的软件工具和算法越来越感兴趣,这是我所在领域的核心。
- 我希望有一天能有一个家庭,而学术界的短期合同的性质与家庭生活不相容。
- 我想在晚上和周末放松一下(在学术界,在正常工作时间之外工作是很常见的)。
我交谈过的许多早期学者都经历了我上面提到的同样的问题,所以我知道我不是唯一有这些观点的人。
我让学术界听起来很糟糕。事情没有我想象的那么糟糕,事实上我的研究小组棒极了。我有很好的同事和很棒的导师,但问题是我不会在我整个学术生涯中都在这样一个令人惊叹的团队中。
我是怎么出来的?
在我博士期间,我在阅读卡尔曼滤波器时遇到了“机器学习”和“数据科学”这两个术语,因为我在做一些工作时需要用到它们。特别是数据科学,这是我第一次遇到一个似乎集中在我喜欢的学术领域的领域;复杂的算法和很酷的技术(数据科学还有很多,但这是我当时关心的)。
随着时间的推移,我阅读了大量关于数据科学的书籍,并发现我已经使用了相当多的常用数据科学工具:我已经使用 Github 好几年了。我精通一些编程语言,包括 Python(我不使用 R,但我以前用过一次,如果我真的需要,我觉得我可以学习它)。我也有做回归、优化和贝叶斯推理等方法的经验。
尽管知道所有这些,我仍然觉得没有资格做数据科学。当你在网上读到数据科学和机器学习的时候,你会感到不知所措。似乎每天都有新的算法或技术需要你去了解,如果你不知道,那么你已经是这个领域的恐龙了。这不是真的,但它肯定会有这种感觉。
提升我的技能
我参加了一些在线课程来提高我的数据科学技能,但我觉得我学得不够快。幸运的是,我在 Twitter 上看到了 ASI 数据科学训练营。然而,申请截止日期不太合适,我觉得科学到数据科学 (S2DS)训练营更适合我。
关于我在 S2DS 训练营的经历,我将把细节留到更全面的帖子中,但简而言之,我学到了一些非常重要的东西。其中最重要的一点是,我已经具备了成为一名初级数据科学家所需的技能。我不需要精通每一种新的复杂算法,也不需要成为最新高性能计算工具的专家。另一件重要的事情是,数据科学家是一个非常广泛且定义不清的工作角色,因此找到合适的工作需要大量的研究。
找到工作
在完成我的博士学位和学位后,我开始找工作。花了大约 3 个月的时间最终找到了一份工作,在此期间,我发现传统的求职方法(向我没有联系的公司发送简历)对我来说不太管用。我很幸运,组织 S2DS 训练营的公司 Pivigo ,也组织了商业分析和数据科学会议,并邀请我介绍我在训练营中所做的工作。我现在的雇主当时在观众席上,剩下的就是历史了。我还得到了另一位雇主的第二份工作邀请,那晚他也在观众席上。
那么我会给出什么建议呢?
我已经写了一篇博文,专门讲述了我在求职过程中所学到的东西,所以我不会在这里重点讲述获得数据科学工作的那个方面。相反,这里是我对准备阶段的建议,即当你考虑进入数据科学领域,但在正式申请之前,你应该做些什么。
- **与数据科学家交谈。**了解他们做什么,并发现数据科学是否适合您。伸出手去。人们总是乐于谈论他们自己和他们的工作;)但最重要的是,它可能对你的职业决策有所帮助。有人在 LinkedIn 上突然联系我,希望进入数据科学领域。几个星期后,我们面对面共进午餐,我给他一些建议。现在,他在谷歌 deep mind 的资助下攻读数据科学硕士学位。
- 多读书! 玫瑰花蕾安乌里。说的也是。你永远不会知道太多。你知道的越多,你的处境就越好。当申请的时候,你将能够做出更明智的决定来帮助你。
- 开始学习使用工具。如果你不懂编程语言,那就去学一门。例如,我通过在 it 领域实现我的博士工作来强迫自己学习 Python(和其他语言)。如果你需要学习如何使用特定的工具,比如 Git/Github,云计算等等。然后想办法把它融入到你现在的工作中。或者如果你有时间的话,你可以做些兼职。网上有很多资源可以帮助你开始,如果你找不到人,就去问。例如,如果有人要求我写一篇关于某事的博客,我会非常高兴,因为我喜欢知道我的成果会对别人有用。
- 展示你的知识为你的项目公开 Github 库。在 Medium 上写博客(我真的很爱 Medium)。它允许雇主或招聘人员搜索你。或者更好的是,雇主可以在考虑你的申请时搜索你,并查看你的工作来支持你的简历。当我们招聘的时候,我在浏览简历,我记得有一个候选人的个人博客的内容给我留下了深刻的印象。因此,他答应来和我们面谈。
- 开始建立你的人际网络。去数据科学聚会和人们交谈。在 LinkedIn 上联系人们。就像他们说的重要的不是你知道什么,而是你认识谁如果你和合适的人接触,你永远不知道会发生什么。
非常感谢您的阅读,我希望这是有用的。
从学术界到数据科学:正在进行的工作
“A tiny sprout growing in fine sand casting long shadow” by Evan Kirby on Unsplash
大约一年前,我终于忍气吞声,下定决心,大学生活不适合我。这来之不易。在做出决定之前的几年里,我在探索其他职业和试图说服自己在神经科学实验室做博士后是正确的道路之间摇摆不定。这是一场斗争,一方面,我觉得自己感兴趣的问题类型已经改变,另一方面,我担心跳槽意味着我浪费了过去 3-4 年的职业生涯。最后,我接受了这样一个事实:无论我做出什么样的决定都是好的。重要的是承诺并坚持到底。
在某种程度上,离开学术界去从事数据科学似乎是一个自然的下一步(尽管是替代的)。自从上大学以来,我花了很多时间对促使人类和其他动物做它们所做的事情的外部和生物因素感兴趣。然而,最近,我对在更大范围内测量人类行为的想法产生了兴趣,并实际上利用这种洞察力来影响决策。虽然这在学术界似乎是一个艰难的问题,但它本质上是许多数据科学职位的工作描述。
自从决定离开学术界以来,我发现了一些有用的途径和建议,还有一些我可能不需要的。有些事情我认为我做得很好,有些事情我并不特别自豪。有些资源花了我很长时间才找到,我希望我能早点找到。这篇文章收集了一些关于这方面的漫谈,目的是传递给任何感兴趣的人。
在开始之前,有一件事我显然需要澄清:我仍在完成我的博士学位,因此无法用任何具体的成功措施来支持以下任何建议。对于数据科学职位的面试或求职,我也不能给出任何见解。如果人们觉得这篇文章有用,并且我在未来成功地完成了转变,我会很乐意在以后发表这些经历和更多。
秘诀 1:下定决心
正如我之前讨论的,我花了很长时间才决定离开学术界。有很多原因可以解释为什么你会这样。可能是你害怕让你的导师和同事失望。或者,像许多人一样,你发现进入一个你知之甚少的领域是令人生畏的。不管原因是什么,有一点是肯定的:
你打电话的时间拖得越久,一旦你最终成功转型到数据科学,你的时间就越少。
秘诀 2:一点一点来
学习获得数据科学工作所需的一切可能会非常令人生畏,尤其是如果你是从零开始的话。你需要用 python/R 进行分析(ew Matlab -参见这个 twitter 线程),你需要了解 SQL(尽管基本上没有理由在研究实验室环境中使用它),你需要温习你的统计数据,你可能想要掌握一些机器学习甚至一些深度学习。你可以每天花几个小时疯狂地试图学会所有的东西,结果却筋疲力尽并放弃了,因为它妨碍了工作。或者,你可以试试这个:
设定一个超低的标准,目标是在大多数日子里做最少的̶̶e̶v̶e̶r̶y̶̶。
有一堆心理学/神经科学的文献我不会引用(主要是因为我很懒,Charles Duhigg 在他的书习惯中总结得更好,你应该相信我,我是一名神经科学家)说为了养成习惯,你应该设定小的日常目标。实际上,当你完成了今天的目标后,你会有成就感,这增强了你明天再做一次的愿望。而且,很多时候你最终会超出你的目标,因为最困难的部分是克服激活障碍。如果你坚持这样做,你会在几周/几个月后回顾过去,并且想“我想我现在知道 python 了,不是吗?”。
我发现有一些资源可以很好地适应这种策略,如下所示:
- www。如果你是从零开始,并且想从 Python、SQL、Git 等学习一切,这是很棒的
- Coursera 上的任何数据科学课程,特别是吴恩达的机器学习课程和深度学习专业
- 3blue1brown 线性代数精粹温习一些数学知识。还有微积分和神经网络。
这对于这种学习策略非常有用的原因是,这些材料被拼接成 10-20 分钟的视频或练习,对于一些小目标来说是完美的。还有一个有趣的注意:我设定的目标是为这篇文章写一段话,但是我陷入了一些漫无边际的话题。
技巧 3:屈服于你的罪恶快感
在我决定学习数据科学交易工具后,一些奇怪的事情开始发生。我的公寓开始积累关于 python、SQL、特征工程、深度学习的技术书籍。出于某种奇怪的原因,我甚至发现自己把这些书放在背包里上下班;我绝对没有看。我买下了每一本书,打算坐下来从头到尾读上几个小时。直到今天,我还没有完整地读完其中的一本。我曾经对此感到有点内疚(现在也是)。但是后来我发现我做错了什么。我试图阅读这些书,但我从书中学到的知识并没有立即派上用场。结果,我会觉得自己对刚刚读过的东西有了很好的理解,但这很快就变成了一种模糊的熟悉感。解决这种奇怪行为的方法是把书放在一边,开始一个新项目,目标是解决一个我感兴趣但鉴于我的技能组合可能难以解决的问题。不出所料,我经常在分析中遇到障碍,因为我不知道如何去做。然后我会意识到,“废话,我有一本书,可能可以教我如何做到这一点”。这将导致我狼吞虎咽地阅读整个章节,试图找出如何解决我的问题。所以我的建议是:
去吧,屈服于你买那本奥莱利新书 的罪恶感吧(如果你有钱的话)但是一旦你收到钱,就把它放在一边,开始一个项目。
我桌子上积灰最多的三本书:
- aurélien géRon使用 Scikit-Learn 和 TensorFlow 进行机器实践学习
- 杰克·范德普拉斯的《Python 数据科学手册》
- 机器学习的特征工程Alice Zheng
未完待续……
如果上面的一些内容描绘了一幅研究生生活的灰暗画面,那不是我的本意。研究生生活的某些方面我不喜欢,但有些事情我几乎肯定会怀念。因此,有很多理由离开学术界,但也有同样多的理由留下来。此外,虽然不久前可能不是这种情况,但我相信甚至可能会有一些情况,你可能想进入学术界,并打算在短期工作后离开。为了不使这成为一个不合理的冗长的文本墙,也许我会把这些留到另一篇文章中。
欢迎在下面留下任何评论或反馈。如果这看起来对任何人有用,我更愿意再写一篇。另外,在 twitter 上关注我吧,这样我就不会觉得自己在发微博了。
最后一个临别的想法:如果你担心离开学术界,因为你认为这样做是失败的,我鼓励你看看下面的图表,并查看一下 这个 twitter 帖子,寻找一些好的感觉
Where will a biology PhD take you by Jessica Polka
学术生态系统被破坏了,我们应该如何恢复它
我在伦敦大学学院(University College London)攻读组织心理学硕士学位时,意识到学术界的生态系统遭到了破坏,而目前我们没有采取多少措施来恢复它。
这一切都是从我了解 p-hacking 和复制危机开始的。P-hacking 基本上意味着有选择地分析数据,只报告支持假设的结果。在一项对 2000 多名心理学家的调查中,哈佛商学院的莱斯利·约翰发现,超过 50%的心理学家在检验结果的重要性后才决定是否收集更多的数据,这样他们就可以等到假设得到证实。
调查还发现,大约 10%的研究心理学家参与了数据伪造,超过一半的人参与了欺诈行为,例如报告结果具有统计学意义,而实际上并不具有统计学意义,或者在查看了两种不同的数据分析技术的结果后,在两种技术之间做出决定,并选择更有利的技术。
John, L.K., Loewenstein, G. & Prelec, D. (2012). Measuring the Prevalence of Questionable Research Practices With Incentives for Truth Telling, Psychological Science, 23(5), 524–532.
虽然 p-hacking 本身并不是一种欺诈,但它会导致发布误导性的研究结果。如果心理学和其他社会科学的研究被定期复制,P-hacking 就不会是这样一个大问题。如果研究小组 A 在数据中发现了一个有趣的模式,而研究小组 B,按照完全相同的程序,没有发现,科学会在某种程度上自我修正。不幸的是,没有进行许多复制。
Open Science Collaboration. (2015). Estimating the reproducibility of psychological science. Science, 349(6251)
2015 年,Brian Nosek 和他的同事在科学上发表了一项出色的研究,调查了 100 项发表在主要期刊上的认知和社会心理学研究。这些研究中只有 39 项被成功复制。虽然所谓的“复制危机”是心理学的热门话题,但遭受痛苦的不仅仅是心理学。2011 年,制药公司拜耳检查了 67 份药物发现出版物,报告称其中四分之三是错误的。
更糟糕的是,在科学不端行为的光谱中,还有科学欺诈。以荷兰蒂尔堡大学的 Diederik Stapel 教授为例,他伪造了至少 55 篇论文的数据,这些论文的主题包括人类的刻板印象或歧视倾向。
大海捞针
从历史上看,大多数社会科学都是关于数据收集的。了解个人、群体、国家或地区行为所需的信息需要数年时间来收集。现在情况不再是这样了。据估计到 2020 年,世界上每个人每秒将产生大约 1.7 兆字节的数据。如果今天我们偶尔无法利用一些现有的数据源,通常不是因为缺乏数据,而是因为隐私问题、缺少数据共享协议或计算能力不足。
有趣的是,在这个数据丰富的时代,大多数社会科学家继续一次收集一个实验参与者的实验数据。然而不幸的是,这些研究中的大多数都不能很好地概括。即使收集了数据,我们也不能确定它是否能告诉我们一些受过白人教育的大学生的行为,他们倾向于参与大多数实验,或者我们多样化的世界。
不久前,我读了一本关于约会的书,作者是克里斯蒂安·鲁德尔,《数据专栏》。书中的大部分观点来自美国最大的约会网站“OkCupid ”,反映了在该网站注册的人们的真实行为。有人可能会争辩说,这些发现仍然只适用于实际使用交友网站的人,但就洞察力而言,1000 万使用交友网站的美国人仍然比研究人员容易接触到的一小部分白人中产阶级大学生样本的研究要重要得多。
以斯坦福大学的 Geoff Cohen 完成的一项典型实验研究为例。2003 年和 2006 年,他和他的团队与 158 名黑人七年级学生一起工作。他们中的一半被随机选择写一些对他们来说重要的事情,另一半写一些不重要的事情。这个练习只持续了 15 分钟,但那些写下自己价值观的人在学期结束时,他们的 GPA 增加了 0.3 分,缩小了他们和白人同龄人之间 40%的学术差距。根据作者的说法,这个简单的练习打破了许多黑人学生经历的恶性心理循环。有证据表明,黑人学生担心他们在学校表现不佳的负面刻板印象,这种担心造成了如此大的压力,以至于他们最终表现不佳。通过让孩子们写下他们的价值观,作者认为已经在心理上给他们注射了对抗这种刻板印象威胁的疫苗。
然而,158 名学生并不是一个大样本。因此,当加州大学欧文分校的保罗·汉塞尔曼试图用更大的样本重复两次研究结果时,他首先发现 GPA 仅增加 0.065 的影响要弱得多,然后发现写作练习根本没有影响。
破碎的激励
学术界的许多问题是系统性的,因为对在大学工作的人的激励被打破了。一些学术结构和过程,如专业协会和期刊出版可以追溯到 17 世纪,但它们对现代社会的适用性值得怀疑。我在伦敦大学学院读心理学的时候,多次听说出版物是科学的“货币”。
然而,在一些国家,出版物和现金之间的类比被发挥到了极致。为了了解中国的现金出版制度,来自武汉大学的全伟和他的同事调查了中国排名前 100 的大学提供的财政激励,并从数据中挖掘出有趣的趋势。他们发现,2016 年,在顶级科学期刊上发表一篇论文的平均报酬几乎是 44,000 美元,最高报酬是 165,000 美元。尽管从绝对值来看,这些数字相当可观,但需要注意的是,在研究期间,中国大学教授的平均工资仅为 8600 美元。
Quan, W., Chen, B., & Shu, F. (2017). Publish or impoverish: An investigation of the monetary reward system of science in China (1999–2016). Aslib Journal of Information Management
发表论文的动机在增加,但期刊对新奇、性感发现的渴望也在增加。因此,值得点击诱饵的发现偶尔会导致编辑忽略方法上的缺陷。此外,目前的制度不鼓励复制。根据定义,复制(或事实上未能复制)的研究并不新颖,因此通常会被拒绝(所谓的“文件抽屉”问题)。
https://www.nature.com/news/replication-studies-bad-copy-1.10634
臭名昭著的 Diederik Stapel 在至少 55 篇论文中伪造了数据,他认为公众没有意识到学术科学正在变成一门生意。在接受《纽约时报》采访时,Stapel 认为“科学当然是关于发现,关于挖掘发现真相。但这也是沟通、说服、营销。我是一名推销员。我在路上。人们带着他们的谈话在路上。用同样的话。这就像一个马戏团。”
更糟糕的是,学术界的竞争越来越激烈。博士的产生已经远远超过了对讲师的需求。根据 Andrew Hacker 和 Claudia Dreifus 的说法,从 2005 年到 2009 年,仅美国就培养了超过 10 万名博士学位持有者,但同期只有 1.6 万个新教授职位出现。在这样一个竞争激烈的环境中,网络和游说在科学事业中扮演着至关重要的角色。然而,擅长玩弄体制的学者不一定能做出最高标准的研究。
弥合学术与实践之间的鸿沟
到我大学毕业的时候,这句话我一定听过至少一千遍了。很多学术做了很大的研究却不说从业者的语言。换句话说,他们无法解释他们进行的研究如何解决现实生活中的问题。另一方面,从业者通常无法获得学者拥有的许多工具和数据。因此,他们经常试图重新发明轮子,浪费资源。当然,某些杂志和博客会定期向非学术受众介绍和解释一些最新的研究,但这往往是个例外,而不是常规。
在我大学四年级的时候,我参加了一个公开讲座,主讲人是一位著名的学者,也是一位研究界和实践者之间更紧密合作的倡导者。我震惊地得知,科学发现平均需要九年时间才能付诸实践。虽然没有太多的科学应用到实践中,但实践世界中的大多数决策都没有任何证据支持。例如,根据奥巴马政府的彼得·奥斯泽格和布什政府的约翰·布里奇兰的说法,每 100 美元的政府支出中只有不到 1 美元有最基本的证据支持。
这并不是说学术研究的唯一目的是为决策者或其他从业者服务。然而,当从业者不听、不听或不理解学者们在说什么,而学者们继续进行由于样本量小、研究实践有问题或彻头彻尾的欺诈而难以概括的研究时,双输局面就不可避免了。
走向解决
今天,我们比以往任何时候都更需要科学和基于证据的政策。如果科学家逐渐选择接受点击诱饵和推销术的后现代意识形态,而不是致力于寻求真理、科学和道德完整性,我们就有大麻烦了。
在这个后真理政治的时代,必须确保每一份科学出版物的严谨性和质量,投资于科学教育和科学界与实践者之间更好的沟通,并重新设计有缺陷的激励矩阵,促进数量和新颖性而不是质量。大学也应该承认他们的机构责任。目前在大多数高等教育机构中根深蒂固的“出版或灭亡”的心态威胁着学术追求和知识探索的基础。在某种程度上,科学需要回到它辉煌的黎明,那时理解世界是如何工作的,并把它传达给其他人是它的主要的,也可能是唯一的目的。
我们还需要创造一种文化,促进复制和其他一些年来广泛讨论的良好做法。研究生应该得到奖励,因为他们以这种方式完成了复制,发展了他们的技能,同时也确保了发表的研究可以很好地复制。论文应该要求对研究、数据和任何其他相关材料进行登记,这对于决定学术论文的质量是很重要的。应该提供更好的方法和统计知识培训,作为各级大学教育的一部分。应该提倡跨学科研究。应该鼓励从业者和学术界建立有意义的伙伴关系,让学术界减少对政府资助的依赖,从实践中获取数据,而不是从难以概括的小样本中收集数据。
从错误中学习的意愿,谨慎的测试和对方法选择的质疑应该是科学的基础。不幸的是,今天许多学者被急功近利所驱使,经常试图跳过这些关键步骤。这种心态只会加强公众对科学的怀疑和某些犬儒主义,并破坏对共同现实的信念。在这样一个世界里,人们很自然地把自己关在回音室里,给他们觉得不愉快的科学发现贴上偏见、不可靠或纯属伪造的标签。讽刺的是,有时他们可能是对的。
使用分布式 SGD 加速深度学习—概述
训练神经网络既困难又耗时。通常,训练运行需要几天甚至几周时间才能收敛。这对参与人工智能技术研发的公司来说,阻碍了创新,耗费了大量资金。出于这个原因,最近许多脑力投入到提高神经网络训练速度,特别是使用平行化。
随机梯度下降(SGD)及其多个变体(如 RMSProp 或 Adam)是深度学习最流行的训练算法。由于它们的迭代性质,这些算法本质上是串行的。通常,唯一发生的并行化是卷积神经网络(CNN)中的像素并行化或小批量并行化。然而,小批量的大小也是网络准确性的关键参数,因此不能随意改变。此外,小批量的大小受到计算机内存(如果算法在 GPU 上运行,则为 GPU 内存)的强烈限制。由于这些原因,我们需要一个快速稳定的解决方案,在多个独立节点(计算机)上并行训练,以实现更高的加速比。能够做到这一点也将对开发成本产生巨大影响,因为大型商用集群(一堆普通 PC)通常比少数配备定制硬件(如 GPU 或 FPGAs)的高度专业化计算机便宜得多。此外,可扩展性将不再是一个问题,具有动态硬件扩展的按需培训将成为现实。
多年来,已经发明了针对该问题的多种解决方案。在这篇文章中,我将详细介绍一些最有前途的对普通 SGD 的修改,并尝试解释这些修改背后的基本原理。
锁定更新(同步 SGD)
跨多个 CPU 或节点并行化 SGD 的最简单解决方案是让每个节点读取当前参数值,使用一批数据计算梯度,锁定参数并更新它们。在伪代码中:
parallel for (batch of data):
Acquire lock on current parameters
Read current parameters
Calculate the gradient w.r.t. the batch and update parameters
Release lock
end
这种更新的问题是获取锁通常比计算梯度花费更长的时间。因此,同步成为一个主要的瓶颈,并行化是无效的。因此,必须设计替代方案。
疯狂奔跑:野猪!算法
Hogwild 算法()Recht,Benjamin,et al .〈hog wild:一种并行化随机梯度下降的无锁方法〉。神经信息处理系统进展。2011. )是并行化 SGD 的早期尝试之一。它是由威斯康星大学的研究人员在 2011 年发明的。Hogwild 的工作原理可以简单地解释为:它就像上面的代码,只是没有锁。在伪代码中:
parallel for (batch or sample of data):
Read current parameters
Calculate the gradient w.r.t. the batch and update parameters
end
虽然这可能不明显,但 Hogwild 的作者能够从数学上证明这是有意义的,至少在一些学习环境中是如此。算法的主要假设是参数更新是稀疏的。这意味着大多数更新只更新一组稀疏的参数。在这种情况下,Hogwild 能够实现与串行版本几乎相同的收敛速度。
倾盆大雨新加坡元
Downpour SGD architecture (credit: paper)
倾盆大雨 SGD ( 迪安,杰弗里,等《大规模分布式深度网络》神经信息处理系统进展。2012. )是由谷歌的研究人员发明的,作为他们的 DistBelief 框架(TensorFlow 的前身)的一部分,其变体仍在今天的分布式 TensorFlow 框架中使用。它利用多个模型副本,每个副本基于一小部分数据计算更新(数据并行性)。计算之后,更新被发送到中央参数服务器。参数服务器本身被分成多个节点,每个节点保存和更新参数的一个小的子集(模型并行性)。到目前为止,这种并行化方案非常流行,尤其是因为它是 TensorFlow 中的内置特性。然而,该方案的收敛性受到以下事实的影响模型复制品彼此不共享参数(权重)或更新。这意味着它们的参数总是可以不同。
Speedups of Downpour SGD for different models (credit: paper)
使用大型迷你批处理的分布式深度学习
分布式深度学习中的一个普遍问题是需要在计算网格的节点之间传输数据(梯度,参数更新)。这增加了开销,进而降低了整个计算的速度,即使使用高速网络通信也是如此。如果使用同步 SGD 等算法,即使速度极快的 100Gbit 以太网或 InfiniBand 连接也会成为瓶颈。
具体来说,在数据并行学习中,迷你批处理被拆分到多个节点上。每个计算节点(GPU 或机器)计算一个小批次的梯度。然后必须对这些梯度求和,并且必须计算新的权重并在节点间传播。这个过程可能非常慢,因为梯度的数量通常等于参数的数量。深度神经网络通常包含 32 位精度的数百万个参数,需要在每个更新步骤中进行交换。
本质上,有两种方法可以减少训练的通信开销: (i)增加小批量大小(从而减少更新频率)和(ii)减少每次更新在计算节点之间交换的数据量。在这一节中,我们将重点关注(I ),在下一节中,我们将研究(ii)。
在最近的一篇论文中()Goyal,Priya 等人“精确,大型迷你批处理 SGD:在 1 小时内训练 imagenet”arXiv 预印本 arXiv:1706.02677 (2017)。 )由来自 FAIR(脸书人工智能研究院)的研究人员,作者使用超大型迷你批次,仅用 1 小时训练 ImageNet。使用大型微型电池可以防止节点之间频繁的内存传输(交换梯度)。直观上,这种方法使学习快速而准确(达到一定的小批量),但正如我们将看到的,它也在训练阶段早期引入了一些必须处理的收敛问题。
让我们首先检查梯度下降的两种边缘情况:随机梯度下降和批量梯度下降。SGD 对提供给网络的每个学习样本执行权重更新,而不是对整个训练数据集执行权重更新,从而使得学习过程有噪声,并允许梯度下降避开学习函数的可能的浅最小值。SGD 遵循更新公式:
在每个更新步骤中随机选择 i (来自数据集的样本)。
SGD 的随机性质类似于模拟退火(SA)和其他随机优化算法,如遗传算法(GA)。
Batch gradient descent vs. SGD (credit: wikidocs.net)
光谱的另一端是批量梯度下降 (BGD)算法。BGD 对所有训练样本的误差求和,并且每个时期执行一次权重更新。BGD 的公式与 SGD 的公式几乎相同,不同之处在于,现在我们在执行梯度更新之前对所有样本的损失进行求和:
从数学角度来看, i (训练数据集)上的和使得学习过程非常稳定,但也非常严格,经常收敛于局部最小值。对于较大的训练数据集,批处理梯度下降比 SGD 表现更差,通常会导致过拟合。
如今最常用的梯度下降版本(也是每个主要深度学习框架中实现的版本)似乎是 minibatch SGD (mSGD),这是 BGD 的稳定性和 SGD 的噪声之间的折衷。在 mSGD 中,的重量更新在每个迷你批次执行一次。迷你批次大小是另一个需要优化的超参数。迷你批次越大,需要的更新越少,因此学习速度更快。这尤其适用于数据分布式并行学习,其中需要在节点之间交换的每个梯度都增加了计算时间。另一方面,由于工艺的低随机性,使小批量过大通常会导致性能变差和过度拟合。
公平文件在很大程度上依赖于这样一个事实,即性能随微型批次大小的恶化是高度非线性的,对于大范围的微型批次大小保持不变(ResNet-50 高达 8192),然后对于更大的微型批次迅速恶化。因此,研究人员首先表明,我们可以通过选择大的迷你批次大小来显著加快学习速度,同时保持类似的准确性。此外,研究表明,我们可以合理使用的最大 minibatch 大小不依赖于训练数据集的大小,至少在许多计算机视觉任务中是如此 :
ImageNet top-1 validation error vs. mini-batch size used for training (credit: FAIR)
然而,在论文中,研究人员清楚地表明,为了使用非常大的小批量来训练神经网络,我们必须根据小批量的大小来微调学习速率。事实证明,我们可以经常使用这个简单的经验法则:
当小批量乘以 k 时,将学习率乘以 k。
文中还讨论了动量等超参数。不受影响,因为它们的最佳值似乎在很大程度上与微型批次的大小无关。
即使选择了合适的学习率,训练也可能在训练的初始阶段出现分歧。这是因为在这个阶段,权重可能会快速变化,训练误差很容易出现峰值。为了解决这个问题,本文建议使用一种渐进预热策略。这种策略最初只使用一个节点,直到训练稳定下来,可以使用更多的节点。此外,学习速率可以从非常小的数η逐渐上升到η’= kη,其中 k 与小批量大小成比例,如线性缩放规则所规定的。
该论文还提出,通过考虑单个迷你批次的变化统计,批次标准化是加速训练的有效工具。因此,批次标准化统计不应在整个批次上计算,而应仅在单个工人上计算。同样,这减少了通信开销。
1 位随机梯度下降
微软认知工具包(CNTK)实现了 SGD 的另一种变体:1 位 SGD()Seide,Frank 等人,“1 位随机梯度下降及其对语音 dnns 的数据并行分布式训练的应用。”国际言语交流协会第十五届年会。2014. )。
在论文中,作者建议将每个梯度的数据交换量减少到一位。因此,交换的关于梯度的唯一信息是它是上升还是下降。自然,这种极其粗糙的量化对训练的收敛有深远的影响,并且不能单独使用。然而,这也是本文的重点,如果量化误差被添加到下一个小批次的梯度中,不会显著影响计算:
在此, Q 描述量化, G 梯度更新, G_quant 是量化梯度, N 是小批大小,δ是量化误差。这种形式的量化梯度更新构成了作者所谓的**延迟更新:**它确保即使我们交换截断的信息,我们也能跟踪我们由此引起的错误,并能在后续更新中纠正它。这样,最终可以恢复完全的准确性(在多次更新之后)。
实验数据表明,该技术对于全连接网络(例如用于语音处理的网络)工作得非常好,并且以仅少量损失准确度为代价提供了相当大的加速。你可以查一下报纸上的具体数字。然而,可以实现的加速和准确性似乎也严重依赖于特定的网络架构。此外,使用 SGD 的修改会对结果产生不同的影响。例如,在量化后应用 AdaGrad 提高了精度,而在量化前应用 AdaGrad 会使精度变差。
关于 1 位 SGD 的好处是它很容易在 CNTK 框架中使用。你可以在这里下载带 1 位 SGD 的 CNTK。它可以在 Windows 和 Linux 以及 mac OS 上运行(使用 Docker)。
走哪条路?
此时要提出的问题是:如果有多个计算节点可用,应该使用哪种算法来加速神经网络训练?答案是,这在很大程度上取决于您正在使用的网络架构。通常,在该研究领域发表的论文仅使用一个或几个特定的、尽管非常广泛使用的神经网络来评估结果(例如,在 FAIR 论文中,它是 ResNet-50,包括其作为 R-CNN 的修改)。使用其他神经网络体系结构(如递归网络体系结构(RNNs ))时,该方法是否同样有效,这一点并不明显。此外,并非所有上述算法都适用于所有情况。例如,只有当节点间的通信时间远远超过每个节点的计算时间时,1 位 SGD 才能提供有效的加速。这又取决于网络中参数的数量(例如,ResNet 通常比 VGG 具有更少的参数)。
作为一般规则,必须接受的是,这些解决方案中的大部分(除了同步 SGD)修改训练过程以实现并行性,并接受作为结果的小的准确性冲击。如果这个打击不是太极端,加速带来的好处通常会超过它。最终,你将不得不决定为了速度的提高而牺牲准确性是否值得。一种折衷的可能性是在开发阶段使用高度并行,在最终训练阶段在单个节点上训练算法。
使用 R 和 Python 从 Twitter API 访问数据
NOTE: There is an updated version of this tutorial that goes over setting up the Twitter Developer Account and the tweepy library (Python) [here](/how-to-access-data-from-the-twitter-api-using-tweepy-python-e2d9e4d54978).
使用 Twitter API 应该是一件简单的事情,但是有时图片和简单的代码可以为您节省额外的 5 分钟。我之前报道过如何使用 R 从 Twitter API 中访问数据,但该流程自 2018 年 7 月起发生了变化。
Things changed in July 2018
这篇文章首先讲述了如何设置你的 Twitter 开发者账户,然后讲述了如何使用 R 和 Python 搜索 tweets。
设置 Twitter 开发者账户和应用
1-)如果您还没有 twitter 帐户,请创建一个。
2-) 申请一个 twitter 开发者账号。
This was made necessary as of July 2018
3-)如果您没有与 twitter 关联的电话号码,请输入电话号码。
4-)添加帐户详细信息。点击继续。
5-)用你自己的话描述你正在建造的东西。点击继续。
6-)提交申请。
7-)检查与您的 twitter 相关的电子邮件,然后点击确认您的电子邮件。
8-)在欢迎屏幕上,点击创建应用程序。
9-)填写您的应用程序详细信息,然后点击创建(在页面底部)。请确保不要尝试使用已被占用的 appName。
Make sure to make an App name that is not already taken
查看开发者条款并点击创建。
10-)首先,点击密钥和令牌。其次,单击“创建”以获取访问令牌和访问令牌密码。
将您的 API 密钥、API 秘密密钥、访问令牌和访问令牌秘密保存在安全的地方。我应该指出,你不应该试图复制我的钥匙,因为我在本教程后重新生成它们。
Twitter API
稀有
如果你想用 R,可以用 twitteR(确保你先安装安装 twitteR 包)。twitteR 是一个 R 包,它提供了对 Twitter API 的访问。支持 API 的大部分功能,偏向于在数据分析中比日常交互更有用的 API 调用。如果您想了解更多关于如何根据您的各种需求使用软件包的信息,请阅读用户简介。下面的代码使用 Twitter 搜索 API。
#install.packages("twitteR")library(twitteR)
# Change consumer_key, consume_secret, access_token, and
# access_secret based on your own keys
consumer_key <- ""
consumer_secret <-""
access_token <- ""
access_secret <- "" setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret)
tw = searchTwitter('@GalarnykMichael', n = 25)
d = twListToDF(tw)
As of when this tutorial was written, the standard search API searches against a sampling of recent Tweets published in the past 7 days. Part of the ‘public’ set of APIs. https://developer.twitter.com/en/docs/tweets/search/overview
计算机编程语言
下面的代码使用 python-twitter 包(可以使用pip install python-twitter
安装)进行搜索。你可以在这里学习如何制作自己的查询。
import twitter"""
Change ACCESS_TOKEN, ACCESS_SECRET, CONSUMER_KEY and CONSUMER_SECRET
to your own. """ACCESS_TOKEN = ''
ACCESS_SECRET = ''
CONSUMER_KEY = ''
CONSUMER_SECRET = ''t = twitter.Api(consumer_key=CONSUMER_KEY,
consumer_secret=CONSUMER_SECRET,
access_token_key=ACCESS_TOKEN,
access_token_secret=ACCESS_SECRET)results = t.GetSearch(raw_query="q=from%3AGalarnykMichael&src=typd")
As of when this tutorial was written, the standard search API searches against a sampling of recent Tweets published in the past 7 days. Part of the ‘public’ set of APIs. https://developer.twitter.com/en/docs/tweets/search/overview
结论
本教程是关于让您开始使用 Twitter API 的。如果您对本教程有任何问题或想法,请在下面的评论中或通过 Twitter 联系我们。如果你想学习如何使用 Pandas、Matplotlib 或 Seaborn 库,请考虑参加我的数据可视化 LinkedIn 学习课程。
使用 R 从 Github API 访问数据
FAccessing Data from Github API using R
使用 Github API 对于获取关于现有存储库的信息以及创建新的存储库非常有用。这篇文章讲述了如何使用 r 从 Github API 读取数据。
- 通过以下链接向 Github 注册一个新应用: githubDevLink
2.点击注册新的应用程序。
Click on Register a New Applicatoin
3.填写页面。【http://github.com】的将为的主页网址工作。授权回调 URL 可以是 http://localhost:1410 。给应用程序命名。下图使用了 Coursera_John_Hopkins,这将影响第 5 步后面的代码。完成后,点击注册应用。
Filling out Register a New Application
4.点击注册申请后,会出现一个类似下图的页面。
Make sure you copy your Client ID and Client Secret
5.使用下面的代码。根据客户端 ID、客户端机密和应用程序名称修改 appname、key 和 secret。
如果您有任何问题,请告诉我!你可以在这里或者 youtube 上发表评论(如果可以的话请订阅)!
准确性悖论
Beware of what lies beneath — wiki image
“如果你对机器学习一无所知,你肯定知道准确性悖论”——阿金库勒·艾伦
我写了关于车型评测 I ,如果你还没有查看,你应该。
什么是准确性悖论?
准确性被定义为没有错误或失误。例如,一条信息是准确的,如果它 恰好 代表了正在讨论的内容。
悖论是一种看似与常识相矛盾或相反的陈述,但也许是真实的。
你有没有想过“忽略所有规则”这句话……本身就是一条规则——嗯!一个悖论
在机器学习行话中,准确率是分类系统中正确性的比例。
也就是说,如果我们有一个垃圾邮件检测系统**、**,我们收到的 5 封邮件中,有 4 封被模型 X 归类为垃圾邮件,而这些邮件确实是垃圾邮件。我们会说 X 型有 80%的准确性,也就是说,你可以在 80%的时间里依赖 X 型。
Accuracy of Model X = 4/5 * 100 = 80%
那么,什么是准确性悖论呢?我们稍后会谈到这一点,但首先让我们考虑一个案例研究作为例子。
个案研究
霍金斯医院软件团队(Will,Dustin,Mike 和 Lucas)建立了一个用于诊断女性乳腺癌的分类模型。在给定的人群中研究了 1000 名妇女的样本,其中 100 名患有乳腺癌,其余 900 名没有乳腺癌。Hawkins 软件团队基于该数据集训练了他们的模型。他们将数据集分成 70/30 的训练/测试集。
精确度非常高,他们部署了这个模型。
唉!部署后几个月,一些被医院诊断为“没有乳腺癌”的女性开始出现乳腺癌症状。
这怎么可能?
这引起了一系列问题和全体人民的恐惧。随着越来越多病人开始出现乳腺癌症状,霍金斯医院不得不对此采取措施。
他们决定聘请机器学习专家 Bob 来帮助他们了解他们的软件团队出了什么问题,因为该模型的准确率约为 90%。
霍金斯模型概述
通过分割数据集,我们有
训练集:
*No Breast cancer = 70/100 * 900 = 630
Breast cancer= 70/100 * 100 = 70*
测试设置:
*No Breast cancer = 30/100 * 900 = 270
Breast cancer= 30/100 * 100 = 30*
为了让鲍勃解释他们的模型是如何得出错误预测的,他引入了两个假设,以其中一位女性乔伊斯为例——鲍勃开始解释如下,
比方说,我们有一个假设 H,乔伊斯患的是乳房疼痛而不是乳腺癌,但是另一个假设 Ho (与第一个假设相反)说乔伊斯患的是乳腺癌。
如果假设 Ho 为真(阳性)——乳腺癌
else 假设 Ho 为假(阴性)——无乳腺癌
下表显示了如果这个其他假设 Ho 为真或不为真会发生什么。
This is called confusion matrix — i hope it’s not confusing.
其中:
- TP =真阳性
- FP =假阳性
- FN =假阴性
- TN =真阴性
霍金斯模型的预测结果
在用 70%的数据集训练他们的模型后,Hawkins 科学家用剩余的 30%数据测试了这个模型,以评估模型的准确性。他们的模型在 300 个预测中有 270 个是正确的。
Hawkins Accuracy = 270 / 300 = 0.9
这看起来是一个相当令人信服的模型,准确率高达 90%,为什么它会失败呢?
解开谜团
Bob 重新评估了他们的模型,下面是详细分析:
Number of women **with** breast cancer and classified as **no** breast cancer (FN) = 30Number of women with breast cancer and classified as breast cancer(TP) = 0Number of women without breast cancer and classified as **no** breast cancer (TN) = 270Number of women **without** breast cancer and classified as breast cancer (FP) =
Bob 用下面的混淆矩阵表表示了这一点。
confusion matrix for Hawkins Model
总而言之,
霍金斯模型正确将 270 名未患乳腺癌的女性分类为**【无乳腺癌】,而错误将 30 名患乳腺癌的女性分类为【无乳腺癌】。**
我们给霍金斯模型 300 个问题,它答对了 270 个。该模型得分为 270/300——因此,我们可以说该模型通过了优秀测试,对吗?但是做到了吗?
Bob 注意到模型已经方便地将所有测试数据分类为**“无乳腺癌”**。
鲍勃计算出这个模型的准确性,它总是正确的 90%。
Accuracy = (TP + TN) / (TP+TN+FP+FN)
Accuracy = (0 + 270) / (0 + 270 + 0 + 30)= 0.90
Accuracy in % = 90%
鲍勃注意到一个模式,没有一个“乳腺癌”数据被正确标注。鲍勃作为专家走得更远,他决定看看模型在精度和召回方面做得如何。
鲍勃心想,如果这些患有乳腺癌的人中没有一个被诊断为“患有乳腺癌”,那么这个模型就不是精确的模型,也不会回忆起除了“没有乳腺癌”之外的任何事情。
他用下面的精确和回忆公式证明了这一点
Precision = TP / (TP + FP)
Precision = 0 / (0 + 0) = 0
Precision in % = 0%Recall = TP / (TP + FN)
Recall = 0 / (0 + 30) = 0
Recall in % = 0%
这意味着,这个模型将总是把传递给它的任何数据归类为“没有乳腺癌”。
这解释了为什么一些病人表现出乳腺癌的症状。
霍金斯模式根本行不通。
鲍勃破解了它,霍金斯模型是一个狄摩高根(骗局)。
鲍勃提出了一个稍加修改的模型,他想让他们明白他所说的他们的模型是狄摩高根的意思。
鲍勃的模型
在用 70%的数据集训练了他的模型之后,Bob 接着用剩下的 30%的数据测试了模型以评估模型。与 Hawkins 不同,Bob 的软件团队不依赖准确性作为评估其模型的唯一标准。
下面是鲍勃的模型的结果;
Number of women **with** breast cancer and classified as **no** breast cancer (FN) = 10Number of women with breast cancer and classified as breast cancer(TP) = 20Number of women without breast cancer and classified as **no** breast cancer (TN) = 200Number of women **without** breast cancer and classified as breast cancer (FP) = 70
confusion matrix for Bob’s Model
显然,Bob 的模型犯了一些错误,因为它惊吓了 70 名没有患乳腺癌的完全健康的人。* *鲍勃心里想,认为自己得了乳腺癌而没有得,不是比认为自己没有得乳腺癌却得了更好吗?
鲍勃的模型评估
Accuracy = (TP + TN) / (TP + TN + FP + FN)
Accuracy = (20 + 200) / (20 + 200 + 10 + 70) = 0.733
Accuracy in % = 73.3%
Hawkins 的软件团队内部出现了问题,Bob 怎么可能告诉他们他的模型(准确率为 73%)比他们的模型(准确率为 90%)更好。)
Bob 进一步计算了他的新模型的精确度和召回率
Precision = TP / (TP + FP)
Precision = 20 / (20 + 70) = 0.222
Precision in % = 22.2%Recall = TP / (TP + FN)
Recall = 20/ (20 + 10) = 0.67
Recall in % = 67%
虽然 Bob 的模型假设总共有 90 名女性而不是 30 名女性患有癌症,但它预测乳腺癌的正确率为 22.2%,而 Hawkins 模型的精确度为 0。
此外,在 30 名实际患有乳腺癌的女性中,Bob 的模型能够在 67%的时间内正确回忆起某人患有乳腺癌,而 Hawkins 的模型则没有回忆。
在这之后,Bob 能够让团队相信他的模型比他们目前拥有的要好。
达斯汀问,但是准确性的差异呢?
鲍勃回答说:这是一个悖论。
准确性悖论
预测分析的准确性悖论指出,具有给定准确性水平的预测模型可能比具有更高准确性的模型具有更大的预测能力。
分解这个,
具有给定精确度水平的预测模型(73% — Bob 的模型)可能比具有更高精确度的模型(90% —Hawkins 模型)具有更大的预测能力(更高的精确度和召回率)
这就是为什么它被称为悖论的原因,因为直觉上,你会认为精度更高的模型是最好的模型,但精度悖论告诉我们,有时情况并非如此。
因此,对于某些系统(如 Hawkins)来说,精确度和召回率比“良好的精确度”更好,因此使用适当的指标来评估您的模型是很重要的。
大脑鲍勃,拯救了世界!
**值得注意的是,交易误报可能会带来非常致命的代价,正如tweetypsych在评论部分指出的那样。
虽然搜索引擎模型可能会有一些假阳性,但乳腺癌模型不应该,因为这可能会导致完全健康的人被引入残酷的治疗或更糟。
—所有角色的灵感都来自‘陌生的事物’。所有的人物和故事都是虚构的。
外部链接
- http://www . statistics show to . com/probability-and-statistics/null-hypothesis/
- 【https://en.wikipedia.org/wiki/Accuracy_paradox
- https://en.wikipedia.org/wiki/Confusion_matrix
- https://towards data science . com/model-evaluation-I-precision-and-recall-166 DDB 257 c7b
- https://en.wikipedia.org/wiki/Base_rate
准确度、精密度、召回率还是 F1?
Which metrics to choose?
当我与寻求将数据科学实施到他们的流程中的组织交谈时,他们经常会问这样一个问题:“我如何获得最准确的模型?”。我进一步问道,“你试图用这个模型解决什么样的业务挑战?”我会得到困惑的表情,因为我提出的问题并没有真正回答他们的问题。然后,在我们开始探索准确性是否是我们应该从中选择“最佳”模型的最重要和最终的模型度量标准之前,我需要解释为什么我会问这个问题。
因此,我想在这篇博文中解释一下,准确性不一定是科学家们追求的唯一模型指标,也包括对其他指标的简单解释。
首先,让我们看看下面的混淆矩阵。模型的精确度是多少?
很容易,你会注意到这个模型的准确率非常非常高,达到 99.9%!!哇!你中了头奖和圣杯(尖叫着在房间里跑来跑去,在空中挥舞拳头几次)!
但是…(你知道这是迟早的事,对吗?)如果我提到这里的阳性实际上是一个生病的人,他携带着一种可以快速传播的病毒,会怎么样?还是这里的阳性代表诈骗案?或者这里的阳性代表恐怖分子,模型说它不是恐怖分子?你明白了。在我提出的这三种情况下,错误分类的实际阳性(或假阴性)的成本非常高。
好了,现在您意识到在选择最佳模型时,准确性并不是最重要的模型指标……接下来呢?
精度和召回
让我介绍两个新的度量标准(如果你还没有听说过,如果你听说过,也许只是迁就我一下,继续读下去?😄)
所以如果你查看维基百科,你会发现计算精度和召回的公式如下:
我放在这里做进一步解释。
让我把混淆矩阵和它的组成部分放在这里。
精密
太好了!现在让我们先来看看精度。
你注意到分母是什么?分母其实是预测的总正!所以公式变成了
True Positive + False Positive = Total Predicted Positive
您可以立即看到,Precision 会讨论您的模型在那些预测的正值中有多精确,有多少是实际的正值。
当假阳性的代价很高时,精度是确定的好的量度。例如,垃圾邮件检测。在垃圾邮件检测中,误报意味着非垃圾邮件(实际为阴性)被识别为垃圾邮件(预测的垃圾邮件)。如果垃圾邮件检测模型的精度不高,电子邮件用户可能会丢失重要的电子邮件。
召回
所以让我们用同样的逻辑来回忆。回忆一下召回是如何计算的。
True Positive + False Negative = Actual Positive
这就对了。因此,Recall 实际上计算了我们的模型通过将其标记为阳性(真阳性)而捕获的实际阳性数量。应用同样的理解,我们知道当存在与假阴性相关联的高成本时,召回将是我们用来选择我们的最佳模型的模型度量。
例如在欺诈检测或病人检测中。如果欺诈性交易(实际为正)被预测为非欺诈性交易(预测为负),那么对银行来说,后果可能非常糟糕。
类似地,在病人检测中。如果一个生病的病人(实际为阳性)通过测试并被预测为没有生病(预测为阴性)。如果疾病是传染性的,与假阴性相关的成本将会非常高。
F1 分数
现在,如果你阅读大量关于精度和召回率的其他文献,你就不能回避另一个指标,F1,它是精度和召回率的函数。看维基百科,公式如下:
当你想在精确度和召回率之间寻求平衡时,F1 分数是需要的。对…那么 F1 的分数和准确性有什么区别呢?我们之前已经看到,准确性在很大程度上取决于大量真阴性,在大多数商业环境中,我们并不太关注这些真阴性,而假阴性和假阳性通常会产生商业成本(有形和无形),因此,如果我们需要在精确度和召回率之间寻求平衡,并且存在不均匀的类别分布(大量实际阴性),F1 分数可能是更好的衡量标准。
我希望这个解释能帮助那些开始研究数据科学和研究分类问题的人,准确性并不总是选择最佳模型的标准。
**注:**考虑注册我的时事通讯或前往我的网站了解最新消息。
祝所有读者有一个愉快的数据科学学习之旅。