您的位置:首页 > 理论基础 > 计算机网络

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

2018-02-08 00:37 615 查看
本笔记是吴恩达(Andrew Ng) 的【微专业】深度学习工程师系列课程笔记。

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

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

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

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

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

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

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



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

图中共有 4 条曲线

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

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


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

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

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

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

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

数据(Data)

计算(Computation)

算法(Algorithms)

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

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



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

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

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

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

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

卷积神经网络(Convolutional Neural Networks)

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

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

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

Week 1: 简介(Introduction)

这一门课程有四周课,第一周主要讲解深度学习的入门介绍

Week 2: 神经网络基础(Basics of Neural Network programming)

学习神经网络的编程基础,了解神经网络中
正向传播
反向传播
的结构,还要算法的过程以及如何高效实现神经网络

Week 3: 浅层神经网络(One hidden layer Neural Networks)

编写
单隐层神经网络
,学习所有必需的关键概念才能实现神经网络

Week 4: 深层神经网络(Deep Neural Networks)

建立一个多层的深层神经网络

更多信息可以查看 神经网络和深度学习
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