你将会发现 我们只是 将逻辑回归进行多次的重复
让我们一起来看看
这是一个双层的神经网络
我们深入了解一下这个神经网络计算了什么
我们在讲逻辑回归的时候曾经说过
在逻辑回归中 一个圆代表了两步计算
首先 你可以按照这种方式计算z 然后
计算sigmoid(z)作为激活函数
神经网络只是把这个过程做了多次
首先我们注意隐藏层里面的一个节点
我们先看隐藏层的第一个节点
我把其他的节点标为灰色
和左边的逻辑回归类似
隐藏层中的节点进行了两步计算
第一步 和左边的这个节点一样
计算了了z=W^T·x+b 我们使用的符号是
关联了第一隐藏层中的所有节点的
这也是为什么这里有一堆方括号 这是隐藏层的第一个节点
所以我们有一个上标1
首先我们做了这个
第二步就像这样计算 a_1^[1]=sigmoid(z_1^[1])
对于z和a 在符号上的惯例为a^[l]_i
这里的l指的是第l层
这里的i指的则是 第l层中的第i个节点
注意我们刚刚看的是 第一层(隐藏层)中的第一个节点
所以它的上标和下标都是1
这个小圆圈 表示神经网络中的第一个节点
执行了这两步计算
现在我们来看神经网络隐藏层中的第二个节点
和左边的逻辑回归单元类似
这个小圆表示了两步计算
第一步计算z 这里还是第一层
但是已经是第二个节点=W_2^[1]^T·x+b
a_2^[1]=σ(z_2^[1])
你可以暂停视频 再次检查上标和下标
以确保它们遵循了 我们上面约定的书写规则
我们探讨了神经网络中的前两个隐藏单元
第三个和第四个隐藏单元表示了相似的计算
现在 我把这组等式
和这一组等式复制到下一页
这就是我们的神经网络 这是第一个 这是第二个
我们之前计算出的 第一隐藏单元和第二隐藏单元的等式
然后继续写下第三隐藏单元 和第四隐藏单元对应的等式
你就得到了下面的这些等式
明确一下 这是向量W_1^[1]
这是一个向量转置乘以X OK?
所以这里有一个上标T 表示向量转置
你可能猜到了 如果你实际实现一个神经网络
使用for循环来实现它似乎效率很低
所以我们下一步要做的 就是将这四个等式向量化
我们将从如何用向量的方法计算z开始
接下来你可以用这种方法来计算它
将这些W叠放到一个矩阵中
你就得到了w[1],1的转置 这就是一个行向量 或者说
这是一个列向量经过转置所得到的行向量
然后是w[1],2的转置 w[1],3的转置 w[1],4的转置
如此 通过把那四个w向量堆叠在一起 你就得到了一个矩阵
你也可以从另外一个角度来理解 我们现在有四个逻辑回归单元
每一个逻辑回归单元 都有一个相对应的参数向量w
通过堆叠这四个向量
你就得到了这个(4,3)矩阵
所以,如果你用这个矩阵去乘输入变量
x1,x2,x3 通过矩阵乘法运算
你就得到了w1[1]的转置乘以x w2[1]的转置乘以x
w3[1]的转置乘以x w4[1]的转置乘以x 同时别忘了那些b
我们现在把这些b向量加上去 b[1]1,b[1]2
b[1]3,b[1]4 也就是绿色的这些项
那么这里就是b[1]1,b[1]2,b[1]3,b[1]4
你就会看到结果中 每一行都是一一对应于
上面这四行中的一行
换句话说 我们刚刚展示了 我们得到的结果就等于z[1]1
z[1]2,z[1]3,z[1]4,就像这里定义的一样。
或许你已经猜到了 我们将把这一大坨东西叫做 向量Z[1]
向量Z[1]就是把这些单独的Z 堆叠在一起而形成的列向量
当我们进行向量化时 一个经验能帮到你
那就是 在一层中有不同的神经元时 我们就把他们堆叠起来
这就是为什么 当你有Z[1]1到Z[1]4这些
在隐藏层中对应于不同神经元的时候,
我们就把这四个 垂直堆叠起来而形成Z[1]向量
与此同时 这边这个 通过堆叠w[1]1,w[1]2等
而得到的(4,3)矩阵
我们将把这个矩阵称为W[1] 类似的 这边这个向量
我们将把它成为b[1] 这是一个(4,1)向量
到目前为止 我们已经通过 这个向量矩阵计算了向量Z
最后 我们要做的是去计算出这些a
可能你又猜到了 我们将会通过堆叠来定义a
我们把那些激活值a[1]1到a[1]4堆叠起来
就是把这四个值堆叠在一起 得到向量a[1]
这将会是Sigmoid函数作用在 z[1]上后得到的值
这里这个Sigmoid函数
将会接受z[1]中的每个元素 然后用Sigmoid函数来进行运算
来复习一下 我们通过运算得出
z[1]=W[1]x+b[1] 同时a[1]=Sigmoid*z[1]
我们把这个拷贝到下一页 我们会看到
对于第一层神经网络来说 如果输入是一组x (x向量)
我们就有z[1]=W[1]x+b[1],同时
a[1]=σ(z[1])
(4,1) = (4,3) x (3,1) + (4,1)
这个的维度是(4,1) 和最后的维度是相同的
还记得吧 我们说过x=a[0] y^=a[2]
所以如果你想的话 你可以用a[0]来替代x
因为a[0]就是x向量的别名。
Sorry, the comment form is closed at this time.