使用梯度下降的逻辑回归

Logistic Regression using Gradient Descent

关于学生考试成绩的给定数据,我们的目标是预测学生是否会 通过或失败基于睡眠时间和学习时间。我们有两个特点(小时 睡觉,学习时间)和两个 类:通过 (1) 和失败 (0)。

Studied Slept Passed
4.85    9.63  1
8.62    3.23  0
5.43    8.23  1
9.21    6.34  0

谁能解释一下如何计算成本的前两次迭代?

假设您的一次训练迭代接受数据集中的一个样本。由于您使用的是逻辑回归,因此您的初始预测将是

p = sigmoid(x1*w1 + x2*w2 + b)

其中 x1x2 是研究和睡眠的输入值。 w1w2 是模型的权重,b 是偏置向量。这将 return 一个介于 0 和 1 之间的值。

另请注意,我已将左侧的值命名为 p,因为这是模型的预测值。

本次迭代的 cost,如果您使用的是二元交叉熵,则为:

−(y*log(p) + (1−y)*log(1−p))

其中 y 是输入样本的真实值。如果我们在您的训练数据中取第一个输入样本,则真实值为 1.

因此,您的成本J是:

J = -(1*log(p) + (1-1)*log(1-p))
  = -log(p)

因为我们现在知道 cost 的值,它是模型参数的函数,我们可以使用链式法则找到参数的梯度关于 cost(或错误)。

然后您将使用以下等式更新模型的参数:

wn = wn - alpha * dJ/dwn
b  = b  - alpha * dJ/db

其中 n = 1, 2alpha 是模型的学习率。

对于下一次迭代,您只需对数据集中的另一个样本执行相同的过程。