机器学习的数学——分类篇

感知机模型

如何划分?——找一条直线

表格形式:
在这里插入图片描述
图像形式:
在这里插入图片描述
分类的目的就是找到将训练数据划分为两类的那条线(即图中虚线)

怎么找到那条直线——找权重向量

图中虚线是使权重向量成为法线向量的直线。
设权重向量为 w \bm{w} w,那么虚线的表达式为:
w ⋅ x = 0 \bm{w} · \bm{x}=0 wx=0
w \bm{w} w成直角的向量有很多,他们连成了一条直线。

怎么找到权重向量

在这里插入图片描述
训练数据的准备
在这里插入图片描述
接下来根据参数向量 x \bm{x} x来判断图像是横向还是纵向。定义如下判别函数:
f w ( x ) = { 1 ( w ⋅ x ≥ 0 ) − 1 ( w ⋅ x < 0 ) f_{\bm{w}}(\bm{x})= \left\{ \begin{array}{lr} 1&(\bm{w}·\bm{x}≥0)\\ -1&(\bm{w}·\bm{x}<0) \end{array} \right. fw(x)={11(wx0)(wx0)
因此,我们假设权重向量 w \bm{w} w如图所示,则参数向量 x \bm{x} x处于下图阴影部分时,内积为负,权重向量与参数向量不相似,返回-1。
在这里插入图片描述
当参数向量 x \bm{x} x处于下图阴影部分时,内积为正,权重向量与参数向量相似,返回1。
在这里插入图片描述
在此基础上,我们定义权重向量的更新表达式:
w : = { w + y ( i ) x ( i ) ( f w ( x ( i ) ) ≠ y ( i ) ) w ( f w ( x ( i ) ) = y ( i ) ) \bm{w}:= \left\{ \begin{array}{lr} \bm{w}+y^{(i)}\bm{x}^{(i)}&(f_w(x^{(i)})≠y^{(i)})\\ \bm{w}&(f_w(x^{(i)})=y^{(i)}) \end{array} \right. w:={w+y(i)x(i)w(fw(x(i))=y(i))(fw(x(i))y(i))
f w ( x ( i ) ) ≠ y ( i ) f_w(x^{(i)})≠y^{(i)} fw(x(i))=y(i)表示判别函数的结果不准确, f w ( x ( i ) ) = y ( i ) f_w(x^{(i)})=y^{(i)} fw(x(i))y(i)则表示结果准确。因此参数 w \bm{w} w的更新只在判别函数结果不准确时进行。
怎么更新参数 w \bm{w} w呢? y ( i ) y^{(i)} y(i)是常数1或-1,表示方向。因此 w + y ( i ) x ( i ) \bm{w}+y^{(i)}\bm{x}^{(i)} w+y(i)x(i)只是向量的加减法。
以下为将相似判定为不相似后的参数 w \bm{w} w更新情况:
在这里插入图片描述
更新后的参数 w + x ( 1 ) \bm{w}+\bm{x}^{(1)} w+x(1) x ( 1 ) \bm{x}^{(1)} x(1)更相似。

如何解决多分类问题

感知机是一种线性二分类模型,不过可以解决多分类问题。具体怎么实现,值得探讨。

逻辑回归

如何划分?——比较属于某类的概率

图像为纵向的概率是80%、为横向的概率是20%。那么这个图像归入纵向类。

如何表示单条数据的分类概率?——sigmoid函数

假设变量向量 x \bm{x} x是横向图像的概率是 f θ ( x ) f_{\bm{\theta}}(\bm{x}) fθ(x),那么有:
P ( y = 1   ∣   x ) = f θ ( x ) P(y=1\space|\space\bm{x})=f_{\bm{\theta}}(\bm{x}) P(y=1  x)=fθ(x)
进而可得判别函数:
y = { 1 ( f θ ( x ) ≥ 0.5 ) 0 ( f θ ( x ) < 0.5 ) y=\left\{ \begin{array}{lr} 1&(f_{\bm{\theta}}(\bm{x})≥0.5)\\ 0&(f_{\bm{\theta}}(\bm{x})<0.5) \end{array} \right. y={10(fθ(x)0.5)(fθ(x)<0.5)
那么 f θ ( x ) f_{\bm{\theta}}(\bm{x}) fθ(x)到底可以是个什么函数呢?——sigmoid函数
f θ ( x ) = 1 1 + e − θ T x f_{\theta}(\bm{x})=\frac{1}{1+e^{-\bm{\theta}^T\bm{x}}} fθ(x)=1+eθTx1

说明:
① 设横向的值为1,纵向的值为0
x \bm{x} x为变量向量, θ \bm{\theta} θ为参数向量。 f θ ( x ) f_{\bm{\theta}}(\bm{x}) fθ(x)为参数 θ \bm{\theta} θ情况下输入变量 x \bm{x} x对应的概率。
③ 设 θ T x \bm{\theta}^T\bm{x} θTx为横轴, f θ ( x ) f_{\bm{\theta}}(\bm{x}) fθ(x)为纵轴,那么它的图形是这样的。
在这里插入图片描述
0 < f θ ( x ) < 1 0<f_{\bm{\theta}}(\bm{x})<1 0fθ(x)1
θ T x = 0 \bm{\theta}^T\bm{x}=0 θTx=0时, f θ ( x ) = 0.5 f_{\bm{\theta}}(\bm{x})=0.5 fθ(x)=0.5

于是,我们进一步将判别函数简化为:
y = { 1 ( θ T x ≥ 0 ) 0 ( θ T x < 0 ) y=\left\{ \begin{array}{lr} 1&({\bm{\theta}}^T\bm{x}≥0)\\ 0&(\bm{\theta}^T\bm{x}<0) \end{array} \right. y={10(θTx0)(θTx<0)
为了便于理解,我们设:
θ = [ θ 0 θ 1 θ 2 ] = [ − 100 2 1 ] , x = [ 1 x 1 x 2 ] \bm{\theta}= \begin{bmatrix} \begin{matrix} \theta_0\\ \theta_1\\ \theta_2 \end{matrix} \end{bmatrix}= \begin{bmatrix} \begin{matrix} -100\\ 2\\ 1 \end{matrix} \end{bmatrix}, \bm{x}= \begin{bmatrix} \begin{matrix} 1\\ x_1\\ x_2 \end{matrix} \end{bmatrix} θ= θ0θ1θ2 = 10021 ,x= 1x1x2
则有:
在这里插入图片描述
在这里插入图片描述

如何表示多条数据的分类概率?——似然函数

为了求得正确的参数 θ \bm{\theta} θ而定义目标函数,进行微分,然后求参数的更新表达式,这种算法就称为逻辑回归
对于
P ( y = 1   ∣   x ) = f θ ( x ) P(y=1\space|\space\bm{x})=f_{\bm{\theta}}(\bm{x}) P(y=1  x)=fθ(x)
y = 1 y=1 y=1的时候,我们希望概率 P ( y = 1 ∣ x ) P(y=1|\bm{x}) P(y=1∣x)(图像为横向)是最大的
y = 0 y=0 y=0的时候,我们希望概率 P ( y = 0 ∣ x ) P(y=0|\bm{x}) P(y=0∣x)是最大的
因此可以得到
在这里插入图片描述
我们假定所有的训练数据都是互不影响、独立发生的,这种情况下整体的概率就可以用下面的联合概率来表示。
L ( θ ) = ∏ i = 1 n P ( y ( i ) = 1   ∣   x ( i ) ) y ( i ) P ( y ( i ) = 0   ∣   x ( i ) ) 1 − y ( i ) L(\bm{\theta})=\prod_{i=1}^n P(y^{(i)}=1\space|\space \bm{x}^{(i)})^{y^{(i)}} P(y^{(i)}=0\space|\space \bm{x}^{(i)})^{1-y^{(i)}} L(θ)=i=1nP(y(i)=1  x(i))y(i)P(y(i)=0  x(i))1y(i)
y ( i ) = 1 y^{(i)}=1 y(i)=1 时,联合概率包含 P ( y ( i ) = 1   ∣   x ( i ) ) P(y^{(i)}=1\space|\space \bm{x}^{(i)}) P(y(i)=1  x(i))
y ( i ) = 0 y^{(i)}=0 y(i)=0 时,联合概率包含 P ( y ( i ) = 0   ∣   x ( i ) ) P(y^{(i)}=0\space|\space \bm{x}^{(i)}) P(y(i)=0  x(i))
包含的都是每个独立判别事件成功的概率。
因此,我们要找出使联合概率 L ( θ ) L(\bm{\theta}) L(θ)最大的参数 θ \bm{\theta} θ。这里的目标函数 L ( θ ) L(\bm{\theta}) L(θ)也被称为似然。因此我们要最大化似然函数。

如何最大化似然函数?

如果直接对似然函数 L ( θ ) L(\bm{\theta}) L(θ)微分,因为它是联合概率,而概率都是小于1的数,连乘值会越来越小,当值过小时,编程会出现精度问题。因此我们要对似然函数进行对数化处理。
log ⁡ L ( θ ) = log ⁡ ∏ i = 1 n P ( y ( i ) = 1   ∣   x ( i ) ) y ( i ) P ( y ( i ) = 0   ∣   x ( i ) ) 1 − y ( i ) log ⁡ L ( θ ) = ∑ i = 1 n ( y ( i ) log ⁡ P ( y ( i ) = 1   ∣   x ( i ) ) + ( 1 − y ( i ) ) log ⁡ P ( y ( i ) = 0   ∣   x ( i ) ) ) log ⁡ L ( θ ) = ∑ i = 1 n ( y ( i ) log ⁡ f θ ( x ) + ( 1 − y ( i ) ) log ⁡ ( 1 − f θ ( x ) ) ) \begin{align*} &\log L(\bm{\theta})=\log \prod_{i=1}^n P(y^{(i)}=1\space|\space\bm{x}^{(i)})^{y^{(i)}}P(y^{(i)}=0\space|\space\bm{x}^{(i)})^{1-y^{(i)}}\\ &\phantom{\log L(\bm{\theta})}=\sum_{i=1}^{n}{(y^{(i)} \log P(y^{(i)}=1\space|\space\bm{x}^{(i)})+(1-y^{(i)}) \log P(y^{(i)}=0\space|\space\bm{x}^{(i)}))}\\ &\phantom{\log L(\bm{\theta})}=\sum_{i=1}^{n}{(y^{(i)} \log f_{\bm{\theta}}(\bm{x})+(1-y^{(i)})\log (1- f_{\bm{\theta}}(\bm{x})}))\\ \end{align*} logL(θ)=logi=1nP(y(i)=1  x(i))y(i)P(y(i)=0  x(i))1y(i)logL(θ)=i=1n(y(i)logP(y(i)=1  x(i))+(1y(i))logP(y(i)=0  x(i)))logL(θ)=i=1n(y(i)logfθ(x)+(1y(i))log(1fθ(x)))
接下来开始微分
u = log ⁡ L ( θ ) u=\log L(\bm{\theta}) u=logL(θ) v = f θ ( x ) v=f_{\bm{\theta}}(\bm{x}) v=fθ(x) w = θ T x w=\bm{\theta}^T\bm{x} w=θTx
∂ u ∂ θ j = ∂ u ∂ v ⋅ ∂ v ∂ w ⋅ ∂ w ∂ θ j \begin{align*} &\frac{\partial u}{\partial \theta_j}=\frac{\partial u}{\partial v}·\frac{\partial v}{\partial w}·\frac{\partial w}{\partial \theta_j} \end{align*} θju=vuwvθjw
∂ u ∂ v = ∂ ∂ v ∑ i = 1 n ( y ( i ) log ⁡ v + ( 1 − y ( i ) ) log ⁡ ( 1 − v ) ) A B = ∑ i = 1 n ( y ( i ) v − 1 − y ( i ) 1 − v ) \begin{align*} &\frac{\partial u}{\partial v}=\frac{\partial}{\partial v}\sum_{i=1}^{n}{(y^{(i)} \log v+(1-y^{(i)}) \log(1-v))}\\ &\phantom{AB}=\sum_{i=1}^{n}{(\frac{y^{(i)}}{v}-\frac{1-y^{(i)}}{1-v})}\\ \end{align*} vu=vi=1n(y(i)logv+(1y(i))log(1v))AB=i=1n(vy(i)1v1y(i))
∂ v ∂ w = ∂ ∂ w ( 1 1 + e − w ) A B = e w ( e w + 1 ) 2 A B = v ( 1 − v ) \begin{align*} &\frac{\partial v}{\partial w}=\frac{\partial}{\partial w}(\frac{1}{1+e^{-w}})\\ &\phantom{AB}=\frac{e^w}{(e^w+1)^2}\\ &\phantom{AB}=v(1-v) \end{align*} wv=w(1+ew1)AB=(ew+1)2ewAB=v(1v)
∂ w ∂ θ j = ∂ ∂ θ j ( θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n ) ∂ w ∂ θ j = x j \begin{align*} &\frac{\partial w}{\partial \theta_j}=\frac{\partial}{\partial \theta_j}(\theta_0+\theta_1x_1+\theta_2x_2+...+\theta_nx_n)\\ &\phantom{\frac{\partial w}{\partial \theta_j}}=x_j \end{align*} θjw=θj(θ0+θ1x1+θ2x2+...+θnxn)θjw=xj
综上所述
∂ log ⁡ L ( θ ) ∂ θ j = ∑ i = 1 n ( y ( i ) − f θ ( x ( i ) ) ) x j ( i ) \begin{align*} &\frac{\partial \log L(\bm{\theta})}{\partial \theta_j}=\sum_{i=1}^{n}(y^{(i)}-f_{\bm{\theta}}(\bm{x}^{(i)}))x_j^{(i)} \end{align*} θjlogL(θ)=i=1n(y(i)fθ(x(i)))xj(i)
最小化时要按照与微分结果的符号相反的方向移动,而最大化要按照与微分结果的符号相同的方向移动,因此
θ j : = θ j − η ∑ i = 1 n ( f θ ( x ( i ) ) − y ( i ) ) x j ( i ) \theta_j:=\theta_j-\eta\sum_{i=1}^{n}(f_{\bm{\theta}}(\bm{x^{(i)}})-y^{(i)})x_j^{(i)} θj:=θjηi=1n(fθ(x(i))y(i))xj(i)

如何解决线性不可分问题?

直线不能分类→用曲线可以分类
在这里插入图片描述
w = θ T x w=\bm{\theta}^T\bm{x} w=θTx变成曲线,那么只需要增加 x x x的次数即可。
例如:
θ = [ θ 0 θ 1 θ 2 θ 3 ] = [ 0 0 1 − 1 ] , x = [ 1 x 1 x 2 x 1 2 ] \bm{\theta}= \begin{bmatrix} \begin{matrix} \theta_0\\ \theta_1\\ \theta_2\\ \theta_3 \end{matrix} \end{bmatrix}= \begin{bmatrix} \begin{matrix} 0\\ 0\\ 1\\ -1 \end{matrix} \end{bmatrix}, \bm{x}= \begin{bmatrix} \begin{matrix} 1\\ x_1\\ x_2\\ x_1^2 \end{matrix} \end{bmatrix} θ= θ0θ1θ2θ3 = 0011 ,x= 1x1x2x12
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秃头鸭鸭鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值