机器学习(二)逻辑回归

逻辑回归

概念

  • 和逻辑回归相似,不过预测结果是离散的值
  • 二分类问题: y ∈ { 0 , 1 } y\in\{0,1\} y{0,1},0代表负样本,1代表正样本
  • y ( i ) ∈ { 0 , 1 } y^{(i)}\in\{0,1\} y(i){0,1}称为训练样本的标签

sigmoid 函数

g ( z ) = 1 1 + e − z g(z) = \frac{1}{1+e^{-z}} g(z)=1+ez1

  • 值域: g ( z ) ∈ ( 0 , 1 ) g(z)\in(0,1) g(z)(0,1)
  • 对称性:1 - g(z) = g(-z)
  • 求导:g’(z) = g(z)(1 - g(z))
    sigmoid

hypothesis

h θ = g ( θ T x ) = 1 1 + e − θ T x h_{\theta} = g(\theta^{T}x) = \frac{1}{1+e^{-\theta^{T}x}} hθ=g(θTx)=1+eθTx1

  • 首先计算出真实值作为’score‘( θ T x \theta^{T}x θTx)
  • 将其变换到(0,1)区间,作为属于正样本的概率
  • 伪线性关系

条件概率

  • 对给定数据X=x,Y=1的概率
    P r ( Y = 1 ∣ X = x ; θ ) = h θ ( x ) = 1 1 + e − θ T x Pr(Y = 1|X =x;\theta) = h_{\theta}(x) = \frac{1}{1+e^{-\theta^{T}x}} Pr(Y=1X=x;θ)=hθ(x)=1+eθTx1

  • 对给定数据X=x,Y=0的概率
    P r ( Y = 0 ∣ X = x ; θ ) = 1 − h θ ( x ) = 1 1 + e θ T x Pr(Y = 0|X =x;\theta) = 1-h_{\theta}(x) = \frac{1}{1+e^{\theta^{T}x}} Pr(Y=0X=x;θ)=1hθ(x)=1+eθTx1

在边界的情况

P r ( Y = 1 ∣ X = x ; θ ) = P r ( Y = 0 ∣ X = x ; θ ) Pr(Y = 1|X =x;\theta) = Pr(Y = 0|X =x;\theta) Pr(Y=1X=x;θ)=Pr(Y=0X=x;θ)
⇒ 1 1 + e − θ T x = 1 1 + e θ T x \Rightarrow \frac{1}{1+e^{-\theta^{T}x}} = \frac{1}{1+e^{\theta^{T}x}} 1+eθTx1=1+eθTx1
⇒ e x p ( θ T x ) = 1 \Rightarrow exp(\theta^{T}x) = 1 exp(θTx)=1
⇒ θ T x = 0 ( 超 平 面 ) \Rightarrow\theta^{T}x=0\quad(超平面) θTx=0()

  • s c o r e 的 值 θ T x 度 量 了 x 距 离 超 平 面 ( h y p e r p l a n ) 的 距 离 score的值\theta^{T}x度量了x距离超平面(hyperplan)的距离 scoreθTxxhyperplan
  • score是正值,越大,是正样本的概率越高
  • score是负值,越小,是正样本的概率越小

概率公式

