深度学习深度学习-推荐系统-CV-NLP程序员

逻辑回归(上)

2019-11-23  本文已影响0人  zidea
MachineLearninginMarketing

逻辑回归

使用线性回归来解决分类问题,也是我个人碰到的第一个难懂的模型。之前我们一直注重代码实现而总是忽略其背后的原理和算法。机器学习不同与写 web 和服务,这些可能更注重实现,了解业务和计算机原理。而机器学习更注重的是其背后算法,只有了解其背后原理我们在能够设计出合理模型来解决问题。随后通过调整参数来调试我们模型来解决问题。

逻辑回归的重要性

逻辑回归是深度学习的基础,通常来说深度学习对于我们来说是一个黑盒模型,有时候并不能完全了解其。我们知道在神经元就是将线性变换转换为非线性变换。其实这些知识点我们都可以在逻辑回归中找到。逻辑回归的本质就是将线性回归通过非线性函数。

二项逻辑回归

概率和odds的定义

概率

概率是事件发生次数/总次数,这个很好理解。
p = \frac{事件(正例样本)发生次数}{总次数} p \in [0,1]

odds

\frac{正例样本数量}{负例样本数量} odds \in [0,\infty)

伯努利分布

简单地回顾一下伯努利分布,X 是伯努利分布中的随机变量,X 取值为\{ 0,1 \},那么我看一看概率情况
\begin{aligned} P(X=1) = p \\ P(X=0) = 1 - p \end{aligned}
伯努利公式也可以写出p^k(1-p)^{(1-k)}
odds = \frac{p}{1-p} odds \in [0,+\infty)

sigmoid 函数及特性

对于\frac{p}{1 - p} 取 log 那么就得到 \log \frac{p}{1 - p} 函数输出就从0 到 1 就变为到 [-\infty,+\infty] 现在可以用\log \frac{p}{1-p} 来等价于上面定义二元一次方程\theta_1 x_1 + \theta_2 x_2 + b

\begin{aligned} \log \frac{p}{1 - p} = z \\ \theta_1 x_1 + \theta_2 x_2 + b = z \\ e^z = \frac{p}{1-p} \\ (1-p) e^z = p \\ e^z = p + p e^z \\ e^z = p + p e^z \\ p = \frac{e^z}{1+e^z} \\ p = \frac{1}{\frac{1}{e^z}+1} \\ p = \frac{1}{e^{-z}+1} \end{aligned}

上面经过一系列的推导就得到了这个p = \frac{1}{e^{-z}+1} 大家熟悉的 sigmoid 方程。也就是将一个实数空间的解映射成概率,类似于神经元激活函数。
我们都知道正是最大似然估计推动机器学习的发展,那么今天我们来看一看最大似然估计是如何在逻辑回归中发挥其作用的。
我们其实总是能够得到样本数据,样本数据的属性通常会服从正太分布,\mu,\sigma 均值和方差决定数据形态,那么如果我们知道类别的概率分布也就是\mu,\sigma,再得到新的样本点,就可以根据概率分布来判断他是某一个类别的概率是多少从而判断他是什么类别。

最大似然估计就是找到符合样本数据概率分布的\mu,\sigma 然后我们根据这些来进行推断。

似然函数

\begin{aligned} L(\theta|x) = P(Y| X;\theta) \\ = \prod_i^m P(y_i|x_i;\theta) \\ = \prod_i^m h_{\theta} (x_i)^{y_i}(1 - h_{\theta}(x_i))^{(1-y_i)} \end{aligned}

其中 i 为每一个数据样本,共有 m 个数据样本,最大似然估计的目的就是让上面式子的输出尽量可能大;对上面式子取 log 是为了方便计算,因为取log可以把乘积运算转换为加法,而且不影响优化目标。
L(\theta|x) = P(Y| X;\theta) = \sum_{i=1}^m y_i \log(h_{\theta}(x_i)) + (1-y_i) \log(1-h_{\theta}(x_i))
对于似然函数我们是让越大越好,不过我们计算损失函数希望计算损失函数时候希望是一个求最小值的问题,加一个负号就变成求最小问题。然后求导数就可以找到这函数的最最小值
J(\theta) = -\sum_i^m Y \log(\hat{Y}) - (1 - Y) \log (1 -\hat{Y})

上一篇 下一篇

猜你喜欢

热点阅读