机器学习——线性回归与逻辑回归

机器学习——线性回归与逻辑回归

  • 两者的优缺点
  • 逻辑回归LR推导
  • 回归和分类的区别
  • 逻辑回归特征是否归一化
  • 如何提升LR的模型性能
  • 逻辑回归为啥要做特征离散化
  • 最小二乘法在什么条件下与极大似然估计等价
  • 逻辑回归为什么不用平方损失函数
  • LR可以处理非线性情况吗?
  • LR的参数可以初始化0吗?

两者的优缺点

优点

  • 模型简单,原理容易理解
  • 计算代价不高,易于理解和实现
    缺点
  • 易过拟合
  • 特征很多的时候,效果 不好
  • 处理线性问题效果比较好,而对于更复杂的问题可能效果较差

逻辑回归LR推导

基本条件

  • 线性回归: ∑ i = 0 m θ i x i \sum^m_{i=0}\theta_ix_i i=0mθixi
  • sigmoid函数: g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+ez1,求导:KaTeX parse error: Expected group after '^' at position 5: g(z)^̲'=g(z)(1-g(z))
  • 逻辑回归: h θ ( x ) = 1 1 + e − θ T x h_{\theta}(x)=\frac{1}{1+e^{-\theta^Tx}} hθ(x)=1+eθTx1

损失函数推导
对于分类任务:
P ( y = 1 ∣ x ; θ ) = h θ ( x ) P(y=1|x;\theta)=h_\theta(x) P(y=1x;θ)=hθ(x)
P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) P(y=0|x;\theta)=1-h_\theta(x) P(y=0x;θ)=1hθ(x)
P ( y ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 − h θ ( x ) ) 1 − y P(y|x;\theta) = (h_\theta(x))^y(1-h_\theta(x))^{1-y} P(yx;θ)=(hθ(x))y(1hθ(x))1y
似然函数: L ( θ ) = ∏ i = 1 m ( h θ ( x i ) ) y i ( 1 − h θ ( x i ) ) 1 − y i L(\theta) = \prod^m_{i=1}(h_\theta(x_i))^{y_i}(1-h_\theta(x_i))^{1-y_i} L(θ)=i=1m(hθ(xi))yi(1hθ(xi))1yi
对数似然: 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 ) ) ] logL(\theta)=\sum^m_{i=1}[y_ilogh_\theta(x_i)+(1-y_i)log(1-h_\theta(x_I))] logL(θ)=i=1m[yiloghθ(xi)+(1yi)log(1hθ(xI))]
引入 − 1 m -\frac{1}{m} m1,得到损失函数:
L o s s = − 1 m ∑ i = 1 m [ y i l o g h θ ( x i ) + ( 1 − y i ) l o g ( 1 − h θ ( x I ) ) ] Loss=-\frac{1}{m}\sum^m_{i=1}[y_ilogh_\theta(x_i)+(1-y_i)log(1-h_\theta(x_I))] Loss=m1i=1m[yiloghθ(xi)+(1yi)log(1hθ(xI))]

