深度学习(3):神经网络 前向传播反向传播向量化

这一次我们来更加详细地了解一下神经网络

神经网络结构以及本文符号约定

神经网络的基本单元是神经元

z=wTx+b
a = g(z)
(z和a的表示会在下面用到)
每个神经元对输入进行线性求和,随后调用激活函数(一个非线性函数)进行输出

而一个神经网络的结构如下图所示

输入部分称为输入层
输出值称为输出层
中间的神经元由于其参数对于训练集不可见,因此称为隐藏层

下面是本文(符合吴恩达深度学习课程)所用的符号
m:数据的个数
n[l]:第l层网络的神经元个数。在上图中n[0]=3, n[1]=4, n[2]=1
W[l]:将第l层各个神经元的wT按行排列得到W[l]矩阵
在这里插入图片描述
这个矩阵的大小是(n[l], n[l-1]

b[l]:将第l层各个神经元的b值排成一列
在这里插入图片描述
这个矩阵大小为(n[l], 1)

Z[l]:将第l层每个神经元计算出的z值排成一列。对于不同的数据,将这些值再按列排,得到一个(n[i], m)的矩阵。
每个Zij[l]代表第 l 层的第 i 个神经元对于第 j 条数据的z值。

g[l]:第I层神经元的激活函数

A[l]:表示第l层神经网络的输出值。大小为(n[i], m)
每个Aij[l]代表第 l 层的第 i 个神经元对于第 j 条数据的输出。值为Zij[l]*g[l]
特殊的,l为0时A[l]就是输入数据X

接下来我们将通过矩阵乘法的定义理解前向传播反向传播的向量化公式。

前向传播(向量化)

公式:
Z[l]=W[l]A[l-1]+b[l]
A[l]=g[l](Z[l])

说明
Z[l]=W[l]A[l-1]+b[l]
对于每一个Zij[l](第 l 层第 i 个神经元对于第 j 条数据计算的z)
Z i j [ l ] = ∑ k n [ l − 1 ] W i k [ l ] A k j [ l − 1 ] + b i [ l ] Z_{ij}^{[l]} = \sum_{k}^{n^{[l-1]}}W^{[l]}_{ik}A^{[l-1]}_{kj }+b^{[l]}_{i} Zij[l]=kn[l1]Wik[l]Akj[l1]+bi[l]
在这个公式里Wik[l]是第i个神经元的w值,bi[l]是第i个神经元的b值,而Akj[l-1]则是第j条数据的上一层a值,完全符合定义。
A[l]=g[l](Z[l]) 是显然的

反向传播

利用反向传播求得各个参数的导数:
为了通俗化,下面给出如何通过第l+1层的导数求得第l层的导数
这里所有的d¥代表着 ¥关于损失函数的导数(指代其他意思会有说明)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值