1.简化的成本函数和梯度下降
这篇我们将会找出一种稍微简单一点的方法来写代价函数,来替换我们现在用的方法。同时我们还要弄清楚如何运用梯度下降法,来拟合出逻辑回归的参数。
这就是逻辑回归的代价函数:

这个式子可以合并成:Cost(hθ(x),y)=−y×log(hθ(x))−(1−y)×log(1−hθ(x)) Cost(h_{\theta}(x), y) = - y \times \log(h_{\theta}(x)) - (1 - y) \times \log(1 - h_{\theta}(x)) Cost(hθ(x),y)=−y×log(hθ(x))−(1−y)×log(1−hθ(x))
即:
Cost(hθ(x),y)=−y×log(hθ(x))−(1−y)×log(1−hθ(x)) =−1m∑i=1m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
\text{Cost}(h_{\theta}(x), y) =
-y \times \log(h_{\theta}(x)) - (1-y) \times \log(1-h_{\theta}(x)) \
= - \frac{1}{m} \sum_{i=1}^{m} \Big[ y^{(i)} \log\Big(h_{\theta}(x^{(i)})\Big) + (1-y^{(i)}) \log\Big(1-h_{\theta}(x^{(i)})\Big) \Big]Cost(hθ(x),y)=−y×log(hθ(x))−(1−y)×log(1−hθ(x)) =−m1i=1∑m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
根据这个代价函数,为了拟合出参数,该怎么做呢?我们要试图找尽量让J(θ\thetaθ)取得最小值的参数θ\thetaθ。
如果我们给出一个新的样本,假如某个特征xxx,我们可以用拟合训练样本的参数θ\thetaθ,来输出对假设的预测。
最小化代价函数的方法,是使用梯度下降法(gradient descent)。
我们的代价函数:
J(θ)=−1m∑i=1m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]J(\theta)= - \frac{1}{m} \sum_{i=1}^{m} \Big[ y^{(i)} \log\Big(h_{\theta}(x^{(i)})\Big) + (1-y^{(i)}) \log\Big(1-h_{\theta}(x^{(i)})\Big) \Big]J(θ)=−m1i=1∑m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
如果我们要最小化这个关于θ\thetaθ的函数值,这就是我们通常用的梯度下降法的模板:

我们要反复更新每个参数,用这个式子来更新,就是用它自己减去学习率α\alphaα乘以后面的微分项。
如果你有 𝑛 个特征,也就是说:

参数向量θ\thetaθ包括θ0\theta_0θ0 ,θ1\theta_1θ1, θ1\theta_1θ1 一直到θn\theta_nθn,那么你就需要用这个式子,把每个θ\thetaθ都更新一下。如果你把这个更新规则和我们之前用在线性回归上的进行比较的话,你会惊讶地发现,这个式子正是我们用来做线性回归梯度下降的。
那么,线性回归和逻辑回归是同一个算法吗?实际上,假设的定义发生了变化。
对于线性回归假设函数:
hθ(x)=θTX=θ0x0+θ1x1+θ2x2+…+θnxn
h_{\theta}(x) = \theta^{T} X = \theta_{0} x_{0} + \theta_{1} x_{1} + \theta_{2} x_{2} + \ldots + \theta_{n} x_{n}
hθ(x)=θTX=θ0x0+θ1x1+θ2x2+…+θnxn
而现在逻辑函数假设函数:
hθ(x)=11+e−θTx
h_{\theta}(x) = \frac{1}{1 + e^{-\theta^T x}}
hθ(x)=1+e−θTx1
因此,即使更新参数的规则看起来基本相同,但由于假设的定义发生了变化,所以逻辑函数的梯度下降,跟线性回归的梯度下降实际上是两个完全不同的东西
1002

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