梯度求导
目标函数为 J ( θ ) = − 1 m l o g L ( θ ) J(\theta) = -\frac{1}{m}logL(\theta) J(θ)=m1logL(θ),求最小值:
∂ J ( θ ) ∂ θ = ∂ J ( θ ) ∂ h θ ( x ) ⋅ ∂ h θ ( x ) ∂ θ = − 1 m ∑ i = 1 m [ y i 1 h θ ( x i ) ∂ h θ ( x i ) ∂ θ − ( 1 − y i ) 1 1 − h θ ( x i ) ∂ h θ ( x i ) ∂ θ ] = − 1 m ∑ i = 1 m [ y i h θ ( x i ) − ( 1 − y i ) 1 − h θ ( x i ) ] h θ ( x i ) ( 1 − h θ ( x i ) ) x i = − 1 m ∑ i = 1 m [ y i ( 1 − h θ ( x i ) ) − ( 1 − y i ) h θ ( x i ) ] x i = − 1 m ∑ i = 1 m [ h θ ( x i ) − y i ) ] x i \begin{aligned} \frac{\partial J(\theta)}{\partial \theta} &=\frac{\partial J(\theta)}{\partial h_{\theta}(x)} \cdot \frac{\partial h_{\theta}(x)}{\partial \theta} \\=-\frac{1}{m} \sum_{i=1}^{m}\left[y_{i} \frac{1}{h_{\theta}\left(x_{i}\right)} \frac{\partial h_{\theta}\left(x_{i}\right)}{\partial \theta}-\left(1-y_{i}\right) \frac{1}{1-h_{\theta}\left(x_{i}\right)} \frac{\partial h_{\theta}\left(x_{i}\right)}{\partial \theta}\right] \\=-\frac{1}{m} \sum_{i=1}^{m}\left[\frac{y_{i}}{h_{\theta}\left(x_{i}\right)}-\frac{\left(1-y_{i}\right)}{1-h_{\theta}\left(x_{i}\right)}\right] h_{\theta}\left(x_{i}\right)\left(1-h_{\theta}\left(x_{i}\right)\right) x_{i} \\ &=-\frac{1}{m} \sum_{i=1}^{m}\left[y_{i}\left(1-h_{\theta}\left(x_{i}\right)\right)-\left(1-y_{i}\right) h_{\theta}\left(x_{i}\right)\right] x_{i} \\ &\left.=-\frac{1}{m} \sum_{i=1}^{m}\left[h_{\theta}\left(x_{i}\right)-y_{i}\right)\right] x_{i} \end{aligned} θJ(θ)=m1i=1m[yihθ(xi)1θhθ(xi)(1yi)1hθ(xi)1θhθ(xi)]=m1i=1m[hθ(xi)yi1hθ(xi)(1yi)]hθ(xi)(1hθ(xi))xi=hθ(x)J(θ)θhθ(x)=m1i=1m[yi(1hθ(xi))(1yi)hθ(xi)]xi=m1i=1m[hθ(xi)yi)]xi

每次梯度下降,迭代后的参数:
θ j ∗ = θ j − α 1 m ∑ i = 1 m [ h θ ( x i ) − y i ) ] x i \left.\theta_{j}^{*}=\theta_{j}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left[h_{\theta}\left(x_{i}\right)-y_{i}\right)\right] x_{i} θj=θjαm1i=1m[hθ(xi)yi)]xi
α \alpha α是学习率

回归和分类的区别

  • 两者的预测目标变量类型不同,回归问题是连续变量,分类问题离散变量
  • 回归问题是定量问题,分类问题是定性问题
  • 回归目标是得到最优拟合,而分类目标是得到决策边界
  • 评价指标不同:回归的评价指标通常是MSE,分类指标通常是Accuracy, Prescision, Recall

逻辑回归特征是否归一化

逻辑回归本身不受量纲影响,但是其使用梯度下降法求解参数量纲影响大,如果不进行特征归一化,可能由于变量不同量纲导致参数迭代求解缓慢

如何提升LR的模型性能

  • 构造更多的数据,无论评估模型还是训练,都会更加可靠
  • 挖掘更有价值的Feature,即特征工程
  • 加入正则化项,L1/L2.交叉验证确定最优的参数。这会加快模型开发速度,会自动化筛选变量

逻辑回归为啥要做特征离散化

非线性:逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合;离散特征的增加和减少都很容易,易于模型的快速迭代
速度快:稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展
鲁棒性:离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是“年龄>30是1,否则0”。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大 的干扰
方便交叉与特征组合:离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力
简化模型:特征离散化后,起到了简化逻辑回归模型的作用,降低了模型过拟合的风险

最小二乘法在什么条件下与极大似然估计等价

当模型估计值和真实值间的残差项服从均值是0的高斯分布时,就有最小二乘估计和最大似然估计等价

