首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Logistic回归中的MLE &梯度下降

Logistic回归中的MLE &梯度下降
EN

Data Science用户
提问于 2022-01-09 22:18:14
回答 2查看 779关注 0票数 1

在Logistic回归中,利用MLE建立数学函数来估计模型参数,采用梯度下降等优化技术求解该函数。

有人能提供一个用例子解释这个过程的资源吗?

EN

回答 2

Data Science用户

发布于 2022-01-10 03:28:52

简单地说,最大似然估计用于寻找给定目标值y和x的参数,最大似然估计发现参数最大化了y给定x的概率,证明了MLE估计问题可以通过在二进制分类条件下求出最小交叉熵的参数来解决。

梯度下降是一种优化算法,get帮助您迭代更新参数以找到参数,这给出了y的最高概率。

有关更多详细信息:https://www.google.com/amp/s/glassboxmedicine.com/2019/12/07/connections-log-likelihood-cross-entropy-kl-divergence-logistic-regression-and-neural-networks/amp/

票数 0
EN

Data Science用户

发布于 2022-01-10 13:02:46

最大似然

最大似然估计涉及定义一个似然函数,用于计算观测数据样本的条件概率,给定概率分布和分布参数。这种方法可用于搜索可能的分布和参数的空间。

logistic模型使用σ函数(用σ表示)来估计给定样本y属于1类、给定输入X和权重W的概率。

\begin{align} \ P(y=1 \mid x) = \sigma(W^TX) \end{align}

对于给定的n,我们激活函数的乙状结肠是:

\begin{align} \large y_n = \sigma(a_n) = \frac{1}{1+e^{-a_n}} \end{align}

我们的模型预测的准确性可以通过目标函数L来获取,而我们正试图最大限度地利用该函数。

\begin{align} \large L = \displaystyle\prod_{n=1}^N y_n^{t_n}(1-y_n)^{1-t_n} \end{align}

若取上述函数的对数,则可得到最大对数似然函数,其形式可使偏导数的计算更容易。具体来说,取对数并使其最大化是可以接受的,因为对数似然是单调增加的,因此它将得到与我们的目标函数相同的答案。

\begin{align} \ L = \displaystyle \sum_{n=1}^N t_nlogy_n+(1-t_n)log(1-y_n) \end{align}

在我们的示例中,我们将通过将目标函数转换为负对数似然函数,将目标函数(我们将尽量最大化)转换为成本函数(我们正在尝试最小化):

\begin{align} \ J = -\displaystyle \sum_{n=1}^N t_nlogy_n+(1-t_n)log(1-y_n) \end{align}

梯度下降

梯度下降是一种求可微函数最小值的迭代优化算法。在此过程中,我们尝试不同的值并更新它们以达到最优值,从而使输出最小化。

一旦我们有了一个目标函数,我们通常可以取其对参数(权值)的导数,将其设为零,然后对参数进行求解,得到理想的解。然而,在logistic回归的情况下(以及许多其他的复杂系统或其他非线性系统),这种分析方法不起作用。相反,我们采用一种名为梯度下降的方法,通过计算目标函数的斜率,随机初始化并逐步更新我们的权重。在应用成本函数时,我们希望继续更新权重,直到梯度的斜率尽可能接近于零为止。我们可以从数学上证明这一点:

\begin{align} \ w:=w+\triangle w \end{align}

如果右侧的第二个术语被定义为学习率乘以成本函数相对于权重(即我们的梯度)的导数:

\begin{align} \ \triangle w = \eta\triangle J(w) \end{align}

因此,我们想取成本函数对权重的导数,它使用链规则给我们:

\begin{align} \frac{J}{\partial w_i} = \displaystyle \sum_{n=1}^N \frac{\partial J}{\partial y_n}\frac{\partial y_n}{\partial a_n}\frac{\partial a_n}{\partial w_i} \end{align}

因此,我们正在寻找三种不同的衍生工具。让我们从求解关于y的成本函数的导数开始:

\begin{align} \frac{\partial J}{\partial y_n} = t_n \frac{1}{y_n} + (1-t_n) \frac{1}{1-y_n}(-1) = \frac{t_n}{y_n} - \frac{1-t_n}{1-y_n} \end{align}

接下来,让我们求出y关于我们的激活函数的导数:

\begin{align} \large y_n = \sigma(a_n) = \frac{1}{1+e^{-a_n}} \end{align}
\begin{align} \frac{\partial y_n}{\partial a_n} = \frac{-1}{(1+e^{-a_n})^2}(e^{-a_n})(-1) = \frac{e^{-a_n}}{(1+e^-a_n)^2} = \frac{1}{1+e^{-a_n}} \frac{e^{-a_n}}{1+e^{-a_n}} \end{align}
\begin{align} \frac{\partial y_n}{\partial a_n} = y_n(1-y_n) \end{align}

最后,我们求出了关于权值的激活函数的导数:

\begin{align} \ a_n = W^TX_n \end{align}
\begin{align} \ a_n = w_0x_{n0} + w_1x_{n1} + w_2x_{n2} + \cdots + w_Nx_{NN} \end{align}
\begin{align} \frac{\partial a_n}{\partial w_i} = x_{ni} \end{align}

现在,我们可以把这一切简单地放在一起。

\begin{align} \frac{\partial J}{\partial w_i} = - \displaystyle\sum_{n=1}^N\frac{t_n}{y_n}y_n(1-y_n)x_{ni}-\frac{1-t_n}{1-y_n}y_n(1-y_n)x_{ni} \end{align}
\begin{align} = - \displaystyle\sum_{n=1}^Nt_n(1-y_n)x_{ni}-(1-t_n)y_nx_{ni} \end{align}
\begin{align} = - \displaystyle\sum_{n=1}^N[t_n-t_ny_n-y_n+t_ny_n]x_{ni} \end{align}
\begin{align} \frac{\partial J}{\partial w_i} = \displaystyle\sum_{n=1}^N(y_n-t_n)x_{ni} = \frac{\partial J}{\partial w} = \displaystyle\sum_{n=1}^{N}(y_n-t_n)x_n \end{align}

应用两个向量之间的点积是和和指标的原理,可以消除上述求和。这就是:

\begin{align} \ a^Tb = \displaystyle\sum_{n=1}^Na_nb_n \end{align}

因此,关于w的梯度是:

\begin{align} \frac{\partial J}{\partial w} = X^T(Y-T) \end{align}

如果你问自己方程(w0)的偏置项在哪里,我们用同样的方法计算,除非x变成1。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/106888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档