Layer Layer Normalization反向传播x的梯度计算,g和b都非常好计算
x的梯度计算的公式为
代码为,可以调用float[] bp = bpG( new float[]{
1,2,3,
}, new float[]{
1,1,2,
}, new float[]{
1,1,1
});
输出x的梯度为[[ 0.2041, -0.4082, 0.2041]]
private static float[] bpG(float[] x, float[] g, float[] delta)
{
int len = x.length;
float[] retValue = new float[len];
float u = 0.0f;
float s = 0.0f;
for (int i=0; i<len; i++)
{
u = u + x[i];
s = s + g[i]*delta[i];
}