数据学习(1)·线性回归和Logistic回归

本系列是作者上课时记录的笔记整理,同时有对应的作业习题,自学的同学参考博客同步即可。邮箱联系humminwang@163.com

Preview:

监督学习(第一部分)

  • 线性回归
  • Logistic回归
  • Softmax回归

编程作业


Review:

监督学习:
输入 χ \chi χ,目标 ψ \psi ψ,通过给出训练样本,我们希望学习到一个假设函数 h : χ → ψ h:\chi\rightarrow\psi h:χψ,所以 h ( x ) h(x) h(x) y y y的一个好的预测器。
结构图
如果 y y y是离散的,我们称为分类问题。如果 y y y是连续的,我们称为回归问题。


1 线性回归

线性回归
h ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 h(x)=\theta_0+\theta_1x_1+\theta_2x_2 h(x)=θ0+θ1x1+θ2x2
θ i \theta_i θi称为参数。
使用向量标记:
h ( x ) = θ T x , θ = [ θ 0 θ 1 θ 2 ] , x = [ 1 x 1 x 2 ] h(x)=\theta^Tx,\theta=\begin{bmatrix} \theta_0\\ \theta_1\\ \theta_2 \end{bmatrix},x=\begin{bmatrix} 1\\ x_1\\ x_2 \end{bmatrix} h(x)=θTx,θ=θ0θ1θ2,x=1x1x2
最小二乘法
损失函数:
J ( θ ) = 1 2 ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2 J(\theta)=\frac{1}{2}\sum_{i=1}^m(h(x^{(i)})-y^{(i)})^2 J(θ)=21i=1m(h(x(i))y(i))2
x ( i ) x^{(i)} x(i)表示第几个样本,而 x i x_{i} xi表示 x x x的第几个特征。
最小二乘法
总结最小二乘法问题:
m i n θ J ( θ ) = m i n θ 1 2 ∑ i = 1 m ( h ( x ( i ) − y ( i ) ) ) 2 min_\theta\quad J(\theta)=min_\theta\frac{1}{2}\sum_{i=1}^m(h(x^{(i)}-y^{(i)}))^2 minθJ(θ)=minθ21i=1m(h(x(i)y(i)))2
最小化损失函数的方法:

  • 数值解法(梯度下降,牛顿方法)
  • 分析解法(正规方程)

1.1 梯度下降

利用一阶导数优化,来发现最优值。
梯度下降
如果 J ( θ ) J(\theta) J(θ)是凸的,那么梯度下降算法一定可以找到全局最优解。
要点:

  • 随机开始
  • 迭代计算 θ \theta θ

对最小二乘法来说:
m i n θ J ( θ ) = m i n θ 1 2 ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2 = 1 2 ∑ i = 1 m ( θ T x ( i ) − y ( i ) ) 2 min_\theta\quad J(\theta)=min_\theta\frac{1}{2}\sum_{i=1}^m(h(x^{(i)})-y^{(i)})^2=\frac{1}{2}\sum_{i=1}^m(\theta^Tx^{(i)}-y^{(i)})^2 minθJ(θ)=minθ21i=1m(h(x(i))y(i))2=21i=1m(θTx(i)y(i))2
▽ J ( θ ) = [ ∂ J ( θ ) ∂ θ 1 . . . ∂ J ( θ ) ∂ θ n ] , \bigtriangledown J(\theta)=\begin{bmatrix}\frac{\partial J(\theta)}{\partial \theta_1}\\ ...\\ \frac{\partial J(\theta)}{\partial \theta_n} \end{bmatrix}, J(θ)=θ1J(θ)...θnJ(θ),
∂ J ( θ ) ∂ θ j = ∂ 1 2 ∑ i = 1 m ( θ T x ( i ) − y ( i ) ) 2 ∂ θ j = ∑ i = 1 m ( θ T x ( i ) − y ( i ) ) x j ( i ) \frac{\partial J(\theta)}{\partial\theta_j}=\frac{\partial \frac{1}{2}\sum_{i=1}^m(\theta^Tx^{(i)}-y^{(i)})^2}{\partial\theta_j}=\sum_{i=1}^m(\theta^Tx^{(i)}-y^{(i)})x_j^{(i)} θjJ(θ)=θj21i=1m(θTx(i)y(i))2=i=1m(θTx(i)y(i))xj(i)
损失函数: ▽ J ( θ ) = ∑ i = 1 m ( θ T x ( i ) − y ( i ) ) x j ( i ) \bigtriangledown J(\theta)=\sum_{i=1}^m(\theta^Tx^{(i)}-y^{(i)})x_j^{(i)} J(θ)=i=1m(θTx(i)y(i))xj(i)
梯度更新公式: θ : = θ − α ▽ J ( θ ) \theta:=\theta-\alpha\bigtriangledown J(\theta) θ:=θαJ(θ)
Batch (批)梯度下降和随机梯度下降:
不同梯度下降
θ \theta θ每次更新,每次读取训练数据。

  • 随机梯度下降很快
  • 适合大量的数据

