[C1W1] Neural Networks and Deep Learning - Introduction to Deep Learning

第一周:深度学习引言(Introduction to Deep Learning)

欢迎(Welcome)

当你完成深度学习这一系列专项课程,你将会更加自信的继续深度学习之路。在接下来的十年中,我认为我们所有人都有机会创造一个惊人的世界和社会,这就是 AI(人工智能)的力量。我希望你们能在创建 AI 社会的过程中发挥重要作用。

我认为 AI 是最新的电力,大约在一百年前,我们社会的电气化改变了每个主要行业,从交通运输行业到制造业、医疗保健、通讯等方面,我认为如今我们见到了 AI 明显的令人惊讶的能量,带来了同样巨大的转变。显然,AI 的各个分支中,发展的最为迅速的就是深度学习。因此现在,深度学习是在科技世界中广受欢迎的一种技术。

下面是你将学习到的内容:

  • 第一门课(神经网络和深度学习)
    你将学习神经网络的基础、如何建立神经网络(包含一个深度神经网络)、以及如何在数据上面训练他们。
    在这门课程的结尾,你将用一个深度神经网络进行猫的辨认。

  • 第二门课(改善深层神经网络:超参数调试、正则化以及优化)
    你将进行深度学习方面的实践,学习严密地构建神经网络,如何真正让它表现良好。
    因此你将要学习超参数调整、正则化、诊断偏差和方差以及一些高级优化算法。
    比如Momentum和Adam算法,犹如黑魔法一样根据你建立网络的方式。

  • 第三门课(结构化机器学习项目)
    我们将学习如何结构化你的机器学习工程。
    事实证明,构建机器学习系统的策略改变了深度学习的错误。
    举个例子:你分割数据的方式,分割成训练集、比较集或改变的验证集,以及测试集合,改变了深度学习的错误。
    所以最好的实践方式是什么呢?
    你的训练集和测试集来自不同的贡献度在深度学习中的影响很大,那么你应该怎么处理呢?
    如果你听说过端对端深度学习,你也会在第三门课中了解到更多,进而了解到你是否需要使用它。
    第三课的资料是相对比较独特的,我将和你分享我们了解到的所有热门领域深度学习问题的建立,及改良。
    这些当今热门的资料,绝大部分大学在他们的深度学习课堂上面里面不会教的,我认为它会为你提供帮助,让你的深度学习系统工作的更好。

  • 第四门课(卷积神经网络)
    我们将会提到卷积神经网络 CNN(s),它经常被用于图像领域,你将会在第四门课程中学到如何搭建这样的模型。

  • 第五门课(序列模型)
    你将会学习到序列模型,以及如何将它们应用于自然语言处理,以及其它问题。
    序列模型包括的模型有循环神经网络 RNN、长短期记忆网络 LSTM
    你将在课程五中了解其中的时期是什么含义,并且有能力应用到自然语言处理 NLP 问题。
    总之你将在课程五中学习这些模型,以及能够将它们应用于序列数据。
    比如说,自然语言就是一个单词序列。
    你也将能够理解这些模型如何应用到语音识别或者是编曲以及其它问题。

因此,通过这些课程,你将学习深度学习的这些工具,你将能够去使用它们去做一些神奇的事情,并借此来提升你的职业生涯。

吴恩达 Andrew Ng

什么是神经网络?(What is a Neural Network)

1546742-20190615164137409-137270913.png

举一个房价预测的例子,如果你对线性回归很熟悉,你可能会得到上图中那样的一条直线。
由于价格永远不会是负数。因此,为了替代一条可能会让价格为负的直线,我们把直线弯曲一点,让它最终在零结束。
这条粗的蓝线最终就是你的函数,用于根据房屋面积预测价格。有部分是零,而直线的部分拟合的很好。

你可以把它看成是一个最简单不过的神经网络。我们把房屋的面积作为神经网络的输入,通过一个节点(一个小圆圈),最终输出了价格。其实这个小圆圈就是一个单独的神经元。接着你的网络实现了上图左边那条拟合线的函数功能。

在有关神经网络的文献中,你经常看得到这个函数。从趋近于零开始,然后变成一条直线。
这个函数被称作 ReLU 激活函数,它的全称是 Rectified Linear Unit。rectify(修正)可以理解成 \(max(0,x)\)

如果这是一个单神经元网络,不管规模大小,大的神经网络正是通过把这些单个神经元叠加在一起形成的。
如果你把这些神经元想象成单独的乐高积木,你就可以通过搭积木来完成一个更大的神经网络。

1546742-20190615164037842-292804759.png

1546742-20190615164018229-1235174320.png

上图,四个输入的神经网络,输入的特征可能是房屋的大小、卧室的数量、邮政编码和区域的富裕程度。给出这些输入的特征之后,神经网络的工作就是预测对应的价格。

