1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c
2.详细笔记网站(中文):http://www.ai-start.com/dl2017/
3.github课件+作业+答案:https://github.com/stormstone/deeplearning.ai
3.2 神经网络表示 Neural Network Representation
观察下图
这是只包含一个隐藏层的NN。定义如下
- 图中左边的输入特征x1、x2、x3,它们被竖直地堆叠起来,这叫做神经网络的输入层Input layer。它包含了神经网络的输入。
- 图中中间的4个节点,是NN的隐藏层hidden layer。
在一个NN中,当你使用监督学习训练它的时候,训练集包含了输入x和目标输出y。“隐藏”的意思是,训练集合中,我们不知道中间节点的真正数值,也就是说你能看到输入和输出值,但是在训练集中看不到隐藏层的数值。 - 图中右边只有一个节点,是NN的输出层output layer。它负责输出预测值 y ^ \hat y y^。
符号约定
- a[i]表示输入特征。a也表示激活的意思,它表示不同层的值会传递给后面的层。
- 我们将输入层的激活值称为a[0]。
- 隐藏层的激活值称为a[1]。
- 隐藏层第1个节点或者说单元表示为 a 1 [ 1 ] a_1^{[1]} a1[1]
- 第2个节点或者说单元表示为 a 2 [ 1 ] a_2^{[1]} a2[1]
- 依次类推,所以a[1]是一个4x1矩阵,代表4个隐藏单元。 a [ 1 ] = [ a 1 [ 1 ] a 2 [ 1 ] a 3 [ 1 ] a 4 [ 1 ] ] a^{[1]}=\begin{bmatrix} a_1^{[1]} \\ a_2^{[1]} \\ a_3^{[1]} \\ a_4^{[1]} \\ \end{bmatrix} a[1]=⎣⎢⎢⎢⎡a1[1]a2[1]a3[1]a4[1]⎦⎥⎥⎥⎤
- 最后输出层将产生某个数值a[2],它只是一个实数。 y ^ = a [ 2 ] \hat y =a^{[2]} y^=a[2]
总结:NN中会用方括号上标来表示值来自哪一层。
在上面例子中,使用的是双层NN。这是因为计算NN的层数时,输入层不算在总层数中,所以隐藏层才是第一层。我们约定输入层是第零层。在技术上,这仍然是一个三层的神经网络,因为这里有输入层、隐藏层,还有输出层。
最后,我们要看到的隐藏层以及最后的输出层是带有参数的,这里的隐藏层将拥有两个参数W和b。使用上标[1] ( W [ 1 ] W^{[1]} W[1]和 b [ 1 ] b^{[1]} b[1]) 来表示这些参数是和第一层隐藏层有关系的。我们会看到W是一个4x3的矩阵,4表示有四个结点或隐藏层单元,3表示有三个输入特征。b是一个4x1的矩阵。
类似的,输出层也有一些与之关联的参数 W [ 2 ] W^{[2]} W[2],1x4矩阵,1表示只有1个节点,4表示有4个输入特征。 b [ 2 ] b^{[2]} b[2],1x1矩阵。