梯度下降算法与人工神经网络深入解析
1. 梯度下降算法深入探究
首先回顾线性回归(LR)数据模型,其广义方程为 (y = m * x + b),其中 (m) 是直线斜率,(b) 是 (y) 轴截距。这里对第 2 章的方程稍作修改,去掉了误差估计项,并将斜率常数改为 (m),截距常数改为 (b),以契合本次讨论的图示。
从一个带有水平直线 LR 方程的 (x - y) 散点图开始,最优的 LR 预测线会穿过数据点,使仅用该预测线计算任意给定 (x_i) 数据点的 (y_i) 时产生的总误差最小。确定最优 (m) 和 (b) 值的通用方法是遍历数据集的所有值,找出使用所有 (x_i) 值时产生的最小误差。以下是实现该通用方法的 Python 代码:
# Use y = mx + b equation
# m is slope, b is y-intercept
def computeErrorForLineGivenPoints(b, m, points):
totalError = 0
for i in range(0, len(points)):
totalError += (points[i].y - (m * points[i].x + b)) ** 2
return totalError / float(len(points))
在调用此脚本之前,需要设置一个名为 points 的数据数组,包含所有原始的 (x - y) 点。此外,主调用脚本必须设置要测试的 (m) 和 (b) 变量的范围。
超级会员免费看
订阅专栏 解锁全文
822

被折叠的 条评论
为什么被折叠?



