算法工程师修仙之路:Mxnet(一)

深度学习简介

  • 与其设计一个解决问题的程序,不如从最终的需求入手来寻找一个解决方案。事实上,这也是目前的机器学习和深度学习应用共同的核心思想:我们可以称其为“用数据编程”。

  • 通俗来说,机器学习是一门讨论各式各样的适用于不同问题的函数形式,以及如何使用数据来有效地获取函数参数具体值的学科。

  • 深度学习是指机器学习中的一类函数,它们的形式通常为多层神经网络。近年来,仰仗着大数据集和强大的硬件,深度学习已逐渐成为处理图像、文本语料和声音信号等复杂高维度数据的主要方法。

起源


  • 虽然深度学习似乎是最近几年刚兴起的名词,但它所基于的神经网络模型和用数据编程的核心思想已经被研究了数百年。自古以来,人类就一直渴望能从数据中分析出预知未来的窍门。实际上,数据分析正是大部分自然科学的本质,我们希望从日常的观测中提取规则,并找寻不确定性

  • 早在17世纪,雅各比·伯努利(1655–1705)提出了描述只有两种结果的随机过程的伯努利分布

  • 大约一个世纪之后,卡尔·弗里德里希·高斯(1777–1855)发明了今日仍广泛用在从保险计算到医学诊断等领域的最小二乘法

  • 统计学巨匠之一罗纳德·费雪(1890–1962)对统计学理论和统计学在基因学中的应用功不可没。他发明的许多算法和公式,例如线性判别分析费雪信息,仍经常被使用。即使是他在1936年发布的 Iris 数据集,仍然偶尔被用于演示机器学习算法。

  • 克劳德·香农(1916–2001)的信息论以及阿兰·图灵 (1912–1954)的计算理论也对机器学习有深远影响。图灵在他著名的论文《计算机器与智能》中提出了“机器可以思考吗?”这样一个问题。在他描述的“图灵测试”中,如果一个人在使用文本交互时不能区分他的对话对象到底是人类还是机器的话,那么即可认为这台机器是有智能的

  • 另一个对深度学习有重大影响的领域是神经科学与心理学。

    • 既然人类显然能够展现出智能,那么对于解释并逆向工程人类智能机理的探究也在情理之中。
    • 最早的算法之一是由唐纳德·赫布(1904–1985)正式提出的。在他开创性的著作《行为的组织》中,他提出神经是通过正向强化来学习的,即赫布理论。
    • 赫布理论是感知机学习算法的原型,并成为支撑今日深度学习的随机梯度下降算法的基石:强化合意的行为、惩罚不合意的行为,最终获得优良的神经网络参数
  • 绝大多数神经网络都包含以下的核心原则:

    • 交替使用线性处理单元与非线性处理单元,它们经常被称为“层”。
    • 使用链式法则(即反向传播)来更新网络的参数。

