《machine learning》2单变量线性回归

二、单变量线性回归Linear Regression woth One Variable

2.1 模型描述

训练数据集=>学习任务=>输出假设函数 h ( x ) h(x) h(x)

  • m m m 训练样本数
  • x x x 输入变量/特征
  • y y y 输出变量
  • ( x ( i ) , y ( i ) ) ( x^{(i)} , y^{(i)} ) (x(i),y(i))第i个样本

2.2 损失函数

选择合适的模型参数parameters使 ( h ( x ) − y ) 2 (h(x)-y)^2 (h(x)y)2(预测值和真实值的误差)尽可能的小。
对于回归问题平方误差函数最常用的是平方误差函数: J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h ( x ) ( i ) − y ( i ) ) 2 J(\theta_0 , \theta_1) = {1 \over 2m}\sum_{i=1}^{m}(h(x)^{(i)} - y^{(i)})^2 J(θ0,θ1)=2m1i=1m(h(x)(i)y(i))2

2.3 损失函数直观理解

假设函数Hypothesis: h θ ( x ) = θ 0 + θ x x h_ \theta(x) = \theta_0 + \theta_xx hθ(x)=θ0+θxx
模型参数Parameters: θ 0 , θ 1 \theta_0, \theta_1 θ0,θ1
损失函数Cost Function: J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2 J(\theta_0, \theta_1) = {1\over2m}\sum_{i=1}^m(h(x^{(i)}) - y^{(i)})^2 J(θ0,θ1)=2m1i=1m(h(x(i))y(i))2
优化目标Goal: m i n i m i z e − J ( θ 0 , θ 1 ) minimize -J(\theta_0, \theta_1) minimizeJ(θ0,θ1)
θ 0 = 0 \theta_0=0 θ0=0 h θ ( x ) = θ x x h_\theta(x) = \theta_xx hθ(x)=θxx
在这里插入图片描述
保留 θ 0 \theta_0 θ0 h θ ( x ) = θ 0 + θ x x h_ \theta(x) = \theta_0 + \theta_xx hθ(x)=θ0+θxx:
在这里插入图片描述

在这里插入图片描述

2.5 梯度下降

函数function: J ( θ 0 , θ 1 ) J(\theta_0, \theta_1) J(θ0,θ1) (可应用与更多的参数)
目标want: m i n − J ( θ 0 , θ 1 ) min - J(\theta_0, \theta_1) minJ(θ0,θ1)
Outline:

  • 给定初始值 θ 0 , θ 1 \theta_0, \theta_1 θ0,θ1(通常为0)
  • 改变 θ 0 , θ 1 \theta_0, \theta_1 θ0,θ1的值去减少 J ( θ 0 , θ 1 ) J(\theta_0, \theta_1) J(θ0,θ1)
    直到损失函数J得到最小值或局部最小值
    在这里插入图片描述
    梯度下降:起点不同可能会得到完全不同的局部最优解
    数学原理:更新 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1重复以下工作直到收敛
    {
    θ j : = θ j − α ∂ ∂ θ j J ( θ 0 , θ 1 ) \theta_j := \theta_j - \alpha{\partial\over\partial\theta_j}J(\theta_0, \theta_1)\quad θj:=θjαθjJ(θ0,θ1) (for j = 0 and j = 1)
    }
    其中的 α \alpha α是学习率, α \alpha α越大,梯度下降越迅速。
    α \alpha α太小,梯度计算步数越多;太大则可能不收敛甚至发散
    注意在更新 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1时必须两个paramaters同时更新。
    θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1分别求梯度后赋值给temp0和temp1之后,再将temp0和temp1同时赋值给 θ 0 , θ 1 \theta_0,\theta_1 θ0,θ1。参数全部求完梯度之后同时赋值。
    正确做法:
    temp0 := θ 0 − α ∂ ∂ θ 0 J ( θ 0 , θ 1 ) \theta_0 - \alpha{\partial\over\partial\theta_0}J(\theta_0, \theta_1) θ0αθ0J(θ0,θ1)
    temp1 := θ 1 − α ∂ ∂ θ 1 J ( θ 0 , θ 1 ) \theta_1 - \alpha{\partial\over\partial\theta_1}J(\theta_0, \theta_1) θ1αθ1J(θ0,θ1)
    θ 0 \theta_0 θ0 := temp0
    θ 1 \theta_1 θ1 := temp1
    错误做法:
    temp0 := θ 0 − α ∂ ∂ θ 0 J ( θ 0 , θ 1 ) \theta_0 - \alpha{\partial\over\partial\theta_0}J(\theta_0, \theta_1) θ0αθ0J(θ0,θ1)
    θ 0 \theta_0 θ0 := temp0
    temp1 := θ 1 − α ∂ ∂ θ 1 J ( θ 0 , θ 1 ) \theta_1 - \alpha{\partial\over\partial\theta_1}J(\theta_0, \theta_1) θ1αθ1J(θ0,θ1)
    θ 1 \theta_1 θ1 := temp1
    θ 1 \theta_1 θ1求梯度的时候, θ 0 \theta_0 θ0的值已经改变了,没做到同步更新。

