线性回归

2022-03-31 14:26:47 浏览数 (1)

线性回归

线性回归预测函数:

h_{theta}(x)=theta^{T}x

逻辑回归预测函数:

h_{theta}^{(x)}=frac{1}{1 e^{-theta^{T}x}}

线性回归损失函数:

J(theta)=frac{1}{2m}sum_{i=1}^m(h(theta^{(i)}-y^i))^2 frac{lambda}{2m}sum_{j=1}^mtheta_j^2

逻辑回归损失函数:

MSE直接应用到LR中会导致损失函数变成非凸函数,所以我们加入log让损失函数变成了凸函数

极大似然(二项分布中):

非二项分布:

(特定采样结果出现的概率累乘)

由于小数连乘操作可能造成下溢,一般会采用极大对数似然进行计算

极大对数似然(二项分布中):

非二项分布:

损失函数(经验损失 结构损失):

J(theta)=-frac{1}{2m}sum_{i=1}^m(y^ilog{h_theta(x^i)} (1-y^i)log(1-h_theta x^{(i)})^2 frac{lambda}{2m}sum_{j=1}^mtheta_j^2

两者损失函数求导后,除了假设函数不一样,表示形式是一样的

损失函数中参数倍数变化并不会影响最优值的最终结果

1.1 逻辑回归LR(logistic regression)
1.1.1 LR与sigmiod

h_{theta}^{(x)}=frac{1}{1 e^{-theta^{T}x}}

其中theta是收敛之后得到的结果

根据sigmoid曲线,h_{theta}≥0时,置为1;否则置为0

1.1.1.1 决策边界
1.1.2 代价函数

当我们把线性回归的代价函数放到逻辑回归上使用时,会发现代价函数J由凸函数(convex)变成了有很多局部最大值的非凸函数,导致寻找最小值变得困难,所有我们选择了另一种能使LR变成凸函数的代价函数。

而对数函数log的曲线,能让代价函数变为凸函数的方程吗?

分析

化简

得到如下结果,使用了==极大似然法==(能够在统计学中能为不同模型快速寻找参数),并且结果是凸函数

begin{align} J(theta) & = frac{1}{m}sum_{i=1}^mCost(h_{theta}(x^{(i)},y^{(i)}))\ & = -frac{1}{m}[sum_{i=1}^my^{(i)}logh_theta(x^{(i)}) (1-y^{(i)})log(1-h_theta(x^{(i)}))] end{align}

参数梯度下降:

==可以发现,求导后线性回归和逻辑回归的公式是一样的但是他们的假设函数h(θ)是不同的,所以两个函数梯度下降公式是不同的==

求导sigmiod得到partial_{sigmoid}=sigmoid[1-sigmoid]

1.2 高级优化
  • 共轭梯度法Conjugate Gradient
  • 拟牛顿法中的对称正定迭代矩阵BFGS
  • 近似BFGS,L-BFGS相对BFGS能够减少空间的使用
1.2.1 优点
  • 无需设定学习率,学习率自动动态调整
  • 大部分情况下速度比梯度下降法快很多
1.2.2 缺点

实现比梯度下降法复杂很多,但是基本上都有封装好的库,如python中的scipy.optimize.fmin_bfgs

1.3 逻辑回归的多分类任务

训练多个逻辑回归分类器,然后将输入放到各分类器中,将输入归类为得分值最大的类别即可

1.4 过拟合和欠拟合解决
1.4.1 过拟合
  • 适当减少多余的参数
  • 使用正则化,适当减少参数维度(阶/次方)/大小
  • 增加数据量
  • dropout
  • 清晰数据
  • 提取终止训练
1.4.2 欠拟合
  • 增加特征和数据
  • 增加高阶多项式项
  • 减少正则化参数
1.5 正则化惩罚项

加入惩罚项后,会降低高维参数的值,让他们趋于0(也就是==简化假设模型,限制模型参数,保持参数尽量小==),这样能让假设h函数变得更加的平滑

我们不知道哪些参数是高维的,该去降低哪些参数的维度,在代价函数中加入正则化惩罚项,对每个参数进行限制

1.5.1 惩罚项公式以及作用

公式:

==简化假设模型,限制模型参数,保持参数尽量小==,lambda作用是控制两个不同目标之间的取舍,设置合适的lambda参数防止模型欠拟合或者无明显作用

0 人点赞