zoukankan      html  css  js  c++  java
  • 机器学习算法之线性回归

    1 线性回归的模型

      线性回归的模型十分的简单,就是对回归问题中每一个特征X乘以一个系数,使其拟合到输出Y,线性回归模型就是找到这样一组系数。

      线性回归的模型如下:

      其中x是数据的特征,是一个d维的列向量,是权重系数,也是一个d维的列向量,y是模型的输出

    2 线性回归的损失函数

      在做回归问题的时候,模型的预测输出值和真实值总是存在一个误差,误差满足均值为0,标准差为的高斯分布,则线性归回的模型变为

      其中

      由于满足高斯分布,则其概率密度函数为:

      将带入上式密度函数中,得到:

      上式即为似然函数,为了使模型更好的拟合数据集,需要最大化似然函数:

      其中N使数据集的个数。

      为了计算方便,对上式取对数:

      

      其中const是一个常数,则最大化上式可等价于下式:

      

      则定义线性回归的损失函数为:

    3 优化线性回归模型

      由上一节得到线性归回的损失函数为:

      需要优化的问题是:找到一组,使上式的损失函数最小,即对损失函数求导:

      则参数 可通过迭代求解:

      

     

       其中为学习率。

      上式的迭代算法是批量梯度下降算法(BGD),每更新一次,需要计算所有样本上的梯度的平均值。

      下面是随机梯度下降(SGD),每更新一次,只是从样本数据中随机挑选一个样本来计算梯度值:

      最后一个为小批量随机梯度下降(Mini-Batch GD),每更新一次,从所有样本中随机挑选一批样本来计算这一批的梯度的平均值:

      其中Nk为小批量的个数。

    4 张量视角

                                                                           

      其中X为样本,n为样本的个数,d为样本的特征个数,即每一行为一个样本。是模型的参数,是一个d维的列向量。y是样本的标签,是一个n维的列向量。

      则,线性回归模型的矩阵形式为:

      线性回归的损失函数的矩阵形式为:

      上式对向量求梯度,即矩阵对向量求梯度,需要以下矩阵对向量的知识才能得出:

      则可求出J对的梯度为:

      让上式子等于零,可求出最优的参数

    5 线性回归模型的正则化

      线性回归模型的正则化可解决两个问题:

      1 可以解决模型的过拟合问题

      2 若奇异,即不可逆,则上节用最小二乘法就求不出解,加入正则化项则可解决这一问题

      加入L2正则化项的损失函数:

      

      求梯度:

      求解:

     

     

     

     

     

     

     

     

     

     

     

      

     

  • 相关阅读:
    JS-得到屏幕宽高、页面宽高
    CSS3-border-radius 属性
    从30岁到35岁:为你的生命多积累一些厚度【转载】
    HTML5-IOS WEB APP应用程序(IOS META)
    HTML-Meta中的viewport指令
    EasyUI-window包含一个iframe,在iframe中如何关闭window
    JS-为句柄添加监听函数
    EasyUI-EasyUI框架入门学习
    Linux下的C编程
    ***经典笔试题
  • 原文地址:https://www.cnblogs.com/swenwen/p/11220539.html
Copyright © 2011-2022 走看看