1.1 传统编程与数据编程

1.1.1 传统编程

  • 大部分程序并不需要深度学习或者是更广义上的人工智能技术
    • 微波炉
    • 邮箱
  • 是否需要真实世界的数据?
    • 数据特征
  • 如何识别猫?

1.1.2 数据分析编程

  • 机器学习和深度学习应用共同的核心思想:用数据编程
  • 如何识别猫?
    • 利用数据推断出图像中是否有猫的函数
  • 机器学习与深度学习
  • 一门讨论各式各样的适用于不同问题的函数形式,以及如何使用数据来有效地获取函数参数具体值的学科
  • 区别
    • 深度学习:多层神经网络

1.2 起源

  • 17世纪,雅各比·伯努利(1655–1705)提出了描述只有两种结果的随机过程(如抛掷一枚硬币)的伯努利分布。
  • 18世纪,卡尔·弗里德里希·高斯(1777–1855)发明了今日仍广泛用在从保险计算到医学诊断等领域的最小二乘法。
  • 时至今日,绝大多数神经网络都包含以下的核心原则。
    • 交替使用线性处理单元与非线性处理单元,它们经常被称为“层”。
    • 使用链式法则(即反向传播)来更新网络的参数。
  • 自约1995年起至2005年,大部分机器学习研究者的视线从神经网络上移开了,原因:
    • 首先,训练神经网络需要极强的计算力。
    • 其次,当时使用的数据集也相对小得多。
      • 费雪在1936年发布的的Iris数据集仅有150个样本具有6万个样本的MNIST数据集在当时已经被认为是非常庞大了
    • 由于数据和计算力的稀缺,从经验上来说,如核方法、决策树和概率图模型等统计工具更优。
      • 它们不像神经网络一样需要长时间的训练,并且在强大的理论保证下提供可以预测的结果。

1.3 深度学习崛起与长足发展

  • 算力提升
    • 使得统计模型可以在优化参数上投入更多的计算力,但同时需要提高存储的利用效率,例如使用非线性处理单元。
    • 导致了机器学习和统计学的最优选择从广义线性模型及核方法变化为深度多层神经网络。
  • 近十年来深度学习长足发展的部分原因:
    • 优秀的容量控制方法,如丢弃法。
    • 注意力机制
    • 记忆网络和神经编码器
    • 生成对抗网络的发明
    • 构建分布式并行训练算法的能力已经有了极大的提升
    • 深度学习框架
      • 第一代:Caffe、 Torch和Theano
      • 第二代:TensorFlow(经常是以高层API Keras的形式被使用)、CNTK、Caffe 2 和Apache MXNet
      • 第三代,Chainer,PyTorch和MXNet的Gluon API

1.4 成功案例

  • 智能语音助手
    • Siri、亚马逊的Alexa和谷歌助手
  • 物体识别
    • 2017年,ImageNet基准测试取得了2.25%的前五错误率
  • 游戏
    • 国际象棋,围棋,德州扑克……
  • 自动驾驶汽车
    ……
  • 深度学习已经逐渐演变成一个工程师和科学家皆可使用的普适工具。

1.5 深度学习特点

  • 深度学习是具有多级表示的表征学习方法。

    • 在每一级(从原始数据开始),深度学习通过简单的函数将该级的表示变换为更高级的表示。
    • 当这些复合的函数足够多时,深度学习模型就可以表达非常复杂的变换。
  • 深度学习可以逐级表示越来越抽象的概念或模式。

  • 端到端的训练

    • 深度学习并不是将单独调试的部分拼凑起来组成一个系统,而是将整个系统组建好之后一起训练。
    • 在自然语言处理领域,词袋模型多年来都被认为是不二之选。
    • 词袋模型是将一个句子映射到一个词频向量的模型
    • 自动化的算法反而可以从所有可能的特征中搜寻最好的那个
  • 含参数统计模型转向完全无参数的模型

    • 当数据非常稀缺时,我们需要通过简化对现实的假设来得到实用的模型
    • 当数据充足时,我们就可以用能更好地拟合现实的无参数模型来替代这些含参数模型

    大数据视频推荐:
    CSDN
    大数据语音推荐:
    企业级大数据技术应用
    大数据机器学习案例之推荐系统
    自然语言处理
    大数据基础
    人工智能:深度学习入门到精通

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