逻辑回归那些事—使用牛顿法解决实际问题

  • 时间:
  • 浏览:0

$$ x_{n+1}=x_{n}-\frac{\triangledown \ell(\theta)}{?} $$

在亲们的案例中,亲们非要有有三个小参数\(theta_{1},theta_{2}\),亲们的Hessian矩阵某些某些原来:

$$ h(x)=1/(1+e^{-z}), $$

亲们用梯度来替换$f(x_{n})$,$\triangledown \l(\theta)$,原来亲们的公式就会变成

任何高中学习过微积分的人都能理解中间的内容。某些亲们如保推广到多元的,也某些某些“n维”的情形呢?

$$ \begin{bmatrix} \sum_{i=1}^{n}(y_{i} - h_{\theta}(x_{i}))x_{i} \\ \sum_{i=1}^{n}(y_{i} - h_{\theta}(x_{i})) \end{bmatrix} $$

本文由用户为人及学习及研究之目的自行翻译发表,如发现侵犯原作者的版权,请与社区联系防止yqgroup@service.aliyun.com

某些听起来是都在非常的熟悉,接下来,亲们就要求让偏导数为0的\(theta_{1},theta_{2}\)有有三个小参数的值了,这正是牛顿法防止的问题,让亲们同时再来回顾下:

让亲们用可视化的辦法 看一看,对数似然函数的下皮 上绘制牛顿法的每一次迭代会地处那些:

牛顿法使用迭代的思想,它是求多项式函数根的一种生活算法。在简单的单变量情形下,牛顿法的实现步骤如下:

sigmoid_function

下面亲们使用维基百科上的gif图来更直观的理解某些过程:

在多维的情形下,亲们使用偏导数的向量,也某些某些梯度来代替一维情形下的导数。

$$ \ell (\theta)=log(L(\theta)) $$

亲们在这有有三个小函数中实现了所有的数学公式,亲们创建了有有三个小While循环,并使用牛顿的辦法 迭代,直到收敛到最大值为止。

更通用的,还要用以下的公式表示:

NewtonIteration_Ani

$$ P(y=1|x;\theta)=h_{\theta}(x) $$

$$ -f(x_{n})={f}'(x_{n})(x-x_{n}) $$

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《Solving Logistic Regression with Newton's Method》,作者:Sean Harrington,译者:爱小乖,审校:6816816151。

