本文是吴恩达《机器学习》视频笔记第47篇,对应第4周第4个视频。
“Neural Networks: Representation——Model representation II”。
01
—
笔记
上一个小节, 介绍了神经元、神经网络的数学模型。本小节学习如何高效的对神经模型进行计算,展示一个向量的实现方法,然后搞明白神经网络是如何进行复杂的非线性假设函数的运算的。
把上一小节的神经网络模型再拿过来看一下:
上图中,前三个式子的上角标加括号2表示的是第2层网络的函数,我们把上面的三个函数做一个假设,如下图:
这样一来,我们可以把这个方程组写成向量形式:(下图右边上半部分)
上面这个过程,看上去好像比较复杂,其实它无非就是想用比较简洁的方式来表示上一小节中神经网络从左侧输入层到最后输出层的这个转变的计算过程,而这些所有的计算中的某一个层级(这里是第二层)都是上图中左边部分的这个样子。
然后,我们把第2层上每个神经元的输入写成 这种样子,因为我们把参数和输入分量都写成了向量形式,然后这个神经元的输出就是这个神经元的输入被g()函数处理之后的东西了,也就是 , 而对于这个三层的网络,第2层神经元的输出都会作为第三层神经元上的输入的一个分量。
这么掰开一看,就变得简单了。数学就是这样,你看着复杂是因为你对中间过程不了解,其实再复杂的数学问题都可以往下拆分成一个又一个非常简单的小的数学问题的累积。
那么,前面讲的这些看上去很繁杂的网络是怎样去解决非线性的映射问题的呢?
如下图,我们把3层网络的输入部分给遮挡住,而且我们只看右边这个输出层的神经元的话,它像不像我们前面讲到的逻辑回归?
然后,这个最后的输出层的神经元的输入就不再是比较直接的输入,而是输入经过一个层级的神经网络的计算之后的结果再输出给输出层上的逻辑回归的神经元。
看上去,这样的一个前向网络就像是由好多好多的逻辑回归的单元构成的一个阵列。
当然,我们可以让这个网络更复杂一点:
上图的这个网络有4层,一个输入层(layer2),两个隐藏层(layer2,layer3),一个输出层(layer4)。
神经网络是把输入和输出之间的运算给复杂化了。但是,只要每个神经元的激活函数、每个系数都确定下来了,那么输入和输出之间的关系其实也就是确定的。就是说,神经网络确定了,一个给定输入的输出也就是确定的了。
那,神经网络具体是怎样解决问题的呢?接下来几个小节,会给出例子来继续引导我们理解这个事。
02
—
视频
http://mpvideo.qpic.cn/0bf2xqakeaaanmam73cgx5pvbpgduk6abiqa.f10004.mp4?dis_k=f820fa2771930ce828707e906f0b4be4&dis_t=1598929059