上研究生的时候接触的第一个Loss function就是least square。最近又研究了一下,做个总结吧。

定义看wiki就够了。公式如下

E(w)=12∑n=1N{y−xWT}2E(w)=12∑n=1N{y−xWT}2

其中yy代表类标列向量,xx代表特征行向量,WW代表回归或者分类参数矩阵。通过令欧式距离最小化优化得到最优的WW。

我遇到的第一个问题是,这个公式是怎么得到的,motivation是什么。我个人倾向于最大似然这个角度来解释。具体如下:

假设回归或分类模型公式如下:

y=WTx+ϵy=WTx+ϵ

ϵ∼N(0,σ2)ϵ∼N(0,σ2)代表加性高斯噪声,所以y∼N(WTx,σ2)y∼N(WTx,σ2)。这时通过独立观测xx得到一系列的观测值X=(x1,y1)….,(xN,yN)X=(x1,y1)….,(xN,yN),则可写出对应的似然函数

p(y∣X,w,σ)=ΠNn=1N(WTx,σ2)p(y∣X,w,σ)=Πn=1NN(WTx,σ2)

两边同取自然对数,则

ln(p(y∣X,w,σ))=∑i=1Nln(N(WTx,σ2))ln(p(y∣X,w,σ))=∑i=1Nln(N(WTx,σ2))

而N(WTx,σ2)=12πσ2√exp(−(y−WTx2)2σ2)N(WTx,σ2)=12πσ2exp⁡(−(y−WTx)22σ2)

ln(p(y∣X,w,σ))=−12σ2∑n=1N{yn−WTxn}2−12ln(2πσ2)ln(p(y∣X,w,σ))=−12σ2∑n=1N{yn−WTxn}2−12ln(2πσ2)

最大似然函数,求解W,

W∗=argminW−12σ2∑n=1N{yn−WTxn}2−12ln(2πσ2)W∗=argminW−12σ2∑n=1N{yn−WTxn}2−12ln(2πσ2)

上式中第二项与WW无关,可以省略,故

W∗=argminW−12σ2∑n=1N{yn−WTxn}2W∗=argminW−12σ2∑n=1N{yn−WTxn}2

把上式中的σ2σ2取掉,就是我们熟悉的最小二乘法啦。

求解时,对对数似然函数求偏导(注意矩阵求导的规则)

∇ln(p(y∣X,w,σ))=−∑Nn=1{yn−WTxn}xTn∇ln(p(y∣X,w,σ))=−∑n=1N{yn−WTxn}xnT 令上式为0,则有

∑n=1NynxTn=WT∑n=1NxnxTn∑n=1NynxnT=WT∑n=1NxnxnT

两边同取矩阵的逆,则有: ∑Nn=1xnyTn=∑Nn=1xnxTnW∑n=1NxnynT=∑n=1NxnxnTW

如果用YY表示类标矩阵,XX表示特征矩阵,则有 XYT=XXTWXYT=XXTW W=(XXT)−1XYTW=(XXT)−1XYT

上面的公式称为normal equation。可以求得WW的封闭解,但是只要做过实验的都知道,如果XX的维数稍微一大,求逆的过程非常非常非常慢,且要消耗非常非常多的资源。所以WW一般用梯度下降法求解。

最大似然法在一定程度上证明了最小二乘法的合理性,但是事实上在历史上最小二乘的出现早于前者,所以可以从其它的角度思考一下最小二乘的合理性。比如最小二乘的几何意义,这篇文章讲的挺好的,看了之后受益匪浅。

from: http://bucktoothsir.github.io/blog/2015/12/04/leastsquare/

最小二乘法least square的更多相关文章

  1. 【模式识别与机器学习】——最大似然估计 (MLE) 最大后验概率(MAP)和最小二乘法

    1) 极/最大似然估计 MLE 给定一堆数据,假如我们知道它是从某一种分布中随机取出来的,可是我们并不知道这个分布具体的参,即“模型已定,参数未知”.例如,我们知道这个分布是正态分布,但是不知道均值和 ...

  2. Machine Learning Algorithms Study Notes(2)--Supervised Learning

    Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...

  3. Machine Learning Algorithms Study Notes(1)--Introduction

    Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 目 录 1    Introduction    1 1.1    ...

  4. 对线性回归,logistic回归和一般回归的认识

    原文:http://www.cnblogs.com/jerrylead/archive/2011/03/05/1971867.html#3281650 对线性回归,logistic回归和一般回归的认识 ...

  5. 机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)

    版权声明: 本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com.如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任. 前言: ...

  6. 线性回归,logistic回归和一般回归

    1 摘要 本报告是在学习斯坦福大学机器学习课程前四节加上配套的讲义后的总结与认识.前四节主要讲述了回归问题,回归属于有监督学习中的一种方法.该方法的核心思想是从连续型统计数据中得到数学模型,然后将该数 ...

  7. 【IUML】回归和梯度下降

    回归(Regression) 在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回归还有很多的变种,如local ...

  8. 机器学习之线性回归---logistic回归---softmax回归

    在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分类等问题 ...

  9. 对线性回归,logistic回归和一般回归

    对线性回归,logistic回归和一般回归 [转自]:http://www.cnblogs.com/jerrylead JerryLead 2011年2月27日 作为一个机器学习初学者,认识有限,表述 ...

随机推荐

  1. spring boot mybatis 多数据源配置

    package com.xynet.statistics.config.dataresources; import org.springframework.jdbc.datasource.lookup ...

  2. python: 模型的统计信息

    /*! * * Twitter Bootstrap * */ /*! * Bootstrap v3.3.7 (http://getbootstrap.com) * Copyright 2011-201 ...

  3. JAVAEE——Lucene基础:什么是全文检索、Lucene实现全文检索的流程、配置开发环境、索引库创建与管理

    1. 学习计划 第一天:Lucene的基础知识 1.案例分析:什么是全文检索,如何实现全文检索 2.Lucene实现全文检索的流程 a) 创建索引 b) 查询索引 3.配置开发环境 4.创建索引库 5 ...

  4. Node.js CVE-2017-14849复现(详细步骤)

    0x00 前言 早上看Sec-news安全文摘的时候,发现腾讯安全应急响应中心发表了一篇文章,Node.js CVE-2017-14849 漏洞分析(https://security.tencent. ...

  5. 支撑大规模公有云的Kubernetes改进与优化 (1)

    Kubernetes是设计用来实施私有容器云的,然而容器作为公有云,同样需要一个管理平台,在Swarm,Mesos,Kubernetes中,基于Kubernetes已经逐渐成为容器编排的最热最主流的平 ...

  6. django数据库操作-增删改查-多对多关系以及一对多(外键)关系

    一.一对多(外键) 例子:一个作者对应多本书,一本书只有一个作者 model代码: class Person(models.Model); name = models.CharField('作者姓名' ...

  7. MongoDB基本方法

    一.MongoDB Limit与Skip方法 MongoDB Limit() 方法 如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一 ...

  8. 鸟哥的私房菜:Bash shell(一)-Bash shell功能简介

    Bash shell系列里,由变量谈起,先讲到环境变量的功能与修改的问题, 然后会继续提到历史指令的运用.接下来,就会谈一下『数据流重导向』这个重要概念, 最后就是管线命令的利用! 一  Bash s ...

  9. linux下elasticsearch安装教程

    centos 7.5安装 elasticsearch 第一步,安装elasticsearch需要Java8 首先使用 yum list installed | grep java 查看安装的Java版 ...

  10. 在MacBook下安装http链接的性能测试工具httping

    一.如果没有brew,先安装brew. 安装命令如下:curl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz  ...