逻辑回归为什么不用平方损失函数

  • 因为平方损失函数权重更新过慢,采用交叉熵损失函数可以完美解决过慢的问题,它具有误差大的时候,权重更新快;误差小的时候,权重更新慢的良好性质
  • sigmoid作为激活函数的时候,如果采用均方误差损失函数,那么这是一个非凸优化问题,不易求解,容易陷入局部最优解。而采用交叉熵损失函数依然是一个凸优化问题

LR可以处理非线性情况吗?

可以,同样可以使用核方法

LR的参数可以初始化0吗?

可以
在逻辑回归中,
y ^ = sigmoid ⁡ ( w T x + b ) \hat{y}=\operatorname{sigmoid}\left(w^{T} x+b\right) y^=sigmoid(wTx+b)
sigmoid ⁡ sin ⁡ ( t ) = 1 1 + e − t \operatorname{sigmoid}^{\sin }(t)=\frac{1}{1+e^{-t}} sigmoidsin(t)=1+et1
sigmoid ⁡ ′ ( t ) = sigmoid ⁡ ( t ) ⋅ ( 1 − sigmoid ⁡ ( t ) ) \operatorname{sigmoid}^{\prime}(t)=\operatorname{sigmoid}(t) \cdot(1-\operatorname{sigmoid}(t)) sigmoid(t)=sigmoid(t)(1sigmoid(t))
Loss = − y ln ⁡ y ^ − ( 1 − y ) ln ⁡ ( 1 − y ^ ) =-y \ln \hat{y}-(1-y) \ln (1-\hat{y}) =ylny^(1y)ln(1y^)
因此在LR的反向传播中,我们假设 w = [ w 1 , w 2 ] T w=[w_1,w_2]^T w=[w1,w2]T,则
w 1 ∗ = w 1 − α . ∂ L o s s ∂ w 1 w^*_1 = w_1-\alpha.\frac{\partial{Loss}}{\partial{w_1}} w1=w1α.w1Loss

∂  Loss  ∂ w 1 = ∂  Loss  ∂ y ^ ⋅ y ^ ∂ ( w T x + b ) ⋅ ∂ ( w T x + b ) ∂ w 1 \frac{\partial \text { Loss }}{\partial w_{1}}=\frac{\partial \text { Loss }}{\partial \hat{y}} \cdot \frac{\hat{y}}{\partial\left(w^{T} x+b\right)} \cdot \frac{\partial\left(w^{T} x+b\right)}{\partial w_{1}} w1 Loss =y^ Loss (wTx+b)y^w1(wTx+b)
= ( − y y ^ − 1 − y 1 − y ^ ) ⋅ ( y ^ ( 1 − y ^ ) ) ⋅ x 1 =\left(-\frac{y}{\hat{y}}-\frac{1-y}{1-\hat{y}}\right) \cdot(\hat{y}(1-\hat{y})) \cdot x_{1} =(y^y1y^1y)(y^(1y^))x1
= ( − y + y ^ ) ⋅ x 1 =(-y+\hat{y}) \cdot x_{1} =(y+y^)x1
∂ L o s s ∂ b = y ^ − y \frac{\partial L o s s}{\partial b}=\hat{y}-y bLoss=y^y
因而
w 1 ∗ = w 1 − α ( y ^ − y ) ⋅ x 1 w_{1}^{*}=w_{1}-\alpha(\hat{y}-y) \cdot x_{1} w1=w1α(y^y)x1
w 2 ∗ = w 2 − α ( y ^ − y ) ⋅ x 2 w_{2}^{*}=w_{2}-\alpha(\hat{y}-y) \cdot x_{2} w2=w2α(y^y)x2
b ∗ = b − α ( y ^ − y ) b^{*}=b-\alpha(\hat{y}-y) b=bα(y^y)
可以看出,就算初始 w 1 , w 2 , b w_1,w_2,b w1,w2,b设为0,后续梯度还是会更新

你可能感兴趣的:(深度学习,深度学习)