码迷,mamicode.com
首页 > 其他好文 > 详细

机器学习 - 2 - 线性回归

时间:2018-10-05 23:27:18      阅读:342      评论:0      收藏:0      [点我收藏+]

标签:吐槽   最大值   方向   随机梯度下降   速度   模型   梯度   多项式   离散   

机器学习 - 2 - 线性回归

首先吐槽我们的老师上课上得真是太烂了。。真的烂。。

PPT里也只会对没有意义的公式,而且还不解释是在干什么。。

回归

  1. 什么是回归

    首先回归属于监督学习的一种,回归问题中,尝试预测连续的输出,与尝试预测离散的输出的分类问题恰恰相反。

    举个例子:
    • 预测房价
    • 预测身高
    • ...
  2. 回归模型

    素材:
    • 特征 \(x\)
    • 预测值 \(y\)
    • 训练集 \((x_i,y_i)\)
    • 学习算法
    • 回归函数 \(f\)

    线性回归时:

    \[f(X) = \omega_0 + \sum_{i = 1}^{m}\omega_ix_i \]

    向量化(增加 \(x_0 = 1\),表示截距项):

    \[f(X) = W^TX\]

    一般化(当基函数不是多项式基函数时):

    \[y(X,W) = \sum_{i = 0}^{M-1}\omega_i\phi_j(X) = W^T\Phi(X)\]

  3. 问题本质

    拆分一下:
    • 定义目标函数
      • 使用训练集数据(真实数据)
      • 最小化预测值 \(f\) 与真实输出值 \(y\) 的差异
    • 确定模型中的参数 \(W^T\)

    目标函数(代价函数):

    \[J(W) = \frac{1}{2}\sum_{i=1}^{N}(f(X_i)-y_i)^2\]

    进一步求出使 \(J(W)\) 最小的 \(W\) 即可。

解回归

  1. 梯度下降法

    策略:
    • 随机赋 \(W\) 初值
    • 改变 \(w_i\) 的值,使 \(J(W)\) 越来越小
    • 沿梯度相反方向下降

    梯度为一个向量,表示某一函数在某一点的方向导数沿该方向时取得最大值,即函数在该点处沿着该方向变化最快,变化率最大。

    举个例子:

    在爬山时,沿与等高线垂直的方向爬山,路最陡

    怎么操作:

    \[\omega_j^t = \omega_j^{t-1}-\alpha\frac{\partial}{\partial\omega_j}J(W)\]

    \[\frac{\partial}{\partial\omega_j}J(W) = \sum_{i=1}^{N}(f(X_i)-y_i)\cdot X_{i,j}\]

    所有 \(w_i\) 同时更新,其中 \(\alpha\) 为学习率/更新步长

    一些衍生:
    • 批处理梯度下降
      • 每次更新都利用所有数据
      • 大样本下,迭代速度很慢
    • 随机梯度下降
      • 每次只用一个样本
      • 迭代速度快,大样本下较为有效,又被称为在线学习
    一点补充:
  2. 标准方程组

    矩阵化:

    \[J(W) = \frac{1}{2}\sum_{i=1}^{N}(f(X_i)-y_i)^2 = (XW-y)^T(XW-y)\]

    求导,另其为0:

    \[\frac{\partial}{\partial W}J(W) = 2X^T(XW-y) = 0\]

    解得:

    \[W = (X^TX)^{-1}X^Ty\]

  3. 孰优孰劣

    梯度下降 标准方程
    需要选择学习率 不需要
    迭代很多次 一次
    \(O(kn^2)\) \(O(n^3)\)
    n很大时表现良好 n很大时很慢
    数据需要归一化 不需要

    结论:

    样本量较小时选用标准方程组求解,样本量较大时选用梯度下降法求解

补充连接

matrix vector derivatives for machine learning

机器学习 - 2 - 线性回归

标签:吐槽   最大值   方向   随机梯度下降   速度   模型   梯度   多项式   离散   

原文地址:https://www.cnblogs.com/ChildishChange/p/9746265.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!