CS231n:神经网络

反向传播

1. 链式法则

使用链式法则计算复合表达式  考虑复合函数 f ( x , y , z ) = ( x + y ) × z f(x, y, z) = (x+y)\times z f(x,y,z)=(x+y)×z。我们将公示分为两部分 q = x + y q = x + y q=x+y f = q × z f = q\times z f=q×z。所以我们有 ∂ f ∂ q = z , ∂ f ∂ z = q \frac{\partial f}{\partial q} = z, \frac{\partial f}{\partial z} = q qf=z,zf=q ; ∂ q ∂ x = 1 , ∂ q ∂ y = 1 \frac{\partial q}{\partial x} = 1 , \frac{\partial q}{\partial y} = 1 xq=1,yq=1。然而函数 f f f 关于 x , y , z x, y, z x,y,z 的梯度才是需要关注的。从而我们需要使用链式法则链式法则指出将这些梯度表达式链接起来的正确方式是相乘,比如 ∂ f ∂ x = ∂ f ∂ q ∂ q ∂ x \frac{\partial f}{\partial x} = \frac{\partial f}{\partial q}\frac{\partial q}{\partial x} xf=qfxq

计算对应的计算图如下:
在这里插入图片描述
前向传播从输入计算到输出(绿色),反向传播从尾部开始,根据链式法则递归地向前计算梯度(显示为红色),一直到网络的输入端。可以认为,梯度是从计算链路中回流。

Sigmoid例子  如下表达式,描述了一个含输入 x x x 和权重 w w w 的2维的神经元,该神经元使用了sigmoid激活函数
f ( w , x ) = 1 1 + e − ( w 0 x 0 + w 1 x 1 + w 2 ) f(w,x) = \frac{1}{1 + e^{-(w_0x_0 + w_1x_1 + w_2)}} f(w,x)=1+e(w0x0+w1x1+w2)1

其对应的计算图如下所示:
在这里插入图片描述
sigmoid函数求导简化 sigmoid函数关于其输入的求导是可以简化的(使用了在分子上先加后减1的技巧):
σ ( x ) = 1 1 + e − 1 → d σ ( x ) d x = e − x ( 1 + e − x ) 2 = ( 1 + e − x − 1 1 + e − x ) ( 1 1 + e − x ) = ( 1 − σ ( x ) ) σ ( x ) \sigma (x) = \frac{1}{1 + e^{-1}} \\ \to \frac{d \sigma(x)}{dx} = \frac{e^{-x}}{(1 + e^{-x})^2} = (\frac{1 + e^{-x} - 1}{1 + e^{-x}})(\frac{1}{1 + e^{-x}}) = (1 - \sigma(x))\sigma(x) σ(x)=1+e11dxdσ(x)=(1+ex)2ex=(1+ex1+ex1)(1+ex1)=(1σ(x))σ(x)

通过这个技巧,我们就可以实现门的合并。

2. 计算图

我们通常将操作节点叫做,一般的我们有:

  • add :梯度分发器。 z = x + y ⇒ ∂ L ∂ x = ∂ L ∂ z ∂ z ∂ x = ∂ L ∂ z × 1 z = x + y \Rightarrow \frac{\partial L}{\partial x} = \frac{\partial L}{\partial z} \frac{\partial z}{\partial x} = \frac{\partial L}{\partial z} \times 1 z=x+yxL=zLxz=zL×1
  • max:梯度路由器。 z = m a x ( x , y ) ⇒ z = max(x, y) \Rightarrow z=max(x,y)被选中的参数梯度为 ∂ L ∂ z \frac{\partial L}{\partial z} zL,否则为 0 0 0
  • mul:梯度交换器。 z = x × y ⇒ ∂ L ∂ x = ∂ L ∂ z ∂ z ∂ x = ∂ L ∂ z × y z = x \times y \Rightarrow \frac{\partial L}{\partial x} = \frac{\partial L}{\partial z} \frac{\partial z}{\partial x} = \frac{\partial L}{\partial z}\times y z=x×yxL=zLxz=zL×y

3. 变量向量化

在这里插入图片描述

神经网络

在一层的线性分类器(感知器)中,我们仅仅学习了 n n n 个模板,对于有多种特征的实体进行分类时,这明显是不足的。

多层神经网络可以解决单层神经网络的模板单一、鲁棒性差的问题。比如我们加深网络层数到两层,第一层输入为实体特征,第二层输入为第一层各分类模板得分。最后再通过 W 2 W_2 W2 进一步整合,以 W 1 W_1 W1 各模板得分为特征,得到最终的分类得分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值