深度学习DeepLearning.ai系列课程学习总结:1. 深度学习简介

转载过程中,图片丢失。

更多信息请范围原创版本:

http://www.missshi.cn/api/view/blog/59a6ad66e519f50d040000a8


本节内容对应吴恩达deeplearning.ai课程中,第一部分第一周的内容。

学习过程中的一些笔记与心得与大家分享!

原始课程请访问https://www.deeplearning.ai/来了解更多。

 

Welcome

欢迎大家来到深度学习课堂!

很多人可能已经发现深度学习已经开始影响了互联网的很多行业,例如网页搜索或是在线广告等。

同时,合理利用深度学习也会创造很多新的产品和企业。

深度学习可以在医疗保健(如对X光图片更好的解析)、个性化教育、农业、自动驾驶等方面充分发挥其优点。

如果你希望了解深度学习究竟是什么,或者想要从事深度学习行业的工作,那么本课程一定会给你帮助!

 

当你从头到尾完成了本系列课程后,我们相信你对深度学习已经有了一定的了解,这些内容可以大大地丰富您的简历。

在接下来的十年里,将会是属于AI的十年,AI会给整个社会带来巨大的变化,我们希望您能够在AI的发展中贡献出自己的力量。

所以,让我们现在就开始学习吧!

 

我们认为,AI在当前时代而言,重要性和堪比100年前的电力发展。

在大约100年前,我们社会的电气化改变了每个行业,包括运输、制造、医疗、通讯等等。

而在今天,AI同样有潜力去改变我们社会的各个行业。

AI快速发展的主要原因之一就是深度学习,所以,深度学习是目前全世界最受追捧的技能之一。

我们希望通过这一系列的课程来帮助你掌握这些AI的知识。

 

在第一课中,你将会了解神经网络的基础:什么是神经网络和深度学习。也就是我们课程的第一部分第一周的内容。

整套课程包含五个部分,每个部分通常需要两到四周。

在第一部分中,我们将学习如何构建一个新的多层神经网络以及如何对数据进行训练。

在第一部分的课程完成后,你将能够构建一个深层神经网络用来识别猫。

 

接下来,在第二部分中,我们将具体讲一些深度学习中偏重实践方面的内容。

具体包括如何对一个网络参数进行调优,正则化,diagnose price and variants, 改进优化算法。

所以,第二部分课程虽然仅仅只有三周时间,但是其中包含很多重要并且奇妙的内容。

 

第三部分的课程中占用两周的课时,您将会学习如何完整的构建一个机器学习项目。

事实证明,在目前这个深度学习的年代,建立一个深度学习系统的方面已经发生的巨大的变化。

之前的做法是这样的:把数据依次切换到训练和测试阶段,进行交叉验证。

那么目前的深度学习应该如何实现呢?

在第三部分中,我们将详细的了解端到端学习,并详细了解什么情况下端到端学习是适用的。

第三部分中的材料相对比较独特,我们将会分享一些之前实际项目中的经验与教训。而这一部分内容是在其他课程中很少见到的。

不过我们真心的期望您在应用的过程中不要遭遇这些坑。

 

在第四部分中,我们讨论的是卷积神经网络(CNN)。

卷积神经网络的主要应用领域在于图像处理,在第四部分中,我们将详细讲解如何建立这些模型。

 

在最后的第五部分中,我们讲解的内容是序列模型,以及如何应用于自然语言处理等问题中。

序列模型包括RNN和LSTM等,他们对于长短期记忆模型非常有效。

在第五部分中,您将会详细了解到这些专业术语的含义,并将这些数据应用于这些模型中。

这些模型可以应用于语音识别、音乐生成等问题。

 

因此,通过这一系列的课程,您将会对深度学习有一个完整的认识。

希望你可以利用它们来解决一些问题并提升自己的职业生涯。

所以,让我们现在就开始吧!

 

什么是神经网络?

深度学习实际就是指训练一个规模较大的神经网络。

那么什么是神经网络呢?

让我们从如何这个示例开始吧!

这是一个房价预测的示例,假设你有6间房子,你知道每间房子的大小和价格。

你希望预测一个房价和房屋大小的关系图。

在下图中,横坐标表示的是房屋的大小,纵坐标表示的房屋价格。

你可能会觉得他们的关系可以近似的估计为线性关系,那么让我们来添加一条线!