1.2 正规方程

最小化 J ( θ ) J(\theta) J(θ):
矩阵表示形式:
[ . . . ( x ( 1 ) ) T . . . . . . ( x ( 2 ) ) T . . . . . . . . . . ( x ( m ) ) T . . . ] , y = [ y ( 1 ) y ( 2 ) . . . . y ( m ) ] \begin{bmatrix} ...(x^{(1)})^T...\\ ...(x^{(2)})^T...\\ ....\\ ...(x^{(m)})^T... \end{bmatrix},y=\begin{bmatrix} y^{(1)}\\ y^{(2)}\\ ....\\ y^{(m)} \end{bmatrix} ...(x(1))T......(x(2))T..........(x(m))T...,y=y(1)y(2)....y(m)
J ( θ ) = 1 2 ( X θ − y ) T ( X θ − y ) J(\theta)=\frac{1}{2}(X\theta-y)^T(X\theta-y) J(θ)=21(Xθy)T(Xθy)
计算梯度:
▽ θ J ( θ ) = ▽ θ [ 1 2 ( X θ − y ) T ( X θ − y ) ] = X T X θ − X T y \bigtriangledown_\theta J(\theta)=\bigtriangledown_\theta[\frac{1}{2}(X\theta-y)^T(X\theta-y)]=X^TX\theta-X^Ty θJ(θ)=θ[21(Xθy)T(Xθy)]=XTXθXTy
J ( θ ) J(\theta) J(θ)是凸的时,可以达到全局最优,这时 ▽ J ( θ ) = 0 \bigtriangledown J(\theta)=0 J(θ)=0
这时 θ = ( X T X ) − 1 X T y \theta=(X^TX)^{-1}X^Ty θ=(XTX)1XTy

正规方程求解和梯度下降的区别

正规方程

  • 解析表达式
  • 不稳定,不一定可以求解,当特征之间是有很强的联系的时候
  • 速度会很慢,当数据很大的时候

梯度下降

  • 迭代解法
  • 需要选择合适的 α \alpha α来确保损失函数的收敛
  • 对大规模数据很适用

1.3 牛顿法优化损失函数

牛顿法通过迭代的方法求解方程的根。
x n + 1 : = x n − f ( x n ) f ‘ ( x n ) x_{n+1}:=x_n-\frac{f(x_n)}{f`(x_n)} xn+1:=xnf(xn)f(xn)
通过使用牛顿法来解决 ▽ θ J ( θ ) = 0 : \bigtriangledown_\theta J(\theta)=0: θJ(θ)=0:
x是一维的:
θ : = θ − f ‘ ( x ) f ‘ ‘ ( x ) \theta:=\theta-\frac{f`(x)}{f``(x)} θ:=θf(x)f(x)
x是多维的:
θ = θ − H − 1 ( θ ) ▽ J ( θ ) \theta=\theta-H^{-1}(\theta)\bigtriangledown J(\theta) θ=θH1(θ)J(θ)

H是HESSIAN矩阵。

优点

  • 比梯度下降需要更少次迭代。
  • 计算 H − 1 H^{-1} H1需要很多时间。
  • 当n很小的时候,计算的很快。

2 Logistic回归

2.1 Logistic回归的预测函数

