多层感知机

多层感知机的基本知识

深度学习主要关注多层模型。在这里,我们将以多层感知机(multilayer perceptron,MLP)为例,介绍多层神经网络的概念。

隐藏层

下图展示了一个多层感知机的神经网络图,它含有一个隐藏层,该层中有5个隐藏单元。

Image Name

表达公式

           具体来说,给定一个小批量样本X∈R^{n\times d},其批量大小为n,输入个数为d。假设多层感知机只有一个隐藏层,其中隐藏单元个数为h。记隐藏层的输出(也称为隐藏层变量或隐藏变量)为H,有H∈R^{n\times h}。因为隐藏层和输出层均是全连接层,可以设隐藏层的权重参数和偏差参数分别为Wh∈R^{d\times h}和 bh∈R^{1\times h},输出层的权重和偏差参数分别为Wo∈R^{h\times d}和bo∈R^{1\times q}

我们先来看一种含单隐藏层的多层感知机的设计。其输出O∈R^{n\times q}的计算为

                                              \begin{aligned} \boldsymbol{H} &= \boldsymbol{X} \boldsymbol{W}_h + \boldsymbol{b}_h,\\ \boldsymbol{O} &= \boldsymbol{H} \boldsymbol{W}_o + \boldsymbol{b}_o, \end{aligned}

也就是将隐藏层的输出直接作为输出层的输入。如果将以上两个式子联立起来,可以得到

\boldsymbol{O} = (\boldsymbol{X} \boldsymbol{W}_h + \boldsymbol{b}_h)\boldsymbol{W}_o + \boldsymbol{b}_o = \boldsymbol{X} \boldsymbol{W}_h\boldsymbol{W}_o + \boldsymbol{b}_h \boldsymbol{W}_o + \boldsymbol{b}_o.

从联立后的式子可以看出,虽然神经网络引入了隐藏层,却依然等价于一个单层神经网络:其中输出层权重参数为\boldsymbol{W}_h\boldsymbol{W}_o,偏差参数为\boldsymbol{b}_h \boldsymbol{W}_o + \boldsymbol{b}_o。不难发现,即便再添加更多的隐藏层,以上设计依然只能与仅含输出层的单层神经网络等价。

 

二    tensor张量求导

backward() 函数求导注意事项

backward() 函数是反向求导,使用链式求导法则求导,适用于标量求导,如果对于非标量y求导,函数需要额外指定grad_tensor,且grad_tensor的shape 必需和y一致,对于非标量y求导,也可先将y求和变成标量之后再求导(y.sum().backgrad())

可参考https://blog.csdn.net/shiheyingzhe/article/details/83054238 理解

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值