同时也注意到这些被叫做隐藏单元圆圈,在一个神经网络中,它们每个都从输入的四个特征获得自身输入,比如说,第一个结点代表家庭人口,而家庭人口仅仅取决于 \(x_1\)\(x_2\) 特征,换句话说,在神经网络中,你决定在这个结点中想要得到什么,然后用所有的四个输入来计算想要得到的。因此,我们说输入层和中间层被紧密的连接起来了。值得注意的是神经网络给予了足够多的关于 \(x\)\(y\) 的数据,给予了足够的训练样本有关的 \(x\)\(y\) 。神经网络非常擅长计算从 \(x\)\(y\) 的精准映射函数。

这就是一个基础的神经网络。你可能发现你自己的神经网络在监督学习的环境下是如此的有效和强大,也就是说你只要尝试输入一个,即可把它映射成,就好像我们在刚才房价预测的例子中看到的效果。

基于神经网络的监督学习(Supervised Learning with Neural Networks)

关于神经网络也有很多的种类,考虑到它们的使用效果,有些使用起来恰到好处,但事实表明,到目前几乎所有由神经网络创造的经济价值,本质上都离不开一种叫做监督学习的机器学习类别,让我们举例看看。

在监督学习中你有一些输入 \(x\),你想学习到一个函数来映射到一些输出 \(y\),比如我们之前提到的房价预测的例子,你只要输入有关房屋的一些特征,试着去输出或者估计价格 \(y\)

我们举一些其它的例子,来说明神经网络已经被高效应用到其它地方。

1546742-20190615175102738-609123577.png

如今应用深度学习获利最多的一个领域,就是在线广告。这也许不是最鼓舞人心的,但真的很赚钱。具体就是通过在网站上输入一个广告的相关信息,因为也输入了用户的信息,于是网站就会考虑是否向你展示广告。

神经网络已经非常擅长预测你是否会点开这个广告,通过向用户展示最有可能点开的广告,这就是神经网络在很多家公司难以置信地提高获利的一种应用。因为有了这种向你展示你最有可能点击的广告的能力,而这一点击的行为的改变会直接影响到一些大型的在线广告公司的收入。

计算机视觉在过去的几年里也取得了长足的进步,这也多亏了深度学习。你可以输入一个图像,然后想输出一个索引,范围从1到1000来试着告诉你这张照片,它可能是,比方说,1000个不同的图像中的任何一个,所以你可能会选择用它来给照片打标签。

深度学习最近在语音识别方面的进步也是非常令人兴奋的,你现在可以将音频片段输入神经网络,然后让它输出文本记录。得益于深度学习,机器翻译也有很大的发展。你可以利用神经网络输入英语句子,接着输出一个中文句子。

在自动驾驶技术中,你可以输入一幅图像,就好像一个信息雷达展示汽车前方有什么,据此,你可以训练一个神经网络,来告诉汽车在马路上面具体的位置,这就是神经网络在自动驾驶系统中的一个关键成分。

对于房地产和在线广告来说可能是相对的标准一些的神经网络,正如我们之前见到的。

对于图像应用,我们经常在神经网络上使用卷积(Convolutional Neural Network),通常缩写为 CNN

对于序列数据,例如音频,有一个时间组件,随着时间的推移,音频被播放出来,所以音频是最自然的表现。作为一维时间序列(两种英文说法one-dimensional time series / temporal sequence)。对于序列数据,经常使用 RNN,一种递归神经网络(Recurrent Neural Network),语言,英语和汉语字母表或单词都是逐个出现的,所以语言也是最自然的序列数据,因此更复杂的 RNNs 版本经常用于这些应用。

对于更复杂的应用比如自动驾驶,你有一张图片,可能会显示更多的 CNN 卷积神经网络结构,其中的雷达信息是完全不同的,你可能会有一个更定制的,或者一些更复杂的混合的神经网络结构。

更具体地说明什么是标准的 CNNRNN 结构,在文献中你可能见过这样的图片:

1546742-20190615175138474-2087558998.png

你可能也听说过机器学习对于结构化数据和非结构化数据的应用,结构化数据意味着数据的基本数据库。例如在房价预测中,你可能有一个数据库,有专门的几列数据告诉你卧室的大小和数量,这就是结构化数据。或预测用户是否会点击广告,你可能会得到关于用户的信息,比如年龄以及关于广告的一些信息,然后对你的预测分类标注,这就是结构化数据,意思是每个特征,比如说房屋大小卧室数量,或者是一个用户的年龄,都有一个很好的定义。

相反非结构化数据是指比如音频,原始音频或者你想要识别的图像或文本中的内容。这里的特征可能是图像中的像素值或文本中的单个单词。

1546742-20190615175207898-2080311382.png

从历史经验上看,处理非结构化数据是很难的,与结构化数据比较,让计算机理解非结构化数据很难,而人类进化得非常善于理解音频信号和图像,文本是一个更近代的发明,但是人们真的很擅长解读非结构化数据。

