我已经通过一些在线资源自学了机器学习,但我有一个关于梯度下降的问题,我无法弄清楚。
梯度下降的公式由以下逻辑回归给出:
Repeat {
θj = θj−α/m∑(hθ(x)−y)xj
}
其中θj
是变量 j 的系数;α
是学习率;hθ(x)
是假设;y
是实际值,xj
是变量 j 的值。m
是训练集的数量。hθ(x)
,y
是针对每个训练集的(即,这就是求和符号的用途)。
这就是我感到困惑的地方。
我不清楚求和是否代表我的整个训练集或到目前为止我已经完成了多少次迭代。
例如,假设我有 10 个训练示例。如果我在每个训练示例之后执行梯度下降,那么我的系数将非常不同,如果我在所有 10 个训练示例之后执行梯度下降。
请参阅下面的第一种方式与第二种方式有何不同:
第一种方式
- 第 1 步:由于系数初始化为 0,因此 hθ(x)=0
- 步骤 2:对第一个训练示例执行梯度下降。 求和项仅包含 1 个训练示例
- 第 3 步:现在为训练示例 1 和 2 使用新系数... 求和项包括前 2 个训练示例
- 第 4 步:再次执行梯度下降。
- 第 5 步:现在使用新系数训练示例 1,2 和 3...求和项包括前 3 个训练示例
- 继续直到收敛或使用所有训练示例。
第二种方式
- 第 1 步:由于系数初始化为 0,因此所有 10 个训练示例的 hθ(x)=0
- 第 2 步:使用所有 10 个训练示例执行 1 步梯度下降。系数将不同于第一种方式,因为求和项包括所有 10 个训练示例
- 第 3 步:再次对所有 10 个训练示例使用新系数。总和项包括所有 10 个训练示例
- 第 4 步:执行梯度下降并继续对所有示例使用系数,直到收敛
我希望这能解释我的困惑。有谁知道哪种方式是正确的?
编辑:添加成本函数和假设函数
cost function = −1/m∑[ylog(hθ(x))+(1−y)log(1−hθ(x))]
hθ(x) = 1/(1+ e^-z)
and z= θo + θ1X1+θ2X2 +θ3X3...θnXn