机器学习(一)线性回归

线性回归

监督学习

  • Features : input variables,x;
  • Target : output vaiable,y;
  • Training example:( x ( i ) , y ( i ) x^{(i)},y^{(i)} x(i),y(i)), i = 1,2,3,…,m
  • Hypothesis: h :x → \rightarrow y

linear regression

  • Linear hypothesis : h ( x ) = θ 1 x + θ 0 h(x) = \theta_{1}x + \theta_{0} h(x)=θ1x+θ0
  • θ i \theta_{i} θi :要估计的参数

如何去选择 θ i \theta_{i} θi?

给定data x ∈ R n x \in \mathbb{R}^{n} xRn,有 θ ∈ R n + 1 \theta \in \mathbb{R}^{n+1} θRn+1
那么 h θ ( x ) = ∑ i = 0 n θ i x i = θ T x h_{\theta}(x) = \sum_{i=0}^{n}\theta_{i}x_{i} = \theta^{T}x hθ(x)=i=0nθixi=θTx,在这里定义 x 0 = 1 x_{0} = 1 x0=1(为x添加一维)

如何去选择最好的 θ \theta θ ?

定义损失函数(cost function):
J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(\theta) = \frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})^{2} J(θ)=21i=1m(hθ(x(i))y(i))2
也就是估计值于样本差值平方和

目标:
m i n J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 min J(\theta) = \frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})^{2} minJ(θ)=21i=1m(hθ(x(i))y(i))2

梯度

变化最快的方向

  • 梯度垂直于等值线
  • 梯度的模,代表变化的快慢
  • 梯度的方向指向增长的方向

梯度下降法

J ( θ ) 的 值 随 θ 的 变 化 而 改 变 , 沿 着 j ( θ ) 梯 度 相 反 的 方 向 , 能 最 快 的 下 降 , 达 到 收 敛 值 ( j ( θ ) 值 最 小 J(\theta) 的值随\theta的变化而改变,沿着j(\theta)梯度相反的方向,能最快的下降,达到收敛值(j(\theta)值最小 J(θ)θ沿j(θ)j(θ)
\rule[-5pt]{14.3cm}{0.1em}
A l g o r i t h m 1 \mathbf{Algorithm 1} Algorithm1 Gradient Descent
\rule[-5pt]{14.3cm}{0.05em}
1: G i v e n \mathbf{Given} Given a starting point θ ∈ d o m J \theta\in\mathbf{dom}J θdomJ
2: r e p e a t \mathbf{repeat} repeat
3: Calculate gradient ▽ J ( θ ) ; \bigtriangledown J(\theta); J(θ);
4: Update θ ← θ − α ▽ J ( θ ) ; \theta\leftarrow\theta-\alpha\bigtriangledown J(\theta); θθαJ(θ);
5: u n t i l \mathbf{until} until convergence criterion is satisfied
\rule[-5pt]{14.3cm}{0.05em}

  • θ 可 以 被 随 机 初 始 化 \theta 可以被随机初始化 θ
  • α 被 称 为 学 习 速 率 \alpha 被称为学习速率 α
如何更新 θ \theta θ

θ j ← θ j − α ∂ J ( θ ) ∂ θ j , ∀ j = 0 , 1 , . . . , n \theta_{j}\leftarrow\theta_{j}-\alpha\frac{\partial J(\theta)}{\partial\theta_{j}}, \forall j=0,1,...,n θjθjαθjJ(θ),j=0,1,...,n
∂ J ( θ ) ∂ θ j = ∂ ∂ j 1 2 ∑ i = 1 m ( θ T x ( i ) − y ( i ) ) 2 \frac{\partial J(\theta)}{\partial\theta_{j}} = \frac{\partial}{\partial_{j}}\frac{1}{2}\sum_{i=1}^{m}(\theta^{T}x^{(i)} - y^{(i)})^{2} θjJ(θ)=j21i=1m(θTx(i)y(i))2
= ∂ ∂ j 1 2 ∑ i = 1 m ( ∑ j = 0 n θ j x j ( i ) − y ( i ) ) 2 =\quad \frac{\partial}{\partial_{j}}\frac{1}{2}\sum_{i=1}^{m}(\sum_{j=0}^{n}\theta_{j}x_{j}^{(i)} - y^{(i)})^{2} =j21i=1m(j=0nθjxj(i)y(i))2
= ∑ i = 1 m ( ∑ j = 0 n θ j x j ( i ) − y ( i ) ) x j ( i ) =\quad \sum_{i=1}^{m}(\sum_{j=0}^{n}\theta_{j}x_{j}^{(i)} - y^{(i)})x_{j}^{(i)} =i=1m(j=0nθjxj(i)y(i))xj(i)
= ∑ i = 1 m ( θ T x ( i ) − y ( i ) ) x j ( i ) =\quad \sum_{i=1}^{m}(\theta^{T}x^{(i)} - y^{(i)})x_{j}^{(i)} =i=1m(θTx(i)y(i))xj(i)

  • 注:有时候用的是 θ j ← θ j − α m ∂ J ( θ ) ∂ θ j , ∀ j = 0 , 1 , . . . , n \theta_{j}\leftarrow\theta_{j}-\frac{\alpha}{m}\frac{\partial J(\theta)}{\partial\theta_{j}}, \forall j=0,1,...,n θjθjmαθjJ(θ),j=0,1,...,n,多一个m,避免了因为数据集太大,导致数值过大的情况

随机梯度下降法 SGD

如若数据集过大,在每一次迭代中,对所有的数据集进行运算,会导致开销过大
使用随机梯度下降,用于解决数据集过大的情况
在每一次迭代的过程中,随机选择一个数据样本进行计算并更新参数
\rule[-5pt]{14.3cm}{0.1em}
A l g o r i t h m 2 \mathbf{Algorithm 2} Algorithm2 Stochastic Gradient Descent for Linear Regression
\rule[-5pt]{14.3cm}{0.05em}
1: G i v e n \mathbf{Given} Given a starting point θ ∈ d o m J \theta\in\mathbf{dom}J θdomJ
2: r e p e a t \mathbf{repeat} repeat
3: Randomly shuffle the training data;
4: for i =1,2,…,m do
5: θ ← θ − α ▽ J ( θ ; x ( i ) , y ( i ) ) ; \theta\leftarrow\theta-\alpha\bigtriangledown J(\theta;x^{(i)},y^{(i)}); θθαJ(θ;x(i),y(i));
6: end for
7: u n t i l \mathbf{until} until convergence criterion is satisfied
\rule[-5pt]{14.3cm}{0.05em}

函数对向量、矩阵的梯度(向量、矩阵求导)

给出定义,若函数 f : r m × n → R f : \mathbb{r}^{m\times n} \rightarrow\mathbb{R} f:rm×nR,则 ∂ f ∂ X 也 是 一 个 m × n 矩 阵 \frac{\partial f}{\partial X}也是一个m\times n矩阵 Xfm×n
( ∂ f ∂ X ) i j = ∂ f ∂ x i j (\frac{\partial f}{\partial X})_{ij}= \frac{\partial f}{\partial x_{ij}} (Xf)ij=xijf
表示实值函数对矩阵的梯度,记作 ▽ x f \bigtriangledown_{x}f xf

矩阵化计算

X = [ ( x ( 1 ) ) T ⋮ ( x ( m ) ) T ] Y = [ ( y ( 1 ) ) T ⋮ ( y ( m ) ) T ] X= \begin{bmatrix}(x^{(1)})^{T} \\ \vdots \\ (x^{(m)})^{T} \end{bmatrix} \qquad Y = \begin{bmatrix}(y^{(1)})^{T} \\ \vdots \\ (y^{(m)})^{T} \end{bmatrix} X=(x(1))T(x(m))TY=(y(1))T(y(m))T
X θ − Y = [ ( x ( 1 ) ) T θ ⋮ ( x ( m ) ) T θ ] − [ ( y ( 1 ) ) T ⋮ ( y ( m ) ) T ] = [ h θ ( x ( 1 ) ) T − y ( 1 ) ⋮ h θ ( x ( m ) ) T − y ( m ) ] X\theta - Y = \begin{bmatrix}(x^{(1)})^{T}\theta \\ \vdots \\ (x^{(m)})^{T} \theta \end{bmatrix} - \begin{bmatrix}(y^{(1)})^{T} \\ \vdots \\ (y^{(m)})^{T} \end{bmatrix} = \begin{bmatrix}h_{\theta}(x^{(1)})^{T} - y^{(1)}\\ \vdots \\ h_{\theta}(x^{(m)})^{T}-y^{(m)} \end{bmatrix} XθY=(x(1))Tθ(x(m))Tθ(y(1))T(y(m))T=hθ(x(1))Ty(1)hθ(x(m))Ty(m)
J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = 1 2 ( X θ − Y ) T ( X θ − Y ) J(\theta) = \frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})^{2} = \frac{1}{2}(X\theta - Y)^{T}(X\theta - Y) J(θ)=21i=1m(hθ(x(i))y(i))2=21(XθY)T(XθY)
求解 ▽ θ J ( θ ) \triangledown_{\theta}J(\theta) θJ(θ)的矩阵化计算推导
▽ θ J ( θ ) = ▽ θ 1 2 ( X θ − Y ) T ( X θ − Y ) = 1 2 ▽ θ ( θ T X T − Y T ) ( X θ − Y ) = 1 2 ▽ θ t r ( θ T X T X θ − Y T X θ − θ T X T Y + Y T Y ) ( 注 : 这 里 取 迹 不 影 响 结 果 因 为 这 个 矩 阵 运 算 完 本 来 就 是 一 个 常 数 , 但 是 会 方 便 我 们 求 导 我 们 求 导 : ▽ A T t r A B A T C = B T A T C T + B A T C ) = 1 2 ▽ θ t r ( θ T X T X θ ) − X T Y = 1 2 ( X T X θ + X T X θ ) − θ T Y = X T X θ − X T Y \triangledown_{\theta}J(\theta) = \triangledown_{\theta}\frac{1}{2}(X\theta - Y)^{T}(X\theta - Y)\\=\frac{1}{2}\triangledown_{\theta}(\theta^{T}X^{T}-Y^{T})(X\theta-Y)\\=\frac{1}{2}\triangledown_{\theta}tr(\theta^{T}X^{T}X\theta-Y^{T}X\theta-\theta^{T}X^{T}Y+Y^{T}Y)\\(注:这里取迹不影响结果因为这个矩阵运算完本来就是一个常数,\\但是会方便我们求导我们求导:\\\triangledown_{A^{T}}trABA^{T}C=B^{T}A^{T}C^{T}+BA^{T}C)\\=\frac{1}{2}\triangledown_{\theta}tr(\theta^{T}X^{T}X\theta)-X^{T}Y\\=\frac{1}{2}(X^{T}X\theta+X^{T}X\theta)-\theta^{T}Y\\= X^{T}X\theta - X^{T}Y θJ(θ)=θ21(XθY)T(XθY)=21θ(θTXTYT)(XθY)=21θtr(θTXTXθYTXθθTXTY+YTY)(:便:ATtrABATC=BTATCT+BATC)=21θtr(θTXTXθ)XTY=21(XTXθ+XTXθ)θTY=XTXθXTY
当 且 仅 当 A 的 列 向 量 线 性 无 关 , A T A 可 逆 , ▽ θ J ( θ ) = 0 的 解 为 : 当且仅当A的列向量线性无关,A^{T}A可逆,\triangledown_{\theta}J(\theta) =0 的解为: A线ATAθJ(θ)=0
θ = ( X T X ) − 1 X T Y \theta = (X^{T}X)^{-1}X^{T}Y θ=(XTX)1XTY
但我认为因为有些时候可能这个解不太好解,所以需要我们的梯度下降法,一步步逼近最优解