Sigmoid函数:
g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1
g : R → ( 0 , 1 ) g:R\rightarrow(0,1) g:R(0,1)
g ‘ ( z ) = g ( z ) ( 1 − g ( z ) ) g`(z)=g(z)(1-g(z)) g(z)=g(z)(1g(z))
Logistic的预测函数:
h θ = g ( θ T X ) = 1 1 + e − θ T X h_\theta=g(\theta^TX)=\frac{1}{1+e^{-\theta^TX}} hθ=g(θTX)=1+eθTX1
logistic
Logistic回归的最大似然估计:
Logistic回归假设y|x是伯努利分布,即:
p ( y = 1 ∣ x ; θ ) = h θ ( x ) , p ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) p(y=1|x;\theta)=h_\theta(x),p(y=0|x;\theta)=1-h_\theta(x) p(y=1x;θ)=hθ(x),p(y=0x;θ)=1hθ(x)
m个独立分布的样本,似然函数是:
L ( θ ) = p ( y ∣ x ; θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) L(\theta)=p(y|x;\theta)=\prod_{i=1}^mp(y^{(i)}|x^{(i)};\theta) L(θ)=p(yx;θ)=i=1mp(y(i)x(i);θ)
I ( θ ) = l o g ( L ( θ ) ) = ∑ i = 1 m y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) I(\theta)=log(L(\theta))=\sum_{i=1}^my^{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(1-h_\theta(x^{(i)})) I(θ)=log(L(θ))=i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))
随机梯度下降


2.2 多类别分类

每个数据属于多类别中的一类;
ψ = { 1 , . . . . K } \psi=\{1,....K\} ψ={1,....K}
MNIST


2.2.1传统方法多分类

one-VS-rest

多次利用二分类来划分数据。
例子

缺点:

  • 类别不平衡:负样例的个数大于正样例的个数。
  • 不同的分类器有着不同的置信标量。

3 SoftMax回归

假设 p ( y ∣ x ) p(y|x) p(yx)是多项式分布。
h θ ( x ) = [ p ( y = 1 ∣ x ; θ 1 ) . . . . . . p ( y = k ∣ x ; θ k ) ] = 1 ∑ j = 1 k e θ j T x j [ e θ 1 T x e θ 2 T x . . . e θ k T x ] = s o f t m a x ( θ T x ) h_\theta(x)=\begin{bmatrix} p(y=1|x;\theta_1)\\ ...\\ ...\\ p(y=k|x;\theta_k)\end{bmatrix}=\frac{1}{\sum_{j=1}^ke^{\theta^T_j}x_j }\begin{bmatrix} e^{\theta^T_1}x\\ e^{\theta^T_2}x\\ ...\\ e^{\theta^T_k}x\end{bmatrix}=softmax(\theta^Tx) hθ(x)=p(y=1x;θ1)......p(y=kx;θk)=j=1keθjTxj1eθ1Txeθ2Tx...eθkTx=softmax(θTx)
s o f t m a x ( z i ) = e z i ∑ j = 1 k e z j softmax(z_i)=\frac{e^{z_i}}{\sum_{j=1}^{k}e^{z_j}} softmax(zi)=j=1kezjezi


给出m个样本 ( x ( i ) , y ( i ) ) , i = 1 , . . . m , l o g (x^{(i)},y^{(i)}),i=1,...m,log (x(i),y(i)),i=1,...m,log下的SoftMax似然函数:
l ( θ ) = ∑ i = 1 m l o g p ( y ( i ) ∣ x ( i ) ; θ ) = ∑ i = 1 m l o g ∏ l = 1 k p ( y ( i ) = l ∣ x ( i ) ) { 1 y ( i ) = l } = ∑ i = 1 m ∑ l = 1 k { 1 y ( i ) = l } l o g p ( y ( i ) = l ∣ x ( i ) ) l(\theta)=\sum_{i=1}^mlogp(y^{(i)}|x^{(i)};\theta)=\sum_{i=1}^mlog\prod_{l=1}^kp(y^{(i)}=l|x^{(i)})^{\{{1y^{(i)}=l\}}}=\sum_{i=1}^{m}\sum_{l=1}^k\{1{y^{(i)}=l}\}logp(y^{(i)}=l|x^{(i)}) l(θ)=i=1mlogp(y(i)x(i);θ)=i=1mlogl=1kp(y(i)=lx(i)){1y(i)=l}=i=1ml=1k{1y(i)=l}logp(y(i)=lx(i))
= ∑ i = 1 m ∑ l = 1 k 1 { y ( i ) = l } l o g e θ l T x ( i ) ∑ j = 1 k e θ j T x ( i ) =\sum_{i=1}^m\sum_{l=1}^k1\{y^{(i)}=l\}log\frac{e^{\theta^T_lx^{(i)}}}{\sum_{j=1}^ke^{\theta_j^Tx^{(i)}}} =i=1ml=1k1{y(i)=l}logj=1keθjTx(i)eθlTx(i)


求解 ▽ θ l l ( θ ) \bigtriangledown_{\theta_l}l(\theta) θll(θ):
▽ θ l l ( θ ) = ∑ i = 1 m [ ( 1 { y ( i ) = l } − P ( y ( i ) = l ∣ x ( i ) ; θ ) ) x ( i ) ] \bigtriangledown_{\theta_l}l(\theta)=\sum_{i=1}^m[(1\{y^{(i)}=l\}-P(y^{(i)}=l|x^{(i)};\theta))x^{(i)}] θll(θ)=i=1m[(1{y(i)=l}P(y(i)=lx(i);θ))x(i)]


什么时候使用SoftMax?
当类别之间是互相排斥的使用SoftMax,不明显的时候使用多次二分类。

4 编程练习

在这里插入图片描述

答案参考:https://github.com/Miraclemin/SoftMaxRegression

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值