算法工程师修仙之路:Python深度学习(三)

深度学习基础

什么是深度学习


为什么是深度学习,为什么是现在

  • 深度学习用于计算机视觉的两个关键思想,即卷积神经网络和反向传播,在1989年就已经为人们所知。长短期记忆(LSTM, long short-term memory)算法是深度学习处理时间序列的基础,它在1997年就被开发出来了,而且此后几乎没有发生变化。

  • 总的来说,三种技术力量在推动着机器学习的进步:

    • 硬件
    • 数据集和基准
    • 算法上的改进
  • 由于这一领域是靠实验结果而不是理论指导的,所以只有当合适的数据和硬件可用于尝试新想法时(或者将旧想法的规模扩大,事实往往也是如此),才可能出现算法上的改进。机器学习不是数学或物理学,靠一支笔和一张纸就能实现重大进展。它是一门工程科学。

硬件

  • GPU
    • 在21世纪前十年里,NVIDIA 和 AMD 等公司投资数十亿美元来开发快速的大规模并行芯片(图形处理器,GPU),以便为越来越逼真的视频游戏提供图形显示支持。
    • 这些芯片是廉价的、单一用途的超级计算机,用于在屏幕上实时渲染复杂的3D场景。这些投资为科学界带来了好处。
    • 2007 年, NVIDIA 推出了 CUDA,作为其 GPU 系列的编程接口。
    • 少量 GPU 开始在各种高度并行化的应用中替代大量 CPU 集群,并且最早应用于物理建模。
    • 深度神经网络主要由许多小矩阵乘法组成,它也是高度并行化的。2011 年前后,一些研究人员开始编写神经网络的 CUDA 实现,而 Dan Ciresana 和 Alex Krizhevskyb 属于第一批人。

数据

  • 就数据而言,除了过去20年里存储硬件的指数级增长(遵循摩尔定律),最大的变革来自于互联网的兴起,它使得收集与分发用于机器学习的超大型数据集变得可行。如今,大公司使用的图像数据集、视频数据集和自然语言数据集,如果没有互联网的话根本无法收集。

  • 如果有一个数据集是深度学习兴起的催化剂的话,那么一定是 ImageNet 数据集。它包含140万张图像,这些图像已经被人工划分为1000个图像类别(每张图像对应1个类别)。但 ImageNet 的特殊之处不仅在于其数量之大,还在于与它相关的年度竞赛。

算法

  • 梯度传播
    • 除了硬件和数据之外,直到21世纪前十年的末期,我们仍没有可靠的方法来训练非常深的神经网络。因此,神经网络仍然很浅,仅使用一两个表示层,无法超越更为精确的浅层方法,比如 SVM 和随机森林。
    • 关键问题在于通过多层叠加的梯度传播。
    • 随着层数的增加,用于训练神经网络的反馈信号会逐渐消失。
    • 这一情况在2009—2010年左右发生了变化,当时出现了几个很简单但很重要的算法改进,可以实现更好的梯度传播:
      • 更好的神经层激活函数(activation function);
      • 更好的权重初始化方案(weight-initialization scheme);
      • 更好的优化方案(optimization scheme);
    • 只有这些改进可以训练 10 层以上的模型时,深度学习才开始大放异彩。

这种趋势会持续吗

  • 深度学习有几个重要的性质,证明了它确实是人工智能的革命,并且能长盛不衰。20 年后我们可能不再使用神经网络,但我们那时所使用的工具都是直接来自于现代深度学习及其核心概念。

  • 这些重要的性质可大致分为以下三类:

    • 简单。
      • 深度学习不需要特征工程,它将复杂的、不稳定的、工程量很大的流程替换为简单的、端到端的可训练模型,这些模型通常只用到五六种不同的张量运算。
    • 可扩展。
      • 深度学习非常适合在GPU或TPU上并行计算,因此可以充分利用摩尔定律;
      • 深度学习模型通过对小批量数据进行迭代来训练,因此可以在任意大小的数据集上进行训练;
      • 唯一的瓶颈是可用的并行计算能力,而由于摩尔定律,这一限制会越来越小。
    • 多功能与可复用。
      • 与之前的许多机器学习方法不同,深度学习模型无须从头开始就可以在附加数据上进行训练,因此可用于连续在线学习,这对于大型生产模型而言是非常重要的特性。
      • 训练好的深度学习模型可用于其他用途,因此是可以重复使用的。

猜你喜欢

转载自blog.csdn.net/faker1895/article/details/87432846
今日推荐