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