• 3 逻辑回归


    逻辑回归


    逻辑回归是用来解决分类问题的

    分类问题

    二分类 就是将两类物体分开

    image-20211018093642535

    多分类 每次只分类出一类物体,有n个物体,则需要做n-1次二分类

    image-20211018093651522

    sigmoid 函数

    选择sigmoid函数的原因

    线性回归的函数 ℎ = = ,范围是(−∞, +∞)。 而分类预测结果需要得到[0,1]的概率值。

    回归:输出的是连续数据,目的是找到最优的拟合。(例如:预测气温)
    分类:输出的是离散数据,目的是找到决策边界。(例如:预测硬币正反)

    我们其实想要的是一个单位阶跃函数,通过一个分类面来将样本分为两类。

    \[\epsilon(t)=\left\{ \begin{aligned} &0 \ & t<0 \\ &1 \ & t>0 \\ \end{aligned} \right. \]

    图像为

    jieyue

    由于单位阶跃函数不连续,我们希望找到一个平滑相似的函数来代替,我们选择使用sigmoid函数来代替

    image-20211018094659420

    这时,x为样本,g(x)就是样本被分类得到的值,这时候 0.5 就可以作为分类面,将所有样本很好地分开。

    同时sigmoid函数求导有很好的形式

    sigmoid求导

    \[\begin{aligned} g(z)=\frac{1}{1+e^{-z}} \\ g(z)'&=(\frac{1}{1+e^{-z}} )' \\ &=\frac{e^{-z}}{(1+e^{-z})^2} \\ &=\frac{1+e^{-z}-1}{(1+e^{-z})^2} \\ &=\frac{1}{(1+e^{-z})}(1-\frac{1}{(1+e^{-z})}) \\ &=g(z)(1-g(z)) \end {aligned} \]

    事件发生比Odds 到Logit

    事件的发生比odds:事件发生与事件不发生的概率之比为 1− , 称为事件的发生比(the odds of experiencing an event) 其中为随机事件发生的概率,的范围为[0,1]。

    \[Odds(A) 事件A的发生比 = \frac{事件A发生的概率}{事件A不发生的概率}= \frac{P(A)}{1-P(A)} \\ = \frac{\frac{Number \ of \ Event \ A}{Total \ Number \ of \ Events}}{\frac{Number \ of \ Other\ Event }{Total \ Number \ of \ Events}} =\frac{Number \ of \ Event \ A}{ Number \ of \ Other\ Events} \\ \]

    事件发生比Odds 与概率的关系

    事件发生比于概率的关系

    概率\(P\)​的变化范围是\([0,1]\)​,而Odds的变化范围是\([0, +\infty]\)

    P与Odds的图像

    反过来,我们有

    \[P(A=1)(事件A发生的概率) = \frac{事件A的发生比}{1+事件A的发生比} \\ 验证 : \\ \frac{Odds(A)}{1+Odds(A)} = \frac{\frac{P}{1-P}}{1+\frac{P}{1-P}}=\frac{\frac{P}{1-P}}{\frac{1-P+P}{1-P}} = P(A) \]

    Logit

    对Odds取对数就得到了 Logit

    \[logit = log (Odds)=log \frac{P}{1-P} \]

    Logit的一个很重要的特性就是没有上下限,或者说其变化范围是\([- \infty ,+\infty]\)

    image-20211109112520713

    反过来,我们有

    \[Odds(A) = e^{logit} = e^{log \frac{P}{1-p}} \]

    通过logit函数,我们就能将概率\(P\)\([0,1]\) 映射到\([- \infty ,+\infty]\)

    p与logit

    同样,反过来,我们也可以将\([- \infty ,+\infty]\)​映射到概率\(P[0,1]\)

    \[P(A=1)(事件A发生的概率) = \frac{事件A的发生比}{1+事件A的发生比} \\ =\frac{e^{logit}}{1+e^{logit}} \]

    在二分类问题中,我们认为\(P(y=1|x)\)​​为把样本\(x\)​​标记为正例的可能性,\(P(y=0|x)\)​​为把样本\(x\)​​​​标记为反例的可能性。我们用logit函数来预测结果,即\(z = logit()\)​​

    于是有

    \[P(y=1|x) =\frac{e^{z}}{1+e^{z}} = \frac{e^{wx+b}}{1+e^{wx+b}} \\ P(y=0|x) =\frac{1}{1+e^{z}} = \frac{1}{1+e^{wx+b}} \]

    \(z\)接近于正无穷,概率值接近于1;当\(z\)​接近于负无穷,概率值接近于0.

    代价函数(损失函数)的理解

    image-20211018094829762

    为了衡量算法在全部训练样本上的表现如何,我们需要定义一个算法的代价函 数,算法的代价函数是对个样本的损失函数求和然后除以:

    \[J(w)=\frac{1}{m} \sum_{i=1}^m L(\hat{y}^{(i)},y^{(i)}) \\=\frac{1}{m}[-\sum^m_iy^{(i)}logh_\theta(x^{(i)})-(1-y^{(i)})log(1-h_\theta(x^{(i)}))] \\ =-\frac{1}{m}[\sum^m_iy^{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(1-h_\theta(x^{(i)}))] \]

    这里的\(\theta\)\(w\)​是一个含义,都是表示机器学习需要学习的参数

    1 似然函数法理解

    为什么使用最大似然估计而不用最小二乘法

    https://www.zhihu.com/question/65350200

    损失函数是人为设计的。

    最小二乘非凸,最大似然凸。下面是图像

    \[E_{w,b} = \sum_{i=1}^m(y_i-\frac{1}{1+e^{-(w^Tx_i+b)}})^2 \]

    feitu

    上图是最小二乘,可以看到容易陷入局部最小值。

    \[L_{w,b}=\sum_{i=1}^m(-y_i(w^Tx_i+b)+ln(1+e^{w^Tx_i+_b})) \]

    是关于\((w,b)\)的高阶连续可导凸函数

    tu

    我们用逻辑回归来作为分类模型,将\(p = \frac{1}{1+e^{-\theta^Tx}} =\frac{1}{1+e^{-z}}\)​​​ 看做逻辑回归中样本的概率。​

    因为是分类问题,我们假设其服从二项分布,我们使用最大似然函数来估计参数\(w\)​​ 。​

    因为假设服从二项分布,于是我们有

    \[P(Y=1 |x) = h(x) ; P(Y=0|x)=1-h(x) \]

    我们可以使用极大似然估计来估计参数\(\theta\),似然函数为

    \[max L(\theta) = \prod^m_{i=1} P(y^{(i)}|x^{(i)};\theta) =\prod^m_{i=1} (h_\theta(x^{(i)}))^{y^{(i)}}(1-h_\theta(x^{(i)}))^{1-y(i)} \]

    两边取对数

    \[l(\theta)=\sum_{i=1}^m (y^{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(1-h_\theta(x^{(i)}))) \]

    代价函数为

    \[J(\theta)=-\frac{1}{m}l(\theta)=- \frac{1}{m}[\sum^m_iy^{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(1-h_\theta(x^{(i)}))] \]

    我们有

    \[p(y=1|x) = \frac{e^{\theta x}}{1+e^{ \theta x}} \\ p(y=0|x) = \frac{1}{1+e^{\theta x}} \]

    2 交叉熵理解 ——从极大似然估计到KL散度

    https://zhuanlan.zhihu.com/p/266677860

    2.1 极大似然估计要解决的问题

    • 给定一个数据分布 \(P_{data(x)}\)
    • 给定一个由参数 \(\theta\) 定义的数据分布 \(P_G(x;\theta)\)
    • 我们希望求得参数\(\theta\) 使得\(P_G(x;\theta)\) 尽可能接近 \(P_{data(x)}\)

    可以理解成:

    \(P_G(x;\theta)\) 是某一具体的分布(比如简单的高斯分布),而 \(P_{data(x)}\)是未知的(或者及其复杂,我们很难找到一个方式表示它),我们希望通过极大似然估计的方法来确定 \(\theta\) ,让\(P_G(x;\theta)\)能够大体表达\(P_{data(x)}\)

    1. \(P_{data}\) 采样m个样本 \(\{x^1,x^2,\dots,x^m\}\)
    2. 计算采样样本的似然函数 \(L=\Pi_{i=1}^m P_G(x^i;\theta)\)
    3. 计算使得似然函数 \(L\) 最大的参数 \(\theta: \theta^* = arg \ \underset{\theta}{max} L=arg \ \underset{\theta}{max} \Pi_{i=1}^m P_G(x^i;\theta)\)

    这里再啰嗦一下极大似然估计为什么要这么做:
    \(P_{data}\) 可以理解成是非常复杂的分布,不可能用某个数学表达精确表示,因此我们只能通过抽象,使用一个具体的分布模型 \(P_G(x;\theta)\)近似 \(P_{data}\)
    所以,求 \(P_G(x;\theta)\) 的参数 \(\theta\)的策略就变成了:
    我们认为来自 \(P_{data}\)的样本 \(\{x^1,x^2,\dots,x^m\}\)\(P_G(x;\theta)\)分布中出现的概率越高,也就是 \(L=\Pi_{i=1}^m P_G(x^i;\theta)\)越大 , \(P_G(x;\theta)\)\(P_{data}\) 就越接近。
    因此,我们期待的 [公式] 就是使得 $L=\Pi_{i=1}^m P_G(x^i;\theta) $最大的 \(\theta\).
    即: $ \theta^* = arg \ max_\theta L=arg \ max_\theta \Pi_{i=1}^m P_G(x^i;\theta)$

    咱们继续推导:

    \[\begin{aligned} \theta^* &= arg \ \underset{\theta}{max} L \\ &=arg \ \underset{\theta}{max} \Pi_{i=1}^m P_G(x^i;\theta) \\ &=arg \underset{\theta}{max} \ log \Pi_{i=1}^m P_G(x^i;\theta) \\ &=arg \underset{\theta}{max} \ \sum_{i=1}^m log P_G(x^i;\theta) \\ & \approx arg \underset{\theta}{max} E_{x \sim P_{data}} [log P_G(x;\theta)] \\ &= arg \underset{\theta}{max} \int_{x} P_{data}(x) log P_G(x;\theta) dx = H(p,q)(交叉熵)\\ &= arg \underset{\theta}{max} \int_{x} P_{data}(x) log P_G(x;\theta) dx - \int_x P_{data}(x)logP_{data}(x)dx \\ &(我们求的是\theta,后面加上的一项与\theta 无关,这是为了将极大似然的式子推导为KL散度的表达)\\ &= arg \ \underset{\theta}{min} KL(P_{data}||P_{G}(x;\theta)) \end{aligned} \]

    KL散度:
    [公式] 衡量P,Q这两个概率分布差异的方式:
    \(KL(P||Q)=\int_x p(x)(log \ p(x)-log\ q(x))\)

    2.2 极大似然估计的本质

    找到 \(\theta\) 使得 \(P_G(x;\theta)\) 与目标分布 \(P_{data}(x)\) 的KL散度尽可能低,也就是使得两者的分布尽可能接近,实现用确定的分布 \(P_G(x;\theta)\) 极大似然 \(P_{data(x)}\)

    梯度下降求解

    \[J(\theta)=- \frac{1}{m}[\sum^m_iy^{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(1-h_\theta(x^{(i)}))] \]

    \[\theta_j := \theta_j - \alpha \frac{\partial J(\theta)}{\partial \theta_j} \\ \]

    \[\begin{aligned} \frac{\partial(h_\theta(x),y)}{\partial\theta_j} &= -\frac{1}{m}\sum_{i=1}^m [\frac{y^i}{h_\theta(x^{(i)})} \cdot \frac{\partial h_\theta(x^{(i)})}{\partial\theta_j}+\frac{1-y^i}{1-h_\theta(x^{(i)})} \cdot -\frac{\partial h_\theta(x^i)}{\partial\theta_j}] \\ &= -\frac{1}{m}\sum_{i=1}^m [(\frac{y}{h_\theta(x^{(i)})}-\frac{1-y}{1-h_\theta(x^{(i)})})\frac{\partial h_\theta(x^{(i)})}{\partial\theta_j}] \\ &=-\frac{1}{m}\sum_{i=1}^m [(\frac{y-h_{\theta}(x^{(i)})}{h_{\theta}(x^{(i)})(1-h_{\theta}(x^{(i)}))} )h_\theta(x^{(i)})(1-h_\theta(x^{(i)}))x_j^{(i)}] \\ &=\frac{1}{m}\sum_{i=1}^m[(h_\theta(x^{(i)})-y)x^{(i)}_j] \end{aligned} \]

    复合函数求导法则

    image-20211024095048189

    \(ylog(h_\theta(x))\)​​​​​求导

    \[\frac{\partial ylog(h_\theta(x))}{\partial \theta} = \frac{y}{h_\theta(x)} \cdot \frac{\partial h_\theta(x)}{\partial\theta} \]

    \((1-y)log(1-h_\theta(x))\)​​​​​​求导

    \[\frac{\partial (1-y)log(1-h_\theta(x))}{\partial \theta} = \frac{1-y}{1-h_\theta(x)} \cdot -\frac{\partial h_\theta(x)}{\partial\theta} \]

    \(h_\theta'(z)=h_\theta(z)(1-h_\theta(z))\)

    \(z = \theta \cdot x\)​​

    \[\frac{\partial h_\theta(x^{(i)})}{\partial\theta_j} =h_\theta(x^{(i)})(1-h_\theta(x^{(i)})) \frac{\partial(z^{i})}{\partial{\theta_j}} \\ = h_\theta(x^{(i)})(1-h_\theta(x^{(i)})) x_j^{(i)} \]

    image-20211024100428755

    逻辑回归正则化

    image-20211024100659297

    查准率/查全率/F1指标

    image-20211024145807585

    image-20211024145821404

    image-20211024145956984

    代码实现

    image-20211024150241991

    image-20211024150258931

    感谢

    https://www.jianshu.com/p/b6bb6c035d8c

    Logit究竟是个啥?——离散选择模型之三 - 知乎 (zhihu.com)

    一文搞懂熵(Entropy),交叉熵(Cross-Entropy) - 知乎 (zhihu.com)

    交叉熵(Cross Entropy) - 简书 (jianshu.com)

  • 相关阅读:
    快速排序
    将指定目录下的所有子文件或子目录加载到TreeView
    导入英汉文本,用字符串切割,泛型集合存储的英汉字典
    取年月日的字符串方法
    简化的MVC-导入模板HTML,导入数据txt,用字符串方法生成JS菜单
    索引器的使用
    打开文件练习
    泛型委托
    将正则表达式转化成确定的有限自动机
    青蛙过桥
  • 原文地址:https://www.cnblogs.com/zuti666/p/15751583.html
Copyright © 2020-2023  润新知