共计 1651 个字符,预计需要花费 5 分钟才能阅读完成。
文章转自【机器学习炼丹术】
线性回归解决的是回归问题,逻辑回归相当于是线性回归的根底上,来解决分类问题。
1 公式
线性回归 (Linear Regression) 是什么相比不必多说了。格局是这个样子的:
$f_{w,b}(x)=\sum_i{w_ix_i}+b$
而逻辑回归(Logistic Regression)的样子呢?
$f_{w,b}(x)=\sigma(\sum_i{w_ix_i}+b)$
要记住的第一句话:逻辑回归能够了解为在线性回归后加了一个 sigmoid 函数。将线性回归变成一个 0~1 输入的分类问题。
2 sigmoid
sigmoid 函数就是:
$\sigma(z)=\frac{1}{1+e^{-z}}$
函数图像是:
线性回归失去大于 0 的输入,逻辑回归就会失去 0.5~1 的输入;
线性回归失去小于 0 的输入,逻辑回归就会失去 0~0.5 的输入;
这篇文章的重点,在于 线性回归的参数估计应用的最小二乘法 ,而 而逻辑回归应用的是似然预计的办法。(当然,两者都能够应用梯度降落的办法)。
3 似然预计逻辑回归参数
举个例子,当初咱们有了一个训练数据集,是一个二分类问题:
下面的 $x^1$ 是样本,上面的 $C_1$ 是类别,总共有两个类别。
当初假如咱们有一个逻辑回归的模型:
$f_{w,b}(x)=\sigma(\sum_i{w_ix_i}+b)$
那么 $f_{w,b}(x^1)$ 的后果,就是一个 0~1 的数,咱们能够设定好,假如这个数字就是是类别 $C_1$ 的概率,反之,1 减去这个数字,就是类别 $C_2$ 的概率。
似然简略的了解,就是让咱们下面的数据集呈现的概率最大
咱们来了解一下:
- $x_1$ 是 $C_1$ 的概率是 $f_{w,b}(x^1)$;
- $x_2$ 是 $C_1$ 的概率是 $f_{w,b}(x^2)$;
- $x_3$ 是 $C_2$ 的概率是 $1-f_{w,b}(x^3)$;
- ……
- $x_N$ 是 $C_1$ 的概率是 $f_{w,b}(x^N)$;
样本之间彼此独立,那么下面那个数据集的概率是什么?是每一个样本的乘积,这个就是似然 Likelihood:
咱们心愿这个 w,b 的参数估计值,就是能取得最大化似然的那个参数。也就是:
加上负号之后,就能够变成最小化的问题。当然,加上一个 log 并不会影响整个的 w,b 的估计值。因为 $L(w,b)$ 最大的时候,$log(L(w,b))$ 也是最大的,log 是个枯燥递增的函数。所以能够失去上面的:
【留神:所有的 log 其实是以 e 为底数的自然对数】
log 又能够把之前的乘积和,转换成加法。
$log(L(w,b))=log(f(x^1))+log(f(x^2))+log(1-f(x^3))…$
而后,为了更加简化这个算是,咱们将 $C_1, C_2$ 数值化,变成 1 和 0,而后每一个样本的实在标签用 $y$ 来示意,所以就能够失去:
$log(L(w,b))=\sum_i^N{ylog(f(x^i))+(1-y)log(1-f(x^i))}$
【有点像是二值穿插熵,然而其实就是二值穿插熵。。】
- 当 y =1,也就是类别是 $C_1$ 的时候,这个是 $log(f(x^i))$
- 当 y =0,也就是类别是 $C_2$ 的时候,这个是 $1-log(f(x^i))$
所以其实咱们失去的损失函数是:
$loss=-log(L(w,b))=-\sum_i^N{ylog(f(x^i))+(1-y)log(1-f(x^i))}$
之前说了,要找到让这个 loss 最小的时候的 w 和 b,那怎么找?
【有情万能的梯度降落】
所以计算 $\frac{\partial loss}{\partial w}$,而后乘上学习率就好了。这里就不持续推导了,有急躁的能够缓缓推导,反正必定能推出来的。
这里放个后果把:
$\frac{-\partial lnL(w,b)}{\partial w_i}=\sum_n^N{-(y^n-f_{w,b}(x^n))x_i^n}$
- 其中 $w_i$ 为第 i 个要预计的参数,第 i 个特色;
- $x^n_i$ 是第 n 个样本的第 i 个特色的值;
- $y^n$ 是第 n 个样本的实在类别,0 或者 1。