线性回归

1.回归指的是连续性问题,线性只的是直线。

f(x) = \theta _{0}+\theta _{1}x_{1}+\theta _{2}x_{2}=\sum_{i=0}^{n}\theta _{i}x_{i}=\theta ^{T}x

目标函数:J(\theta )=\frac{1}{2}\sum (h_{\theta }(x^{i})-y^{i})^{2},要使这个值最小

实际y^{i} = \theta ^{T} x^{i} + \epsilon ^{i},其中根据中心极限定理,猜测\epsilon符合高斯分布。

p_{i}(x) = \frac{1}{\sqrt{2\pi \sigma }}exp(- \frac{\epsilon^{2}}{2\sigma^{2}}) ,再用极大似然法,L(\theta )= \prod \frac{1}{\sqrt{2\pi \sigma }}exp(-\frac{(\epsilon ^{i})^{2}}{2\sigma ^{2}}),再取对数log(L(\theta )) = \sum log\frac{1}{\sqrt{2\pi \sigma }}exp(-\frac{(\epsilon )^{2}}{2\sigma ^{2}})= mlog\frac{1}{\sqrt{2\pi \sigma }}-\frac{1}{2\sigma ^{2}}\sum (y^{i}-\theta ^{T}x^{i})^{2},再求导数为0,

得到\theta = (X^{T}X)^{-1}X^{T}y,如果不可逆,则加一个扰动,\theta =(X^{T}X+\lambda I)^{-1}X^{T}y

2.梯度下降法

前面建立的J是让J最小。由于x是个凸集,正的平方肯定是凸的,因此J是个凸函数,随机初始化,沿着梯度方向下降,不断迭代直到得到最优值(或者迭代相邻值在一定范围内)。

\theta _{j}:=\theta _{j}+\alpha \sum (y^{i}-h_{\theta }x^{i})x_{i}^{j}

如果是批处理,则样本是从第一个取到第m个取到所有样本;因为有的时候样本很多,实际情况中常常是给定一个不那么多的随机样本来处理,但这种方法有可能会收敛到一定范围内来回震动;也有将若干个样本的梯度作为更新方向来做的。

3.局部加权线性回归

有的时候需要求的不是直线,而可能是二次曲线。则可以把二次曲线看成是若干条直线的组成,对小范围内的点先进行直线拟合,并对其他不在这个范围的点给一个权值,离的近的则权值可能大些,离得远的则权值可能小些。则局部加权线性回归可以这样表示:\sum w^{i}(y^{i}-\theta ^{T}x^{i})^{2} ,其中w可以为高斯核,也可以为多项式核等其他表示形式。这种为非参数学习方法。

4.Logistic回归参数估计

g(z)= \frac{1}{1+e^{-z}}h_{\theta }x=g(\theta ^{T}x)=\frac{1}{1-\theta ^{T}x}为0的时候值为0.5,大于0大于0.5,小于0小于0.5,可以分为两类

p(y=1)=h_{\theta }x ,p(y=0) = 1-h_{\theta }x,这两个式子可以写成一个p =(h_{\theta }x)^{y}(1-h_{\theta }x)^{1-y} 再根据最大似然法求导,得到(y-h_{\theta }x)x_{j},再用参数迭代,梯度下降得到\theta _{j}:=\theta _{j}+\alpha \sum (y^{i}-h_{\theta }x^{i})x_{i}^{j},与线性回归相比,形式都是一样的。

5.梯度下降的换角度,求步长

前面thea已经知道怎么求了,而步长\alpha(也叫学习率)怎么确定也是我们需要探究的问题。一般说来,如果斜率大的话,\alpha就小些,斜率小的话,\alpha就大些。那具体的是否可以通过一些计算来确定它呢。

这里引入x_{k}和负梯度d_{k}。对于f(x_{k}+\alpha d_{k}) = h(\alpha),当\alpha =0h(0) = f(x_{k})h{}'(\alpha )=\bigtriangledown f(x_{k}+\alpha d_{k})^{T}d_{k},求最优的\alpha,使得h{}'(\alpha )=0去求就可以了。事实上,h{}'(0)= \bigtriangledown f(x_{k})^{T}d_{k},而负梯度的d_{k}=-\bigtriangledown f(x_{k})。因此h{}'(0)<0,要找到h{}'(\alpha )=0,我们还需要找到一个大于0 的值,则等于0的值在0和大于0的值之间,利用二分法进行搜索就能找到等于0 的值。除了二分法,还有回溯线性搜索的方法,当\alpha满足f(x_{k}+\alpha d_{k})\leq f(x_{k})+c1*\alpha \bigtriangledown f(x_{k})^{T}d_{k}时就停止。更高级的还有二次插值线性搜索,构造二次函数 \frac{h(\alpha -h{}'(0)\alpha )-h(0)}{\alpha _{0}^{2}}\alpha ^{2}+h{}'(0)\alpha +h(0),二次函数的最优值的地方是-\frac{b}{2a}的地方,这个方法更稳健些。

6.搜索方向优化

除了负导数的方向,牛顿还提出了 经典的牛顿下降。根据泰勒展开来的,  x_{k+1}=x_{k}-\frac{f{}'(x_{k})}{f{}''(x_{k})}。其实是根据拟合的二次曲线求极小值来进行二次收敛。这样收敛的速度很快,但是也有缺点,比如是要在极小值的附近取初值才能得到较好的结果,不然可能不收敛,或者当Hessian矩阵非正定时也不行。

由于它的缺点,我们需要对它进行修正,因此提出了修正牛顿方向。利用牛顿方向和梯度方向的角度来判断。只要和负梯度方向夹角小于90度即可。

L-BFGS 用近似的矩阵代替Hessian矩阵的逆,使得它正定。

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值