B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)

前言

这节课通过举例子的方式形象生动地介绍了什么是神经网络,以下内容基本为原视频翻译内容,内容十分生动详细,很好理解。

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

我们常常用深度学习这个术语来指训练神经网络的过程。有时它指的是特别大规模的神经网络训练。那么神经网络究竟是什么呢?在这个视频中,会讲解一些直观的基础知识。

首先,让我们从一个房价预测的例子开始讲起。

假设你有一个数据集,它包含了六栋房子的信息。所以,你知道房屋的面积是多少平方英尺或者平方米,并且知道房屋价格。这时,你想要拟合一个根据房屋面积预测房价的函数。

如果你对线性回归很熟悉,你可能会说:“好吧,让我们用这些数据拟合一条直线。”于是你可能会得到这样一条直线。这也就是一个基础的回归线,这个要记下!

问题1:什么是回归?

很多朋友不知道什么是回归,为了更好地理解下面的内容,我在写下面内容之前先讲一下什么是回归。

假设线性回归是个黑盒子,那按照程序员的思维来说,这个黑盒子就是个函数,然后呢,我们只要往这个函数传一些参数作为输入,就能得到一个结果作为输出。那回归是什么意思呢?其实说白了,就是这个黑盒子输出的结果是个连续的值。如果输出不是个连续值而是个离散值那就叫分类。那什么叫做连续值呢?非常简单,举个栗子:比如我告诉你我这里有间房子,这间房子有40平,在地铁口,然后你来猜一猜我的房子总共值多少钱?这就是连续值,因为房子可能值80万,也可能值80.2万,也可能值80.111万。再比如,我告诉你我有间房子,120平,在地铁口,总共值180万,然后你来猜猜我这间房子会有几个卧室?那这就是离散值了。因为卧室的个数只可能是1, 2, 3,4,充其量到5个封顶了,而且卧室个数也不可能是什么1.1, 2.9个。你只要知道我要完成的任务是预测一个连续值的话,那这个任务就是回归。是离散值的话就是分类。

好了,我们接着来看吴恩达下面讲了什么

B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)房价预测线

但有点奇怪的是,你可能也发现了,我们知道价格永远不会是负数的。因此,为了替代一条可能会让价格为负的直线,我们把直线弯曲一点,让它最终在零结束。那条粗的蓝线最终就是你的函数,用于根据房屋面积预测价格。有部分是零,而直线的部分拟合的很好。你也许认为这个函数只拟合房屋价格。

作为一个神经网络,这几乎可能是最简单的神经网络。我们把房屋的面积作为神经网络的输入(我们称之为 ),通过一个节点(一个小圆圈),最终输出了价格(我们用 表示)。其实这个小圆圈就是一个单独的神经元。接着你的网络实现了左边这个函数的功能。

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

B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)

你现在不用担心不理解ReLU函数,你将会在这门课的后面再次看到它。

问题2:重点思考:什么是**函数,**函数的作用是什么?

这里吴恩达老师引出了一个概念:**函数

十分形象地讲:神经网络的**函数(activation function)是一群空间魔法师,扭曲翻转特征空间,在其中寻找线性的边界。

如果没有**函数,那么神经网络的权重、偏置全是线性的仿射变(affine transformation):
B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)
这样的神经网络,甚至连下面这样的简单分类问题都解决不了:
B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)
B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)
在这个二维特征空间上,蓝线表示负面情形(y=0),绿线表示正面情形(y=1)

没有**函数的加持,神经网络最多能做到这个程度:

B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)

线性边界——看起来不怎么好,是吧?

这时候,**函数出手了,扭曲翻转一下空间:
B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)

线性边界出现了!再还原回去,不就得到了原特征空间中的边界?

当然,不同的**函数,因为所属流派不同,所以施展的魔法也各不相同。

B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)
上图中,出场的三位空间魔法师,分别为sigmoid、tanh、relu。

sigmoid

sigmoid是一位老奶奶,是**函数中最有资历的。
B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)
虽然比较老迈、古板,已经不像当年那么受欢迎了,但在分类任务的输出层中,人们还是信赖sigmoid的丰富经验。
B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)
我们可以看到,sigmoid将输入挤压进0到1区间(这和概率的取值范围一致),这正是分类任务中sigmoid很受欢迎的原因。

tanh

tanh也是一位资深的空间魔法师:

B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)

等等,这不就是sigmoid?背过身去以为我们就不认识了吗?