2.6 梯度下降直观理解

简化函数: θ 0 = 0 \theta_0=0 θ0=0
在这里插入图片描述
在这里插入图片描述
当处于 θ j \theta_j θj时函数J达到最小值,那么梯度下降公式 θ j : = θ j − α ∂ ∂ θ j J ( θ j ) \theta_j := \theta_j - \alpha{\partial\over\partial\theta_j}J(\theta_j) θj:=θjαθjJ(θj) 导数部分为0,参数 θ j \theta_j θj不再改变。
梯度下降算法:
接近最小点的过程中,导数值越来越小,步幅自动变小直到达到最小点步幅为0。

2.7 梯度下降的线性回归

J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x ) ( i ) − y ( i ) ) 2 J(\theta_0, \theta_1)={1\over2m}\sum_{i=1}^m(h_\theta(x)^{(i)} - y^{(i)})^2 J(θ0,θ1)=2m1i=1m(hθ(x)(i)y(i))2
∂ ∂ θ j J ( θ 0 , θ 1 ) = ∂ ∂ θ j ∗ 1 2 m ∑ i = 1 m ( h θ ( x ) ( i ) − y ( i ) ) 2 = ∂ ∂ θ j ∗ 1 2 m ∑ i = 1 m ( θ 0 + θ 1 x ( i ) − y ( i ) ) 2 {\partial\over\partial\theta_j}J(\theta_0, \theta_1)={\partial\over\partial\theta_j}*{1\over2m}\sum_{i=1}^m(h_\theta(x)^{(i)} - y^{(i)})^2={\partial\over\partial\theta_j}*{1\over2m}\sum_{i=1}^m(\theta_0+\theta_1x^{(i)}-y^{(i)})^2 θjJ(θ0,θ1)=θj2m1i=1m(hθ(x)(i)y(i))2=θj2m1i=1m(θ0+θ1x(i)y(i))2
j = 0 : ∂ ∂ θ 0 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ) ( i ) − y ( i ) ) j=0:{\partial\over\partial\theta_0}J(\theta_0, \theta_1)={1\over m}\sum_{i=1}^m(h_\theta(x)^{(i)} - y^{(i)}) j=0:θ0J(θ0,θ1)=m1i=1m(hθ(x)(i)y(i))
j = 1 : ∂ ∂ θ 1 J ( θ 0 , θ 1 ) = 1 m ∑ i = 1 m ( h θ ( x ) ( i ) − y ( i ) ) ∗ x ( i ) j=1:{\partial\over\partial\theta_1}J(\theta_0, \theta_1)={1\over m}\sum_{i=1}^m(h_\theta(x)^{(i)} - y^{(i)})*x^{(i)} j=1:θ1J(θ0,θ1)=m1i=1m(hθ(x)(i)y(i))x(i)
在这里插入图片描述
“Batch”梯度下降:历遍了所有的训练数据集

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值