p ( y ∣ x ; θ ) = P r ( Y = y ∣ X = x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y , y ∈ { 0 , 1 } p(y|x ; \theta) = Pr(Y = y|X = x;\theta) = (h_{\theta}(x))^{y}(1-h_{\theta}(x))^{1-y},\quad y \in \{0,1\} p(yx;θ)=Pr(Y=yX=x;θ)=(hθ(x))y(1hθ(x))1y,y{0,1}

如何确定参数 θ \theta θ

极大似然估计

极大似然函数

L ( θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m ( h θ ( x ( i ) ) ) y ( i ) ( 1 − h θ ( x ( i ) ) ) 1 − y ( i ) L(\theta) = \prod_{i=1}^{m}p(y^{(i)}|x^{(i)} ; \theta)\\ = \prod_{i=1}^{m} (h_{\theta}(x^{(i)}))^{y^{(i)}}(1-h_{\theta}(x^{(i)}))^{1-y^{(i)}} L(θ)=i=1mp(y(i)x(i);θ)=i=1m(hθ(x(i)))y(i)(1hθ(x(i)))1y(i)

  • 因为是独立事件同时发生,所以概率相乘
  • 解释:这是样本,按照预测模型计算出的发生的概率。由于事件已经发生,我们认为在这样本下发生此事件的概率尽可能大,即我们应使得 L ( θ ) L(\theta) L(θ)尽可能大
  • 通俗解释一下:小明去钓鱼,钓了一条鱼,是小鱼,又钓了一条鱼还是小鱼,再钓一条鱼还是小鱼,小明依据存在即合理的思想认为,这个池塘里的小鱼多。小明做了个模型预测在这个池塘里钓出鱼的大小,预测出是小鱼的概率更高一些,我们认为是更合理的。
取对数

l ( θ ) = log ⁡ L ( θ ) = ∑ i = 1 m ( y ( i ) log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ) l(\theta) = \log L(\theta) = \sum_{i=1}^{m}(y^{(i)}\log (h_{\theta}(x^{(i)})) + (1-y^{(i)})\log (1-h_{\theta}(x^{(i)}))) l(θ)=logL(θ)=i=1m(y(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i))))

求极值(使用梯度下降法)

目标:要求 L ( θ ) L(\theta) L(θ)最大, θ \theta θ要沿着梯度方向更新
θ j ← θ j + α ▽ θ j l ( θ ) f o r ∀ j \theta_{j}\leftarrow\theta_{j}+\alpha\triangledown_{\theta_{j}}l(\theta)\quad for \forall j θjθj+αθjl(θ)forj
∂ ∂ θ j l ( θ ) = ∑ i = 1 m ( y ( i ) − h θ ( x ( i ) ) ) x j ( i ) \frac{\partial}{\partial\theta_{j}}l(\theta) = \sum_{i=1}^{m}(y^{(i)}-h_{\theta}(x^{(i)}))x_{j}^{(i)} θjl(θ)=i=1m(y(i)hθ(x(i)))xj(i)
推导有空再写

牛顿法

  • 使用梯度下降法,收敛的速度太慢,使用牛顿法可以更快的收敛

牛顿法介绍