但是,现在出现了一个问题:当房屋大小较小时,价格出现了负数。

正常情况下,房屋价格永远不可能为负数,所以,我们需要对分割线进行一些调整。

例如当房价为0时,不再继续下降。

那么我们得到的函数如下:

上面这条曲线可以认为是一个最简单的神经网络。

对于这个神经网络,我们有一个输入x,表示房屋的大小。

然后经过该网络(单一神经元)的作用,输入为房屋的价格y。

在很多神经网络文献中,这个函数会被频繁使用,这个函数成为ReLU函数(rectified linear unit)。

该函数在小于某个值时,输出始终为0,一旦大于某个值,斜率始终固定。

上述描述的是一个神经单元(也可以认为是一个最简单的神经网络)。

一个较大的神经网络最终会是由大量的单个神经元组合在一起构成的。

 

接下来,我们来看另外一个实例:

我们不再单纯根据房屋的面积来预测房屋价格,而是根据更多的房屋信息来共同判断房屋的价格。

例如,包括房屋卧室的数目、房子所在的位置、房屋所属城市的富有程度等等。


比如说我们通常认为影响房价的一个因素是我们家庭的人口数。例如一个可以容纳三口之家、四口之家、五口之家的房价通常是有一定差异的。而具体来说,一个房子能够容纳多少人一方面是看房子的面积大小、另一方面也需要看房子的卧室数目。

此外,我们在购房时,生活便利程度影响了一定的房价。例如,如果周围就有一些大型超市,学校或者工作地点就在房屋周围的话,房屋价格将会有一定的提升。而生活的方便程度主要是依据房屋的位置所确定的。

还有一点,房屋周围的学校的好坏也很大程度上影响着方便、例如学区房附近的房价总是那么的高昂。那么影响周围学校的好坏一方面是房屋的地理位置,另外一方面则是城市的富裕程度。相对来说,越发达的城市,教育质量通常也越好。

将上述描述可以转换为下图:

直接影响房价的因素是家庭的人口数、生活便利程度以及学校的质量。

而我们直接可以获取到的定量输入指标则是房屋大小、卧室数目、邮政编码以及城市发达程度。

最终期望预测的结果是房屋的价格。

 

与之前的单个神经元不同,我们用更多的神经元组成了一个比之前略大的神经网络。

而神经网络的魅力在于我们只需要给定一个神经网络结构后,有足够的训练集(包含输入x与输出y),则可以使网络自动的进行调优。


在上述神经网络的中间一层中,我们称之为隐层。

我们假设隐层中的每一个神经元的输入都是前一阵的组合。

在监督学习中,我们会用大量的x和y进行训练,最终可以得到一个合适的模型。

在下一部分中,我们将会学习更多监督学习的实例。

 

监督学习

目前,神经网络中监督学习的应用已经产生了巨大的经济效益。

在监督学习中,我们需要给定一些训练数据,包含对应的输入和输出。

通过这些数据,我们可以训练出一个模型,根据该模型,可以用于预测其他的输入对应的输出可能会是什么。

目前,一个应用的非常多的场景是在线广告。它可以根据该用户的习惯来预测该用户对哪些广告信息点击的可能性更大来给用户有选择的推荐广告,从而提高广告的推广作用。

此外,监督学习对应计算机视觉领域也起到了巨大的推动作用。例如,我们可以用监督学习对图片进行分类。

同时,在语音识别、机器翻译、无人驾驶等等领域,监督学习都发挥了巨大的作用。

对于神经网络而言,不同类型的神经网络可以用于不同的领域。

例如,在我们上一节中提到的房价预测,我们使用的是一个基本的标准神经网络结果。

而对于图像相关的应用,通常卷积神经网络(CNN)可以发挥更大的优势。

对于语音等与时间序列相关的应用,递归神经网络(RNN)则更为适用。

而对于一些更为复杂的应用场景,例如无人驾驶,一方面包含着适用CNN的图像作为输入,另一方面还包含着雷达信息等,这些场景还需要使用者根据具体应用去设计合适的神经网络结构。

在一些书籍和论文中,你可能会经常看到一些如下结构的神经网络,它表示的是一个标准结构的神经网络。

卷积神经网络常用用于处理图像相关的应用。卷积神经网络的结构如下:

