【李宏毅机器学习笔记】01_Regression

Regression

基本步骤

  • Step1: Function Set

    使用training data来计算最优的f,以找到 f ^ \hat f f^
    f : y = b + w ∗ x c p f : y = b + w 1 ∗ x c p + w 2 ∗ x c p 2 . . . f:y = b + w*x_{cp}\\f:y = b + w_1*x_{cp}+w_2*x_{cp}^2\\...\\ f:y=b+wxcpf:y=b+w1xcp+w2xcp2...

  • Step2: Goodness of Function

    Training Data: ( x , y ^ ) (x,\hat y) (x,y^)

    Loss function: L ( w , b ) = Σ n = 1 10 ( y ^ n − ( b + w ∗ x n ) ) 2 L(w,b)= \Sigma_{n=1}^{10} (\hat y^{n}-(b+w*x_{n}))^2 L(w,b)=Σn=110(y^n(b+wxn))2

    f ∗ = m i n f L ( f ) f^* = min_{f} L(f) f=minfL(f)

    很显然可以用线性规划来做,当然在机器学习中的方法则不同,只要f可微,就可以用梯度下降法

  • Step3: Optimization

    Gradient Descent

    1. 首先考虑其中一个参数w

    2. 随机选取初始值w

    3. 计算该点处微分(梯度),根据微分正负,定义下一步学习是增加还是减少梯度

      w 1 : = w 0 ± η ∗ d L d w ∣ w = w 0 w^1 := w^0 \pm \eta *\frac {dL}{dw}|_{w=w^0} w1:=w0±ηdwdLw=w0

      局部最优、全局最优

    如何处理两个参数?

在这里插入图片描述

  • Step4:结果如何?

    testing data

Overfitting

当拟合训练集得非常好、目标函数越复杂时,模型会在测试集上出现较高的误差,也就是过拟合。

正则化regularization

正则化之后,拟合到的曲线会更加平滑,对测试集数据的表现更好

不需要考虑b,bias只能控制曲线偏移,不能控制斜率

在这里插入图片描述

Bias and Variance

总 体 期 望 = E ( 样 本 均 值 ) 总 体 方 差 = N N − 1 样 本 方 差 总体期望=E(样本均值)\\总体方差=\frac {N}{N-1}样本方差 =E()=N1N

算法的期望预测与真实预测之间的偏差程度称为Bias;

Variance是指预测值与真实预测的分散程度。

**(Underfitting)当model是一个比较简单的方程时,function set的target space较小,因而存在较大的bias、较小的variance;(Overfitting)**当model较为复杂的,会存在较大的variance、较小的bias

How to fix?

large variance:

  • More data
  • Regularization(find the balance between bias and variance)

large bias:

  • change function set
交叉检验集cross validation

在这里插入图片描述

使用validation来评估你使用training set,再选出一个最好的model,这样选出来的model,在testing set上的表现才与现实中的set差距不大。

Gradient Descent

Gradient

L ( θ ) = [ δ l ( θ 1 ) / δ ( θ 1 ) δ l ( θ 2 ) / δ ( θ 2 ) ] L(\theta)= \left[ \begin{matrix} \delta l(\theta_1)/\delta(\theta_1)\\ \delta l(\theta_2)/\delta(\theta_2) \end{matrix}\right] L(θ)=[δl(θ1)/δ(θ1)δl(θ2)/δ(θ2)]

在这里插入图片描述

Learning rate

太大或太小的learning rate都不好,太大会导致找不到最优,太小会导致优化时间过长。

常规的方案是随着参数的更新,减小learning rate

η t = η t + 1 \eta^t = \frac {\eta}{\sqrt{t+1}} ηt=t+1 η

Optimism

Adagrad方法

其中g表示微分值

推导流程

在这里插入图片描述

结果
w t + 1 : = w t − η t σ t g t w t + 1 : = w t − η t + 1 1 t + 1 Σ i = 0 t ( g i ) 2 g t w t + 1 : = w t − η Σ i = 0 t ( g i ) 2 g t w^{t+1}:=w^t-\frac {\eta^t}{\sigma^t}g^t\\ w^{t+1}:=w^t-\frac {\frac {\eta}{\sqrt{t+1}}}{\sqrt{\frac {1}{t+1}\Sigma^t_{i=0}(g^i)^2}}g^t\\ w^{t+1}:=w^t-\frac {\eta}{\sqrt{\Sigma^t_{i=0}(g^i)^2}}g^t\\ wt+1:=wtσtηtgtwt+1:=wtt+11Σi=0t(gi)2 t+1 ηgtwt+1:=wtΣi=0t(gi)2 ηgt
其中 g t g^t gt表示一次微分, σ t \sigma^t σt表示二次微分的估计值,二者的比值用来评估点到最低点的距离

Stochastic Gradient Descent

选取一个example,计算一个example的loss,也就是每取一个example,就更新一次参数;

Feature Scaling

特征缩放目的是将每个特征值控制在[-1, 1]的范围(range一致)中,当然这个范围不必那么精确,小于[-3, 3]和大于[-1/3, 1/3]的范围都是可以接受的。这样在做梯度下降时,每个特征的影响是相对一致的。

Formal Derivation

根据泰勒展开可知,当步长(learning rate)很小时,损失函数可以被被近似未下面的式子,其中s、u、v都是常数,s表示在(a,b)点处,参数为θ的一阶值loss,uv为1阶偏微分值

在这里插入图片描述

为了使L最小,则需要将Δθ朝与u、v相反的方向移动

在这里插入图片描述

最后我们可以发现通过泰勒公式即可推导出gradient descent,可以发现,gradient descent要求学习率是足够小的才能成立。

在这里插入图片描述

一些限制

可能找到的结果不是最优,local minimum或高原,但你永远不知道你的结果是什么样的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值