机器学习task1——线性回归

1 过拟合

机器学习task1——线性回归_第1张图片

参考链接:

机器学习中用来防止过拟合的方法有哪些

Normalization方法:BN,LN 等

L1 与 L2 正则化的区别

2 线性回归优化方法

优化方法:

  • 梯度下降法

  • 最小二乘法(公式法)
    机器学习task1——线性回归_第2张图片

  • 牛顿法

  • 拟牛顿法

2.1 牛顿法

牛顿法推导:

f ( x ) f(x) f(x)用泰勒公式展开到二阶,

f ( x t + 1 ) = f ( x t ) + f ′ ( x t ) ( x t + 1 − x t ) + 1 2 f ′ ′ ( x t ) ( x t + 1 − x t ) 2 f(x_{t+1}) = f(x_t) + f'(x_t)(x_{t+1} - x_t)+\frac{1}{2}f''(x_t)(x_{t+1} - x_t)^2 f(xt+1)=f(xt)+f(xt)(xt+1xt)+21f(xt)(xt+1xt)2

对上式求导,并令导数等于0,求得x值

f ′ ( x t + 1 ) = f ′ ( x t ) + f ′ ′ ( x t ) x t + 1 − f ′ ′ ( x t ) x t = 0 f'(x_{t+1}) = f'(x_t) + f''(x_t)x_{t+1} -f''(x_t)x_t = 0 f(xt+1)=f(xt)+f(xt)xt+1f(xt)xt=0

可以求得,迭代公式为:

x t + 1 = x t − f ′ ( x t ) f ′ ′ ( x t ) x_{t+1} = x_t - \frac{f'(x_t)}{f''(x_t)} xt+1=xtf(xt)f(xt)

推广到向量的情况,牛顿法公式为:
θ : = θ − l ′ ( θ ) l ′ ′ ( θ ) \theta :=\theta-\frac{l'(\theta)}{l''(\theta)} θ:=θl(θ)l(θ)

当 θ 是 向 量 值 的 时 候 , θ : = θ − H − 1 Δ θ l ( θ ) 当\theta是向量值的时候,\theta :=\theta - H^{-1}\Delta_{\theta}l(\theta) θθ:=θH1Δθl(θ)

其中, Δ θ l ( θ ) \Delta_{\theta}l(\theta) Δθl(θ) l ( θ ) l(\theta) l(θ) θ i \theta_i θi的偏导数, H H H J ( θ ) J(\theta) J(θ)的海森矩阵,
H i j = ∂ 2 l ( θ ) ∂ θ i ∂ θ j H_{ij} = \frac{\partial ^2l(\theta)}{\partial\theta_i\partial\theta_j} Hij=θiθj2l(θ)

  • 网上一个牛顿法求解的例子:

机器学习task1——线性回归_第3张图片

牛顿法优缺点:

  • 收敛速度快,比梯度下降法迭代次数少很多
  • 每次迭代都需要计算海森矩阵,计算较复杂,耗费计算成本

2.2 拟牛顿法

拟牛顿法的思路是用一个矩阵替代计算复杂的海森矩阵H,因此要找到符合H性质的矩阵。

要求得海森矩阵符合的条件,同样对泰勒公式求导 f ′ ( x ) = f ′ ( x 0 ) + f ′ ′ ( x 0 ) x − f ′ ′ ( x 0 ) x 0 f'(x) = f'(x_0) + f''(x_0)x -f''(x_0)x_0 f(x)=f(x0)+f(x0)xf(x0)x0

x = x 1 x = x_1 x=x1,即迭代后的值,代入可得:

f ′ ( x 1 ) = f ′ ( x 0 ) + f ′ ′ ( x 0 ) x 1 − f ′ ′ ( x 0 ) x 0 f'(x_1) = f'(x_0) + f''(x_0)x_1 - f''(x_0)x_0 f(x1)=f(x0)+f(x0)x1f(x0)x0

更一般的,

f ′ ( x k + 1 ) = f ′ ( x k ) + f ′ ′ ( x k ) x k + 1 − f ′ ′ ( x k ) x k f'(x_{k+1}) = f'(x_k) + f''(x_k)x_{k+1} - f''(x_k)x_k f(xk+1)=f(xk)+f(xk)xk+1f(xk)xk

f ′ ( x k + 1 ) − f ′ ( x k ) = f ′ ′ ( x k ) ( x k + 1 − x k ) = H ( x k + 1 − x k ) f'(x_{k+1}) - f'(x_k) = f''(x_k)(x_{k+1}- x_k)= H(x_{k+1}- x_k) f(xk+1)f(xk)=f(xk)(xk+1xk)=H(xk+1xk)

x k x_k xk为第k个迭代值

即找到矩阵G,使得它符合上式。
常用的拟牛顿法的算法包括DFP,BFGS等。

参考链接
拟牛顿法常用的算法DFP,BFGS等

你可能感兴趣的:(机器学习)