循环神经网络常常用于与时间序列有关的数据。其基本结构如下:

在机器学习领域,我们通常将输入数据非为结构化数据和非结构化数据两类。

其中,结构化数据指的是可以直接在数据库中存储的数据具有一个明确含义的数据。

例如在上一节中我们谈及的房屋的面积大小或者是卧室数目等信息。

而非结构化数据通常指的是音频、图像,文本等等内容。其特征可能是图像中的像素信息或者是文本中的内容等。

相对结构化数据而言,计算机对于非结构化的数据更加地难以理解和处理。

但是,目前随着深度学习的发展,我们对图片和语音等已经有了较好的处理能力。

总体上,从目前来看,深度学习对于非结构的话的数据带来了更多的可能,但还是有很大的扩展空间。而对于结构化数据,目前技术已经较为成熟,可以为我们带来更多的经济利益。

我们在本课程中会介绍各种技术,其中会覆盖结构化数据和非结构化数据。

事实上,神经网络已经有了几十年的历史了,那么为什么在最近才突然迅猛的发展起来呢?下一节中,我们将简单的对其进行介绍。

 

浅谈深度学习近几年飞速发展的原因

想要了解为什么深度学习技术在近几年突飞猛进,我们需要首先了解一下深度学习什么情况下可以发挥更好的性能。

从上图可以看出,横轴表示的是训练的数据量(有标签的数据),纵轴则表示的是算法的性能。

对于一些传统的机器学习方法,例如支持向量机或者逻辑回归等,我们可以得到的曲线如红色曲线所示。在样本量很小时,增加样本数据量可以对算法的性能有一定的提升,然而,当样本量达到一定程度时,性能将很快达到瓶颈。这些方面无法利用更多的数据量来提升自己的性能。

而在过去十年中,我们的社会发生了巨大的变化,我们可以很容易的收集到大量的数据。随着数据量的增大,我们需要扩大神经网络的规模,才能充分地利用大量的数据量来提高算法的性能。

也就是,如果我们希望得到好的性能,那么需要满足一下两个方面:

1 有大量的标定数据

2 建立大规模的神经网络

但是,随着网络的不断增大,训练的复杂程度也是不算的增加。

在训练集比较小时,深度学习实际上无法给算法性能带来明显的提升。

所以,当你的训练集不足时,一个更好的方式是自己去选择一些特征而不是直接用大规模网络进行训练。而当你的训练集很大时,使用大规模的神经网络进行训练通常会比手工选取特征性能要好的多。


事实上,对于深度学习而言,想要发挥其优势需要满足以下三点:

1 足够的数据量:若数据量不足,则无法发挥深度学习的优势

2 足够的计算能力:若计算能力不足,则无法快速训练得到模型,不具备实际意义。

3 优秀的算法:优秀的算法可以在相同的数据量和计算能力时,得到更好的性能。同时,一些算法也可以简化计算,提高计算效率,例如用ReLU替换sigmod函数。

此外,快速的计算能力可以帮助我们更快的进行算法验证。

在深度学习的研究与应用过程中,整理流程通常如下:

1 提出一个想法

2 编程进行实现

3 训练得到模型并验证算法性能

4 分析并提出新的想法进行改进

而在一过程中,常常制约我们的最大因素在于模型的训练过程。

此时,强大的计算能力在这一过程中则至关重要,可以帮助我们进行快速的训练并提出新的模型进行研究。


总结一下,深度学习在近些年飞速发展的原因如下:

1 数据量的大爆发

2 GPU等硬件设备带来的计算效率的飞速增长

3 一些优秀的算法提出。

 

关于本课程

在本系列课程中,将会包含五个部分。

现在讲解的部分属于第一个部分,主要讲解的是深度学习的基础知识,这也是真正深刻理解深度学习的最重要的一部分。

这一部分又包括了四节,上述内容是第一节,讲述了深度学习的简介。

在接下来的第二节中,我们将讲解神经网络编程的基础知识,包括正向传播与反向传播已经如何有效的实现神经网络。

在第三节中,将会学习如何实现一个包含隐层的神经网络。

在第四节中,我们将会学习如何建立一个拥有多层的神经网络并利用它实现相关的功能。


了解完整版本,请访问原创链接:

http://www.missshi.cn/api/view/blog/59a6ad66e519f50d040000a8

你可能感兴趣的:(深度学习)