深度学习(27)随机梯度下降五: 单输出感知机梯度

深度学习(27)随机梯度下降五: 单输出感知机梯度


Recap

  • y = X W + b y=XW+b y=XW+b
  • y = ∑ x i ∗ w i + b y=∑x_i*w_i+b y=xiwi+b
    在这里插入图片描述

1. Perceptrnon with Sigmoid + MSE

在这里插入图片描述

注:
(1) x i 0 x_i^0 xi0: x x x表示输入层的元素,上角标表示第几层(0表示第0层),下角标表示第几个元素( n n n表示第 n n n个元素);
(2) w i j 1 w_{ij}^1 wij1: w w w表示权值,上角标表示第几个隐藏层(1表示第1个隐藏层),下角标i表示连接上一层的第i个元素, j j j表示连接下一层的第 j j j个元素(由于上图中第1层共有1个元素,所以连接第0层和第1层的权重的下角标中的 j j j值都为0,代表第0个元素);
(3) x 0 1 x_0^1 x01: 上角标1表示第1层, x x x表示经过第0输入 x x x和第1层隐藏层得到的输出值,下角标0表示第0个元素,因为这节课讨论单输出,所以只有1个元素;
(4) O 0 1 O_0^1 O01: O O O表示 x x x经过激活函数的输出值,上角标表示第几层,1表示第1层的 x x x经过激活函数得到 O O O,下角标0表示第0个元素;
(5) t t t: t a r g e t target target,即目标值,标签值,label值;
(6) E E E: 即 l o s s loss loss,E=〖(O_01-t)〗2;

2. Derivative

在这里插入图片描述

  • 损失函数 l o s s loss loss为:
    E = 1 2 ( O 0 1 − t ) 2 E=\frac{1}{2} (O_0^1-t)^2 E=21(O01t)2
    注: 这里的 1 2 \frac{1}{2} 21是为了求导的时候和平方抵消掉,写不写不影响结果(梯度的单调性不会改变);
  • w j 0 w_{j0} wj0求偏导数:
    ∂ E ∂ w j 0 = ( O 0 1 − t ) ∂ O 0 ∂ w j 0 \frac{∂E}{∂w_{j0}}=(O_0^1-t)\frac{∂O_0}{∂w_{j0}} wj0E=(O01t)wj0O0
  • O 0 = σ ( x 0 ) O_0=σ(x_0) O0=σ(x0):
    ∂ E ∂ w j 0 = ( O 0 1 − t ) ∂ σ ( x 0 ) ∂ w j 0 \frac{∂E}{∂w_{j0}}=(O_0^1-t)\frac{∂σ(x_0)}{∂w_{j0}} wj0E=(O01t)wj0σ(x0)
  • ∂ σ ( x 0 ) ∂ w j 0 = ∂ σ ( x 0 ) ∂ x 0 ⋅ ∂ x 0 ∂ w j 0 \frac{∂σ(x_0)}{∂w_{j0}}=\frac{∂σ(x_0)}{∂x_0 }\cdot\frac{∂x_0}{∂w_{j0}} wj0σ(x0)=x0σ(x0)wj0x0,其中 ∂ σ ( x 0 ) ∂ x 0 = σ ( x 0 ) ( 1 − σ ( x 0 ) ) \frac{∂σ(x_0)}{∂x_0 }=σ(x_0)(1-σ(x_0)) x0σ(x0)=σ(x0)(1σ(x0)),这个在前面的激活函数的梯度部分讲解过了:
    ∂ E ∂ w j 0 = ( O 0 1 − t ) σ ( x 0 ) ( 1 − σ ( x 0 ) ) ∂ x 0 1 ∂ w j 0 \frac{∂E}{∂w_{j0}}=(O_0^1-t)σ(x_0)(1-σ(x_0))\frac{∂x_0^1}{∂w_{j0}} wj0E=(O01t)σ(x0)(1σ(x0))wj0x01
  • O 0 = σ ( x 0 ) O_0=σ(x_0) O0=σ(x0):
    ∂ E ∂ w j 0 = ( O 0 1 − t ) O 0 ( 1 − O 0 ) ∂ x 0 1 ∂ w j 0 \frac{∂E}{∂w_{j0}}=(O_0^1-t)O_0 (1-O_0)\frac{∂x_0^1}{∂w_{j0}} wj0E=(O01t)O0(1O0)wj0x01
  • 因为 x 0 1 = x 0 0 w 00 1 + x 1 0 w 10 1 + x 2 0 w 20 1 + ⋯ + x j 0 w j 0 1 + ⋯ + x n 0 w n 0 1 x_0^1=x_0^0 w_{00}^1+x_1^0 w_{10}^1+x_2^0 w_{20}^1+⋯+x_j^0 w_{j0}^1+⋯+x_n^0 w_{n0}^1 x01=x00w001+x10w101+x20w201++xj0wj01++xn0wn01,所以:
    ∂ E ∂ w j 0 = ( O 0 1 − t ) O 0 ( 1 − O 0 ) ∂ x 0 1 ∂ w j 0 = ( O 0 1 − t ) O 0 ( 1 − O 0 ) x j 0 \frac{∂E}{∂w_{j0}}=(O_0^1-t)O_0 (1-O_0)\frac{∂x_0^1}{∂w_{j0}} =(O_0^1-t)O_0 (1-O_0)x_j^0 wj0E=(O01t)O0(1O0)wj0x01=(O01t)O0(1O0)xj0

综上所述,单输出感知机梯度为:
∂ E ∂ w j 0 = ( O 0 1 − t ) O 0 ( 1 − O 0 ) x j 0 \frac{∂E}{∂w_{j0}}=(O_0^1-t)O_0 (1-O_0)x_j^0 wj0E=(O01t)O0(1O0)xj0
在这里插入图片描述

3. 代码

在这里插入图片描述

(1) x=tf.random.normal([1, 3]): 创建一个1个样本3个维度的Tensor;
(2)w=tf.ones([3, 1]): 权重 w w w,将输出维度变为[1];
(3) 上述过程为求单输出感知机梯度。

参考文献:
[1] 龙良曲:《深度学习与TensorFlow2入门实战》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值