神经网络的兴起就是这样最令人兴奋的事情之一,多亏了深度学习和神经网络,计算机现在能更好地解释非结构化数据,这是与几年前相比的结果,这为我们创造了机会。许多新的令人兴奋的应用被使用,语音识别、图像识别、自然语言文字处理,甚至可能比两三年前的还要多。因为人们天生就有本领去理解非结构化数据,你可能听说了神经网络更多在媒体非结构化数据的成功,当神经网络识别了一只猫时那真的很酷,我们都知道那意味着什么。

但结果也表明,神经网络在许多短期经济价值的创造,也是基于结构化数据的。比如更好的广告系统、更好的利润建议,还有更好的处理大数据的能力。许多公司不得不根据神经网络做出准确的预测。

因此在这门课中,我们将要讨论的许多技术都将适用,不论是对结构化数据还是非结构化数据。为了解释算法,我们将在使用非结构化数据的示例中多画一点图片,但正如你所想的,你自己团队里通过运用神经网络,我希望你能发现,神经网络算法对于结构化和非结构化数据都有用处。

神经网络已经改变了监督学习,正创造着巨大的经济价值,事实证明,基本的神经网络背后的技术理念大部分都离我们不遥远,有的是几十年,那么为什么他们现在才刚刚起步,效果那么好,下一节中我们将讨论为什么最近的神经网络已经成为你可以使用的强大工具。

为什么神经网络会流行?(Why is Deep Learning taking off?)

深度学习和神经网络之前的基础技术理念已经存在大概几十年了,为什么它们现在才突然流行起来呢?

如下图(x 轴数据规模,y轴算法性能):

1546742-20190615180633435-277504623.png

  • 传统机器学习算法(红线)
    算法到达一定数据量性能就遇到了瓶颈,开始持平。

  • 过去20年我们收集的数据(黑线)
    数字化社会的来临,现在的数据量都非常巨大,我们花了很多时间活动在这些数字的领域,比如在电脑网站上、在手机软件上以及其它数字化的服务,它们都能收集数据,同时便宜的相机被配置到移动电话,还有加速仪及各类各样的传感器,物联网等等。过去的20年里,我们已经收集了大量数据,远超过传统机器学习算法能够高效发挥它们优势的规模。

  • 小型神经网络(黄线)
  • 中型神经网络(蓝线)
  • 大型神经网络(绿线)

随着神经网络的规模扩大,性能越来越好,而现在也有大量的数据支撑算法。

上图左侧(小训练集),各种算法之间的优先级并不是定义的很明确,最终的性能更多的是取决于你在特征选择、算法细节处理方面的能力,只有在右侧大数据规模的训练集时,我们才能更加持续地看到由更大规模的神经网络所带来的性能优势。

1546742-20190615180946648-904139079.png

在深度学习萌芽的初期,数据的规模以及计算量,局限在我们对于训练一个特别大的神经网络的能力,无论是在 CPU 还是 GPU 上面,那都使得我们取得了巨大的进步。而且在最近几年,我们也见证了算法方面的极大创新。许多算法方面的创新,一直是在尝试着使得神经网络运行的更快。

作为一个具体的例子,神经网络方面的一个巨大突破是从 sigmoid 函数转换到一个 ReLU 函数。

这个 sigmoid 函数的梯度会接近零,所以学习的速度会变得非常缓慢,因为当你实现梯度下降以及梯度接近零的时候,参数会更新的很慢,所以学习的速率也会变的很慢,而通过改变这个被叫做激活函数的东西,神经网络换用这一个函数,叫做 ReLU 的函数(修正线性单元),ReLU 的梯度对于所有输入的负值都是零,因此梯度更加不会趋向逐渐减少到零。这能够使梯度下降(gradient descent)的算法运行的更快,这就是一个或许相对比较简单的算法创新的例子。

但是根本上算法创新所带来的影响,实际上是对计算带来的优化,所以有很多像这样的例子,我们通过改变算法,使得代码运行的更快,这也使得我们能够训练规模更大的神经网络。

计算更快意味着你可以在 idea / code / experiment 三者中快速迭代。短时间内可以尝试更多的想法,那极有可能使你的神经网络在你的应用方面工作的更好。更快的计算,在提高速度方面真的有帮助,那样你就能更快地得到你的实验结果。这也同时帮助了神经网络的实验人员和有关项目的研究人员在深度学习的工作中迭代的更快,也能够更快的改进你的想法,所有这些都使得整个深度学习的研究社群变的如此繁荣,包括令人难以置信地发明新的算法和取得不间断的进步,这些都是开拓者在做的事情,这些力量使得深度学习不断壮大。

好消息是这些力量目前也正常不断的奏效,使得深度学习越来越好。研究表明我们的社会仍然正在抛出越来越多的数字化数据,或者用一些特殊的硬件来进行计算,比如说 GPU,以及更快的网络连接各种硬件。我非常有信心,我们可以做一个超级大规模的神经网络,而计算的能力也会进一步的得到改善,还有算法相对的学习研究社区连续不断的在算法前沿产生非凡的创新。根据这些我们可以乐观地回答,同时对深度学习保持乐观态度,在接下来的这些年它都会变的越来越好。

转载于:https://www.cnblogs.com/keyshaw/p/11027667.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值