没错,tanh就是乔装打扮的sigmoid:

B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)
如上图所示,tanh的形状和sigmoid类似,只不过tanh将“挤压”输入至区间(-1, 1)。因此,中心为零,(某种程度上)**值已经是下一层的正态分布输入了。

至于梯度,它有一个大得多的峰值1.0(同样位于z = 0处),但它下降得更快,当|z|的值到达3时就已经接近零了。这是所谓梯度消失(vanishing gradients)问题背后的原因,会导致网络的训练进展变慢。

ReLU

ReLU是一个守门人,凡是麻瓜(0)一律拒之门外(关闭神经元)。也正是吴恩达老师所提到的那个**函数。
B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)
它是今时今日寻常使用的激励函数。ReLU处理了它的sigmoid、tanh中常见的梯度消失问题,同时也是计算梯度最快的激励函数。
B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)
B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)如上图所示,ReLU是一头完全不同的野兽:它并不“挤压”值至某一区间——它只是保留正值,并将所有负值转化为零。

使用ReLU的积极方面是它的梯度要么是1(正值),要么是0(负值)——再也没有梯度消失了!这一模式使网络更快收敛。另一方面,这一表现导致所谓的“死亡神经元”问题,也就是输入持续为负的神经元**值总是为零。

好了,了解完**函数,我们接着看吴恩达老师接下来会讲什么。

B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)
如果这是一个单神经元网络,不管规模大小,它正是通过把这些单个神经元叠加在一起来形成。如果你把这些神经元想象成单独的乐高积木,你就通过搭积木来完成一个更大的神经网络。

让我们来看一个例子:

我们不仅仅用房屋的面积来预测它的价格,现在你有了一些有关房屋的其它特征,比如卧室的数量,或许有一个很重要的因素,一家人的数量也会影响房屋价格,这个房屋能住下一家人或者是四五个人的家庭吗?而这确实是基于房屋大小,以及真正决定一栋房子是否能适合你们家庭人数的卧室数。

换个话题,你可能知道邮政编码或许能作为一个特征,告诉你步行化程度。比如这附近是不是高度步行化,你是否能步行去杂货店或者是学校,以及你是否需要驾驶汽车。有些人喜欢居住在以步行为主的区域,另外根据邮政编码还和富裕程度相关(在美国是这样的)。但在其它国家也可能体现出附近学校的水平有多好。
B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)
在图上每一个画的小圆圈都可以是ReLU的一部分,也就是指修正线性单元,或者其它稍微非线性的函数。基于房屋面积和卧室数量,可以估算家庭人口,基于邮编,可以估测步行化程度或者学校的质量。最后你可能会这样想,这些决定人们乐意花费多少钱。

对于一个房子来说,这些都是与它息息相关的事情。在这个情景里,家庭人口、步行化程度以及学校的质量都能帮助你预测房屋的价格。以此为例, x 是所有的这四个输入, y是你尝试预测的价格,把这些单个的神经元叠加在一起,我们就有了一个稍微大一点的神经网络。这显示了神经网络的神奇之处,虽然我已经描述了一个神经网络,它可以需要你得到房屋面积、步行化程度和学校的质量,或者其它影响价格的因素。

B站吴恩达深度学习视频学习笔记(2)——-什么是神经网络(Neural Network)
神经网络的一部分神奇之处在于,当你实现它之后,你要做的只是输入x ,就能得到输出 y 。因为它可以自己计算你训练集中样本的数目以及所有的中间过程。所以,你实际上要做的就是:这里有四个输入的神经网络,这输入的特征可能是房屋的大小、卧室的数量、邮政编码和区域的富裕程度。给出这些输入的特征之后,神经网络的工作就是预测对应的价格。同时也注意到这些被叫做隐藏单元圆圈,在一个神经网络中,它们每个都从输入的四个特征获得自身输入,比如说,第一个结点代表家庭人口,而家庭人口仅仅取决于x1 和x2特征,换句话说,在神经网络中,你决定在这个结点中想要得到什么,然后用所有的四个输入来计算想要得到的。因此,我们说输入层和中间层被紧密的连接起来了。

值得注意的是神经网络给予了足够多的关于x 和 y的数据,给予了足够的训练样本有关x 和 。神经网络非常擅长计算从x到y 的精准映射函数。

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

在下一个课中,我们会了解更多监督学习的例子,有些例子会让你觉得你的网络会十分有用,并且你实际应用起来也是如此。

下课!