$$ x_{n+1}=x_{n}-\frac{f(n)}{\triangledown {f}'(n)} $$

某些图形还要很直观的就看亲们的“紫色”点是最大值的点,这某些某些明,亲们辦法 将会收敛了!

当事人主页:http://thelaziestprogrammer.com/author/sharrington/

(直到\(x_{n}-x_{n+1}approx 0\))

Note从一维推广到n维,我我着实某些某些将导数再加了梯度,也某些某些将\({f}'(n)$变成triangledown {f}'(n)\)

显然,亲们将n个概率相乘了,而相乘的结果必然是地处[0,1]区间的。n表示样本的个数,某些某些最终的概率将会是个\(10^{-n}\)数量级的有有三个小概率。这我着实 某些某些有有三个小糟糕的消息,将会计算的过程中将会会损失精度,某些将会用python来计算语句,亲们最终就看的结果很有将会被四舍五入成为0。

south_boston_bedroom_logreg_raw

某些函数被称为亲们假设函数的对数似然函数,将会对数函数具有单调性,某些不影响亲们下面的计算。

$$ 0={f}'(x_{n})(x-x_{n})+f(x_{n}) $$

本篇将会中有 了某些新的主题,比如Hessian矩阵、对数似然函数、Sigmoid函数。结合那些辦法 ,亲们将会不不能不能实现牛顿的辦法 来防止logistic回归。

$$ x_{n+1}=x_{n}-\frac{f(n)}{{f}'(n)} $$

很明显,亲们还要最大化等式的右边,某些亲们还要引申出似然函数的概念。

以我的理解,似然函数某些某些表示给定特征向量\(widehat{x}\)能正确预测出y的将会性。当然,从统计的角度讲,似然和概率是不一样的,这里给出了完正的解释。

$$ \widehat{y} = MoreThan2Bathrooms = <1,0,0,...1>^{T} $$

Note:亲们增加了\(theta_{2}\)参数来增加模型的灵活度,尽管亲们的数据非要一维,但在这里亲们使用了有有三个小二维模型。

亲们拥有的数据集我我着实是有有三个小一维数据集,通常来说,一维数据的可视化是将那些点放置在线上,某些在线上做某些划分的边界。可问题是亲们数据集里的点不要 ,将会画在第二根线上,数据点会串在同时。

log_likelihood_normalized

$$ \theta_{n+1}=\theta_{n}+H_{\ell(\theta)}^{-1}\bigtriangledown \ell(\theta) $$

更多角度文章,请关注云计算频道:https://yq.aliyun.com/cloud

为了简洁起见,这篇文章省去了梯度和Hessian矩阵的数学推导。将会你想了解下面推导的资源还要在:

首先亲们要定义有有三个小概率质量函数:

根据之前 学的多元微积分的知识,亲们应该知道,为了找到函数的二阶偏导数,亲们取每一阶偏导数的偏导数。将会亲们有n个参数,某些亲们就会得到n×n阶导数。某些,Hessian矩阵是n*n阶偏导数的平方矩阵。

最后,亲们实现了对数似然函数的梯度和Hessian矩阵。

在本篇博客中,亲们要介绍的是牛顿法的原理,某些将之应用到实际的逻辑回归问题中。逻辑回归的主要知识点包括伯努利分布的对数似然和用来平滑的sigmoid函数。

$$ y_{n+1}=f(x_{n+1}) $$

首先,亲们还要掌握基本的线性回归模型。当亲们给出房屋的价格的之前 ,该模型还要用二元分类器的辦法 为亲们判断该房屋不是有有有三个小以上的浴室。

Note:这里给出对数函数的基本运算法则

亲们的防止辦法 是对似然函数求对数,原来一来,连乘的形式就变成了连加,公式如下:

$$ P(y=0|x;\theta)=1-h_{\theta}(x) $$

接下来亲们就还要Hessian矩阵

尽管亲们的辦法 非常的具体,某些还要担心的是亲们的牛顿法都在发散的将会,当然,某些超出了本文的讨论范围,将会感兴趣,还要查阅某些相关的资料。

$$ \widehat{x} =HomeValue = <55000.00,500000.00,...57500.00>^{T} $$

\(ell(theta)\)的Hessian矩阵是

newtons_method_max

south_boston_bedroom_logreg

将会你理解了以上的步骤,亲们还要把某些过程归纳为:

和之前 的博客一样,亲们这篇也将从牛顿法的整体概述、数学推导以及编程实现几只方面展开。最终将理论和实践的结合,灵活运用牛顿法防止逻辑回归问题。

亲们还要介绍Hession,这是有有三个小二阶偏导的方阵。就看了本片博客,您就知道如保使用Hession结合梯度来实现牛顿法。

接下来亲们还要防止的是特征和权重的线性组合问题。亲们还要将某些线性组合封放进有有三个小函数中,而某些函数还只是平滑的,且值域是[0,1]。

$$ L(\theta) = \prod_{n}^{i=1}p(y_{i}|x_{i};\theta) $$

某些某些,让我将那些点沿着y轴给拉了出来,并用不同的颜色表示不同的类别。另外,我还在图中做了三条辅助线来按百分比划分那些点。

还记得亲们之前 提到的,亲们的目的是最大化对数似然函数,也某些某些最大化\(ell(theta)\)函数,将会log函数是单调上涨的,某些,只是保证对数似然函数是最大的,非要 亲们假设的函数\(H_{theta}(x)\)也就达到了最大值。

$$ H_{\ell(\theta)}=\begin{bmatrix} \sum_{i=1}^{n}h_{\theta}(x_{i})(1-h_{\theta}(x_{i}))\theta_{1}\theta_{1} & \sum_{i=1}^{n}h_{\theta}(x_{i})(1-h_{\theta}(x_{i}))\theta_{1} \ \sum_{i=1}^{n}h_{\theta}(x_{i})(1-h_{\theta}(x_{i}))\theta_{1} & \sum_{i=1}^{n}h_{\theta}(x_{i})(1-h_{\theta}(x_{i}) \end{bmatrix}\quad $$

其中\(h_{theta}(x) = frac{1}{1 + e^{-z}} z = theta_{1}x + theta_{2}\)

文章为简译,更为完正的内容,请查看原文。

$$ \ell (\theta)=\sum_{i=1}^{n}y_{i}log(h_{\theta}(x_{i}))+(1-y_{i})log(1-h_{\theta}) $$

作者介绍: Sean Harrington 全栈工程师、数据科学家,熟悉Python, Javascript, C, C++, Bash等语言

newtons_method_ll

$$ log(x)^{n}=nlog(x) $$

相应的,亲们的更新规则也地处了改变,具体的公式如下所示:

$$ log(xy)=log(x)+log(y) $$

亲们首先定义亲们的假设函数为Sigmoid函数。

Note:中间的第有有三个小公式的等式左边读作“在已知参数\(theta\)和特征向量x的条件下,y=1的概率”,亲们使用右边的假设函数来计算某些概率。

$$ z=\theta_{1} x+ \theta_{2} $$

现在亲们还要完正的谈一谈似然函数的事情啦!在某些项目中,亲们应用在训练集中的似然函数很简单,亲们将每一种生活情形的将会性乘起来,原来就得到了亲们模型正确预测的主次似然,公式如下。

$$ L(\theta) = h_{\theta}(x_{i})^{y_{i}}(1-h_{\theta}(x_{i}))^{1-y_{i}} $$

?表示那些?直觉不知道们,亲们还要取梯度向量的导数,就像亲们之前 取f(x)的导数一样。

在线性回归中,亲们还要定义有有三个小平方和的目标函数,逻辑回归也是它例如于。亲们用亲们的假设函数h(x)来生成似然函数,最终使用似然函数来求得至少的权重。以下是具体的数学推导。

Note:第一次迭代亲们用红色来标识,第二次迭代亲们用橘黄色来标识...最后一次迭代的颜色是紫色

$$ P(y|x;\theta)=h_{\theta}(x)^{y}(1-h_{\theta}(x)^{1-y} $$

按照惯例,亲们选者满足以上要求的Logistic函数,它的公式如下所示:

$$ H_{\ell(\theta)}=\begin{bmatrix} \frac{\partial^{2} \ell }{\partial {\theta_{1}}^{2}}& \frac{\partial^{2} \ell }{\partial \theta_{1}\partial \theta_{2}} \\ \frac{\partial^{2} \ell }{\partial \theta_{2}\partial \theta_{1}} & \frac{\partial^{2} \ell }{\partial {\theta_{2}}^{2}} \end{bmatrix}\quad $$

将会你对梯度的概念有问题,非要 请看这篇帖子复习一下。

$$ x_{n+1}=x_{n}-\frac{f(n)}{{f}'(n)} $$

某些亲们定义\(ell(theta)\),也某些某些亲们的对数似然函数

记住,当数据非常小的之前 ,亲们之前 假设的函数会变得非常不精确(将会数值太小,连乘运算之前 误差很大),而对数似然就显现出良好的精度,对数似然的图如下所示,而接下来亲们要做的某些某些最大化对数似然函数。

$$ x_{n+1}=x_{n}-\frac{f(n)}{\triangledown {f}'(n)} $$

通常,求最大值的辦法 是对函数求偏导数,并让其等于0,求解\(theta_{1}和theta_{2}\)来算出极值,极值也某些某些亲们要找的最大值了。

Note:亲们的log函数是递增的,某些亲们非要有有三个小极值点,而本辦法 某些某些求某些极值点的唯一辦法 。

在亲们求对数似然函数的最大值之前 ,亲们先来介绍一下牛顿法

下表显示了亲们假设函数的输出与预测概率的关系。

以上为译文

这有有三个小公式也还要合并成有有三个小:

Note在这里亲们取Hessian矩阵的逆,而都在取它的倒数,将会它是有有三个小矩阵。

在亲们的通过将Hessian矩阵替换进牛顿法的更新步骤,非要 亲们的公式就变成:

亲们的本次实验采用的数据集是南波士顿的房产数据集。数据集中的每一行中有 了一座房屋的价值,某些用有有三个小布尔类型的数值表示不是有超过有有三个小的浴室。