编程基于python,完整代码托管在我的Github PY131/Practice-of-Machine-Learning,欢迎访问。
基础知识参考“周志华《机器学习》第五章-神经网络”
1. BP算法分析
如下图所示BP网络:
对样本 a = (x_k,y_k),其输出为 ^y_k,即是:
由此得出在样本 a 上的均方误差:
我们的目标是是所有样本得出的均方误差最小化,为此我们要找到最优的参数(即上图中的连接权(w, v)及对应阈值(θ, γ))。考虑梯度下降法。比如对于 w = w+Δw,梯度下降法调整式为:
式中,η 是学习率,他控制着算法迭代步长,直接关系着算法的收敛速度甚至收敛性。
对于图示BP网络,梯度项有:
其中: