记样本数目为$m$,样本点$i$用$(x^{(i)}, y^{(i)})$表示,其中

$x^{(i)}=\begin{pmatrix}
x_1^{(i)}\\ 
x_2^{(i)}\\ 
...\\
x_n^{(i)}\\
\end{pmatrix}$

这里$y^{(i)}$为标量,假设$h_{\theta}(x)=\sum_{i=0}^{n}{\theta_ix_i}=\theta^{T}x$,其中$x_0$为$1$,$\theta$为假设$h$的参数向量,$\theta_0$为(直线)偏移值。

定义代价函数$J(\theta)=\sum_{i=1}^{m}{(y^{(i)}-h_\theta(x^{(i)}))^2}$,我们希望找到合适的$\theta$使得$J$最小,这是很自然的。首先用梯度下降的方法使得参数$\theta$逼近最优值。可以看出,代价函数是在高维上的凸函数,我们希望逼近极小值点,即$h$对$\theta$偏导为$0$的点,由于:

$\frac{\partial J(\theta)}{\partial \theta}\\
=\frac{1}{\partial \theta}\sum_{i=1}^{m}{2(y^{(i)}-h_\theta({x^{(i)}}))\cdot(-1)\cdot{\partial}h_\theta({x^{(i)}})}\\
=-2\sum_{i=1}^{m}((y^{(i)}-\theta^{T}x^{(i)}){\frac{\partial(\theta^{T}x^{(i)})}{\partial \theta}}\\
=-2\sum_{i=1}^{m}((y^{(i)}-\theta^{T}x^{(i)}){x^{(i)}}\\$

因此这样更新$\theta$:

$\theta := \theta + \alpha\sum_{i=1}^{m}{((y^{(i)}-\theta^{T}x^{(i)}){x^{(i)}}}$

其中$\alpha$是可设定的参数,称学习速率。

————————————————————————————————————————————

下面给出机器学习(Andrew Ng)讲义中的一些记号和推导:

对于$n * m$的矩阵$A$与作用在$A$上的函数$f:R^{n * m} \rightarrow R$,定义$f$关于$A$的梯度

$\nabla_Af(A)=\begin{pmatrix}
{\frac{\partial f}{A_{11}}}&\cdots &{\frac{\partial f}{A_{1m}}} \\ 
\vdots &\ddots &\vdots \\ 
{\frac{\partial f}{A_{n1}}} &\cdots &{\frac{\partial f}{A_{nm}}} 
\end{pmatrix}$

定义$n * n$方阵$A$的$\text{tr} A = \sum_{i=1}^{n}A_{ii}$。

下面给出关于迹的一些结论及其证明。

---------------------------------------------------------------------------------------------------------------

结论1:$\text{tr}AB = \text{tr}BA$

证明:$\text{tr}AB = \sum_{i = 1}^{n}\sum_{j = 1}^{m}{A_{ij}B_{ji}}= \sum_{i = 1}^{n}\sum_{j = 1}^{m}{B_{ji}A_{ij}}$

$\sum_{j = 1}^{m}\sum_{i = 1}^{n}{B_{ji}A_{ij}}=\text{tr}BA$

结论2:$\text{tr}ABC = \text{tr}BCA = \text{tr}CAB$

证明:证明方法同上,略去。

结论3:$\text{tr}A = \text{tr}A^{T}$, $\text{tr}(A + B) = \text{tr}(B + A)$, $\text{tr}{aA} = a\text{tr}A$

证明:显然,略去。

结论4:$\nabla_A{\text{tr}{AB}} = B^{T}$

证明:由于$\text{tr}{AB} = \sum_{i = 1}^{n}\sum_{j = 1}^{m}{A_{ij}B_{ji}}$,

于是$(\nabla_A{\text{tr}{AB}})_{ij}=B_{ji}$,即有$\nabla_A{\text{tr}{AB}} = B^{T}$。

结论5:$\nabla_{A^T}{f(A)}=(\nabla_{A}{f(A)})^T$

证明:显然,略去。

结论6:$\nabla_A{\text{tr}{ABA^TC}} = CAB + C^TAB^T$

证明:$\nabla_A{\text{tr}{ABA^TC}} = (BA^TC)^T + CAB = CAB + C^TAB^T$

(主要利用结论2与结论4及求偏导的规律)

结论7:$\nabla_A{\left | A \right |} = \left | A \right | (A^{-1})^T$

证明:$\nabla_A{\left | A \right | } = \nabla_A{\sum_{i = 1}^{n}{A_{ij}A_{ji}^{*}}} = (A^*)^T=\left | A \right |(A^{-1})^T$

---------------------------------------------------------------------------------------------------------------

进一步对线性回归表示法进行抽象,记样本矩阵$X$为:

$X=\begin{pmatrix}
(x^{(1)})^T\\ 
\vdots \\ 
(x^{(n)})^T 
\end{pmatrix}$

同时记目标向量$\vec{y}$为:

$\vec{y}=\begin{pmatrix}
y^{(1)}\\ 
\vdots \\ 
y^{(n)} 
\end{pmatrix}$

可将$J(\theta)$重写为:

$J(\theta)=(X\theta-\vec y)^T(X\theta - \vec y)$

考虑$J(\theta)$的梯度:

$\nabla_\theta{J(\theta)}=\nabla_\theta{(X\theta-\vec y)^T(X\theta - \vec y)}$

$=\nabla_\theta({\theta}^TX^T\vec y + {\vec y}^TX\theta)+\nabla_\theta({\theta}^TX^TX\theta)$

$=2(X^TX\theta - X^T\vec y)$

令$J(\theta) = 0$,有:

$X^TX\theta = X^T\vec y$

在$X^TX$可逆的情形下:

$\theta = (X^TX)^{-1}{X^T\vec y}$

于是我们得到了使得$J(\theta)$极小化的$\theta$的解析解。

————————————————————————————————————————————

局部加权线性回归(LWR : Locally Weighted Linear Regression)

对于之前的线性回归算法,为了在查询点$x$进行预测,进行如下操作:

1. 选择合适的$\theta$最小化$\sum_i{y^{(i)} - \theta^Tx^{(i)}}$.

2. 输出$\theta^Tx$.

---恢复内容结束---

记样本数目为$m$,样本点$i$用$(x^{(i)}, y^{(i)})$表示,其中

$x^{(i)}=\begin{pmatrix}
x_1^{(i)}\\ 
x_2^{(i)}\\ 
...\\
x_n^{(i)}\\
\end{pmatrix}$

这里$y^{(i)}$为标量,假设$h_{\theta}(x)=\sum_{i=0}^{n}{\theta_ix_i}=\theta^{T}x$,其中$x_0$为$1$,$\theta$为假设$h$的参数向量,$\theta_0$为(直线)偏移值。

定义代价函数$J(\theta)=\sum_{i=1}^{m}{(y^{(i)}-h_\theta(x^{(i)}))^2}$,我们希望找到合适的$\theta$使得$J$最小,这是很自然的。首先用梯度下降的方法使得参数$\theta$逼近最优值。可以看出,代价函数是在高维上的凸函数,我们希望逼近极小值点,即$h$对$\theta$偏导为$0$的点,由于:

$\frac{\partial J(\theta)}{\partial \theta}\\
=\frac{1}{\partial \theta}\sum_{i=1}^{m}{2(y^{(i)}-h_\theta({x^{(i)}}))\cdot(-1)\cdot{\partial}h_\theta({x^{(i)}})}\\
=-2\sum_{i=1}^{m}((y^{(i)}-\theta^{T}x^{(i)}){\frac{\partial(\theta^{T}x^{(i)})}{\partial \theta}}\\
=-2\sum_{i=1}^{m}((y^{(i)}-\theta^{T}x^{(i)}){x^{(i)}}\\$

因此这样更新$\theta$:

$\theta := \theta + \alpha\sum_{i=1}^{m}{((y^{(i)}-\theta^{T}x^{(i)}){x^{(i)}}}$

其中$\alpha$是可设定的参数,称学习速率。

————————————————————————————————————————————

下面给出机器学习(Andrew Ng)讲义中的一些记号和推导:

对于$n * m$的矩阵$A$与作用在$A$上的函数$f:R^{n * m} \rightarrow R$,定义$f$关于$A$的梯度

$\nabla_Af(A)=\begin{pmatrix}
{\frac{\partial f}{A_{11}}}&\cdots &{\frac{\partial f}{A_{1m}}} \\ 
\vdots &\ddots &\vdots \\ 
{\frac{\partial f}{A_{n1}}} &\cdots &{\frac{\partial f}{A_{nm}}} 
\end{pmatrix}$

定义$n * n$方阵$A$的$\text{tr} A = \sum_{i=1}^{n}A_{ii}$。

下面给出关于迹的一些结论及其证明。

---------------------------------------------------------------------------------------------------------------

结论1:$\text{tr}AB = \text{tr}BA$

证明:$\text{tr}AB = \sum_{i = 1}^{n}\sum_{j = 1}^{m}{A_{ij}B_{ji}}= \sum_{i = 1}^{n}\sum_{j = 1}^{m}{B_{ji}A_{ij}}$

$\sum_{j = 1}^{m}\sum_{i = 1}^{n}{B_{ji}A_{ij}}=\text{tr}BA$

结论2:$\text{tr}ABC = \text{tr}BCA = \text{tr}CAB$

证明:证明方法同上,略去。

结论3:$\text{tr}A = \text{tr}A^{T}$, $\text{tr}(A + B) = \text{tr}(B + A)$, $\text{tr}{aA} = a\text{tr}A$

证明:显然,略去。

结论4:$\nabla_A{\text{tr}{AB}} = B^{T}$

证明:由于$\text{tr}{AB} = \sum_{i = 1}^{n}\sum_{j = 1}^{m}{A_{ij}B_{ji}}$,

于是$(\nabla_A{\text{tr}{AB}})_{ij}=B_{ji}$,即有$\nabla_A{\text{tr}{AB}} = B^{T}$。

结论5:$\nabla_{A^T}{f(A)}=(\nabla_{A}{f(A)})^T$

证明:显然,略去。

结论6:$\nabla_A{\text{tr}{ABA^TC}} = CAB + C^TAB^T$

证明:$\nabla_A{\text{tr}{ABA^TC}} = (BA^TC)^T + CAB = CAB + C^TAB^T$

(主要利用结论2与结论4及求偏导的规律)

结论7:$\nabla_A{\left | A \right |} = \left | A \right | (A^{-1})^T$

证明:$\nabla_A{\left | A \right | } = \nabla_A{\sum_{i = 1}^{n}{A_{ij}A_{ji}^{*}}} = (A^*)^T=\left | A \right |(A^{-1})^T$

---------------------------------------------------------------------------------------------------------------

进一步对线性回归表示法进行抽象,记样本矩阵$X$为:

$X=\begin{pmatrix}
(x^{(1)})^T\\ 
\vdots \\ 
(x^{(n)})^T 
\end{pmatrix}$

同时记目标向量$\vec{y}$为:

$\vec{y}=\begin{pmatrix}
y^{(1)}\\ 
\vdots \\ 
y^{(n)} 
\end{pmatrix}$

可将$J(\theta)$重写为:

$J(\theta)=(X\theta-\vec y)^T(X\theta - \vec y)$

考虑$J(\theta)$的梯度:

$\nabla_\theta{J(\theta)}=\nabla_\theta{(X\theta-\vec y)^T(X\theta - \vec y)}$

$=\nabla_\theta({\theta}^TX^T\vec y + {\vec y}^TX\theta)+\nabla_\theta({\theta}^TX^TX\theta)$

$=2(X^TX\theta - X^T\vec y)$

令$J(\theta) = 0$,有:

$X^TX\theta = X^T\vec y$

在$X^TX$可逆的情形下:

$\theta = (X^TX)^{-1}{X^T\vec y}$

于是我们得到了使得$J(\theta)$极小化的$\theta$的解析解。

————————————————————————————————————————————

局部加权线性回归(LWR : Locally Weighted Linear Regression)

对于之前的线性回归算法,为了在查询点$x$进行预测,进行如下操作:

1. 选择合适的$\theta$最小化$\sum_i{(y^{(i)} - \theta^Tx^{(i)})^2}$.

2. 输出$\theta^Tx$.

与以上算法略有不同,LWR执行如下操作:

1. 选择合适的$\theta$最小化$\sum_i{w^{(i)}(y^{(i)} - \theta^Tx^{(i)})^2}$.

2. 输出$\theta^Tx$.

对于$w^{(i)}$一种常见的取法如下:

$w^{(i)} = \text{exp}(-\frac{(x^{(i)} - x)^2}{2\tau^2})$

其中参数$\tau$称为带宽。

LWR算法是一种非参数化(non-parametric)算法。与之前的线性回归法不同,这里的参数$\theta$的相对询问点$x$敏感的。

对于每个询问,都需要重新计算$\theta$。

ML-线性回归的更多相关文章

  1. ML 线性回归Linear Regression

    线性回归 Linear Regression MOOC机器学习课程学习笔记 1 单变量线性回归Linear Regression with One Variable 1.1 模型表达Model Rep ...

  2. 大叔学ML第四:线性回归正则化

    目录 基本形式 梯度下降法中应用正则化项 正规方程中应用正则化项 小试牛刀 调用类库 扩展 正则:正则是一个汉语词汇,拼音为zhèng zé,基本意思是正其礼仪法则:正规:常规:正宗等.出自<楚 ...

  3. 大叔学ML第二:线性回归

    目录 基本形式 求解参数\(\vec\theta\) 梯度下降法 正规方程导法 调用函数库 基本形式 线性回归非常直观简洁,是一种常用的回归模型,大叔总结如下: 设有样本\(X\)形如: \[\beg ...

  4. ML(3)——线性回归

    在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.这种函数是一个或多个称为回归系数的模型参数的线性 ...

  5. ml的线性回归应用(python语言)

    线性回归的模型是:y=theta0*x+theta1   其中theta0,theta1是我们希望得到的系数和截距. 下面是代码实例: 1. 用自定义数据来看看格式: # -*- coding:utf ...

  6. ML之多元线性回归

    转自:http://www.cnblogs.com/zgw21cn/archive/2009/01/07/1361287.html 1.多元线性回归模型 假定被解释变量与多个解释变量之间具有线性关系, ...

  7. ML:多变量线性回归(Linear Regression with Multiple Variables)

    引入额外标记 xj(i) 第i个训练样本的第j个特征 x(i) 第i个训练样本对应的列向量(column vector) m 训练样本的数量 n 样本特征的数量 假设函数(hypothesis fun ...

  8. ML:单变量线性回归(Linear Regression With One Variable)

    模型表达(model regression) 用于描述回归问题的标记 m 训练集(training set)中实例的数量 x 特征/输入变量 y 目标变量/输出变量 (x,y) 训练集中的实例 (x( ...

  9. 线性回归与梯度下降(ML作业)

    Loss函数 题目一:完成computeCost.m function J = computeCost(X, y, theta) %COMPUTECOST Compute cost for linea ...

  10. [Machine Learning & Algorithm]CAML机器学习系列1:深入浅出ML之Regression家族

    声明:本博客整理自博友@zhouyong计算广告与机器学习-技术共享平台,尊重原创,欢迎感兴趣的博友查看原文. 符号定义 这里定义<深入浅出ML>系列中涉及到的公式符号,如无特殊说明,符号 ...

随机推荐

  1. 修改applicationhost.config允许外部访问

    我本地修改代码的时候,可能产品啊想看看,目前实现的效果,或者让测试帮忙调调样式啥的,都需要链接到我们本地的网站. 首先打开  D:\我的文档\IISExpress\config下的 applicati ...

  2. mysql 在cento下源码安装

    虚拟机改为网络地址转换 (NAT) service network restartping www.baidu.com rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm ...

  3. Selenium2学习-042-Selenium3启动Firefox Version 48.x浏览器(ff 原生 geckodriver 诞生)

    今天又被坑了一把,不知谁把 Slave 机的火狐浏览器版本升级为了 48 的版本,导致网页自动化测试脚本无法启动火狐的浏览器,相关的网页自动化脚本全线飘红(可惜不是股票,哈哈哈...),报版本不兼容的 ...

  4. ztree已拥有权限显示

    抄自 http://tieba.baidu.com/p/4394654036 $(document).ready(function () { var ID=@ViewBag.id; $.ajax({ ...

  5. 现在web前端这么火,钱景怎么样啊?

    web前端开发工程师可以说是一个全新的职业,在IT整个行业中真正受到重视的时间没有超过5年,也正因为这样,大家越来越想了解web前端工程师的前景究竟怎么样? web前端培训就业前景如何?web前端工程 ...

  6. Java提高篇——理解String 及 String.intern() 在实际中的应用

    1. 首先String不属于8种基本数据类型,String是一个对象.   因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. ...

  7. Leetcode: Ternary Expression Parser

    Given a string representing arbitrarily nested ternary expressions, calculate the result of the expr ...

  8. GZIP压缩优化

    使用gzip优化web应用(filter实现) 相关知识: gzip是http协议中使用的一种加密算法,客户端向web服务器端发出了请求后,通常情况下服务器端会将页面文件和其他资源,返回到客户端,客户 ...

  9. 关于g++编译模板类的问题

    今天搞了我接近4个小时,代码没错,就是调试没有通过,无论怎么也没有想到是编译器的问题 g++不支持c++模板类 声明与实现分离,都要写到.h文件里面. 以后记住了.

  10. 使用pip安装 cx_Oracle 模块

    1. 系统环境,linux, python3.5, pip以下命令的执行均使用root用户. 2. 执行 pip install cx_Oracle出错,提示不能定位Oracle的安装.出现该问题的原 ...