deeplearning.ai 之神经网络和深度学习 2

本笔记是吴恩达(Andrew Ng) 的【微专业】深度学习工程师系列课程笔记。

01.神经网络和深度学习之第一周——笔记2 深度学习介绍

【1.4 为什么深度学习会兴起?(Why is deep learning taking off?)】

如果在深度学习和神经网络背后的基本技术理论已经有好几十年了,为什么现在才突然流行起来呢?

深度学习兴起的原因有:大数据时代,数据的爆炸性增长;计算机硬件技术的发展,计算成本下降,速度提高;神经网络算法的变革等。

深度学习兴起的原因有:大数据时代,数据的爆炸性增长;计算机硬件技术的发展,计算成本下降,速度提高;神经网络算法的变革等。

影响性能的两大因素:能够训练一个大的神经网络;拥有很多标记的数据。

下图解释了深度学习突然兴起的原因:

deeplearning.ai 之神经网络和深度学习 2_第1张图片

这里的数据指代标签的数据(x, y), 图的(m)表示训练样本的数量。当数据量小的时候,各种算法的性能排名并不是很确定,只有当数据非常大的时候神经网络稳定地领先其它算法。*

图中共有 4 条曲线

  1. 红色曲线代表了 传统机器学习算法 的表现,例如是SVMlogistic regressiondecision tree 等。当数据量比较小的时候,传统学习模型的表现是比较好的。但是当数据量很大的时候,其表现很一般,性能基本趋于水平;

  2. 黄色曲线代表了规模较小的神经网络模型(Small NN),它在数据量较大时候的性能优于 传统的机器学习算法

  3. 蓝色曲线代表了规模中等的神经网络模型(Media NN),它在数据量更大的时候的表现比 Small NN 更好;

  4. 绿色曲线代表更大规模的神经网络(Large NN)深度学习模型,它在数据量更大的时候的表现比 Media NN 更好,并且保持了快速上升的趋势。

值得一提的是,近些年来,由于数字计算机的普及,人类进入了大数据时代,每时每分,互联网上的数据是海量的、庞大的。如何对大数据建立稳健准确的学习模型变得尤为重要。传统机器学习算法在数据量较大的时候,性能一般,很难再有提升。然而,深度学习模型由于网络复杂,对大数据的处理和分析非常有效。所以,近些年来,在处理海量数据和建立复杂准确的学习模型方面,深度学习有着非常不错的表现。然而,在数据量不大的时候,例如上图中左边区域,深度学习模型不一定优于传统机器学习算法,性能差异可能并不大。

可以看出,更复杂的深度学习模型,对海量数据的处理和分析更有效。其原因是:可供使用来训练的样本数据量承几何级数增加、训练服务器使用计算力极强的 GPU架构 以及几年来学术界更多的算法上的创新和改进。

所以说,现在深度学习如此强大的原因归结为三个因素:

  • 数据(Data)
  • 计算(Computation)
  • 算法(Algorithms)

其中,数据量的几何级数增加,加上GPU出现、计算机运算能力的大大提升,使得深度学习能够应用得更加广泛。另外,算法上的创新和改进让深度学习的性能和速度也大大提升。举个算法改进的例子,之前神经网络神经元的激活函数是 Sigmoid 函数,后来改成了ReLU 函数。之所以这样更改的原因是对于 Sigmoid函数,在远离零点的位置,函数曲线非常平缓,其梯度趋于 0,所以造成神经网络模型学习速度变得很慢。然而,ReLU函数在 x 大于零的区域,其梯度始终为 1,尽管在 x 小于零的区域梯度为0,但是在实际应用中采用 ReLU 函数确实要比 Sigmoid 函数快很多。

训练一个神经网络是可迭代的:

deeplearning.ai 之神经网络和深度学习 2_第2张图片

构建一个深度学习的流程如上图右边所示。构建一个深度学习的流程是首先产生 Idea,然后将 Idea 转化为 Code,最后进行 Experiment。接着根据结果修改 Idea,继续这种 Idea->Code->Experiment 的循环,直到最终训练得到表现不错的深度学习网络模型。如果计算速度越快,每一步骤耗时越少,那么上述循环越能高效进行。

【1.5 关于这门课程(About this Course)】

  1. 神经网络和深度学习(Neural Networks and Deep Learning)

  2. 改善深层神经网络:超参数调优,正则化和优化(Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization)

  3. 构建机器学习项目(Structuring your Machine Learning project)

  4. 卷积神经网络(Convolutional Neural Networks)

  5. 自然语言处理(Natural Language Processing: Building sequence models)

【1.6 课程大纲(Outline of this Course)】

《神经网络和深度学习》这门课程中,主要介绍一些重要的基础知识,深度学习的基础内容,如何建立并运用一个深度神经网络。

  1. Week 1: 简介(Introduction)
    这一门课程有四周课,第一周主要讲解深度学习的入门介绍

  2. Week 2: 神经网络基础(Basics of Neural Network programming)
    学习神经网络的编程基础,了解神经网络中 正向传播反向传播 的结构,还要算法的过程以及如何高效实现神经网络

  3. Week 3: 浅层神经网络(One hidden layer Neural Networks)
    编写 单隐层神经网络,学习所有必需的关键概念才能实现神经网络

  4. Week 4: 深层神经网络(Deep Neural Networks)
    建立一个多层的深层神经网络



更多信息可以查看 神经网络和深度学习

你可能感兴趣的:(deep-learning,ai)