发展


  • 互联网的崛起、价廉物美的传感器和低价的存储器令我们越来越容易获取大量数据。加之便宜的计算力,尤其是原本为电脑游戏设计的GPU的出现,一瞬间,原本被认为不可能的算法和模型变得触手可及。
    在这里插入图片描述

    • 很显然,存储容量没能跟上数据量增长的步伐
    • 与此同时,计算力的增长又盖过了数据量的增长
    • 这样的趋势使得统计模型可以在优化参数上投入更多的计算力,但同时需要提高存储的利用效率,例如使用非线性处理单元。
    • 这也相应导致了机器学习和统计学的最优选择从广义线性模型及核方法变化为深度多层神经网络。
    • 这样的变化正是诸如多层感知机、卷积神经网络、长短期记忆循环神经网络和 Q 学习等深度学习的支柱模型在过去10年从坐了数十年的冷板凳上站起来被“重新发现”的原因。
  • 深度学习长足发展的部分原因

    • 优秀的容量控制方法,如丢弃法,使大型网络的训练不再受制于过拟合(大型神经网络学会记忆大部分训练数据的行为)。这是靠在整个网络中注入噪声而达到的,如训练时随机将权重替换为随机的数字。
    • 注意力机制解决了另一个困扰统计学超过一个世纪的问题:如何在不增加参数的情况下扩展一个系统的记忆容量和复杂度。注意力机制使用了一个可学习的指针结构来构建出一个精妙的解决方法。也就是说,与其在像机器翻译这样的任务中记忆整个句子,不如记忆指向翻译的中间状态的指针。由于生成译文前不需要再存储整句原文的信息,这样的结构使准确翻译长句变得可能。
    • 记忆网络和神经编码器—解释器这样的多阶设计使得针对推理过程的迭代建模方法变得可能。这些模型允许重复修改深度网络的内部状态,这样就能模拟出推理链条上的各个步骤,就好像处理器在计算过程中修改内存一样。
    • 另一个重大发展是生成对抗网络的发明。传统上,用在概率分布估计和生成模型上的统计方法更多地关注于找寻正确的概率分布,以及正确的采样算法。生成对抗网络的关键创新在于将采样部分替换成了任意的含有可微分参数的算法。这些参数将被训练到使辨别器不能再分辨真实的和生成的样本。生成对抗网络可使用任意算法来生成输出的这一特性为许多技巧打开了新的大门。
    • 许多情况下单个 GPU 已经不能满足在大型数据集上进行训练的需要。过去10年内我们构建分布式并行训练算法的能力已经有了极大的提升设计可扩展算法的最大瓶颈在于深度学习优化算法的核心:随机梯度下降需要相对更小的批量。与此同时,更小的批量也会降低 GPU 的效率。如果使用1,024个 GPU,每个 GPU 的批量大小为32个样本,那么单步训练的批量大小将是32,000个以上。
    • 并行计算的能力也为至少在可以采用模拟情况下的强化学习的发展贡献了力量。并行计算帮助计算机在围棋、雅达利游戏、星际争霸和物理模拟上达到了超过人类的水准。

成功案例


  • 长期以来机器学习总能完成其他方法难以完成的目标。
    • 例如,自20世纪90年代起,邮件的分拣就开始使用光学字符识别。实际上这正是知名的MNIST和USPS手写数字数据集的来源。
    • 机器学习也是电子支付系统的支柱,可以用于读取银行支票、进行授信评分以及防止金融欺诈。
    • 机器学习算法在网络上被用来提供搜索结果、个性化推荐和网页排序。
    • 智能助手的出现或许可以作为人工智能开始影响我们生活的标志。
      • 苹果公司的 Siri、亚马逊的 Alexa 和谷歌助手一类的智能助手能以可观的准确率回答口头提出的问题,甚至包括从简单的开关灯具(对残疾群体帮助很大)到提供语音对话帮助。
      • 智能助手的关键是需要能够精确识别语音,而这类系统在某些应用上的精确度已经渐渐增长到可以与人类比肩。
    • 物体识别也经历了漫长的发展过程。
      • 在2010年从图像中识别出物体的类别仍是一个相当有挑战性的任务。
      • 当年日本电气、伊利诺伊大学香槟分校和罗格斯大学团队在 ImageNet 基准测试上取得了28%的前五错误率。到2017年,这个数字降低到了2.25%。
      • 研究人员在鸟类识别和皮肤癌诊断上,也取得了同样惊世骇俗的成绩。
    • 游戏曾被认为是人类智能最后的堡垒。
      • 自使用时间差分强化学习玩双陆棋的 TD-Gammon 开始,算法和算力的发展催生了一系列在游戏上使用的新算法。
      • 与双陆棋不同,国际象棋有更复杂的状态空间和更多的可选动作。
      • “深蓝”用大量的并行、专用硬件和游戏树的高效搜索打败了加里·卡斯帕罗夫。
      • 围棋因其庞大的状态空间被认为是更难的游戏,AlphaGo 在2016年用结合深度学习与蒙特卡洛树采样的方法达到了人类水准。
      • 对德州扑克游戏而言,除了巨大的状态空间之外,更大的挑战是游戏的信息并不完全可见,例如看不到对手的牌。而“冷扑大师”用高效的策略体系超越了人类玩家的表现。
      • 以上的例子都体现出了先进的算法是人工智能在游戏上的表现提升的重要原因。
    • 机器学习进步的另一个标志是自动驾驶汽车的发展。
      • 尽管距离完全的自主驾驶还有很长的路要走,但诸如 Tesla、NVIDIA、 MobilEye 和 Waymo 这样的公司发布的具有部分自主驾驶功能的产品展示出了这个领域巨大的进步。
      • 完全自主驾驶的难点在于它需要将感知、思考和规则整合在同一个系统中
      • 目前,深度学习主要被应用在计算机视觉的部分,剩余的部分还是需要工程师们的大量调试。

