07_3_随机梯度下降_单输出&多输出感知机梯度&链式法则
单输出感知机及其梯度
recap(回顾)
单层的感知机模型:每个输入节点 x i x_i xi和它对应的 w i w_i wi节点相乘,加上bias得到预测值。图是数学模型。
Perception(感知)
单层感知机前面激活函数是不积函数(阶梯),不可导。目前使用sigmoid函数,用 σ \sigma σ表示。
规范化定义:输入层为第0层;
x 1 0 x^0_{1} x10,上标0表示第0层;这个1表示0~n,表示第0层一共有N个元素节点的第1个元素;
输入,累加,和激活函数整个成为1层,图上为第1层;
W i j 1 W^1_{ij} Wij1,上标1表示第1层,i表示联结上一层的 x i 0 x^0_i xi0,j表示联结这一层的j号节点,因为这一层只有一个节点,这里总是等于0;
加权求和的变量名称为 x 0 1 x^1_0 x01,1表示第1层的x;0表示第1层上面的0号节点,与 x 1 0 x^0_{1} x10的定义相同;
经过激活函数后,得到输出 O 0 1 O^1_0 O01,1表示第1层;0表示第0号节点;
后面和target值做error(loss)- ∑ ( O 0 1 − t ) 2 \sum (O^1_0 - t)^2 ∑(O01−t)2
W i j l W^l_{ij} Wijl,l表示层数,i表示上一层节点的编号,j表示这一层节点的编号。
Derivative(梯度推导)
这里引用了 1 2 \frac{1}{2} 21,加了后,它的梯度单调性不会改变。
对w偏导,j表示0~n之间的数。
求解后,可以得到偏导,公式中的值都已知。
Perception
可以看出,对某个w的偏导为一系列 O 0 , t O_0, t O0,t和 x j 0 x_j^0 xj0可得,求哪个j的w就用哪个j的x。
代码实现
- x:1个样本,输入3个维度
- w:3维的Vector变成1维
- b:bias
- y:输出,P(y is 1|x)
图中logits的名字应该为Prob。
在这里y不需要one-hot,因为只有1个维度。
多输出感知机及其梯度
Perception
回顾单输出。
Multi-output Perception(多输出感知)
输出节点变多;所有的输出和所有的label作比较。
x的第0层一共有N个节点,x的第1层一共有M个节点。
W j k 1 W_{jk}^1 Wjk1,表示从j到k的连接,j属于0~N,k属于0~M。
一共有N*M个连接(偏微分)。
接下来对偏导通式 E W j k \frac{E}{W_{jk}} WjkE进行运算。
Derivative(梯度推导)
1/2还是另加的。
偏导后只剩下 O k − t k O_k - t_k Ok−tk,是因为只有 O k O_k Ok(里面包含 w j k 1 w_{jk}^1 wjk1,关键在于k,k决定了w和O是否有关系)和 w j k w_{jk} wjk有关系,求导后其他都消失了。
类似的, x k 1 = ∑ j w j k x j 0 x_k^1 = \sum_j w_{jk}x_j^0 xk1=∑jwjkxj0,因此 δ x k 1 δ w j k = x j 0 \frac{\delta x_k^1}{\delta w_{jk}} = x_j^0 δwjkδxk1=xj0。
Multi-output Perception
多输出感知机的偏导只和 连线的x和O有关系。
代码实现
- x:2个样本,每个样本是4维的Vector
- w:4维降到3维
- y:label是0.1.2的一种,这里2个样本的label是2和0
x@w+b
表示是全连接层,经过softmax,axis=1的含义:因为得到的输出是[b,3],3的维度表示概率,在axis=1的维度转变成概率并且概率之和为1。
y做one-hot,比如2变成001,随后和输出值做loss,一共2个样本,reduce_mean
获得2个样本的平均值。
链式法则
它把最后一层的误差,一层一层地输出到中间层的权值上去,从而得到中间层的梯度信息,通过梯度信息更新权值,达到优化效果。
Derivative Rules
常用公式:
链式法则的一种表达形式: d y d x = d y d u d u d x \frac{dy}{dx} = \frac{dy}{du} \frac{du}{dx} dxdy=dudydxdu。
Basic Rule
导数的基础知识:
Product rule
导数的基础知识:
Quotient Rule
导数的基础知识:
Chain rule
链式法则,x是输入,u是hidden layer,y是输出
绿色的是 σ \sigma σ。
δ E δ W 2 \frac{\delta E}{\delta W^2} δW2δE用来更新 W 2 W^2 W2的, δ E δ W 1 \frac{\delta E}{\delta W^1} δW1δE用来更新 W 1 W^1 W1的。W2好求,现在用链式法则求W1。
三个部分都好求解。