线性回归与极大似然估计的关系

目标变量和输入的关系
y = θ T x + ϵ y = \theta^{T}x + \epsilon y=θTx+ϵ
ϵ \epsilon ϵ表示误差,是独立同分布的,并且服从于高斯分布 N ( 0 , σ 2 ) N(0,\sigma^{2}) N(0,σ2),也就是说,实际的值y和我们计算出来的 θ T x \theta^Tx θTx之间是存在误差的,我们假设这个误差是服从一个高斯分布的。
概率密度函数:
f ( ϵ ) = 1 2 π σ e x p ( − ϵ 2 2 σ 2 ) f(\epsilon) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{\epsilon^2}{2\sigma^2}) f(ϵ)=2π σ1exp(2σ2ϵ2)
所以y的条件概率密度函数服从
y ∣ x ; θ ∼ N ( θ T x , σ 2 ) y|x;\theta \sim N(\theta^Tx,\sigma^2) yx;θN(θTx,σ2)
归于给定的训练集 d a t a { x ( i ) , y ( i ) } data\{x^{(i)},y^{(i)}\} data{x(i),y(i)}
p ( y = y ( i ) ∣ x = x ( i ) ; θ ) = 1 2 π σ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) p(y = y^{(i)}|x = x^{(i)};\theta) = \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} - \theta^Tx^{(i)})^2}{2\sigma^2}) p(y=y(i)x=x(i);θ)=2π σ1exp(2σ2(y(i)θTx(i))2)

我们要使得我们估计出来的结果,等于实际值的可能性更大,就可以列出如下的极大似然函数:
L ( θ ) = ∏ i p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i 1 2 π σ e x p ( − ( y ( i ) − θ T x ( i ) ) 2 2 σ 2 ) L(\theta) = \prod_{i}p(y^{(i)} | x^{(i)} ; \theta) \\ = \prod_{i} \frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(y^{(i)} - \theta^Tx^{(i)})^2}{2\sigma^2}) L(θ)=ip(y(i)x(i);θ)=i2π σ1exp(2σ2(y(i)θTx(i))2)
进行取对数
l ( θ ) = l o g L ( θ ) = m log ⁡ 1 2 π σ − 1 2 σ 2 ∑ i ( y ( i ) − θ T x ( i ) ) 2 l(\theta) = logL(\theta)\\=m\log \frac{1}{\sqrt{2\pi}\sigma}-\frac{1}{2\sigma^2}\sum_{i}(y^{(i)} - \theta^Tx^{(i)})^2 l(θ)=logL(θ)=mlog2π σ12σ21i(y(i)θTx(i))2
那么也就是说,我们要使得 L ( θ ) L(\theta) L(θ)更大,就要使得下式更小:
1 2 ∑ i ( y ( i ) − θ T x ( i ) ) 2 \frac{1}{2}\sum_{i}(y^{(i)} - \theta^Tx^{(i)})^2 21i(y(i)θTx(i))2
那么就说明,我们设 J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = 1 2 ( X θ − Y ) T ( X θ − Y ) J(\theta) = \frac{1}{2}\sum_{i=1}^{m}(h_{\theta}(x^{(i)}) - y^{(i)})^{2} = \frac{1}{2}(X\theta - Y)^{T}(X\theta - Y) J(θ)=21i=1m(hθ(x(i))y(i))2=21(XθY)T(XθY),去求插值的平方和,而不是4次方或6次方和,是合理的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值