对于一个实数域函数 f : R → R f:\mathbb{R}\rightarrow\mathbb{R} f:RR,如何寻找 x x x使得 f ( x ) = 0 f(x)=0 f(x)=0
一元函数
对曲线 y = f ( x ) y=f(x) y=f(x)在点 ( x 1 , f ( x 1 ) ) (x_{1},f(x_{1})) (x1,f(x1))处作切线L
L在x轴的交点为
x 2 = x 1 − f ( x 1 ) f ′ ( x 1 ) x_{2} = x_{1} - \frac{f(x_{1})}{f'(x_{1})} x2=x1f(x1)f(x1)
一元函数
然后重复上述操作,直到满足收敛条件 x ← x − f ( x ) f ′ ( x ) x\leftarrow x-\frac{f(x)}{f'(x)} xxf(x)f(x)
在这里插入图片描述

牛顿法的一些特性

  • 收敛速度快
  • 不保证收敛,取决于函数和初始值的选取
    在这里插入图片描述

牛顿法寻找最大值

要使 f ( x ) f(x) f(x)最大,需要找到 f ′ ( x ) = 0 f'(x)=0 f(x)=0的点
使用以下公式: x ← x − f ′ ( x ) f ′ ′ ( x ) x\leftarrow x-\frac{f'(x)}{f''(x)} xxf(x)f(x)
对于 l ( θ ) : R n → R l(\theta):\mathbb{R}^{n}\rightarrow\mathbb{R} l(θ):RnR应用牛顿法:
θ ← θ − H − 1 ▽ θ l ( θ ) \theta\leftarrow \theta-H^{-1}\triangledown_{\theta}l(\theta) θθH1θl(θ)
H是 Hessian matrix H i j = ∂ 2 l ( θ ) ∂ θ i ∂ θ j H_{ij}=\frac{\partial^{2}l(\theta)}{\partial\theta_{i}\partial\theta_{j}} Hij=θiθj2l(θ)
虽然牛顿法迭代快,但是Hessian矩阵的计算开销大
在这里插入图片描述

多分类

对于多分类的问题可以从二分类的基础上进行拓展,对于每一类训练一个分类器,数据中的本类作为正样本,其他类作为负样本。

一对多的情况

  • 输入:学习算法L,训练样本 ( x ( i ) , y ( i ) ) i = 1 , . . . , m y ( i ) ∈ 1 , . . . , K {(x^{(i)},y^{(i)})}\quad i=1,...,m\quad y^{(i)}\in{1,...,K} (x(i),y(i))i=1,...,my(i)1,...,K
  • 输出:一系列分类器 f k k ∈ 1 , . . . K f_{k} \quad k\in{1,...K} fkk1,...K
  • f k ( x ) f_{k}(x) fk(x)越大表明x属于k类的概率越高
    假设函数:
    h θ ( x ) = [ p ( y = 1 ∣ x , θ ) p ( y = 2 ∣ x , θ ) ⋮ p ( y = k ∣ x , θ ) ] = 1 ∑ k = 1 K e x p ( θ ( k ) T x ) [ e x p ( θ ( 1 ) T x ) e x p ( θ ( 2 ) T x ) ⋮ e x p ( θ ( k ) T x ) ] h_{\theta}(x)= \begin{bmatrix} p(y=1|x,\theta)\\ p(y=2|x,\theta)\\ \vdots\\ p(y=k|x,\theta) \end{bmatrix} = \frac{1}{\sum_{k=1}^{K}exp(\theta^{(k)^{T}}x)} \begin{bmatrix} exp(\theta^{(1)^{T}}x)\\ exp(\theta^{(2)^{T}}x)\\ \vdots\\ exp(\theta^{(k)^{T}}x) \end{bmatrix} hθ(x)=p(y=1x,θ)p(y=2x,θ)p(y=kx,θ)=k=1Kexp(θ(k)Tx)1exp(θ(1)Tx)exp(θ(2)Tx)exp(θ(k)Tx)
    上式中进行了归一化 softmax regression,使得对于一个样本,属于各个分类的概率之和为1

取对数运算

l ( θ ) = ∑ i = 1 m log ⁡ p ( y ( i ) ∣ x ( i ) ; θ ) = ∑ i = 1 m log ⁡ ∏ k = 1 K ( e x p ( θ ( k ) T x ( i ) ) ∑ k ′ = 1 K e x p ( θ ( k ′ ) T x ( i ) ) ) I ( y ( i ) = k ) I : T r u e , F a l s e → 0 , 1 是 一 个 指 示 函 数 注 : 当 样 本 i 是 k 类 时 y ( i ) = k , 幂 值 不 为 零 , 整 个 式 子 才 不 为 1 , 总 之 l o g 以 内 是 每 个 样 本 预 测 结 果 为 y ( i ) 的 概 率 l(\theta)=\sum_{i=1}^{m}\log p(y^{(i)}|x^{(i)};\theta)\\=\sum_{i=1}^{m}\log\prod_{k=1}^{K}\left( \frac{exp(\theta^{(k)^{T}}x^{(i)})}{\sum_{k'=1}^{K}exp(\theta^{(k')^{T}}x^{(i)})}\right)^{\mathbb{I}(y^{(i)=k})} \\ \mathbb{I}:{True,False}\rightarrow{0,1} 是一个指示函数 \\注:当样本i是k类时y^{(i)}=k,幂值不为零,整个式子才不为1,\\总之log以内是每个样本预测结果为y^{(i)}的概率 l(θ)=i=1mlogp(y(i)x(i);θ)=i=1mlogk=1K(k=1Kexp(θ(k)Tx(i))exp(θ(k)Tx(i)))I(y(i)=k)I:True,False0,1iky(i)=k,1logy(i)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值