梯度,是一个数学概念,自然有其严格的数学定义。简单说就是,梯度就是函数在该点处沿着该方向变化最快。因此,梯度是一个向量场。沿着正梯度就可以找到最大值,所谓的梯度上升。沿着负梯度就可以找到最小值,所谓的梯度下降。两者其本质都是一样的。
简单公式推导如下:
由此可以得到权值更新为(没有引入学习率):
程序具体实现过程:
原始数据为A=(M*N)阶矩阵
标签为B=(M*1)
初始权重为W=(N*1)
梯度h=sigmoid(A*W)
误差error=B-h
权重更新W=W+a*A'*error
具体实现代码 https://blog.csdn.net/pengjian444/article/details/71075544