特点


  • 机器学习研究如何使计算机系统利用经验改善性能

    • 它是人工智能领域的分支,也是实现人工智能的一种手段。
    • 在机器学习的众多研究方向中,表征学习关注如何自动找出表示数据的合适方式,以便更好地将输入变换为正确的输出,深度学习是具有多级表示的表征学习方法
    • 在每一级(从原始数据开始),深度学习通过简单的函数将该级的表示变换为更高级的表示。
    • 因此,深度学习模型也可以看作是由许多简单函数复合而成的函数。
    • 当这些复合的函数足够多时,深度学习模型就可以表达非常复杂的变换。
  • 深度学习可以逐级表示越来越抽象的概念或模式。

    • 以图像为例,它的输入是一堆原始像素值。
      • 深度学习模型中,图像可以逐级表示为特定位置和角度的边缘、由边缘组合得出的花纹、由多种花纹进一步汇合得到的特定部位的模式等。
      • 最终,模型能够较容易根据更高级的表示完成给定的任务,如识别图像中的物体。
      • 值得一提的是,作为表征学习的一种,深度学习将自动找出每一级表示数据的合适方式
      • 因此,深度学习的一个外在特点是端到端的训练
      • 也就是说,并不是将单独调试的部分拼凑起来组成一个系统,而是将整个系统组建好之后一起训练
    • 相似地,在自然语言处理领域,词袋模型多年来都被认为是不二之选。
      • 词袋模型是将一个句子映射到一个词频向量的模型,但这样的做法完全忽视了单词的排列顺序或者句中的标点符号。
      • 不幸的是,我们也没有能力来手工抽取更好的特征。
      • 但是自动化的算法反而可以从所有可能的特征中搜寻最好的那个,这也带来了极大的进步。
      • 例如,语义相关的词嵌入能够在向量空间中完成如下推理:“柏林 - 德国 + 中国 = 北京”。
      • 可以看出,这些都是端到端训练整个系统带来的效果。
    • 除端到端的训练以外,我们也正在经历从含参数统计模型转向完全无参数的模型。
      • 当数据非常稀缺时,我们需要通过简化对现实的假设来得到实用的模型
      • 当数据充足时,我们就可以用能更好地拟合现实的无参数模型来替代这些含参数模型,这也使我们可以得到更精确的模型,尽管需要牺牲一些可解释性
    • 相对其它经典的机器学习方法而言,深度学习的不同在于:对非最优解的包容、对非凸非线性优化的使用,以及勇于尝试没有被证明过的方法

小结


  • 机器学习研究如何使计算机系统利用经验改善性能,它是人工智能领域的分支,也是实现人工智能的一种手段。

  • 作为机器学习的一类,表征学习关注如何自动找出表示数据的合适方式。

  • 深度学习是具有多级表示的表征学习方法。它可以逐级表示越来越抽象的概念或模式。

  • 深度学习所基于的神经网络模型和用数据编程的核心思想实际上已经被研究了数百年。

  • 深度学习已经逐渐演变成一个工程师和科学家皆可使用的普适工具。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值